@graphty/graph-io 0.3.45 → 0.3.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/chunks/{approximations-DJMHdDvv.js → approximations-wWjCRzKj.js} +2 -2
  2. package/dist/chunks/{approximations-DJMHdDvv.js.map → approximations-wWjCRzKj.js.map} +1 -1
  3. package/dist/chunks/{block-CPCHkX42.js → block-DiGq58c3.js} +9 -3
  4. package/dist/chunks/block-DiGq58c3.js.map +1 -0
  5. package/dist/chunks/{emit-DZy6JgdA.js → emit-CwU8cUmG.js} +2 -2
  6. package/dist/chunks/{emit-DZy6JgdA.js.map → emit-CwU8cUmG.js.map} +1 -1
  7. package/dist/chunks/{exporter-DFqJhBnj.js → exporter-CJgfhF-l.js} +4 -4
  8. package/dist/chunks/{exporter-DFqJhBnj.js.map → exporter-CJgfhF-l.js.map} +1 -1
  9. package/dist/chunks/{exporter-C-9cgZKa.js → exporter-CrDWIyiq.js} +4 -4
  10. package/dist/chunks/{exporter-C-9cgZKa.js.map → exporter-CrDWIyiq.js.map} +1 -1
  11. package/dist/chunks/{exporter-DteVeJki.js → exporter-DndFlGSa.js} +3 -3
  12. package/dist/chunks/{exporter-DteVeJki.js.map → exporter-DndFlGSa.js.map} +1 -1
  13. package/dist/chunks/{generic-BGO71QBv.js → generic-Dq1ntt9q.js} +3 -3
  14. package/dist/chunks/{generic-BGO71QBv.js.map → generic-Dq1ntt9q.js.map} +1 -1
  15. package/dist/chunks/{importer-B-9Rc1zO.js → importer-BSvfrX_h.js} +4 -4
  16. package/dist/chunks/{importer-B-9Rc1zO.js.map → importer-BSvfrX_h.js.map} +1 -1
  17. package/dist/chunks/{importer-BVVR740x.js → importer-CMmeMWlC.js} +3 -3
  18. package/dist/chunks/{importer-BVVR740x.js.map → importer-CMmeMWlC.js.map} +1 -1
  19. package/dist/chunks/{importer-C7pvJe1L.js → importer-COTK9Tsl.js} +5 -5
  20. package/dist/chunks/{importer-C7pvJe1L.js.map → importer-COTK9Tsl.js.map} +1 -1
  21. package/dist/chunks/{importer-ClwoVx3O.js → importer-DiZRmOQG.js} +4 -4
  22. package/dist/chunks/{importer-ClwoVx3O.js.map → importer-DiZRmOQG.js.map} +1 -1
  23. package/dist/chunks/{importer-EHQk1jbM.js → importer-e6LGpqHB.js} +5 -5
  24. package/dist/chunks/importer-e6LGpqHB.js.map +1 -0
  25. package/dist/chunks/{importer-C0AjA3Ax.js → importer-iFYPEKaJ.js} +4 -4
  26. package/dist/chunks/{importer-C0AjA3Ax.js.map → importer-iFYPEKaJ.js.map} +1 -1
  27. package/dist/chunks/{importer-D0sC_6bO.js → importer-yh_aBCU6.js} +2 -2
  28. package/dist/chunks/{importer-D0sC_6bO.js.map → importer-yh_aBCU6.js.map} +1 -1
  29. package/dist/chunks/{lexicon-WMsNddyU.js → lexicon-CT69Kd87.js} +2 -2
  30. package/dist/chunks/{lexicon-WMsNddyU.js.map → lexicon-CT69Kd87.js.map} +1 -1
  31. package/dist/chunks/{styles-zNTmz5R7.js → styles-BQnsga7p.js} +3 -3
  32. package/dist/chunks/{styles-zNTmz5R7.js.map → styles-BQnsga7p.js.map} +1 -1
  33. package/dist/chunks/{styles-DvoFBKCK.js → styles-D3fRphrO.js} +3 -3
  34. package/dist/chunks/{styles-DvoFBKCK.js.map → styles-D3fRphrO.js.map} +1 -1
  35. package/dist/chunks/{styles-yed-Cz9rLBCP.js → styles-yed-BF5x3_Y5.js} +3 -3
  36. package/dist/chunks/{styles-yed-Cz9rLBCP.js.map → styles-yed-BF5x3_Y5.js.map} +1 -1
  37. package/dist/chunks/{writer-gQ8kx99H.js → writer-DMKvthQE.js} +2 -2
  38. package/dist/chunks/{writer-gQ8kx99H.js.map → writer-DMKvthQE.js.map} +1 -1
  39. package/dist/cx.js +1 -1
  40. package/dist/cx2.js +2 -2
  41. package/dist/cys.js +1 -1
  42. package/dist/dot.js +2 -2
  43. package/dist/gexf.js +2 -2
  44. package/dist/gml.js +6 -6
  45. package/dist/graph-io.js +23 -23
  46. package/dist/graphml.js +2 -2
  47. package/dist/json.js +1 -1
  48. package/dist/pajek.js +1 -1
  49. package/dist/src/formats/pajek/styles.d.ts +1 -1
  50. package/dist/src/formats/pajek/styles.d.ts.map +1 -1
  51. package/dist/src/formats/pajek/styles.js +4 -3
  52. package/dist/src/formats/pajek/styles.js.map +1 -1
  53. package/dist/src/styles/canon/color-tables.d.ts +2 -1
  54. package/dist/src/styles/canon/color-tables.d.ts.map +1 -1
  55. package/dist/src/styles/canon/color-tables.js +7 -2
  56. package/dist/src/styles/canon/color-tables.js.map +1 -1
  57. package/dist/src/styles/defaults.d.ts.map +1 -1
  58. package/dist/src/styles/defaults.js +7 -0
  59. package/dist/src/styles/defaults.js.map +1 -1
  60. package/dist/styles.js +6 -6
  61. package/dist/xgmml.js +3 -3
  62. package/package.json +2 -2
  63. package/src/formats/pajek/styles.ts +4 -3
  64. package/src/styles/canon/color-tables.ts +7 -2
  65. package/src/styles/defaults.ts +8 -0
  66. package/dist/chunks/block-CPCHkX42.js.map +0 -1
  67. package/dist/chunks/importer-EHQk1jbM.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"writer-gQ8kx99H.js","sources":["../../src/styles/io/writer.ts"],"sourcesContent":["/**\n * Writing a graph's styles: what `exportGraph(snapshot, format, { styles })` hands a format's exporter, the losses\n * reported before anything is written, and, for an exporter whose block goes into attributes, the snapshot with the\n * `graphty.styles` block and the tagged per-element values added as attributes.\n */\n\nimport type { GraphSnapshot } from \"@graphty/graph-format\";\n\nimport { agree, plural } from \"../../common/plural.js\";\nimport type { GraphExporter, LossNote } from \"../../types.js\";\nimport { STYLE_ISSUE } from \"../codes.js\";\nimport { styleFingerprint } from \"../plan/features.js\";\nimport { canonicalFor, dataCell, degreeValues, plainCell, resolveStyles } from \"../plan/resolve.js\";\nimport type {\n ExtractedStyles,\n Mapping,\n StyleColumn,\n StyleProperty,\n StyleRule,\n StyleTarget,\n StyleValue,\n StyleWriteCapabilities,\n} from \"../types.js\";\nimport { STYLE_BLOCK_NAME, styleBlockLosses, styleTag, writeStyleBlock } from \"./block.js\";\n\n/**\n * What an exporter with a `styles` member receives as `options.styles` when styles are being written.\n * @category Styles\n */\nexport interface ExporterStyleInput {\n /**\n * Each element's value of one property, by element index (null where no rule gives one): what graphty draws, to\n * write into the format's own style slots.\n * @param target - nodes or edges\n * @param property - the property\n * @returns the values\n */\n picture(target: StyleTarget, property: StyleProperty): readonly (StyleValue | null)[];\n /** The `graphty.styles` block (JSON text) to place where the format keeps extra data. */\n readonly block: string;\n /** The per-element style values the block's rules read, by attribute name (`graphty.style.<target>.<key>`). */\n readonly tags: {\n /** Node values. */\n readonly node: ReadonlyMap<string, StyleColumn>;\n /** Edge values. */\n readonly edge: ReadonlyMap<string, StyleColumn>;\n };\n /** The styles themselves, for a format with a style language of its own. */\n readonly rules: ExtractedStyles;\n}\n\n/**\n * The options an exporter with a `styles` member reads its styles from: type its options as `Opts &\n * ExporterStyleOptions`.\n * @category Styles\n */\nexport interface ExporterStyleOptions {\n /** Present when styles are being written. */\n readonly styles?: ExporterStyleInput | undefined;\n}\n\n/** What an export with styles writes and loses, worked out before writing. */\ninterface PreparedStyleExport {\n /** The snapshot to hand the exporter: style roles removed, and the block and tagged values added as attributes. */\n readonly snapshot: GraphSnapshot;\n /** The exporter's `options.styles`, or null for an exporter without a `styles` member. */\n readonly input: ExporterStyleInput | null;\n /** W_STYLE_ notes: every property not written natively, and the rules when they are not kept. */\n readonly notes: readonly LossNote[];\n /** E_STYLES_MISMATCH when the styles belong to a different graph; nothing is then written. */\n readonly refusal: LossNote | null;\n}\n\n/** The roles of columns that hold styles; with styles given they are data, never written into a style slot. */\nconst STYLE_ROLES: ReadonlySet<string> = new Set([\"color\", \"size\", \"shape\", \"thickness\", \"hidden\"]);\nconst TARGETS: readonly StyleTarget[] = [\"node\", \"edge\"];\n\n/**\n * Works out an export with styles: the refusal when the styles belong to another graph, the losses, the exporter's\n * `options.styles`, and the snapshot to write.\n * @param snapshot - the graph being written\n * @param exporter - the format's exporter\n * @param given - the styles\n * @param plain - the export's other options, which decide what the format loses of the graph's data\n * @returns what to write and what is lost\n */\nexport function prepareStyleExport(\n snapshot: GraphSnapshot,\n exporter: GraphExporter,\n given: ExtractedStyles,\n plain?: Readonly<Record<string, unknown>>,\n): PreparedStyleExport {\n const fp = styleFingerprint(snapshot);\n const want = given.fingerprint;\n if (fp.nodes !== want.nodes || fp.edges !== want.edges || fp.ids !== want.ids) {\n return {\n snapshot,\n input: null,\n notes: [],\n refusal: Object.freeze({\n code: STYLE_ISSUE.MISMATCH,\n message: `the styles were read from or built for a different graph (${String(want.nodes)} nodes and ${String(want.edges)} edges, this graph has ${String(fp.nodes)} and ${String(fp.edges)}, or other node ids); nothing is written`,\n column: null,\n count: null,\n }),\n };\n }\n const caps = exporter.styles?.capabilities ?? null;\n let plan = writePlan(snapshot, exporter, given);\n if (keepsStyleBlock(exporter)) {\n // what the export loses of the graph's data, styles written as they are: the rules' inputs among it are carried\n let checked: readonly LossNote[];\n try {\n checked = exporter.check(plan.snapshot, plan.input === null ? plain : { ...plain, styles: plan.input });\n } catch {\n checked = [];\n }\n const carried = withLostInputsCarried(given, snapshot, checked);\n if (carried !== given) {\n plan = writePlan(snapshot, exporter, carried);\n }\n }\n return {\n snapshot: plan.snapshot,\n input: plan.input,\n notes: lossNotes(plan.extracted, exporter, caps, plan.picture, snapshot),\n refusal: null,\n };\n}\n\n/**\n * The work an exporter shares between the check and the write of one export call, by the styles input made for that\n * call (null until the first exporter step does it). Only an input writePlan() made is here, so an input a caller\n * builds and changes in place is always worked out again.\n */\nconst CALL_WORK = new WeakMap<\n ExporterStyleInput,\n { readonly key: readonly unknown[]; readonly value: unknown } | null\n>();\n\n/**\n * Work an exporter does from its styles input once per export call: the registry checks before it writes, with the\n * same input, graph and options. Outside an export call (an input the caller made) it is done every time.\n * @param input - the exporter's `options.styles`\n * @param key - what else the work reads (the graph, options), compared by identity\n * @param compute - the work\n * @returns its result\n */\nexport function sharedInExportCall<T>(input: ExporterStyleInput, key: readonly unknown[], compute: () => T): T {\n if (!CALL_WORK.has(input)) {\n return compute();\n }\n const done = CALL_WORK.get(input);\n if (done?.key.length === key.length && done.key.every((k, i) => k === key[i])) {\n return done.value as T;\n }\n const value = compute();\n CALL_WORK.set(input, { key, value });\n return value;\n}\n\n/**\n * What an exporter is handed to write a graph's styles: the snapshot with the block and tagged values added where\n * the format keeps them, and its `options.styles`.\n * @param snapshot - the graph\n * @param exporter - the exporter\n * @param extracted - the styles\n * @returns the plan\n */\nfunction writePlan(\n snapshot: GraphSnapshot,\n exporter: GraphExporter,\n extracted: ExtractedStyles,\n): {\n readonly snapshot: GraphSnapshot;\n readonly input: ExporterStyleInput | null;\n readonly extracted: ExtractedStyles;\n readonly picture: (target: StyleTarget, property: StyleProperty) => readonly (StyleValue | null)[];\n} {\n const caps = exporter.styles?.capabilities ?? null;\n const pictures = new Map<string, readonly (StyleValue | null)[]>();\n const picture = (target: StyleTarget, property: StyleProperty): readonly (StyleValue | null)[] => {\n const key = `${target}\\u0000${property}`;\n let values = pictures.get(key);\n if (values === undefined) {\n values = resolveStyles(extracted, target, property, snapshot);\n pictures.set(key, values);\n }\n return values;\n };\n const tags = { node: new Map<string, StyleColumn>(), edge: new Map<string, StyleColumn>() };\n for (const target of TARGETS) {\n for (const [key, col] of extracted.columns[target]) {\n tags[target].set(styleTag(target, key), col);\n }\n }\n const block = writeStyleBlock(extracted, { snapshot });\n const input = exporter.styles === undefined ? null : { picture, block, tags, rules: extracted };\n if (input !== null) {\n CALL_WORK.set(input, null);\n }\n return {\n snapshot: styledSnapshot(snapshot, caps, tags, block, extracted.styles.rules),\n input,\n extracted,\n picture,\n };\n}\n\n/**\n * Loss notes about a column whose values read back the same: written elsewhere (CSV's node table), under another\n * name a block finds by its values, with another role, storage or number type, or as a wider type.\n */\nconst VALUES_KEPT = /NODE_TABLE|NAME_CHANGED|ROLE_ASSUMED|STORAGE_CLASS|NUMBER_TYPE|INTEGRAL|WIDENED/;\n\n/**\n * The styles with every input the format will not read back as it is given carried as a style column of its own: a\n * data column the export drops or changes (its loss notes name it), and the in and out degrees when the file does not\n * keep the edges' direction. The rules then read the copies, which the file keeps beside the block, and give back the\n * same values.\n * @param extracted - the styles\n * @param snapshot - the graph\n * @param notes - what the export, styles written as they are, loses\n * @returns the styles, the same object when nothing is lost\n */\nfunction withLostInputsCarried(\n extracted: ExtractedStyles,\n snapshot: GraphSnapshot,\n notes: readonly LossNote[],\n): ExtractedStyles {\n const lost = new Set<string>();\n let direction = false;\n for (const note of notes) {\n if (!VALUES_KEPT.test(note.code)) {\n for (const name of note.columns ?? (note.column === null ? [] : [note.column])) {\n lost.add(name);\n }\n }\n direction ||= /DIRECTION/.test(note.code);\n }\n const carrier = new LostInputs(snapshot, lost, direction, extracted.columns);\n const rules = extracted.styles.rules.map((rule) => carrier.carry(rule));\n const changed = rules.some((rule, i) => rule !== extracted.styles.rules[i]);\n return changed ? { ...extracted, styles: { ...extracted.styles, rules }, columns: carrier.columns } : extracted;\n}\n\n/** Carries the inputs of rules that the format will not read back into style columns of their own. */\nclass LostInputs {\n /** The style columns, the copies added. */\n readonly columns: { readonly node: Map<string, StyleColumn>; readonly edge: Map<string, StyleColumn> };\n\n /** Whether the rule being carried read a lost input. */\n private touched = false;\n\n /**\n * A carrier for one export.\n * @param snapshot - the graph\n * @param lost - the data columns the export drops or changes\n * @param direction - whether the file loses the edges' direction (and so the in and out degrees)\n * @param columns - the styles' own style columns\n * @param columns.node - the node columns\n * @param columns.edge - the edge columns\n */\n constructor(\n private readonly snapshot: GraphSnapshot,\n private readonly lost: ReadonlySet<string>,\n private readonly direction: boolean,\n columns: { readonly node: ReadonlyMap<string, StyleColumn>; readonly edge: ReadonlyMap<string, StyleColumn> },\n ) {\n this.columns = { node: new Map(columns.node), edge: new Map(columns.edge) };\n }\n\n /**\n * A rule with every lost input it reads replaced by a copy of its values.\n * @param rule - the rule\n * @returns the rule read from copies, or the rule itself when it reads no lost input\n */\n carry(rule: StyleRule): StyleRule {\n this.touched = false;\n const { ext, ...given } = rule;\n const map = this.carryMap(rule);\n const where = this.walk(rule, given.where);\n if (!this.touched) {\n return rule;\n }\n const { map: _given, ...unmapped } = given;\n const plain = Object.keys(map).length === 0 ? { ...unmapped, where } : { ...unmapped, where, map };\n // a JSON copy drops undefined members, as the written block does; structuredClone would keep them\n const moved = JSON.parse(JSON.stringify(plain)) as StyleRule; // NOSONAR(S7784): undefined members must go\n return ext === undefined ? moved : { ...moved, ext };\n }\n\n /**\n * A rule's mappings with their lost inputs replaced. A passthrough reads a data column as the property's value: its\n * copy holds those values; one that gives no element a value (a list, text that is not a color) is left out, so\n * no other value the file reads back in the column (a list written as text) is given either.\n * @param rule - the rule\n * @returns the mappings\n */\n private carryMap(rule: StyleRule): Record<string, Mapping> {\n const map = Object.create(null) as Record<string, Mapping>;\n const { table } = this.tableOf(rule.target);\n for (const [property, mapping] of Object.entries(rule.map ?? {})) {\n if (mapping === undefined) {\n continue;\n }\n if (mapping.kind !== \"passthrough\") {\n map[property] = this.walk(rule, mapping);\n continue;\n }\n const name = (mapping.by as { data?: unknown }).data;\n const lostColumn = typeof name === \"string\" && this.lost.has(name) && table.has(name);\n const values = lostColumn ? this.cells(rule.target, name, canonicalFor(rule.target, property)) : null;\n if (values !== null && !values.some((v) => v !== null)) {\n this.touched = true;\n } else if (values !== null && this.isLost(rule.target, name)) {\n this.touched = true;\n map[property] = { ...mapping, by: this.copy(rule.target, `${property}.data.${name}`, () => values) };\n } else {\n map[property] = mapping;\n }\n }\n return map;\n }\n\n /**\n * A value with every other reference to a lost input reading a copy of its values as they are.\n * @param rule - the rule it belongs to\n * @param value - the value\n * @returns the value, references replaced\n */\n private walk<T>(rule: StyleRule, value: T): T {\n return JSON.parse(JSON.stringify(value, (_k, v: unknown) => this.replaced(rule, v))) as T;\n }\n\n /**\n * One reference with a lost input replaced by its copy: a data column, or a degree the file does not keep.\n * @param rule - the rule it belongs to\n * @param v - a value of the rule\n * @returns the value, or the reference to the copy\n */\n private replaced(rule: StyleRule, v: unknown): unknown {\n if (typeof v !== \"object\" || v === null || Array.isArray(v) || Object.keys(v).length !== 1) {\n return v;\n }\n const ref = v as { data?: unknown; computed?: unknown };\n if (this.isLost(rule.target, ref.data)) {\n const name = ref.data;\n this.touched = true;\n return this.copy(rule.target, `data.${name}`, () =>\n this.cells(rule.target, name, (raw) => (isStyleScalar(raw) ? raw : null)),\n );\n }\n const which = ref.computed;\n if ((which === \"indegree\" || which === \"outdegree\") && this.direction && rule.target === \"node\") {\n this.touched = true;\n return this.copy(rule.target, `computed.${which}`, () => degreeValues(this.snapshot, which));\n }\n return v;\n }\n\n /**\n * The reference to a copy of an input, made on first use and shared by every rule that reads it.\n * @param target - nodes or edges\n * @param base - what is copied\n * @param values - its values\n * @returns the reference\n */\n private copy(target: StyleTarget, base: string, values: () => StyleColumn): { style: string } {\n const key = `input.${base}`;\n const held = this.columns[target];\n if (!held.has(key)) {\n held.set(key, values());\n }\n return { style: key };\n }\n\n /**\n * Whether a name is a lost input that can be copied: only a column of plain values can, and a list, or a column with\n * no value, stays as it is.\n * @param target - nodes or edges\n * @param name - the name\n * @returns true for a lost input\n */\n private isLost(target: StyleTarget, name: unknown): name is string {\n const { table, n } = this.tableOf(target);\n return typeof name === \"string\" && this.lost.has(name) && table.has(name) && carriable(table, n, name);\n }\n\n /**\n * Every element's value of a data column.\n * @param target - nodes or edges\n * @param name - the column\n * @param read - the value of a cell\n * @returns the values\n */\n private cells(target: StyleTarget, name: string, read: (raw: unknown) => StyleValue | null): StyleColumn {\n const { table, n } = this.tableOf(target);\n return Array.from({ length: n }, (_u, i) => read(dataCell(table, name, i)));\n }\n\n /**\n * A target's table and row count.\n * @param target - nodes or edges\n * @returns the table and its row count\n */\n private tableOf(target: StyleTarget): { table: GraphSnapshot[\"nodes\"]; n: number } {\n const { snapshot } = this;\n return target === \"node\"\n ? { table: snapshot.nodes, n: snapshot.nodeCount }\n : { table: snapshot.edges, n: snapshot.edgeCount };\n }\n}\n\n/**\n * Whether a data column can be copied into a style column: some value, and every value text, a finite number or a\n * boolean.\n * @param table - the table\n * @param n - its row count\n * @param name - the column\n * @returns true when it can\n */\nfunction carriable(table: GraphSnapshot[\"nodes\"], n: number, name: string): boolean {\n let some = false;\n for (let i = 0; i < n; i++) {\n const cell = plainCell(table.value(name, i));\n if (cell !== null && cell !== undefined) {\n if (!isStyleScalar(cell)) {\n return false;\n }\n some = true;\n }\n }\n return some;\n}\n\n/**\n * Whether a cell is a value a style column holds: text, a finite number or a boolean.\n * @param v - the cell\n * @returns true for a scalar\n */\nfunction isStyleScalar(v: unknown): v is StyleValue {\n return typeof v === \"string\" || typeof v === \"boolean\" || (typeof v === \"number\" && Number.isFinite(v));\n}\n\n/**\n * Whether an exporter keeps the `graphty.styles` block, natively or as a graph attribute.\n * @param exporter - the exporter\n * @returns true when the block is written\n */\nfunction keepsStyleBlock(exporter: GraphExporter): boolean {\n const caps = exporter.styles?.capabilities;\n return (\n caps !== undefined &&\n (caps.block === \"native\" || (caps.block === \"attributes\" && exporter.capabilities.graphAttributes))\n );\n}\n\n/**\n * Whether a loss note is about a property only graphty draws (`graphty:<channel>`) in a file that keeps the block:\n * the block carries it, and no other program would draw it, so nothing is lost.\n * @param note - the note\n * @param exporter - the exporter writing the file\n * @returns true when the note names nothing lost\n */\nexport function isKeptGraphtyProperty(note: LossNote, exporter: GraphExporter): boolean {\n return note.style?.property.startsWith(\"graphty:\") === true && keepsStyleBlock(exporter);\n}\n\n/**\n * The losses of an export with styles: W_STYLE_NOT_WRITTEN for every property the format does not write natively\n * (all of them for an exporter without a `styles` member), and W_STYLE_RULES_NOT_KEPT when the block is not kept.\n * @param extracted - the styles\n * @param exporter - the exporter\n * @param caps - its style capabilities, or null\n * @param picture - each element's value of a property\n * @param snapshot - the graph\n * @returns the notes\n */\nfunction lossNotes(\n extracted: ExtractedStyles,\n exporter: GraphExporter,\n caps: StyleWriteCapabilities | null,\n picture: (target: StyleTarget, property: StyleProperty) => readonly (StyleValue | null)[],\n snapshot: GraphSnapshot,\n): LossNote[] {\n const notes: LossNote[] = [];\n const kept = keepsStyleBlock(exporter);\n for (const target of TARGETS) {\n const written = new Set<string>(caps?.[target] ?? []);\n for (const property of ruleProperties(extracted.styles.rules, target)) {\n // a property only graphty draws is written into the block alone: lost only when the block is\n if (written.has(property) || (kept && property.startsWith(\"graphty:\"))) {\n if (target === \"edge\") {\n notes.push(...pairNotes(snapshot, exporter, property, picture(\"edge\", property as StyleProperty)));\n }\n } else {\n notes.push(notWrittenNote(target, property, exporter, picture));\n }\n }\n }\n notes.push(...graphLossNotes(extracted, exporter, caps));\n if (kept) {\n notes.push(...styleBlockLosses(writeStyleBlock(extracted, { snapshot }), extracted.styles.rules.length));\n } else if (extracted.styles.rules.length > 0) {\n notes.push(\n Object.freeze({\n code: STYLE_ISSUE.RULES_NOT_KEPT,\n message: `the style rules are not kept: the ${exporter.format} format has no place for them; importing the file infers them again from what it holds`,\n column: null,\n count: extracted.styles.rules.length,\n }),\n );\n }\n return notes;\n}\n\n/**\n * W_STYLE_NOT_WRITTEN for every graph property the format does not write.\n * @param extracted - the styles\n * @param exporter - the exporter\n * @param caps - its style capabilities, or null\n * @returns the notes\n */\nfunction graphLossNotes(\n extracted: ExtractedStyles,\n exporter: GraphExporter,\n caps: StyleWriteCapabilities | null,\n): LossNote[] {\n const graphWritten = new Set<string>(caps?.graph ?? []);\n return Object.keys(extracted.styles.graph)\n .filter((property) => !graphWritten.has(property))\n .map((property) =>\n Object.freeze({\n code: STYLE_ISSUE.NOT_WRITTEN,\n message: `the graph's ${property} is not written: the ${exporter.format} format has no place for it`,\n column: null,\n count: 1,\n style: Object.freeze({ target: \"graph\" as const, property: property as \"background\" }),\n }),\n );\n}\n\n/**\n * The properties the rules of a target write, in first-written order.\n * @param rules - the rules\n * @param target - nodes or edges\n * @returns the properties\n */\nfunction ruleProperties(rules: readonly StyleRule[], target: StyleTarget): Set<string> {\n return new Set(\n rules\n .filter((rule) => rule.target === target)\n .flatMap((rule) => [...Object.keys(rule.set ?? {}), ...Object.keys(rule.map ?? {})]),\n );\n}\n\n/**\n * W_STYLE_NOT_WRITTEN for a property the format has no place for.\n * @param target - nodes or edges\n * @param property - the property\n * @param exporter - the exporter\n * @param picture - each element's value of a property\n * @returns the note\n */\nfunction notWrittenNote(\n target: StyleTarget,\n property: string,\n exporter: GraphExporter,\n picture: (target: StyleTarget, property: StyleProperty) => readonly (StyleValue | null)[],\n): LossNote {\n const count = picture(target, property as StyleProperty).filter((v) => v !== null).length;\n return Object.freeze({\n code: STYLE_ISSUE.NOT_WRITTEN,\n message: `${target} ${property} is not written: the ${exporter.format} format has no place for it (${String(count)} ${target}${plural(count)} ${agree(count, \"has\", \"have\")} a value)`,\n column: null,\n count,\n style: Object.freeze({ target, property: property as StyleProperty }),\n });\n}\n\n/**\n * W_STYLE_APPROXIMATED for the second halves of undirected edges in a directed graph whose value of a property\n * differs from the first half's: every format writes such an edge once, so both halves read back with one value.\n * @param snapshot - the graph\n * @param exporter - the exporter\n * @param property - the edge property\n * @param values - each edge's value\n * @returns the note, or none\n */\nfunction pairNotes(\n snapshot: GraphSnapshot,\n exporter: GraphExporter,\n property: string,\n values: readonly (StyleValue | null)[],\n): LossNote[] {\n const pair = snapshot.edges.byRole(\"pair\");\n let count = 0;\n for (let i = 0; pair !== null && i < values.length; i++) {\n const other = pair.isSet(i) ? (pair.value(i) as number) : i;\n if (other < i && values[i] !== values[other]) {\n count++;\n }\n }\n if (count === 0) {\n return [];\n }\n return [\n Object.freeze({\n code: STYLE_ISSUE.APPROXIMATED,\n message: `edge ${property}: ${String(count)} undirected edge${plural(count)} in a directed graph ${agree(count, \"has\", \"have\")} another value on each half; the ${exporter.format} format writes the edge once, with the first half's value`,\n column: null,\n count,\n style: Object.freeze({ target: \"edge\" as const, property: property as StyleProperty }),\n }),\n ];\n}\n\n/**\n * The snapshot an exporter writes when styles are given: columns with a style role keep their data but lose the\n * role (the style writer is the only thing that writes the format's style slots), and for `block: \"attributes\"`\n * the block becomes a graph attribute and the tagged values element attributes.\n * @param snapshot - the graph\n * @param caps - the exporter's style capabilities, or null\n * @param tags - the tagged per-element values\n * @param tags.node - node values by attribute name\n * @param tags.edge - edge values by attribute name\n * @param block - the block's text\n * @param rules - the rules written, which keep a style value column of an earlier write they read as data\n * @returns the snapshot to write (the same object when nothing changes)\n */\nfunction styledSnapshot(\n snapshot: GraphSnapshot,\n caps: StyleWriteCapabilities | null,\n tags: { readonly node: ReadonlyMap<string, StyleColumn>; readonly edge: ReadonlyMap<string, StyleColumn> },\n block: string,\n rules: readonly StyleRule[],\n): GraphSnapshot {\n const attributes = caps?.block === \"attributes\";\n // the per-element style values of an earlier write whose block was set aside are data now; these styles write\n // their own under the same names, so the old ones go, unless these styles read them as data\n const stale = { node: staleTags(snapshot.nodes, rules, \"node\"), edge: staleTags(snapshot.edges, rules, \"edge\") };\n // a format that writes the label from the styles has its label slot taken: the label column is data there too\n const roles = { node: roledNames(snapshot.nodes, caps, \"node\"), edge: roledNames(snapshot.edges, caps, \"edge\") };\n // the block of an earlier import is replaced by the one these styles write, wherever the format puts that\n const staleBlock = snapshot.graph.has(STYLE_BLOCK_NAME);\n const changes = [stale.node, stale.edge, roles.node, roles.edge].some((names) => names.length > 0);\n if (!attributes && !staleBlock && !changes) {\n return snapshot;\n }\n const out = snapshot.withColumns();\n if (staleBlock) {\n out.graph.remove(STYLE_BLOCK_NAME);\n }\n for (const target of TARGETS) {\n const table = target === \"node\" ? out.nodes : out.edges;\n for (const name of stale[target]) {\n table.remove(name);\n }\n for (const name of roles[target]) {\n const col = table.get(name);\n if (col !== null) {\n // an explicit undefined role in the patch replaces the column's role with none\n table.set(name, col, { role: undefined });\n }\n }\n }\n if (attributes) {\n setTagAttributes(out, tags);\n out.graph.set(STYLE_BLOCK_NAME, [block], { dtype: \"string\" });\n }\n return out;\n}\n\n/**\n * The per-element style values of an earlier write that these rules do not read as data.\n * @param table - the node or edge table\n * @param rules - the rules written\n * @param target - nodes or edges\n * @returns the column names\n */\nfunction staleTags(table: GraphSnapshot[\"nodes\"], rules: readonly StyleRule[], target: StyleTarget): string[] {\n const read = dataRead(rules, target);\n return table.names().filter((name) => isStyleTagName(name) && !read.has(name));\n}\n\n/**\n * The columns whose style role the styles take: every style role, and the label where the format writes the label\n * from the styles.\n * @param table - the node or edge table\n * @param caps - the exporter's style capabilities, or null\n * @param target - nodes or edges\n * @returns the column names\n */\nfunction roledNames(table: GraphSnapshot[\"nodes\"], caps: StyleWriteCapabilities | null, target: StyleTarget): string[] {\n const writesLabel = (caps?.[target] ?? []).includes(\"label\");\n return table.names().filter((name) => {\n const role = table.get(name)?.meta.role ?? \"\";\n return STYLE_ROLES.has(role) || (role === \"label\" && writesLabel);\n });\n}\n\n/**\n * Sets the tagged per-element values as element attributes, replacing those of an earlier import in the order of\n * these styles' columns, so writing a file read back gives the same bytes whichever elements held a value first.\n * @param out - the graph, changed in place\n * @param tags - the tagged values\n * @param tags.node - node values by attribute name\n * @param tags.edge - edge values by attribute name\n */\nfunction setTagAttributes(\n out: GraphSnapshot,\n tags: { readonly node: ReadonlyMap<string, StyleColumn>; readonly edge: ReadonlyMap<string, StyleColumn> },\n): void {\n for (const target of TARGETS) {\n const table = target === \"node\" ? out.nodes : out.edges;\n const prefix = styleTag(target, \"\");\n for (const name of table.names().filter((c) => c.startsWith(prefix))) {\n table.remove(name);\n }\n for (const [name, col] of tags[target]) {\n const dtype = tagDtype(col);\n table.set(name, dtype === \"string\" ? col.map((v) => (v === null ? null : String(v))) : col, { dtype });\n }\n }\n}\n\n/**\n * Whether a column name is one graphty writes per-element style values under: `graphty.style.<target>.<key>`, or\n * `graphty_style_<...>` where the format allows no dots in a name (GML, Cytoscape.js).\n * @param name - the column name\n * @returns true for a style value name\n */\nfunction isStyleTagName(name: string): boolean {\n return name.startsWith(\"graphty.style.\") || name.startsWith(\"graphty_style_\");\n}\n\n/**\n * The data columns the rules of one target read.\n * @param rules - the rules\n * @param target - nodes or edges\n * @returns the column names\n */\nexport function dataRead(rules: readonly StyleRule[], target: StyleTarget): Set<string> {\n const out = new Set<string>();\n for (const { ext: _ext, ...rule } of rules.filter((r) => r.target === target)) {\n JSON.stringify(rule, (_k, v: unknown) => {\n const data =\n typeof v === \"object\" && v !== null && !Array.isArray(v) ? (v as { data?: unknown }).data : null;\n if (typeof data === \"string\" && Object.keys(v as object).length === 1) {\n out.add(data);\n }\n return v;\n });\n }\n return out;\n}\n\n/**\n * The dtype a tagged column is written with: numbers, booleans or text (a mixed column as text).\n * @param col - the values\n * @returns the dtype\n */\nfunction tagDtype(col: StyleColumn): \"f64\" | \"bool\" | \"string\" {\n let kind: string | null = null;\n for (const v of col) {\n if (v === null) {\n continue;\n }\n if (kind === null) {\n kind = typeof v;\n } else if (kind !== typeof v) {\n return \"string\";\n }\n }\n if (kind === \"number\") {\n return \"f64\";\n }\n return kind === \"boolean\" ? \"bool\" : \"string\";\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"writer-DMKvthQE.js","sources":["../../src/styles/io/writer.ts"],"sourcesContent":["/**\n * Writing a graph's styles: what `exportGraph(snapshot, format, { styles })` hands a format's exporter, the losses\n * reported before anything is written, and, for an exporter whose block goes into attributes, the snapshot with the\n * `graphty.styles` block and the tagged per-element values added as attributes.\n */\n\nimport type { GraphSnapshot } from \"@graphty/graph-format\";\n\nimport { agree, plural } from \"../../common/plural.js\";\nimport type { GraphExporter, LossNote } from \"../../types.js\";\nimport { STYLE_ISSUE } from \"../codes.js\";\nimport { styleFingerprint } from \"../plan/features.js\";\nimport { canonicalFor, dataCell, degreeValues, plainCell, resolveStyles } from \"../plan/resolve.js\";\nimport type {\n ExtractedStyles,\n Mapping,\n StyleColumn,\n StyleProperty,\n StyleRule,\n StyleTarget,\n StyleValue,\n StyleWriteCapabilities,\n} from \"../types.js\";\nimport { STYLE_BLOCK_NAME, styleBlockLosses, styleTag, writeStyleBlock } from \"./block.js\";\n\n/**\n * What an exporter with a `styles` member receives as `options.styles` when styles are being written.\n * @category Styles\n */\nexport interface ExporterStyleInput {\n /**\n * Each element's value of one property, by element index (null where no rule gives one): what graphty draws, to\n * write into the format's own style slots.\n * @param target - nodes or edges\n * @param property - the property\n * @returns the values\n */\n picture(target: StyleTarget, property: StyleProperty): readonly (StyleValue | null)[];\n /** The `graphty.styles` block (JSON text) to place where the format keeps extra data. */\n readonly block: string;\n /** The per-element style values the block's rules read, by attribute name (`graphty.style.<target>.<key>`). */\n readonly tags: {\n /** Node values. */\n readonly node: ReadonlyMap<string, StyleColumn>;\n /** Edge values. */\n readonly edge: ReadonlyMap<string, StyleColumn>;\n };\n /** The styles themselves, for a format with a style language of its own. */\n readonly rules: ExtractedStyles;\n}\n\n/**\n * The options an exporter with a `styles` member reads its styles from: type its options as `Opts &\n * ExporterStyleOptions`.\n * @category Styles\n */\nexport interface ExporterStyleOptions {\n /** Present when styles are being written. */\n readonly styles?: ExporterStyleInput | undefined;\n}\n\n/** What an export with styles writes and loses, worked out before writing. */\ninterface PreparedStyleExport {\n /** The snapshot to hand the exporter: style roles removed, and the block and tagged values added as attributes. */\n readonly snapshot: GraphSnapshot;\n /** The exporter's `options.styles`, or null for an exporter without a `styles` member. */\n readonly input: ExporterStyleInput | null;\n /** W_STYLE_ notes: every property not written natively, and the rules when they are not kept. */\n readonly notes: readonly LossNote[];\n /** E_STYLES_MISMATCH when the styles belong to a different graph; nothing is then written. */\n readonly refusal: LossNote | null;\n}\n\n/** The roles of columns that hold styles; with styles given they are data, never written into a style slot. */\nconst STYLE_ROLES: ReadonlySet<string> = new Set([\"color\", \"size\", \"shape\", \"thickness\", \"hidden\"]);\nconst TARGETS: readonly StyleTarget[] = [\"node\", \"edge\"];\n\n/**\n * Works out an export with styles: the refusal when the styles belong to another graph, the losses, the exporter's\n * `options.styles`, and the snapshot to write.\n * @param snapshot - the graph being written\n * @param exporter - the format's exporter\n * @param given - the styles\n * @param plain - the export's other options, which decide what the format loses of the graph's data\n * @returns what to write and what is lost\n */\nexport function prepareStyleExport(\n snapshot: GraphSnapshot,\n exporter: GraphExporter,\n given: ExtractedStyles,\n plain?: Readonly<Record<string, unknown>>,\n): PreparedStyleExport {\n const fp = styleFingerprint(snapshot);\n const want = given.fingerprint;\n if (fp.nodes !== want.nodes || fp.edges !== want.edges || fp.ids !== want.ids) {\n return {\n snapshot,\n input: null,\n notes: [],\n refusal: Object.freeze({\n code: STYLE_ISSUE.MISMATCH,\n message: `the styles were read from or built for a different graph (${String(want.nodes)} nodes and ${String(want.edges)} edges, this graph has ${String(fp.nodes)} and ${String(fp.edges)}, or other node ids); nothing is written`,\n column: null,\n count: null,\n }),\n };\n }\n const caps = exporter.styles?.capabilities ?? null;\n let plan = writePlan(snapshot, exporter, given);\n if (keepsStyleBlock(exporter)) {\n // what the export loses of the graph's data, styles written as they are: the rules' inputs among it are carried\n let checked: readonly LossNote[];\n try {\n checked = exporter.check(plan.snapshot, plan.input === null ? plain : { ...plain, styles: plan.input });\n } catch {\n checked = [];\n }\n const carried = withLostInputsCarried(given, snapshot, checked);\n if (carried !== given) {\n plan = writePlan(snapshot, exporter, carried);\n }\n }\n return {\n snapshot: plan.snapshot,\n input: plan.input,\n notes: lossNotes(plan.extracted, exporter, caps, plan.picture, snapshot),\n refusal: null,\n };\n}\n\n/**\n * The work an exporter shares between the check and the write of one export call, by the styles input made for that\n * call (null until the first exporter step does it). Only an input writePlan() made is here, so an input a caller\n * builds and changes in place is always worked out again.\n */\nconst CALL_WORK = new WeakMap<\n ExporterStyleInput,\n { readonly key: readonly unknown[]; readonly value: unknown } | null\n>();\n\n/**\n * Work an exporter does from its styles input once per export call: the registry checks before it writes, with the\n * same input, graph and options. Outside an export call (an input the caller made) it is done every time.\n * @param input - the exporter's `options.styles`\n * @param key - what else the work reads (the graph, options), compared by identity\n * @param compute - the work\n * @returns its result\n */\nexport function sharedInExportCall<T>(input: ExporterStyleInput, key: readonly unknown[], compute: () => T): T {\n if (!CALL_WORK.has(input)) {\n return compute();\n }\n const done = CALL_WORK.get(input);\n if (done?.key.length === key.length && done.key.every((k, i) => k === key[i])) {\n return done.value as T;\n }\n const value = compute();\n CALL_WORK.set(input, { key, value });\n return value;\n}\n\n/**\n * What an exporter is handed to write a graph's styles: the snapshot with the block and tagged values added where\n * the format keeps them, and its `options.styles`.\n * @param snapshot - the graph\n * @param exporter - the exporter\n * @param extracted - the styles\n * @returns the plan\n */\nfunction writePlan(\n snapshot: GraphSnapshot,\n exporter: GraphExporter,\n extracted: ExtractedStyles,\n): {\n readonly snapshot: GraphSnapshot;\n readonly input: ExporterStyleInput | null;\n readonly extracted: ExtractedStyles;\n readonly picture: (target: StyleTarget, property: StyleProperty) => readonly (StyleValue | null)[];\n} {\n const caps = exporter.styles?.capabilities ?? null;\n const pictures = new Map<string, readonly (StyleValue | null)[]>();\n const picture = (target: StyleTarget, property: StyleProperty): readonly (StyleValue | null)[] => {\n const key = `${target}\\u0000${property}`;\n let values = pictures.get(key);\n if (values === undefined) {\n values = resolveStyles(extracted, target, property, snapshot);\n pictures.set(key, values);\n }\n return values;\n };\n const tags = { node: new Map<string, StyleColumn>(), edge: new Map<string, StyleColumn>() };\n for (const target of TARGETS) {\n for (const [key, col] of extracted.columns[target]) {\n tags[target].set(styleTag(target, key), col);\n }\n }\n const block = writeStyleBlock(extracted, { snapshot });\n const input = exporter.styles === undefined ? null : { picture, block, tags, rules: extracted };\n if (input !== null) {\n CALL_WORK.set(input, null);\n }\n return {\n snapshot: styledSnapshot(snapshot, caps, tags, block, extracted.styles.rules),\n input,\n extracted,\n picture,\n };\n}\n\n/**\n * Loss notes about a column whose values read back the same: written elsewhere (CSV's node table), under another\n * name a block finds by its values, with another role, storage or number type, or as a wider type.\n */\nconst VALUES_KEPT = /NODE_TABLE|NAME_CHANGED|ROLE_ASSUMED|STORAGE_CLASS|NUMBER_TYPE|INTEGRAL|WIDENED/;\n\n/**\n * The styles with every input the format will not read back as it is given carried as a style column of its own: a\n * data column the export drops or changes (its loss notes name it), and the in and out degrees when the file does not\n * keep the edges' direction. The rules then read the copies, which the file keeps beside the block, and give back the\n * same values.\n * @param extracted - the styles\n * @param snapshot - the graph\n * @param notes - what the export, styles written as they are, loses\n * @returns the styles, the same object when nothing is lost\n */\nfunction withLostInputsCarried(\n extracted: ExtractedStyles,\n snapshot: GraphSnapshot,\n notes: readonly LossNote[],\n): ExtractedStyles {\n const lost = new Set<string>();\n let direction = false;\n for (const note of notes) {\n if (!VALUES_KEPT.test(note.code)) {\n for (const name of note.columns ?? (note.column === null ? [] : [note.column])) {\n lost.add(name);\n }\n }\n direction ||= /DIRECTION/.test(note.code);\n }\n const carrier = new LostInputs(snapshot, lost, direction, extracted.columns);\n const rules = extracted.styles.rules.map((rule) => carrier.carry(rule));\n const changed = rules.some((rule, i) => rule !== extracted.styles.rules[i]);\n return changed ? { ...extracted, styles: { ...extracted.styles, rules }, columns: carrier.columns } : extracted;\n}\n\n/** Carries the inputs of rules that the format will not read back into style columns of their own. */\nclass LostInputs {\n /** The style columns, the copies added. */\n readonly columns: { readonly node: Map<string, StyleColumn>; readonly edge: Map<string, StyleColumn> };\n\n /** Whether the rule being carried read a lost input. */\n private touched = false;\n\n /**\n * A carrier for one export.\n * @param snapshot - the graph\n * @param lost - the data columns the export drops or changes\n * @param direction - whether the file loses the edges' direction (and so the in and out degrees)\n * @param columns - the styles' own style columns\n * @param columns.node - the node columns\n * @param columns.edge - the edge columns\n */\n constructor(\n private readonly snapshot: GraphSnapshot,\n private readonly lost: ReadonlySet<string>,\n private readonly direction: boolean,\n columns: { readonly node: ReadonlyMap<string, StyleColumn>; readonly edge: ReadonlyMap<string, StyleColumn> },\n ) {\n this.columns = { node: new Map(columns.node), edge: new Map(columns.edge) };\n }\n\n /**\n * A rule with every lost input it reads replaced by a copy of its values.\n * @param rule - the rule\n * @returns the rule read from copies, or the rule itself when it reads no lost input\n */\n carry(rule: StyleRule): StyleRule {\n this.touched = false;\n const { ext, ...given } = rule;\n const map = this.carryMap(rule);\n const where = this.walk(rule, given.where);\n if (!this.touched) {\n return rule;\n }\n const { map: _given, ...unmapped } = given;\n const plain = Object.keys(map).length === 0 ? { ...unmapped, where } : { ...unmapped, where, map };\n // a JSON copy drops undefined members, as the written block does; structuredClone would keep them\n const moved = JSON.parse(JSON.stringify(plain)) as StyleRule; // NOSONAR(S7784): undefined members must go\n return ext === undefined ? moved : { ...moved, ext };\n }\n\n /**\n * A rule's mappings with their lost inputs replaced. A passthrough reads a data column as the property's value: its\n * copy holds those values; one that gives no element a value (a list, text that is not a color) is left out, so\n * no other value the file reads back in the column (a list written as text) is given either.\n * @param rule - the rule\n * @returns the mappings\n */\n private carryMap(rule: StyleRule): Record<string, Mapping> {\n const map = Object.create(null) as Record<string, Mapping>;\n const { table } = this.tableOf(rule.target);\n for (const [property, mapping] of Object.entries(rule.map ?? {})) {\n if (mapping === undefined) {\n continue;\n }\n if (mapping.kind !== \"passthrough\") {\n map[property] = this.walk(rule, mapping);\n continue;\n }\n const name = (mapping.by as { data?: unknown }).data;\n const lostColumn = typeof name === \"string\" && this.lost.has(name) && table.has(name);\n const values = lostColumn ? this.cells(rule.target, name, canonicalFor(rule.target, property)) : null;\n if (values !== null && !values.some((v) => v !== null)) {\n this.touched = true;\n } else if (values !== null && this.isLost(rule.target, name)) {\n this.touched = true;\n map[property] = { ...mapping, by: this.copy(rule.target, `${property}.data.${name}`, () => values) };\n } else {\n map[property] = mapping;\n }\n }\n return map;\n }\n\n /**\n * A value with every other reference to a lost input reading a copy of its values as they are.\n * @param rule - the rule it belongs to\n * @param value - the value\n * @returns the value, references replaced\n */\n private walk<T>(rule: StyleRule, value: T): T {\n return JSON.parse(JSON.stringify(value, (_k, v: unknown) => this.replaced(rule, v))) as T;\n }\n\n /**\n * One reference with a lost input replaced by its copy: a data column, or a degree the file does not keep.\n * @param rule - the rule it belongs to\n * @param v - a value of the rule\n * @returns the value, or the reference to the copy\n */\n private replaced(rule: StyleRule, v: unknown): unknown {\n if (typeof v !== \"object\" || v === null || Array.isArray(v) || Object.keys(v).length !== 1) {\n return v;\n }\n const ref = v as { data?: unknown; computed?: unknown };\n if (this.isLost(rule.target, ref.data)) {\n const name = ref.data;\n this.touched = true;\n return this.copy(rule.target, `data.${name}`, () =>\n this.cells(rule.target, name, (raw) => (isStyleScalar(raw) ? raw : null)),\n );\n }\n const which = ref.computed;\n if ((which === \"indegree\" || which === \"outdegree\") && this.direction && rule.target === \"node\") {\n this.touched = true;\n return this.copy(rule.target, `computed.${which}`, () => degreeValues(this.snapshot, which));\n }\n return v;\n }\n\n /**\n * The reference to a copy of an input, made on first use and shared by every rule that reads it.\n * @param target - nodes or edges\n * @param base - what is copied\n * @param values - its values\n * @returns the reference\n */\n private copy(target: StyleTarget, base: string, values: () => StyleColumn): { style: string } {\n const key = `input.${base}`;\n const held = this.columns[target];\n if (!held.has(key)) {\n held.set(key, values());\n }\n return { style: key };\n }\n\n /**\n * Whether a name is a lost input that can be copied: only a column of plain values can, and a list, or a column with\n * no value, stays as it is.\n * @param target - nodes or edges\n * @param name - the name\n * @returns true for a lost input\n */\n private isLost(target: StyleTarget, name: unknown): name is string {\n const { table, n } = this.tableOf(target);\n return typeof name === \"string\" && this.lost.has(name) && table.has(name) && carriable(table, n, name);\n }\n\n /**\n * Every element's value of a data column.\n * @param target - nodes or edges\n * @param name - the column\n * @param read - the value of a cell\n * @returns the values\n */\n private cells(target: StyleTarget, name: string, read: (raw: unknown) => StyleValue | null): StyleColumn {\n const { table, n } = this.tableOf(target);\n return Array.from({ length: n }, (_u, i) => read(dataCell(table, name, i)));\n }\n\n /**\n * A target's table and row count.\n * @param target - nodes or edges\n * @returns the table and its row count\n */\n private tableOf(target: StyleTarget): { table: GraphSnapshot[\"nodes\"]; n: number } {\n const { snapshot } = this;\n return target === \"node\"\n ? { table: snapshot.nodes, n: snapshot.nodeCount }\n : { table: snapshot.edges, n: snapshot.edgeCount };\n }\n}\n\n/**\n * Whether a data column can be copied into a style column: some value, and every value text, a finite number or a\n * boolean.\n * @param table - the table\n * @param n - its row count\n * @param name - the column\n * @returns true when it can\n */\nfunction carriable(table: GraphSnapshot[\"nodes\"], n: number, name: string): boolean {\n let some = false;\n for (let i = 0; i < n; i++) {\n const cell = plainCell(table.value(name, i));\n if (cell !== null && cell !== undefined) {\n if (!isStyleScalar(cell)) {\n return false;\n }\n some = true;\n }\n }\n return some;\n}\n\n/**\n * Whether a cell is a value a style column holds: text, a finite number or a boolean.\n * @param v - the cell\n * @returns true for a scalar\n */\nfunction isStyleScalar(v: unknown): v is StyleValue {\n return typeof v === \"string\" || typeof v === \"boolean\" || (typeof v === \"number\" && Number.isFinite(v));\n}\n\n/**\n * Whether an exporter keeps the `graphty.styles` block, natively or as a graph attribute.\n * @param exporter - the exporter\n * @returns true when the block is written\n */\nfunction keepsStyleBlock(exporter: GraphExporter): boolean {\n const caps = exporter.styles?.capabilities;\n return (\n caps !== undefined &&\n (caps.block === \"native\" || (caps.block === \"attributes\" && exporter.capabilities.graphAttributes))\n );\n}\n\n/**\n * Whether a loss note is about a property only graphty draws (`graphty:<channel>`) in a file that keeps the block:\n * the block carries it, and no other program would draw it, so nothing is lost.\n * @param note - the note\n * @param exporter - the exporter writing the file\n * @returns true when the note names nothing lost\n */\nexport function isKeptGraphtyProperty(note: LossNote, exporter: GraphExporter): boolean {\n return note.style?.property.startsWith(\"graphty:\") === true && keepsStyleBlock(exporter);\n}\n\n/**\n * The losses of an export with styles: W_STYLE_NOT_WRITTEN for every property the format does not write natively\n * (all of them for an exporter without a `styles` member), and W_STYLE_RULES_NOT_KEPT when the block is not kept.\n * @param extracted - the styles\n * @param exporter - the exporter\n * @param caps - its style capabilities, or null\n * @param picture - each element's value of a property\n * @param snapshot - the graph\n * @returns the notes\n */\nfunction lossNotes(\n extracted: ExtractedStyles,\n exporter: GraphExporter,\n caps: StyleWriteCapabilities | null,\n picture: (target: StyleTarget, property: StyleProperty) => readonly (StyleValue | null)[],\n snapshot: GraphSnapshot,\n): LossNote[] {\n const notes: LossNote[] = [];\n const kept = keepsStyleBlock(exporter);\n for (const target of TARGETS) {\n const written = new Set<string>(caps?.[target] ?? []);\n for (const property of ruleProperties(extracted.styles.rules, target)) {\n // a property only graphty draws is written into the block alone: lost only when the block is\n if (written.has(property) || (kept && property.startsWith(\"graphty:\"))) {\n if (target === \"edge\") {\n notes.push(...pairNotes(snapshot, exporter, property, picture(\"edge\", property as StyleProperty)));\n }\n } else {\n notes.push(notWrittenNote(target, property, exporter, picture));\n }\n }\n }\n notes.push(...graphLossNotes(extracted, exporter, caps));\n if (kept) {\n notes.push(...styleBlockLosses(writeStyleBlock(extracted, { snapshot }), extracted.styles.rules.length));\n } else if (extracted.styles.rules.length > 0) {\n notes.push(\n Object.freeze({\n code: STYLE_ISSUE.RULES_NOT_KEPT,\n message: `the style rules are not kept: the ${exporter.format} format has no place for them; importing the file infers them again from what it holds`,\n column: null,\n count: extracted.styles.rules.length,\n }),\n );\n }\n return notes;\n}\n\n/**\n * W_STYLE_NOT_WRITTEN for every graph property the format does not write.\n * @param extracted - the styles\n * @param exporter - the exporter\n * @param caps - its style capabilities, or null\n * @returns the notes\n */\nfunction graphLossNotes(\n extracted: ExtractedStyles,\n exporter: GraphExporter,\n caps: StyleWriteCapabilities | null,\n): LossNote[] {\n const graphWritten = new Set<string>(caps?.graph ?? []);\n return Object.keys(extracted.styles.graph)\n .filter((property) => !graphWritten.has(property))\n .map((property) =>\n Object.freeze({\n code: STYLE_ISSUE.NOT_WRITTEN,\n message: `the graph's ${property} is not written: the ${exporter.format} format has no place for it`,\n column: null,\n count: 1,\n style: Object.freeze({ target: \"graph\" as const, property: property as \"background\" }),\n }),\n );\n}\n\n/**\n * The properties the rules of a target write, in first-written order.\n * @param rules - the rules\n * @param target - nodes or edges\n * @returns the properties\n */\nfunction ruleProperties(rules: readonly StyleRule[], target: StyleTarget): Set<string> {\n return new Set(\n rules\n .filter((rule) => rule.target === target)\n .flatMap((rule) => [...Object.keys(rule.set ?? {}), ...Object.keys(rule.map ?? {})]),\n );\n}\n\n/**\n * W_STYLE_NOT_WRITTEN for a property the format has no place for.\n * @param target - nodes or edges\n * @param property - the property\n * @param exporter - the exporter\n * @param picture - each element's value of a property\n * @returns the note\n */\nfunction notWrittenNote(\n target: StyleTarget,\n property: string,\n exporter: GraphExporter,\n picture: (target: StyleTarget, property: StyleProperty) => readonly (StyleValue | null)[],\n): LossNote {\n const count = picture(target, property as StyleProperty).filter((v) => v !== null).length;\n return Object.freeze({\n code: STYLE_ISSUE.NOT_WRITTEN,\n message: `${target} ${property} is not written: the ${exporter.format} format has no place for it (${String(count)} ${target}${plural(count)} ${agree(count, \"has\", \"have\")} a value)`,\n column: null,\n count,\n style: Object.freeze({ target, property: property as StyleProperty }),\n });\n}\n\n/**\n * W_STYLE_APPROXIMATED for the second halves of undirected edges in a directed graph whose value of a property\n * differs from the first half's: every format writes such an edge once, so both halves read back with one value.\n * @param snapshot - the graph\n * @param exporter - the exporter\n * @param property - the edge property\n * @param values - each edge's value\n * @returns the note, or none\n */\nfunction pairNotes(\n snapshot: GraphSnapshot,\n exporter: GraphExporter,\n property: string,\n values: readonly (StyleValue | null)[],\n): LossNote[] {\n const pair = snapshot.edges.byRole(\"pair\");\n let count = 0;\n for (let i = 0; pair !== null && i < values.length; i++) {\n const other = pair.isSet(i) ? (pair.value(i) as number) : i;\n if (other < i && values[i] !== values[other]) {\n count++;\n }\n }\n if (count === 0) {\n return [];\n }\n return [\n Object.freeze({\n code: STYLE_ISSUE.APPROXIMATED,\n message: `edge ${property}: ${String(count)} undirected edge${plural(count)} in a directed graph ${agree(count, \"has\", \"have\")} another value on each half; the ${exporter.format} format writes the edge once, with the first half's value`,\n column: null,\n count,\n style: Object.freeze({ target: \"edge\" as const, property: property as StyleProperty }),\n }),\n ];\n}\n\n/**\n * The snapshot an exporter writes when styles are given: columns with a style role keep their data but lose the\n * role (the style writer is the only thing that writes the format's style slots), and for `block: \"attributes\"`\n * the block becomes a graph attribute and the tagged values element attributes.\n * @param snapshot - the graph\n * @param caps - the exporter's style capabilities, or null\n * @param tags - the tagged per-element values\n * @param tags.node - node values by attribute name\n * @param tags.edge - edge values by attribute name\n * @param block - the block's text\n * @param rules - the rules written, which keep a style value column of an earlier write they read as data\n * @returns the snapshot to write (the same object when nothing changes)\n */\nfunction styledSnapshot(\n snapshot: GraphSnapshot,\n caps: StyleWriteCapabilities | null,\n tags: { readonly node: ReadonlyMap<string, StyleColumn>; readonly edge: ReadonlyMap<string, StyleColumn> },\n block: string,\n rules: readonly StyleRule[],\n): GraphSnapshot {\n const attributes = caps?.block === \"attributes\";\n // the per-element style values of an earlier write whose block was set aside are data now; these styles write\n // their own under the same names, so the old ones go, unless these styles read them as data\n const stale = { node: staleTags(snapshot.nodes, rules, \"node\"), edge: staleTags(snapshot.edges, rules, \"edge\") };\n // a format that writes the label from the styles has its label slot taken: the label column is data there too\n const roles = { node: roledNames(snapshot.nodes, caps, \"node\"), edge: roledNames(snapshot.edges, caps, \"edge\") };\n // the block of an earlier import is replaced by the one these styles write, wherever the format puts that\n const staleBlock = snapshot.graph.has(STYLE_BLOCK_NAME);\n const changes = [stale.node, stale.edge, roles.node, roles.edge].some((names) => names.length > 0);\n if (!attributes && !staleBlock && !changes) {\n return snapshot;\n }\n const out = snapshot.withColumns();\n if (staleBlock) {\n out.graph.remove(STYLE_BLOCK_NAME);\n }\n for (const target of TARGETS) {\n const table = target === \"node\" ? out.nodes : out.edges;\n for (const name of stale[target]) {\n table.remove(name);\n }\n for (const name of roles[target]) {\n const col = table.get(name);\n if (col !== null) {\n // an explicit undefined role in the patch replaces the column's role with none\n table.set(name, col, { role: undefined });\n }\n }\n }\n if (attributes) {\n setTagAttributes(out, tags);\n out.graph.set(STYLE_BLOCK_NAME, [block], { dtype: \"string\" });\n }\n return out;\n}\n\n/**\n * The per-element style values of an earlier write that these rules do not read as data.\n * @param table - the node or edge table\n * @param rules - the rules written\n * @param target - nodes or edges\n * @returns the column names\n */\nfunction staleTags(table: GraphSnapshot[\"nodes\"], rules: readonly StyleRule[], target: StyleTarget): string[] {\n const read = dataRead(rules, target);\n return table.names().filter((name) => isStyleTagName(name) && !read.has(name));\n}\n\n/**\n * The columns whose style role the styles take: every style role, and the label where the format writes the label\n * from the styles.\n * @param table - the node or edge table\n * @param caps - the exporter's style capabilities, or null\n * @param target - nodes or edges\n * @returns the column names\n */\nfunction roledNames(table: GraphSnapshot[\"nodes\"], caps: StyleWriteCapabilities | null, target: StyleTarget): string[] {\n const writesLabel = (caps?.[target] ?? []).includes(\"label\");\n return table.names().filter((name) => {\n const role = table.get(name)?.meta.role ?? \"\";\n return STYLE_ROLES.has(role) || (role === \"label\" && writesLabel);\n });\n}\n\n/**\n * Sets the tagged per-element values as element attributes, replacing those of an earlier import in the order of\n * these styles' columns, so writing a file read back gives the same bytes whichever elements held a value first.\n * @param out - the graph, changed in place\n * @param tags - the tagged values\n * @param tags.node - node values by attribute name\n * @param tags.edge - edge values by attribute name\n */\nfunction setTagAttributes(\n out: GraphSnapshot,\n tags: { readonly node: ReadonlyMap<string, StyleColumn>; readonly edge: ReadonlyMap<string, StyleColumn> },\n): void {\n for (const target of TARGETS) {\n const table = target === \"node\" ? out.nodes : out.edges;\n const prefix = styleTag(target, \"\");\n for (const name of table.names().filter((c) => c.startsWith(prefix))) {\n table.remove(name);\n }\n for (const [name, col] of tags[target]) {\n const dtype = tagDtype(col);\n table.set(name, dtype === \"string\" ? col.map((v) => (v === null ? null : String(v))) : col, { dtype });\n }\n }\n}\n\n/**\n * Whether a column name is one graphty writes per-element style values under: `graphty.style.<target>.<key>`, or\n * `graphty_style_<...>` where the format allows no dots in a name (GML, Cytoscape.js).\n * @param name - the column name\n * @returns true for a style value name\n */\nfunction isStyleTagName(name: string): boolean {\n return name.startsWith(\"graphty.style.\") || name.startsWith(\"graphty_style_\");\n}\n\n/**\n * The data columns the rules of one target read.\n * @param rules - the rules\n * @param target - nodes or edges\n * @returns the column names\n */\nexport function dataRead(rules: readonly StyleRule[], target: StyleTarget): Set<string> {\n const out = new Set<string>();\n for (const { ext: _ext, ...rule } of rules.filter((r) => r.target === target)) {\n JSON.stringify(rule, (_k, v: unknown) => {\n const data =\n typeof v === \"object\" && v !== null && !Array.isArray(v) ? (v as { data?: unknown }).data : null;\n if (typeof data === \"string\" && Object.keys(v as object).length === 1) {\n out.add(data);\n }\n return v;\n });\n }\n return out;\n}\n\n/**\n * The dtype a tagged column is written with: numbers, booleans or text (a mixed column as text).\n * @param col - the values\n * @returns the dtype\n */\nfunction tagDtype(col: StyleColumn): \"f64\" | \"bool\" | \"string\" {\n let kind: string | null = null;\n for (const v of col) {\n if (v === null) {\n continue;\n }\n if (kind === null) {\n kind = typeof v;\n } else if (kind !== typeof v) {\n return \"string\";\n }\n }\n if (kind === \"number\") {\n return \"f64\";\n }\n return kind === \"boolean\" ? \"bool\" : \"string\";\n}\n"],"names":[],"mappings":"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"}
