@shbernal/ts-pptx 4.1.0 → 5.0.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/README.md +11 -11
- package/dist/anim-presets-Qbgh8uut.js +55 -0
- package/dist/anim-presets-Qbgh8uut.js.map +1 -0
- package/dist/{autopage-D4kyVp11.js → autopage-DqZ37VpL.js} +11 -12
- package/dist/autopage-DqZ37VpL.js.map +1 -0
- package/dist/{binary-string-CKVAYI3M.js → binary-string-Ba8VM3b9.js} +3 -4
- package/dist/binary-string-Ba8VM3b9.js.map +1 -0
- package/dist/{body-insets-kVHmjGc6.js → body-insets-BDHymJvz.js} +7 -9
- package/dist/body-insets-BDHymJvz.js.map +1 -0
- package/dist/browser.d.ts +24 -16
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +19 -19
- package/dist/browser.js.map +1 -1
- package/dist/{image-size-DwDbakcl.js → chart-metadata-CwiTTcJq.js} +576 -538
- package/dist/chart-metadata-CwiTTcJq.js.map +1 -0
- package/dist/{clip-DHDlnHUq.d.ts → clip-ISfCMtWA.d.ts} +6 -10
- package/dist/clip-ISfCMtWA.d.ts.map +1 -0
- package/dist/{notes-BcT571R4.js → comments-CKIZYRbZ.js} +517 -389
- package/dist/comments-CKIZYRbZ.js.map +1 -0
- package/dist/{diagnostics-DiMmBU8P.d.ts → diagnostics-MoA4MBq5.d.ts} +52 -50
- package/dist/diagnostics-MoA4MBq5.d.ts.map +1 -0
- package/dist/{embedded-fonts-CI_YGW2d.d.ts → embedded-fonts-U7HIIhPO.d.ts} +4 -6
- package/dist/embedded-fonts-U7HIIhPO.d.ts.map +1 -0
- package/dist/{entry-compose-6hF9aTmT.d.ts → entry-compose-CiakSt-f.d.ts} +53 -74
- package/dist/entry-compose-CiakSt-f.d.ts.map +1 -0
- package/dist/{errors-Da2nXCJm.js → entry-errors-JMthgJ2g.js} +41 -25
- package/dist/entry-errors-JMthgJ2g.js.map +1 -0
- package/dist/{table-cell-margins-PDshga8T.js → enums-BP9wsb9Q.js} +42 -45
- package/dist/enums-BP9wsb9Q.js.map +1 -0
- package/dist/{enums-DQRpVOLh.d.ts → enums-PcXr3o3J.d.ts} +11 -12
- package/dist/{enums-DQRpVOLh.d.ts.map → enums-PcXr3o3J.d.ts.map} +1 -1
- package/dist/families.d.ts +24 -26
- package/dist/families.d.ts.map +1 -1
- package/dist/families.js +3 -4
- package/dist/{fit-CcXbg__l.js → fit-Bpmzep6O.js} +60 -52
- package/dist/fit-Bpmzep6O.js.map +1 -0
- package/dist/{font-metrics-CBGmhLo0.d.ts → font-metrics-DTppw4t3.d.ts} +61 -37
- package/dist/font-metrics-DTppw4t3.d.ts.map +1 -0
- package/dist/{grid-9B2w5EaY.js → grid-DUIMxjfl.js} +23 -26
- package/dist/grid-DUIMxjfl.js.map +1 -0
- package/dist/{html-dom-DvJmuHt2.js → html-dom-LZCgntnJ.js} +42 -43
- package/dist/html-dom-LZCgntnJ.js.map +1 -0
- package/dist/html.d.ts +53 -9
- package/dist/html.d.ts.map +1 -1
- package/dist/html.js +12 -13
- package/dist/html.js.map +1 -1
- package/dist/index.d.ts +21 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -15
- package/dist/index.js.map +1 -1
- package/dist/inspect.d.ts +14 -16
- package/dist/inspect.d.ts.map +1 -1
- package/dist/inspect.js +18 -19
- package/dist/inspect.js.map +1 -1
- package/dist/{text-anchor-BgLPbwbL.js → lock-attrs-CSQnFDHP.js} +62 -12
- package/dist/lock-attrs-CSQnFDHP.js.map +1 -0
- package/dist/math.d.ts +2 -4
- package/dist/math.d.ts.map +1 -1
- package/dist/math.js +12 -13
- package/dist/math.js.map +1 -1
- package/dist/measure.d.ts +23 -12
- package/dist/measure.d.ts.map +1 -1
- package/dist/measure.js +3 -3
- package/dist/node.d.ts +21 -13
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +12 -12
- package/dist/node.js.map +1 -1
- package/dist/{options-internal-WqgMf720.js → options-internal-BWgmLPdx.js} +4 -5
- package/dist/options-internal-BWgmLPdx.js.map +1 -0
- package/dist/{package-KoEgVwII.d.ts → package-CANBWuSm.d.ts} +4 -12
- package/dist/package-CANBWuSm.d.ts.map +1 -0
- package/dist/{playbtn-CUqQdoDf.js → playbtn-BQZFJir9.js} +4 -5
- package/dist/playbtn-BQZFJir9.js.map +1 -0
- package/dist/{pres-BA9_lJbY.d.ts → pres-BkEkUAEM.d.ts} +383 -230
- package/dist/pres-BkEkUAEM.d.ts.map +1 -0
- package/dist/{presentation-Cyl74rq2.js → presentation-4Ggq0_Xa.js} +408 -288
- package/dist/presentation-4Ggq0_Xa.js.map +1 -0
- package/dist/{presentation-types-B3VQH4Bz.d.ts → presentation-types-BgnZR-0a.d.ts} +1104 -457
- package/dist/presentation-types-BgnZR-0a.d.ts.map +1 -0
- package/dist/read.d.ts +18 -13
- package/dist/read.d.ts.map +1 -1
- package/dist/read.js +4 -4
- package/dist/script.d.ts +116 -65
- package/dist/script.d.ts.map +1 -1
- package/dist/script.js +2697 -777
- package/dist/script.js.map +1 -1
- package/dist/{shapes-BcyFdZpp.js → shapes-CAPOjU0Q.js} +1556 -487
- package/dist/shapes-CAPOjU0Q.js.map +1 -0
- package/dist/{slide-BqPtyKmb.d.ts → slide-BmT4kMoO.d.ts} +94 -86
- package/dist/slide-BmT4kMoO.d.ts.map +1 -0
- package/dist/{slide-size-BalTjFuv.js → slide-size-SkScz1ig.js} +2 -3
- package/dist/{slide-size-BalTjFuv.js.map → slide-size-SkScz1ig.js.map} +1 -1
- package/dist/{table-dom-CVbvUfgh.js → table-dom-BYga4FYY.js} +3 -4
- package/dist/{table-dom-CVbvUfgh.js.map → table-dom-BYga4FYY.js.map} +1 -1
- package/dist/{text-BvFFMMFQ.js → text-Dz0ArGIp.js} +365 -318
- package/dist/text-Dz0ArGIp.js.map +1 -0
- package/dist/{transition-speed-kUEWDWTx.js → transition-speed-CNJ0fSpQ.js} +2 -3
- package/dist/{transition-speed-kUEWDWTx.js.map → transition-speed-CNJ0fSpQ.js.map} +1 -1
- package/dist/{units-internal-DFcUYjh3.js → units-internal-BR3a4cIi.js} +26 -29
- package/dist/units-internal-BR3a4cIi.js.map +1 -0
- package/dist/{zip-CYZ0F6BV.js → zip-7JTh61LX.js} +8 -10
- package/dist/zip-7JTh61LX.js.map +1 -0
- package/dist/{zip-CTll_dr0.d.ts → zip-uUjs9Cqx.d.ts} +4 -6
- package/dist/zip-uUjs9Cqx.d.ts.map +1 -0
- package/dist/zip.d.ts +3 -3
- package/dist/zip.js +3 -3
- package/dist/{zoom-BoNyOlPm.js → zoom-CSSeOwM8.js} +1153 -583
- package/dist/zoom-CSSeOwM8.js.map +1 -0
- package/package.json +20 -21
- package/skills/{ts-pptx-upstream → pptx-ts-upstream}/SKILL.md +27 -74
- package/dist/autopage-D4kyVp11.js.map +0 -1
- package/dist/binary-string-CKVAYI3M.js.map +0 -1
- package/dist/body-insets-kVHmjGc6.js.map +0 -1
- package/dist/clip-DHDlnHUq.d.ts.map +0 -1
- package/dist/diagnostics-DiMmBU8P.d.ts.map +0 -1
- package/dist/embedded-fonts-CI_YGW2d.d.ts.map +0 -1
- package/dist/entry-compose-6hF9aTmT.d.ts.map +0 -1
- package/dist/errors-Da2nXCJm.js.map +0 -1
- package/dist/fit-CcXbg__l.js.map +0 -1
- package/dist/font-metrics-CBGmhLo0.d.ts.map +0 -1
- package/dist/grid-9B2w5EaY.js.map +0 -1
- package/dist/html-dom-DvJmuHt2.js.map +0 -1
- package/dist/image-size-DwDbakcl.js.map +0 -1
- package/dist/notes-BcT571R4.js.map +0 -1
- package/dist/options-internal-WqgMf720.js.map +0 -1
- package/dist/package-KoEgVwII.d.ts.map +0 -1
- package/dist/playbtn-CUqQdoDf.js.map +0 -1
- package/dist/pres-BA9_lJbY.d.ts.map +0 -1
- package/dist/presentation-Cyl74rq2.js.map +0 -1
- package/dist/presentation-types-B3VQH4Bz.d.ts.map +0 -1
- package/dist/shapes-BcyFdZpp.js.map +0 -1
- package/dist/slide-BqPtyKmb.d.ts.map +0 -1
- package/dist/table-cell-margins-PDshga8T.js.map +0 -1
- package/dist/text-BvFFMMFQ.js.map +0 -1
- package/dist/text-anchor-BgLPbwbL.js.map +0 -1
- package/dist/units-internal-DFcUYjh3.js.map +0 -1
- package/dist/zip-CTll_dr0.d.ts.map +0 -1
- package/dist/zip-CYZ0F6BV.js.map +0 -1
- package/dist/zoom-BoNyOlPm.js.map +0 -1
package/dist/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","names":[],"sources":["../src/runtime/node.ts","../src/node.ts"],"sourcesContent":["import { Buffer } from 'node:buffer'\nimport fs from 'node:fs/promises'\nimport { MediaError } from '../errors.js'\nimport type { SlideRelMedia } from '../types/internal.js'\nimport type { RuntimeAdapter } from './types.js'\nimport { fetchFontBytes, fetchMediaBase64, isRemote, placeholderSvgPreview } from './fetch-media.js'\n\nexport function createNodeRuntime(): RuntimeAdapter {\n\treturn {\n\t\twriteFileOutputType: 'nodebuffer',\n\t\tloadMedia,\n\t\tcreateSvgPngPreview: placeholderSvgPreview,\n\t\twriteFile,\n\t\tloadFontData,\n\t}\n}\n\nasync function loadFontData(source: string): Promise<Uint8Array> {\n\tif (isRemote(source)) return await fetchFontBytes(source)\n\ttry {\n\t\treturn new Uint8Array(await fs.readFile(source))\n\t} catch (ex) {\n\t\tthrow new MediaError('font/read-failed', `Unable to read font file: \"${source}\"\\n${String(ex)}`, {\n\t\t\tcause: ex,\n\t\t})\n\t}\n}\n\nasync function loadMedia(rel: SlideRelMedia & { path: string }): Promise<string> {\n\tif (isRemote(rel.path)) return await fetchMediaBase64(rel.path)\n\n\ttry {\n\t\treturn Buffer.from(await fs.readFile(rel.path)).toString('base64')\n\t} catch (ex) {\n\t\tthrow new MediaError('media/read-failed', `Unable to read media: \"${rel.path}\"\\n${String(ex)}`, {\n\t\t\tcause: ex,\n\t\t})\n\t}\n}\n\nasync function writeFile(fileName: string, data: string | ArrayBuffer | Blob | Uint8Array): Promise<string> {\n\tawait fs.writeFile(fileName, data as string | Uint8Array)\n\treturn fileName\n}\n","/**\n * The Node authoring entry, which the bare `pptx-ts` specifier resolves to under the `node`\n * export condition.\n *\n * @module\n */\nimport PresentationCore from './presentation.js'\nimport { composePresentation, type ComposeOptions, type Composed } from './entry-compose.js'\nimport type { ConstructFamily } from './families/shared.js'\nimport { ALL_CONSTRUCT_FAMILIES } from './entry-families.js'\nimport { createNodeRuntime } from './runtime/node.js'\n\n/**\n * The Node entry, reached through the `node` export condition
|
|
1
|
+
{"version":3,"file":"node.js","names":[],"sources":["../src/runtime/node.ts","../src/node.ts"],"sourcesContent":["import { Buffer } from 'node:buffer'\nimport fs from 'node:fs/promises'\nimport { MediaError } from '../errors.js'\nimport type { SlideRelMedia } from '../types/internal.js'\nimport type { RuntimeAdapter } from './types.js'\nimport { fetchFontBytes, fetchMediaBase64, isRemote, placeholderSvgPreview } from './fetch-media.js'\n\nexport function createNodeRuntime(): RuntimeAdapter {\n\treturn {\n\t\twriteFileOutputType: 'nodebuffer',\n\t\tloadMedia,\n\t\tcreateSvgPngPreview: placeholderSvgPreview,\n\t\twriteFile,\n\t\tloadFontData,\n\t}\n}\n\nasync function loadFontData(source: string): Promise<Uint8Array> {\n\tif (isRemote(source)) return await fetchFontBytes(source)\n\ttry {\n\t\treturn new Uint8Array(await fs.readFile(source))\n\t} catch (ex) {\n\t\tthrow new MediaError('font/read-failed', `Unable to read font file: \"${source}\"\\n${String(ex)}`, {\n\t\t\tcause: ex,\n\t\t})\n\t}\n}\n\nasync function loadMedia(rel: SlideRelMedia & { path: string }): Promise<string> {\n\tif (isRemote(rel.path)) return await fetchMediaBase64(rel.path)\n\n\ttry {\n\t\treturn Buffer.from(await fs.readFile(rel.path)).toString('base64')\n\t} catch (ex) {\n\t\tthrow new MediaError('media/read-failed', `Unable to read media: \"${rel.path}\"\\n${String(ex)}`, {\n\t\t\tcause: ex,\n\t\t})\n\t}\n}\n\nasync function writeFile(fileName: string, data: string | ArrayBuffer | Blob | Uint8Array): Promise<string> {\n\tawait fs.writeFile(fileName, data as string | Uint8Array)\n\treturn fileName\n}\n","/**\n * The Node authoring entry, which the bare `pptx-ts` specifier resolves to under the `node`\n * export condition.\n *\n * @module\n */\nimport PresentationCore from './presentation.js'\nimport { composePresentation, type ComposeOptions, type Composed } from './entry-compose.js'\nimport type { ConstructFamily } from './families/shared.js'\nimport { ALL_CONSTRUCT_FAMILIES } from './entry-families.js'\nimport { createNodeRuntime } from './runtime/node.js'\n\n/**\n * The Node entry, reached through the `node` export condition. A consumer importing the bare\n * `pptx-ts` specifier under Node lands here without naming this subpath.\n *\n * Same authoring API as every other entry (see `entry-surface.ts`); the runtime adapter is what\n * differs. This one can reach the filesystem, so `writeFile` writes a real file and media may be\n * loaded from a path, both of which throw on the runtime-agnostic entry.\n */\nexport class PptxTs extends PresentationCore {\n\tconstructor() {\n\t\tsuper(createNodeRuntime(), ALL_CONSTRUCT_FAMILIES)\n\t}\n}\n\n/**\n * Compose a presentation from the construct families it needs, on the Node adapter.\n *\n * The counterpart to {@link PptxTs}, which is composed with every family there is. This one costs\n * what it carries: the core tier (text, shapes, images, groups, speaker notes) plus whatever\n * `use` names, and nothing else reaches the bundle.\n * @param {ComposeOptions} opts - the families to compose in, from `pptx-ts/families`\n * @example\n * import { createPresentation } from 'pptx-ts/node'\n * import { charts } from 'pptx-ts/families'\n * const pres = createPresentation({ use: [charts] })\n */\nexport function createPresentation<const Fs extends readonly ConstructFamily[] = []>(\n\topts?: ComposeOptions<Fs>\n): Composed<Fs> {\n\treturn composePresentation(createNodeRuntime(), opts)\n}\n\nexport { PptxTs as default }\n\n/** @deprecated Renamed to {@link PptxTs}. This alias is removed in v5. */\nexport const TsPptx = PptxTs\n/** @deprecated Renamed to {@link PptxTs}. This alias is removed in v5. */\nexport type TsPptx = PptxTs\n\nexport * from './entry-surface.js'\n"],"mappings":";;;;;;AAOA,SAAgB,oBAAoC;CACnD,OAAO;EACN,qBAAqB;EACrB;EACA,qBAAqB;EACrB;EACA;CACD;AACD;AAEA,eAAe,aAAa,QAAqC;CAChE,IAAI,SAAS,MAAM,GAAG,OAAO,MAAM,eAAe,MAAM;CACxD,IAAI;EACH,OAAO,IAAI,WAAW,MAAM,GAAG,SAAS,MAAM,CAAC;CAChD,SAAS,IAAI;EACZ,MAAM,IAAI,WAAW,oBAAoB,8BAA8B,OAAO,KAAK,OAAO,EAAE,KAAK,EAChG,OAAO,GACR,CAAC;CACF;AACD;AAEA,eAAe,UAAU,KAAwD;CAChF,IAAI,SAAS,IAAI,IAAI,GAAG,OAAO,MAAM,iBAAiB,IAAI,IAAI;CAE9D,IAAI;EACH,OAAO,OAAO,KAAK,MAAM,GAAG,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,QAAQ;CAClE,SAAS,IAAI;EACZ,MAAM,IAAI,WAAW,qBAAqB,0BAA0B,IAAI,KAAK,KAAK,OAAO,EAAE,KAAK,EAC/F,OAAO,GACR,CAAC;CACF;AACD;AAEA,eAAe,UAAU,UAAkB,MAAiE;CAC3G,MAAM,GAAG,UAAU,UAAU,IAA2B;CACxD,OAAO;AACR;;;;;;;;;;;;;;;;ACvBA,IAAa,SAAb,cAA4B,iBAAiB;CAC5C,cAAc;EACb,MAAM,kBAAkB,GAAG,sBAAsB;CAClD;AACD;;;;;;;;;;;;;AAcA,SAAgB,mBACf,MACe;CACf,OAAO,oBAAoB,kBAAkB,GAAG,IAAI;AACrD;;AAKA,MAAa,SAAS"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
// src/options-internal.ts
|
|
2
2
|
/**
|
|
3
3
|
* Write a normalized value onto an option bag, spelling "no value" as an *absent* key.
|
|
4
4
|
*
|
|
5
|
-
* Reach for this wherever a normalizer's result may be nothing
|
|
6
|
-
* `setOrClear(opts, 'holeSize', clampChartPct(opts.holeSize, 10, 90, 'holeSize'))
|
|
5
|
+
* Reach for this wherever a normalizer's result may be nothing, as in
|
|
6
|
+
* `setOrClear(opts, 'holeSize', clampChartPct(opts.holeSize, 10, 90, 'holeSize'))`, rather than
|
|
7
7
|
* assigning the result directly, which leaves the caller's rejected value replaced by an
|
|
8
8
|
* `undefined` instead of removed.
|
|
9
9
|
*
|
|
@@ -37,7 +37,6 @@ function pickDefined(source, keys) {
|
|
|
37
37
|
}
|
|
38
38
|
return out;
|
|
39
39
|
}
|
|
40
|
-
//#endregion
|
|
41
40
|
export { setOrClear as n, pickDefined as t };
|
|
42
41
|
|
|
43
|
-
//# sourceMappingURL=options-internal-
|
|
42
|
+
//# sourceMappingURL=options-internal-BWgmLPdx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options-internal-BWgmLPdx.js","names":[],"sources":["../src/options-internal.ts"],"sourcesContent":["/**\n * pptx-ts: option-bag normalization helpers for one spelling of absent.\n *\n * `exactOptionalPropertyTypes` draws a line this library needs drawn: a `foo?: T` declaration says\n * the key is either *missing* or holds a `T`, and a key present with an `undefined` in it is a\n * third state. Readers here cannot see that state (every option is read with truthiness or\n * `?.`), but spreads can, and the generator spreads these bags constantly: a layout placeholder's\n * options onto a slide's, a column default under a cell's own, a combo subchart's overrides onto\n * the chart's. There the side that wins is decided by whether the key *exists*, not by what it\n * holds, so \"the caller said nothing\" and \"the caller said nothing, in writing\" produce different\n * output.\n *\n * These two helpers are how a normalizer stays on the right side of that. They are the write-side\n * twin of `compact()` (`script/from-read/values.ts`), which keeps the same invariant on the read\n * side and for the same reason.\n *\n * Internal: nothing here is exported from an entrypoint, the same way `constants-internal.ts` and\n * `units-internal.ts` are not.\n */\n\nimport type { OptionalKeysOf } from './types/internal.js'\n\n/**\n * Write a normalized value onto an option bag, spelling \"no value\" as an *absent* key.\n *\n * Reach for this wherever a normalizer's result may be nothing, as in\n * `setOrClear(opts, 'holeSize', clampChartPct(opts.holeSize, 10, 90, 'holeSize'))`, rather than\n * assigning the result directly, which leaves the caller's rejected value replaced by an\n * `undefined` instead of removed.\n *\n * Only optional keys are accepted, so this cannot be used to unset something required.\n * @param bag - the options bag to write onto\n * @param key - the key to set or remove\n * @param value - the normalized value, or `undefined` to remove the key\n */\nexport function setOrClear<T extends object, K extends OptionalKeysOf<T> & keyof T>(bag: T, key: K, value: T[K]): void {\n\tif (value === undefined) delete bag[key]\n\telse bag[key] = value\n}\n\n/**\n * The named properties of `source` that are actually set, as a new object.\n *\n * For the other shape this problem takes: a literal that projects a fixed key list off a bag that\n * may not state them all (`{ x: opts.x, y: opts.y, rotate: opts.rotate, … }`), which writes a key\n * for every name whether or not the source had one. Naming the keys once is also shorter than\n * spelling out the copy, and it cannot drift from itself the way a hand-written list can.\n *\n * Every key comes back optional and with `undefined` excluded from its type, which is the whole\n * claim: what this returns is the subset that was actually stated.\n * @param source - the bag to read from\n * @param keys - the keys to carry over\n */\nexport function pickDefined<T extends object, K extends keyof T>(\n\tsource: T,\n\tkeys: readonly K[]\n): { [P in K]?: Exclude<T[P], undefined> } {\n\tconst out: { [P in K]?: Exclude<T[P], undefined> } = {}\n\tfor (const key of keys) {\n\t\tconst value = source[key]\n\t\tif (value !== undefined) out[key] = value as Exclude<T[K], undefined>\n\t}\n\treturn out\n}\n"],"mappings":";;;;;;;;;;;;;;AAmCA,SAAgB,WAAoE,KAAQ,KAAQ,OAAmB;CACtH,IAAI,UAAU,KAAA,GAAW,OAAO,IAAI;MAC/B,IAAI,OAAO;AACjB;;;;;;;;;;;;;;AAeA,SAAgB,YACf,QACA,MAC0C;CAC1C,MAAM,MAA+C,CAAC;CACtD,KAAK,MAAM,OAAO,MAAM;EACvB,MAAM,QAAQ,OAAO;EACrB,IAAI,UAAU,KAAA,GAAW,IAAI,OAAO;CACrC;CACA,OAAO;AACR"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Document, Element } from "@xmldom/xmldom";
|
|
2
|
-
//#region src/read/opc/content-types.d.ts
|
|
3
2
|
/**
|
|
4
3
|
* Overlay over `[Content_Types].xml`, used to resolve part content types at
|
|
5
4
|
* load and to register new ones when parts are added. While clean, the original
|
|
@@ -22,7 +21,7 @@ declare class ContentTypes {
|
|
|
22
21
|
ensureRegistered(partName: string, contentType: string): void;
|
|
23
22
|
/**
|
|
24
23
|
* Drop the `Override` for `partName` if present (e.g. when a part is removed).
|
|
25
|
-
* `Default` rules by extension are left untouched
|
|
24
|
+
* `Default` rules by extension are left untouched; they may still serve other
|
|
26
25
|
* parts. Marks the overlay dirty when something was removed.
|
|
27
26
|
*/
|
|
28
27
|
removeOverride(partName: string): void;
|
|
@@ -30,8 +29,6 @@ declare class ContentTypes {
|
|
|
30
29
|
ensureDefault(extension: string, contentType: string): void;
|
|
31
30
|
serialize(): string;
|
|
32
31
|
}
|
|
33
|
-
//#endregion
|
|
34
|
-
//#region src/read/opc/part.d.ts
|
|
35
32
|
/**
|
|
36
33
|
* One OPC part. Holds the original bytes from the zip for its whole life;
|
|
37
34
|
* parses to a DOM only on demand; serializes back to the original bytes
|
|
@@ -73,8 +70,6 @@ declare class Part {
|
|
|
73
70
|
*/
|
|
74
71
|
serialize(): Uint8Array;
|
|
75
72
|
}
|
|
76
|
-
//#endregion
|
|
77
|
-
//#region src/read/opc/relationships.d.ts
|
|
78
73
|
interface Relationship {
|
|
79
74
|
id: string;
|
|
80
75
|
type: string;
|
|
@@ -130,8 +125,6 @@ declare class Relationships {
|
|
|
130
125
|
resolveTarget(id: string): string;
|
|
131
126
|
serialize(): string;
|
|
132
127
|
}
|
|
133
|
-
//#endregion
|
|
134
|
-
//#region src/read/opc/package.d.ts
|
|
135
128
|
/**
|
|
136
129
|
* Input to {@link OpcPackage.load}. A `string` is a **filesystem path** (Node)
|
|
137
130
|
* read from disk; pass `Uint8Array`/`ArrayBuffer`/`Blob`/`number[]` for an
|
|
@@ -143,7 +136,7 @@ type OpcInput = string | number[] | Uint8Array | ArrayBuffer | Blob;
|
|
|
143
136
|
*
|
|
144
137
|
* Fidelity contract: parts that are never mutated (`Part.markDirty()`) are
|
|
145
138
|
* written back byte-identically by `save()`. Whole-zip byte-identity is not
|
|
146
|
-
* promised
|
|
139
|
+
* promised (zip metadata and compression may differ), but part bodies, the
|
|
147
140
|
* part-name set, and part order are preserved.
|
|
148
141
|
*/
|
|
149
142
|
declare class OpcPackage {
|
|
@@ -176,7 +169,7 @@ declare class OpcPackage {
|
|
|
176
169
|
* later `save()` neither re-emits it nor flushes a stale `.rels` for it. A relationship set
|
|
177
170
|
* belongs to its part: one left behind would come back as the relationships of the next part
|
|
178
171
|
* added under the same name. Low-level: it does not touch references *to* this part
|
|
179
|
-
* (dangling rels are the caller's concern) nor cascade to parts this one referenced
|
|
172
|
+
* (dangling rels are the caller's concern) nor cascade to parts this one referenced; see
|
|
180
173
|
* {@link Presentation.removeSlide} for the slide-aware variant that unwires the presentation
|
|
181
174
|
* and prunes orphans.
|
|
182
175
|
*/
|
|
@@ -207,6 +200,5 @@ declare class OpcPackage {
|
|
|
207
200
|
*/
|
|
208
201
|
save(): Promise<Uint8Array>;
|
|
209
202
|
}
|
|
210
|
-
//#endregion
|
|
211
203
|
export { Part as a, Relationships as i, OpcPackage as n, Element as o, Relationship as r, ContentTypes as s, OpcInput as t };
|
|
212
|
-
//# sourceMappingURL=package-
|
|
204
|
+
//# sourceMappingURL=package-CANBWuSm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-CANBWuSm.d.ts","names":[],"sources":["../src/read/opc/content-types.ts","../src/read/opc/part.ts","../src/read/opc/relationships.ts","../src/read/opc/package.ts"],"mappings":";;;;;;;cAaa;;SAKL,MAAM,cAAc;;EAgC3B,eAAe;;MAKX;;;;;;;EAUJ,iBAAiB,kBAAkB;;;;;;EAWnC,eAAe;;EAKf,cAAc,mBAAmB;EAOjC;;;;;;;;;cCxEY;;WACH;WACA;EAKT,YAAY,kBAAkB,qBAAqB,OAAO;;MAOtD;;MAOA;;;;;;;;;;MAaA,iBAAiB;;;;;MAQjB,OAAO;;EAWX;MASI;;;;;;EASJ,aAAa;;UChFG;EAChB;EACA;EACA;EACA;;;;;;;;cASY;;;WAEH;UAIF;;;;;SAQA,MAAM,aAAa,yBAAyB;;SAuC5C,MAAM,yBAAyB;MAIlC;;MAKA;;;;;;;EAUJ,IAAI,cAAc,gBAAgB,uCAAuC;;;;;;;;EAgBzE,UAAU,YAAY,cAAc,gBAAgB,uCAAuC;;;;;;EA8B3F,OAAO;EASP,IAAI,aAAa;EAIjB,OAAO,eAAe;GAIrB,OAAO,aAAa,iBAAiB;;EAiBtC,cAAc;EAoBd;;;;;;;KCnLW,+BAA+B,aAAa,cAAc;;;;;;;;;cAezD;;;WAIH,cAAc;UAchB;;MAOH,SAAS,oBAAoB;SAIpB,KAAK,OAAO,WAAW,QAAQ;;;;;EAgC5C,KAAK,0BAA0B;EAI/B,mBAAmB,sBAAsB;;;;;EAoBzC,iBAAiB,0BAAuB;;;;;EAexC,QAAQ,kBAAkB,qBAAqB,OAAO,aAAa;;;;;;;;;;;EAuBnE,WAAW;;;;;EAgBX,qBAAqB,mBAAmB;;;;;;;;;;;;;;EAqBxC,oBAAoB,0BAA0B,QAAQ;;;;;;EAiChD,QAAQ,QAAQ"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/media/playbtn.ts
|
|
2
2
|
/**
|
|
3
3
|
* The default poster frame for an embedded video: PowerPoint's play-button overlay.
|
|
4
4
|
*
|
|
@@ -9,14 +9,13 @@
|
|
|
9
9
|
* dynamic import instead, and leave it out of the entry chunk.
|
|
10
10
|
*
|
|
11
11
|
* It is resolved during the async media pass, for a deck that actually carries media and only
|
|
12
|
-
* where the caller supplied no `cover` of their own
|
|
12
|
+
* where the caller supplied no `cover` of their own (see `SlideRelMedia.isDefaultCover`).
|
|
13
13
|
*
|
|
14
|
-
* **Generated
|
|
14
|
+
* **Generated: do not hand-edit.** `scripts/gen-playbtn.mjs` draws it from measured geometry and
|
|
15
15
|
* writes this file; that script's header is where the design and its two deliberate departures
|
|
16
16
|
* from the original artwork are written down. `pnpm run media:playbtn` rewrites it.
|
|
17
17
|
*/
|
|
18
18
|
const IMG_PLAYBTN = "data:image/png;base64,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5OTk1HVDcU43fo2Q+8EHH3xkRRcABGAAKLi4q/iaa675PAzPnTu3ZdasWScNx3V1dRc0NTVNBeqxsbGhycnJkwbV9957b+To0aOf36n78ssvj7hjFwAEYAAAAPijzlUCAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAgET+L42bXdU+VqmBAAAAAElFTkSuQmCC";
|
|
19
|
-
//#endregion
|
|
20
19
|
export { IMG_PLAYBTN };
|
|
21
20
|
|
|
22
|
-
//# sourceMappingURL=playbtn-
|
|
21
|
+
//# sourceMappingURL=playbtn-BQZFJir9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playbtn-BQZFJir9.js","names":[],"sources":["../src/media/playbtn.ts"],"sourcesContent":["/**\n * The default poster frame for an embedded video: PowerPoint's play-button overlay.\n *\n * Alone in a module because of its size. 19,312 base64 characters is about 14 kB of PNG, and\n * base64 of an already-compressed image barely deflates, so it is still the largest thing the\n * write path can reach. The chunker splits by module, so every chunk reaching this module is\n * charged the whole payload; keeping it alone is what lets `gen/media.ts` reach it through a\n * dynamic import instead, and leave it out of the entry chunk.\n *\n * It is resolved during the async media pass, for a deck that actually carries media and only\n * where the caller supplied no `cover` of their own (see `SlideRelMedia.isDefaultCover`).\n *\n * **Generated: do not hand-edit.** `scripts/gen-playbtn.mjs` draws it from measured geometry and\n * writes this file; that script's header is where the design and its two deliberate departures\n * from the original artwork are written down. `pnpm run media:playbtn` rewrites it.\n */\nexport const IMG_PLAYBTN =\n\t'data:image/png;base64,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5OTk1HVDcU43fo2Q+8EHH3xkRRcABGAAKLi4q/iaa675PAzPnTu3ZdasWScNx3V1dRc0NTVNBeqxsbGhycnJkwbV9957b+To0aOf36n78ssvj7hjFwAEYAAAAPijzlUCAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAAAAARgAAAAEYAAAABCAAQAAQAAGAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAAABGAAAAARgAAAAEIABAABAAAYAAEAABgAAAAEYAAAABGAAAAAQgAEAAEAABgAAgET+L42bXdU+VqmBAAAAAElFTkSuQmCC'\n"],"mappings":";;;;;;;;;;;;;;;;;AAgBA,MAAa,cACZ"}
|