package/dist/cx.js CHANGED
@@ -1,4 +1,4 @@
1
- import { C, a, b, c, d } from "./chunks/importer-B-9Rc1zO.js";
1
+ import { C, a, b, c, d } from "./chunks/importer-BSvfrX_h.js";
2
2
  export {
3
3
  C as CX_CAPABILITIES,
4
4
  a as CX_ISSUE,
package/dist/cx2.js CHANGED
@@ -1,5 +1,5 @@
1
- import { C, a, c } from "./chunks/exporter-DFqJhBnj.js";
2
- import { C as C2, c as c2 } from "./chunks/importer-BVVR740x.js";
1
+ import { C, a, c } from "./chunks/exporter-CJgfhF-l.js";
2
+ import { C as C2, c as c2 } from "./chunks/importer-CMmeMWlC.js";
3
3
  export {
4
4
  C as CX2_CAPABILITIES,
5
5
  C2 as CX2_ISSUE,
package/dist/cys.js CHANGED
@@ -1,4 +1,4 @@
1
- import { C, a, b, c, d } from "./chunks/importer-C0AjA3Ax.js";
1
+ import { C, a, b, c, d } from "./chunks/importer-iFYPEKaJ.js";
2
2
  export {
3
3
  C as CYS_CAPABILITIES,
4
4
  a as CYS_ISSUE,
package/dist/dot.js CHANGED
@@ -1,5 +1,5 @@
1
- import { D, a, b, d, c } from "./chunks/importer-C7pvJe1L.js";
2
- import { S } from "./chunks/block-CPCHkX42.js";
1
+ import { D, a, b, d, c } from "./chunks/importer-COTK9Tsl.js";
2
+ import { S } from "./chunks/block-DiGq58c3.js";
3
3
  export {
4
4
  D as DOT_ISSUE,
5
5
  a as DOT_LOSS,
package/dist/gexf.js CHANGED
@@ -2,8 +2,8 @@ import { Z as ImportReportBuilder, E as EMPTY_INPUT_CODE, X as XML_NESTING_CODE,
2
2
  import { GraphFormatError, INVALID_INDEX, MAX_COUNT } from "@graphty/graph-format";
3
3
  import { g as resolveImportOptions, j as reportSinkOptions, i as reportUnusedOptions, t as textChunks, h as throwIfAborted, I as IdCoercer, l as DirectionResolver, o as isWeightField, q as declareAttribute, d as declareResolved, s as parseWeightText, v as overflowsToInfinity, x as parseDeclaredTemporal, y as declareCompanion, z as parseDeclaredValue, A as losesPrecision, B as parseTimeText, C as splitListText, E as timeTextCompanion, F as parseDecimalText, c as capabilities, L as LOSS, G as sanitizeIds, p as pairFolding, e as explicitWeights, r as resolveExportOptions, a as checkCapabilities, H as formatTimeValue, J as mapDeclaredType, K as joinListText, N as formatTemporal, O as isCanonicalIntegerText } from "./chunks/export-BvqAXCKh.js";
4
4
  import { t as tokenizeXml, b as xmlDeclaredEncoding, X as XmlEmptyInputError, c as XmlSyntaxError, d as XmlNestingError, s as sniffXmlText, l as localName, i as isWhitespace, x as xmlIllegalTextNotes, a as escapeXmlText, e as escapeXmlAttribute } from "./chunks/escape-CgzxiYPg.js";
5
- import { z as MAX_STYLE_BLOCK_LENGTH } from "./chunks/block-CPCHkX42.js";
6
- import { g as gexfStyles, G as GEXF_FORMAT, N as NODE_DECLS, E as EDGE_DECLS, a as GRAPHTY_XML_NAMESPACE, b as GRAPH_MODES, T as TIME_FORMATS, c as TIME_REPRESENTATIONS, t as temporalTableName, d as temporalTableDecls, e as canonVizColor, O as OPEN_START, f as OPEN_END, R as RESERVED_NODE_NAMES, h as RESERVED_EDGE_NAMES, i as gexfStyledExport, j as GEXF_STYLE_CAPABILITIES, k as GEXF_NAMESPACES, p as parseTemporalTableName, l as TEMPORAL_COLUMNS, m as NODE_COLUMNS, V as VIZ_NAMESPACE, n as isListType, o as canonicalScalarType, q as isScalarType } from "./chunks/styles-DvoFBKCK.js";
5
+ import { z as MAX_STYLE_BLOCK_LENGTH } from "./chunks/block-DiGq58c3.js";
6
+ import { g as gexfStyles, G as GEXF_FORMAT, N as NODE_DECLS, E as EDGE_DECLS, a as GRAPHTY_XML_NAMESPACE, b as GRAPH_MODES, T as TIME_FORMATS, c as TIME_REPRESENTATIONS, t as temporalTableName, d as temporalTableDecls, e as canonVizColor, O as OPEN_START, f as OPEN_END, R as RESERVED_NODE_NAMES, h as RESERVED_EDGE_NAMES, i as gexfStyledExport, j as GEXF_STYLE_CAPABILITIES, k as GEXF_NAMESPACES, p as parseTemporalTableName, l as TEMPORAL_COLUMNS, m as NODE_COLUMNS, V as VIZ_NAMESPACE, n as isListType, o as canonicalScalarType, q as isScalarType } from "./chunks/styles-D3fRphrO.js";
7
7
  import { j as joinText, e as encodeChunks } from "./chunks/writer-DxjgHwSe.js";
8
8
  const NOT_GEXF_CODE = "E_NOT_GEXF";
9
9
  const MISSING_NODES_CODE = "E_GEXF_MISSING_NODES";
package/dist/gml.js CHANGED
@@ -3,12 +3,12 @@ import { GraphFormatError, INVALID_INDEX } from "@graphty/graph-format";
3
3
  import { c as capabilities, a as checkCapabilities, L as LOSS, p as pairFolding, G as sanitizeIds, ai as countMixedEdges, e as explicitWeights, r as resolveExportOptions, D as DictHeuristic, ag as DICT_SAMPLE_ROWS, g as resolveImportOptions, i as reportUnusedOptions, ab as readText, h as throwIfAborted, j as reportSinkOptions, k as graphChosen, I as IdCoercer, l as DirectionResolver, u as uniqueColumnName, w as weightFromValue, ak as reportWeightPrecision, s as parseWeightText, d as declareResolved } from "./chunks/export-BvqAXCKh.js";
4
4
  import { n as decodeGmlString, o as quoteGmlString } from "./chunks/escape-CgzxiYPg.js";
5
5
  import { j as joinText, e as encodeChunks } from "./chunks/writer-DxjgHwSe.js";
6
- import { y as yedValue, a as yedColor, b as yedSpelled, c as bendsToPoints, Y as YED_SHAPES, d as YED_LINES, v as valueColumns, e as canonBends, f as flowchartShape, F as FONT_STYLES, g as YED_ARROWS } from "./chunks/styles-yed-Cz9rLBCP.js";
7
- import { w as writeStyleBlock, c as styleBlockLosses, t as StyleNotes, b as styleTag, p as plainCell, u as parseStyleBlock, s as styleFingerprint, v as blockStyles, o as canonText, r as resolveStyles, h as canonNumber, l as canonEnum, n as noteAt, M as MAX_STYLE_VALUE_LENGTH, a as STYLE_ISSUE, g as canonColor, x as colorOpacity, k as scalarText, S as STYLE_BLOCK_NAME } from "./chunks/block-CPCHkX42.js";
8
- import { C as CYTOSCAPE_LEXICON } from "./chunks/lexicon-WMsNddyU.js";
9
- import { S as StyleApproximations } from "./chunks/approximations-DJMHdDvv.js";
10
- import { d as dataRead } from "./chunks/writer-gQ8kx99H.js";
11
- import { r as gephiRules } from "./chunks/styles-DvoFBKCK.js";
6
+ import { y as yedValue, a as yedColor, b as yedSpelled, c as bendsToPoints, Y as YED_SHAPES, d as YED_LINES, v as valueColumns, e as canonBends, f as flowchartShape, F as FONT_STYLES, g as YED_ARROWS } from "./chunks/styles-yed-BF5x3_Y5.js";
7
+ import { w as writeStyleBlock, c as styleBlockLosses, t as StyleNotes, b as styleTag, p as plainCell, u as parseStyleBlock, s as styleFingerprint, v as blockStyles, o as canonText, r as resolveStyles, h as canonNumber, l as canonEnum, n as noteAt, M as MAX_STYLE_VALUE_LENGTH, a as STYLE_ISSUE, g as canonColor, x as colorOpacity, k as scalarText, S as STYLE_BLOCK_NAME } from "./chunks/block-DiGq58c3.js";
8
+ import { C as CYTOSCAPE_LEXICON } from "./chunks/lexicon-CT69Kd87.js";
9
+ import { S as StyleApproximations } from "./chunks/approximations-wWjCRzKj.js";
10
+ import { d as dataRead } from "./chunks/writer-DMKvthQE.js";
11
+ import { r as gephiRules } from "./chunks/styles-D3fRphrO.js";
12
12
  import { i as importChosenGraph } from "./chunks/choose--jM0yYCo.js";
13
13
  import { t as toolOf } from "./chunks/units-XMZFIFe1.js";
14
14
  import { m as median } from "./chunks/convert-BcQ8_jMo.js";
package/dist/graph-io.js CHANGED
@@ -11,39 +11,39 @@ import { c as collectBytes } from "./chunks/writer-DxjgHwSe.js";
11
11
  import { D as D2, d as d3, e as e3, j as j2, t as t3 } from "./chunks/writer-DxjgHwSe.js";
12
12
  import { csvImporter, csvExporter } from "./csv.js";
13
13
  import { CSV_CAPABILITIES, CSV_ISSUE, CSV_LOSS } from "./csv.js";
14
- import { d as cxImporter, c as cxExporter } from "./chunks/importer-B-9Rc1zO.js";
15
- import { C as C3, a as a13, b as b2 } from "./chunks/importer-B-9Rc1zO.js";
16
- import { c as cx2Exporter } from "./chunks/exporter-DFqJhBnj.js";
17
- import { C as C4, a as a14 } from "./chunks/exporter-DFqJhBnj.js";
18
- import { c as cx2Importer } from "./chunks/importer-BVVR740x.js";
19
- import { C as C5 } from "./chunks/importer-BVVR740x.js";
20
- import { d as cysImporter, c as cysExporter } from "./chunks/importer-C0AjA3Ax.js";
21
- import { C as C6, a as a15, b as b3 } from "./chunks/importer-C0AjA3Ax.js";
22
- import { c as dotImporter, d as dotExporter } from "./chunks/importer-C7pvJe1L.js";
23
- import { D as D3, a as a16, b as b4 } from "./chunks/importer-C7pvJe1L.js";
14
+ import { d as cxImporter, c as cxExporter } from "./chunks/importer-BSvfrX_h.js";
15
+ import { C as C3, a as a13, b as b2 } from "./chunks/importer-BSvfrX_h.js";
16
+ import { c as cx2Exporter } from "./chunks/exporter-CJgfhF-l.js";
17
+ import { C as C4, a as a14 } from "./chunks/exporter-CJgfhF-l.js";
18
+ import { c as cx2Importer } from "./chunks/importer-CMmeMWlC.js";
19
+ import { C as C5 } from "./chunks/importer-CMmeMWlC.js";
20
+ import { d as cysImporter, c as cysExporter } from "./chunks/importer-iFYPEKaJ.js";
21
+ import { C as C6, a as a15, b as b3 } from "./chunks/importer-iFYPEKaJ.js";
22
+ import { c as dotImporter, d as dotExporter } from "./chunks/importer-COTK9Tsl.js";
23
+ import { D as D3, a as a16, b as b4 } from "./chunks/importer-COTK9Tsl.js";
24
24
  import { gexfImporter, gexfExporter } from "./gexf.js";
25
25
  import { GEXF_1_2_CAPABILITIES, GEXF_ISSUE, GEXF_LOSS } from "./gexf.js";
26
26
  import { gmlImporter, gmlExporter } from "./gml.js";
27
27
  import { GML_ISSUE, GML_LOSS, GML_STYLE_BLOCK_KEY, GML_STYLE_CAPABILITIES } from "./gml.js";
28
- import { a as graphmlImporter, g as graphmlExporter } from "./chunks/importer-ClwoVx3O.js";
29
- import { r as rankFormats, S as SNIFF_HEAD_BYTES, e as jsonImporter, c as jsonExporter } from "./chunks/exporter-C-9cgZKa.js";
30
- import { G as G3, J as J2, a as a17, b as b5, d as d4, g as g2, h as h2, j as j3, f as f2, n as n2, s as s2, i as i3 } from "./chunks/exporter-C-9cgZKa.js";
28
+ import { a as graphmlImporter, g as graphmlExporter } from "./chunks/importer-DiZRmOQG.js";
29
+ import { r as rankFormats, S as SNIFF_HEAD_BYTES, e as jsonImporter, c as jsonExporter } from "./chunks/exporter-CrDWIyiq.js";
30
+ import { G as G3, J as J2, a as a17, b as b5, d as d4, g as g2, h as h2, j as j3, f as f2, n as n2, s as s2, i as i3 } from "./chunks/exporter-CrDWIyiq.js";
31
31
  import { neo4jImporter, neo4jExporter } from "./neo4j.js";
32
32
  import { ID_SPACE_COLUMN, LABELS_COLUMN, NEO4J_CAPABILITIES, NEO4J_ISSUE, NEO4J_LOSS, ORIGINAL_ID_COLUMN, TYPE_COLUMN, exportNeo4jFiles } from "./neo4j.js";
33
33
  import { c as oboImporter, o as oboExporter } from "./chunks/exporter--Mk9gXCJ.js";
34
34
  import { O as O2, a as a18, b as b6 } from "./chunks/exporter--Mk9gXCJ.js";
35
- import { d as pajekImporter, p as pajekExporter } from "./chunks/importer-EHQk1jbM.js";
36
- import { P as P2, a as a19, b as b7, c as c4 } from "./chunks/importer-EHQk1jbM.js";
37
- import { x as xgmmlExporter } from "./chunks/exporter-DteVeJki.js";
38
- import { x as xgmmlImporter } from "./chunks/importer-D0sC_6bO.js";
39
- import { e as extractStyles } from "./chunks/generic-BGO71QBv.js";
40
- import { p as prepareStyleExport, i as isKeptGraphtyProperty } from "./chunks/writer-gQ8kx99H.js";
35
+ import { d as pajekImporter, p as pajekExporter } from "./chunks/importer-e6LGpqHB.js";
36
+ import { P as P2, a as a19, b as b7, c as c4 } from "./chunks/importer-e6LGpqHB.js";
37
+ import { x as xgmmlExporter } from "./chunks/exporter-DndFlGSa.js";
38
+ import { x as xgmmlImporter } from "./chunks/importer-yh_aBCU6.js";
39
+ import { e as extractStyles } from "./chunks/generic-Dq1ntt9q.js";
40
+ import { p as prepareStyleExport, i as isKeptGraphtyProperty } from "./chunks/writer-DMKvthQE.js";
41
41
  import { G as G4, a as a20 } from "./chunks/constants-BKwqelYD.js";
42
- import { G as G5 } from "./chunks/styles-yed-Cz9rLBCP.js";
43
- import { X as X3, a as a21 } from "./chunks/styles-zNTmz5R7.js";
42
+ import { G as G5 } from "./chunks/styles-yed-BF5x3_Y5.js";
43
+ import { X as X3, a as a21 } from "./chunks/styles-BQnsga7p.js";
44
44
  import { M as M2, d as d5, c as c5, f as f3, h as h3, t as t4, x as x2 } from "./chunks/escape-CgzxiYPg.js";
45
- import { S as S2 } from "./chunks/block-CPCHkX42.js";
46
- import { j as j4, a as a23 } from "./chunks/styles-DvoFBKCK.js";
45
+ import { S as S2 } from "./chunks/block-DiGq58c3.js";
46
+ import { j as j4, a as a23 } from "./chunks/styles-D3fRphrO.js";
47
47
  const USED = /* @__PURE__ */ new Set(["ids", "defaultDirected", "weightFrom", "addMissingNodes"]);
48
48
  function defineLineFormat(definition) {
49
49
  const { format, extensions, mimeTypes = [], directed = false, comment = "#", sniff: sniff2, parseLine } = definition;
package/dist/graphml.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { G, a } from "./chunks/constants-BKwqelYD.js";
2
- import { g, a as a2 } from "./chunks/importer-ClwoVx3O.js";
3
- import { G as G2 } from "./chunks/styles-yed-Cz9rLBCP.js";
2
+ import { g, a as a2 } from "./chunks/importer-DiZRmOQG.js";
3
+ import { G as G2 } from "./chunks/styles-yed-BF5x3_Y5.js";
4
4
  export {
5
5
  G as GRAPHML_ISSUE,
6
6
  a as GRAPHML_LOSS,
package/dist/json.js CHANGED
@@ -1,4 +1,4 @@
1
- import { J, a, b, d, j, c, e, f } from "./chunks/exporter-C-9cgZKa.js";
1
+ import { J, a, b, d, j, c, e, f } from "./chunks/exporter-CrDWIyiq.js";
2
2
  export {
3
3
  J as JSON_DIALECTS,
4
4
  a as JSON_ISSUE,
package/dist/pajek.js CHANGED
@@ -1,4 +1,4 @@
1
- import { P, a, b, c, p, d } from "./chunks/importer-EHQk1jbM.js";
1
+ import { P, a, b, c, p, d } from "./chunks/importer-e6LGpqHB.js";
2
2
  export {
3
3
  P as PAJEK_ISSUE,
4
4
  a as PAJEK_LOSS,
@@ -22,7 +22,7 @@ import type { LossNote } from "../../types.js";
22
22
  export declare const PAJEK_STYLE_CAPABILITIES: StyleWriteCapabilities;
23
23
  /**
24
24
  * The styles of a Pajek file, read the way Pajek draws them, with Pajek's stated defaults beneath: a labeled ellipse
25
- * with a black border, black solid lines, and an arrow at the target of every arc. A file graphty wrote gives back its `graphty.styles` block.
25
+ * with a black border and a black centered label, black solid lines, and an arrow at the target of every arc. A file graphty wrote gives back its `graphty.styles` block.
26
26
  * @param snapshot - the graph the import built
27
27
  * @param context - the work budget and the block text the import kept
28
28
  * @returns the styles
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/formats/pajek/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAU3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAIpE,OAAO,KAAK,EACR,cAAc,EAEd,gBAAgB,EAIhB,sBAAsB,EACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,sBAgBrC,CAAC;AA+JH;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,GAAG,cAAc,CAyD9F;AA6QD,6CAA6C;AAC7C,UAAU,iBAAiB;IACvB,oFAAoF;IACpF,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,kFAAkF;IAClF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iFAAiF;IACjF,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;CACvC;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC7B,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,kBAAkB,GAAG,SAAS,GACtC,iBAAiB,GAAG,IAAI,CAkC1B"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/formats/pajek/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAU3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAIpE,OAAO,KAAK,EACR,cAAc,EAEd,gBAAgB,EAIhB,sBAAsB,EACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,sBAgBrC,CAAC;AA+JH;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,GAAG,cAAc,CAyD9F;AA8QD,6CAA6C;AAC7C,UAAU,iBAAiB;IACvB,oFAAoF;IACpF,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,kFAAkF;IAClF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iFAAiF;IACjF,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;CACvC;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC7B,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,kBAAkB,GAAG,SAAS,GACtC,iBAAiB,GAAG,IAAI,CAkC1B"}
@@ -182,7 +182,7 @@ function styleColumns(table, keys) {
182
182
  }
183
183
  /**
184
184
  * The styles of a Pajek file, read the way Pajek draws them, with Pajek's stated defaults beneath: a labeled ellipse
185
- * with a black border, black solid lines, and an arrow at the target of every arc. A file graphty wrote gives back its `graphty.styles` block.
185
+ * with a black border and a black centered label, black solid lines, and an arrow at the target of every arc. A file graphty wrote gives back its `graphty.styles` block.
186
186
  * @param snapshot - the graph the import built
187
187
  * @param context - the work budget and the block text the import kept
188
188
  * @returns the styles
@@ -300,7 +300,8 @@ function shapeKeyword(get, approximate) {
300
300
  return NEAREST_SHAPES.get(shape) ?? "ellipse";
301
301
  }
302
302
  /**
303
- * A vertex's parameters from its values, leaving out the ellipse and the black border 1 wide Pajek draws by default.
303
+ * A vertex's parameters from its values, leaving out what Pajek draws by default: an ellipse with a black border 1
304
+ * wide and a black label.
304
305
  * @param get - the vertex's values
305
306
  * @param approximate - records approximations
306
307
  * @returns the parameters, the shape keyword under `shape`
@@ -324,7 +325,7 @@ function vertexParams(get, approximate) {
324
325
  ];
325
326
  for (const [property, key] of colors) {
326
327
  const v = get(property);
327
- if (typeof v === "string" && !(property === "borderColor" && v === "#000000")) {
328
+ if (typeof v === "string" && (property === "fill" || v !== "#000000")) {
328
329
  out.set(key, pajekColorText(v));
329
330
  }
330
331
  }
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../src/formats/pajek/styles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../src/formats/pajek/styles.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,8 @@
6
6
  * - X11: the names Graphviz 2.43 resolves in its default `x11` scheme, measured with `dot -Txdot` (`gray` is
7
7
  * `#c0c0c0` there, not CSS's `#808080`).
8
8
  * - Brewer: the ColorBrewer schemes Graphviz knows (`/blues9/3`), measured the same way; index i is entry i - 1.
9
- * - dvips: the 68 CMYK color names of LaTeX's dvips driver, which Pajek uses, converted to RGB.
9
+ * - dvips: the 68 CMYK color names of LaTeX's dvips driver, which Pajek uses, converted to RGB, plus the ten names
10
+ * Pajek adds to them (LightYellow ... LSkyBlue), as the Pajek 6.02 manual's Figure 19 (p. 105) fills their swatches.
10
11
  * - Java: the `java.awt.Color` constants Cytoscape and Gephi write.
11
12
  */
12
13
  /** CSS named colors, lowercase. */
@@ -1 +1 @@
1
- {"version":3,"file":"color-tables.d.ts","sourceRoot":"","sources":["../../../../src/styles/canon/color-tables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAgBH,mCAAmC;AACnC,eAAO,MAAM,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CA2BlD,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAmHlD,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAapD,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAGnD,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CA4LjE,CAAC"}
1
+ {"version":3,"file":"color-tables.d.ts","sourceRoot":"","sources":["../../../../src/styles/canon/color-tables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAgBH,mCAAmC;AACnC,eAAO,MAAM,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CA2BlD,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAmHlD,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAiBpD,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAGnD,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CA4LjE,CAAC"}
@@ -6,7 +6,8 @@
6
6
  * - X11: the names Graphviz 2.43 resolves in its default `x11` scheme, measured with `dot -Txdot` (`gray` is
7
7
  * `#c0c0c0` there, not CSS's `#808080`).
8
8
  * - Brewer: the ColorBrewer schemes Graphviz knows (`/blues9/3`), measured the same way; index i is entry i - 1.
9
- * - dvips: the 68 CMYK color names of LaTeX's dvips driver, which Pajek uses, converted to RGB.
9
+ * - dvips: the 68 CMYK color names of LaTeX's dvips driver, which Pajek uses, converted to RGB, plus the ten names
10
+ * Pajek adds to them (LightYellow ... LSkyBlue), as the Pajek 6.02 manual's Figure 19 (p. 105) fills their swatches.
10
11
  * - Java: the `java.awt.Color` constants Cytoscape and Gephi write.
11
12
  */
12
13
  /**
@@ -176,7 +177,11 @@ export const DVIPS_COLORS = table("GreenYellow=d9ff4f Yellow=ffff00 Goldenrod=ff
176
177
  "SkyBlue=61ffe0 Turquoise=26ffcc TealBlue=1ffaa3 Aquamarine=2effb2 BlueGreen=26ffab Emerald=00ff80 " +
177
178
  "JungleGreen=03ff7a SeaGreen=4fff80 Green=00ff00 ForestGreen=00e000 PineGreen=00bf29 LimeGreen=80ff00 " +
178
179
  "YellowGreen=8fff42 SpringGreen=bdff3d OliveGreen=009900 RawSienna=8c0000 Sepia=4d0000 Brown=660000 " +
179
- "Tan=db9470 Gray=808080 Black=000000 White=ffffff");
180
+ "Tan=db9470 Gray=808080 Black=000000 White=ffffff " +
181
+ // Pajek's own names, not in dvips: the RGB fill of each swatch in the Pajek 6.02 manual, Figure 19, p. 105
182
+ // (http://mrvar.fdv.uni-lj.si/pajek/pajekman.pdf); Pajek's SVG export draws LightCyan as rgb(204,255,255) too.
183
+ "LightYellow=ffff99 LightCyan=ccffff LightMagenta=ffccff LightPurple=ccccff LightGreen=ccffb3 " +
184
+ "LightOrange=ffccb3 Canary=ffff7f LFadedGreen=e6ffcc Pink=ffd9f3 LSkyBlue=d9f3ff");
180
185
  /** Java's `java.awt.Color` constants, lowercase, with and without the underscore. */
181
186
  export const JAVA_COLORS = table("black=000000 blue=0000ff cyan=00ffff darkgray=404040 dark_gray=404040 gray=808080 green=00ff00 " +
182
187
  "lightgray=c0c0c0 light_gray=c0c0c0 magenta=ff00ff orange=ffc800 pink=ffafaf red=ff0000 white=ffffff yellow=ffff00");
@@ -1 +1 @@
1
- {"version":3,"file":"color-tables.js","sourceRoot":"","sources":["../../../../src/styles/canon/color-tables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"color-tables.js","sourceRoot":"","sources":["../../../../src/styles/canon/color-tables.ts"],"names":[],"mappings":"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"}