@taloswork/ose-shared 0.1.1 → 0.1.3
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/package.json +3 -3
- package/skills/document/SKILL.md +29 -33
- package/skills/document/assets/fonts/Archivo-Regular.woff2 +0 -0
- package/skills/document/assets/fonts/Archivo-SemiBold.woff2 +0 -0
- package/skills/document/assets/fonts/BigShouldersDisplay-Bold.woff2 +0 -0
- package/skills/document/assets/fonts/BodoniModa-SemiBold.woff2 +0 -0
- package/skills/document/assets/fonts/CormorantGaramond-SemiBold.woff2 +0 -0
- package/skills/document/assets/fonts/Fraunces-SemiBold.woff2 +0 -0
- package/skills/document/assets/fonts/GochiHand-Regular.woff2 +0 -0
- package/skills/document/assets/fonts/IBMPlexSans-Regular.woff2 +0 -0
- package/skills/document/assets/fonts/IBMPlexSans-SemiBold.woff2 +0 -0
- package/skills/document/assets/fonts/Inter-Regular.woff2 +0 -0
- package/skills/document/assets/fonts/Jost-Regular.woff2 +0 -0
- package/skills/document/assets/fonts/Jost-SemiBold.woff2 +0 -0
- package/skills/document/assets/fonts/Karla-Regular.woff2 +0 -0
- package/skills/document/assets/fonts/Lora-Regular.woff2 +0 -0
- package/skills/document/assets/fonts/Manrope-Bold.woff2 +0 -0
- package/skills/document/assets/fonts/Manrope-Regular.woff2 +0 -0
- package/skills/document/assets/fonts/Marcellus-Regular.woff2 +0 -0
- package/skills/document/assets/fonts/PublicSans-Regular.woff2 +0 -0
- package/skills/document/assets/fonts/Sora-Regular.woff2 +0 -0
- package/skills/document/assets/fonts/Sora-SemiBold.woff2 +0 -0
- package/skills/document/assets/fonts/fonts.json +218 -0
- package/skills/document/bin/deck-build.cjs +275 -7
- package/skills/document/bin/deck-qa.cjs +1 -1
- package/skills/document/bin/doc-convert.cjs +11 -11
- package/skills/document/bin/doc-fill.cjs +1 -1
- package/skills/document/bin/doc-gen.cjs +119 -34
- package/skills/document/bin/doc-scan.cjs +8 -10
- package/skills/document/bin/doc-text.cjs +1 -1
- package/skills/document/bin/doc-validate.cjs +3 -3
- package/skills/document/bin/doc-xml.cjs +3 -3
- package/skills/document/bin/docx-annotate.cjs +3 -3
- package/skills/document/bin/html2pptx.cjs +290 -59
- package/skills/document/bin/ocr.cjs +1 -1
- package/skills/document/bin/pdf-form.cjs +1 -1
- package/skills/document/bin/pdf-images.cjs +1 -1
- package/skills/document/bin/pdf-ops.cjs +2 -2
- package/skills/document/bin/pdf-render.cjs +1 -1
- package/skills/document/bin/pdf-tables.cjs +1 -1
- package/skills/document/bin/pptx-clone.cjs +3 -3
- package/skills/document/bin/pptx-embed-fonts.cjs +1 -1
- package/skills/document/bin/pptx-set-image.cjs +3 -3
- package/skills/document/bin/pptx-slide.cjs +4 -4
- package/skills/document/bin/pptx-theme.cjs +1 -1
- package/skills/document/bin/pptx-tokenize.cjs +3 -3
- package/skills/document/bin/xlsx-query.cjs +1 -1
- package/skills/document/bin/xlsx-recalc.cjs +2 -2
- package/skills/document/catalog.json +25 -0
- package/skills/document/deck-design.md +191 -0
- package/skills/document/layouts/README.md +32 -0
- package/skills/document/layouts/banner-columns.tpl +9 -9
- package/skills/document/layouts/bento.tpl +3 -3
- package/skills/document/layouts/big-stat.tpl +3 -3
- package/skills/document/layouts/blocks-2x2.tpl +12 -12
- package/skills/document/layouts/brand-values.tpl +5 -5
- package/skills/document/layouts/cards-3.tpl +3 -3
- package/skills/document/layouts/cards-grid.tpl +3 -3
- package/skills/document/layouts/chart-full.tpl +3 -3
- package/skills/document/layouts/chart-kpi.tpl +3 -3
- package/skills/document/layouts/color-palette.tpl +5 -5
- package/skills/document/layouts/comparison.tpl +3 -3
- package/skills/document/layouts/concept-hub.tpl +3 -3
- package/skills/document/layouts/cover-centered.tpl +1 -1
- package/skills/document/layouts/cover-image.tpl +1 -1
- package/skills/document/layouts/cover-minimal.tpl +3 -3
- package/skills/document/layouts/cover-statement.tpl +3 -3
- package/skills/document/layouts/cover.tpl +1 -1
- package/skills/document/layouts/data-table.tpl +3 -3
- package/skills/document/layouts/dos-donts.tpl +14 -14
- package/skills/document/layouts/editorial-panel.tpl +11 -11
- package/skills/document/layouts/ending-contact.tpl +1 -1
- package/skills/document/layouts/ending.tpl +1 -1
- package/skills/document/layouts/funnel.tpl +3 -3
- package/skills/document/layouts/gantt.tpl +3 -3
- package/skills/document/layouts/hero.tpl +3 -3
- package/skills/document/layouts/icon-row.tpl +3 -3
- package/skills/document/layouts/image-full.tpl +5 -5
- package/skills/document/layouts/image-grid.tpl +3 -3
- package/skills/document/layouts/image-left.tpl +3 -3
- package/skills/document/layouts/list.tpl +3 -3
- package/skills/document/layouts/logo-guidelines.tpl +8 -8
- package/skills/document/layouts/map-distribution.tpl +3 -3
- package/skills/document/layouts/map-quad.tpl +6 -6
- package/skills/document/layouts/matrix-2x2.tpl +3 -3
- package/skills/document/layouts/numbered-brief.tpl +12 -12
- package/skills/document/layouts/org-tree.tpl +3 -3
- package/skills/document/layouts/problem-solution-banner.tpl +7 -7
- package/skills/document/layouts/problem-solution.tpl +3 -3
- package/skills/document/layouts/pyramid.tpl +3 -3
- package/skills/document/layouts/quote.tpl +1 -1
- package/skills/document/layouts/radar.tpl +3 -3
- package/skills/document/layouts/ring-progress.tpl +3 -3
- package/skills/document/layouts/section-fullbleed.tpl +3 -3
- package/skills/document/layouts/section-image.tpl +1 -1
- package/skills/document/layouts/section-stat.tpl +1 -1
- package/skills/document/layouts/section.tpl +1 -1
- package/skills/document/layouts/slots.json +1 -1
- package/skills/document/layouts/split-two-col.tpl +3 -3
- package/skills/document/layouts/stats-chart.tpl +3 -3
- package/skills/document/layouts/steps-serpentine.tpl +11 -11
- package/skills/document/layouts/steps-vertical.tpl +3 -3
- package/skills/document/layouts/steps.tpl +3 -3
- package/skills/document/layouts/team-row.tpl +4 -4
- package/skills/document/layouts/three-kpi.tpl +3 -3
- package/skills/document/layouts/timeline.tpl +3 -3
- package/skills/document/layouts/title-meta.tpl +5 -5
- package/skills/document/layouts/title.tpl +2 -2
- package/skills/document/layouts/toc-agenda.tpl +3 -3
- package/skills/document/layouts/toc-editorial.tpl +15 -0
- package/skills/document/layouts/toc-panel.tpl +4 -4
- package/skills/document/layouts/toc.tpl +3 -3
- package/skills/document/layouts/transition.tpl +1 -1
- package/skills/document/layouts/two-kpi.tpl +3 -3
- package/skills/document/layouts/type-specimen.tpl +10 -10
- package/skills/document/layouts/versus.tpl +3 -3
- package/skills/document/motion/README.md +11 -0
- package/skills/document/packs/README.md +9 -0
- package/skills/document/styles/README.md +36 -15
- package/skills/document/styles/_contract-defaults.css +55 -0
- package/skills/document/styles/_samples/_groups/biz-premium.webp +0 -0
- package/skills/document/styles/_samples/_groups/creative.webp +0 -0
- package/skills/document/styles/_samples/_groups/editorial.webp +0 -0
- package/skills/document/styles/_samples/_groups/minimal.webp +0 -0
- package/skills/document/styles/_samples/_groups/natural.webp +0 -0
- package/skills/document/styles/_samples/_groups/tech-future.webp +0 -0
- package/skills/document/styles/_samples/anthropic.webp +0 -0
- package/skills/document/styles/_samples/apple.webp +0 -0
- package/skills/document/styles/_samples/black-gold.webp +0 -0
- package/skills/document/styles/_samples/branding.webp +0 -0
- package/skills/document/styles/_samples/cinereel.webp +0 -0
- package/skills/document/styles/_samples/cool.webp +0 -0
- package/skills/document/styles/_samples/hand-drawn.webp +0 -0
- package/skills/document/styles/_samples/ivory-gold.webp +0 -0
- package/skills/document/styles/_samples/magazine-ink.webp +0 -0
- package/skills/document/styles/_samples/mckinsey.webp +0 -0
- package/skills/document/styles/_samples/mono.webp +0 -0
- package/skills/document/styles/_samples/olive-gold.webp +0 -0
- package/skills/document/styles/_samples/swiss-grid.webp +0 -0
- package/skills/document/styles/anthropic/backdrop.html +4 -0
- package/skills/document/styles/anthropic/skin.css +15 -8
- package/skills/document/styles/apple/backdrop.html +4 -1
- package/skills/document/styles/apple/skin.css +5 -2
- package/skills/document/styles/black-gold/backdrop.html +3 -0
- package/skills/document/styles/black-gold/skin.css +15 -8
- package/skills/document/styles/branding/backdrop.html +4 -0
- package/skills/document/styles/branding/skin.css +14 -7
- package/skills/document/styles/cinereel/skin.css +28 -10
- package/skills/document/styles/cool/backdrop.html +3 -0
- package/skills/document/styles/cool/skin.css +5 -2
- package/skills/document/styles/hand-drawn/skin.css +14 -6
- package/skills/document/styles/ivory-gold/skin.css +19 -6
- package/skills/document/styles/magazine-ink/skin.css +6 -1
- package/skills/document/styles/mckinsey/backdrop.html +5 -0
- package/skills/document/styles/mckinsey/skin.css +5 -2
- package/skills/document/styles/mono/backdrop.html +6 -0
- package/skills/document/styles/mono/skin.css +5 -2
- package/skills/document/styles/olive-gold/backdrop.html +5 -0
- package/skills/document/styles/olive-gold/skin.css +15 -8
- package/skills/document/styles/swiss-grid/skin.css +6 -1
|
@@ -13795,9 +13795,9 @@ var require_load = __commonJS({
|
|
|
13795
13795
|
var require_lib3 = __commonJS({
|
|
13796
13796
|
"node_modules/jszip/lib/index.js"(exports2, module2) {
|
|
13797
13797
|
"use strict";
|
|
13798
|
-
function
|
|
13799
|
-
if (!(this instanceof
|
|
13800
|
-
return new
|
|
13798
|
+
function JSZip5() {
|
|
13799
|
+
if (!(this instanceof JSZip5)) {
|
|
13800
|
+
return new JSZip5();
|
|
13801
13801
|
}
|
|
13802
13802
|
if (arguments.length) {
|
|
13803
13803
|
throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");
|
|
@@ -13806,7 +13806,7 @@ var require_lib3 = __commonJS({
|
|
|
13806
13806
|
this.comment = null;
|
|
13807
13807
|
this.root = "";
|
|
13808
13808
|
this.clone = function() {
|
|
13809
|
-
var newObj = new
|
|
13809
|
+
var newObj = new JSZip5();
|
|
13810
13810
|
for (var i in this) {
|
|
13811
13811
|
if (typeof this[i] !== "function") {
|
|
13812
13812
|
newObj[i] = this[i];
|
|
@@ -13815,16 +13815,16 @@ var require_lib3 = __commonJS({
|
|
|
13815
13815
|
return newObj;
|
|
13816
13816
|
};
|
|
13817
13817
|
}
|
|
13818
|
-
|
|
13819
|
-
|
|
13820
|
-
|
|
13821
|
-
|
|
13822
|
-
|
|
13823
|
-
|
|
13824
|
-
return new
|
|
13818
|
+
JSZip5.prototype = require_object();
|
|
13819
|
+
JSZip5.prototype.loadAsync = require_load();
|
|
13820
|
+
JSZip5.support = require_support();
|
|
13821
|
+
JSZip5.defaults = require_defaults();
|
|
13822
|
+
JSZip5.version = "3.10.1";
|
|
13823
|
+
JSZip5.loadAsync = function(content, options) {
|
|
13824
|
+
return new JSZip5().loadAsync(content, options);
|
|
13825
13825
|
};
|
|
13826
|
-
|
|
13827
|
-
module2.exports =
|
|
13826
|
+
JSZip5.external = require_external();
|
|
13827
|
+
module2.exports = JSZip5;
|
|
13828
13828
|
}
|
|
13829
13829
|
});
|
|
13830
13830
|
|
|
@@ -16738,7 +16738,7 @@ var require_browser_buffer_encode = __commonJS({
|
|
|
16738
16738
|
var require_zip_stream = __commonJS({
|
|
16739
16739
|
"node_modules/exceljs/lib/utils/zip-stream.js"(exports2, module2) {
|
|
16740
16740
|
var events = require("events");
|
|
16741
|
-
var
|
|
16741
|
+
var JSZip5 = require_lib3();
|
|
16742
16742
|
var StreamBuf = require_stream_buf();
|
|
16743
16743
|
var { stringToBuffer } = require_browser_buffer_encode();
|
|
16744
16744
|
var ZipWriter = class extends events.EventEmitter {
|
|
@@ -16751,7 +16751,7 @@ var require_zip_stream = __commonJS({
|
|
|
16751
16751
|
},
|
|
16752
16752
|
options
|
|
16753
16753
|
);
|
|
16754
|
-
this.zip = new
|
|
16754
|
+
this.zip = new JSZip5();
|
|
16755
16755
|
this.stream = new StreamBuf();
|
|
16756
16756
|
}
|
|
16757
16757
|
append(data, options) {
|
|
@@ -28431,7 +28431,7 @@ var require_theme1 = __commonJS({
|
|
|
28431
28431
|
var require_xlsx = __commonJS({
|
|
28432
28432
|
"node_modules/exceljs/lib/xlsx/xlsx.js"(exports2, module2) {
|
|
28433
28433
|
var fs = require("fs");
|
|
28434
|
-
var
|
|
28434
|
+
var JSZip5 = require_lib3();
|
|
28435
28435
|
var { PassThrough } = require_readable2();
|
|
28436
28436
|
var ZipStream = require_zip_stream();
|
|
28437
28437
|
var StreamBuf = require_stream_buf();
|
|
@@ -28670,7 +28670,7 @@ var require_xlsx = __commonJS({
|
|
|
28670
28670
|
tables: {},
|
|
28671
28671
|
vmlDrawings: {}
|
|
28672
28672
|
};
|
|
28673
|
-
const zip = await
|
|
28673
|
+
const zip = await JSZip5.loadAsync(buffer);
|
|
28674
28674
|
for (const entry of Object.values(zip.files)) {
|
|
28675
28675
|
if (!entry.dir) {
|
|
28676
28676
|
let entryName = entry.name;
|
|
@@ -72933,11 +72933,11 @@ var require_excel = __commonJS({
|
|
|
72933
72933
|
var require_pptxgen_cjs = __commonJS({
|
|
72934
72934
|
"node_modules/pptxgenjs/dist/pptxgen.cjs.js"(exports2, module2) {
|
|
72935
72935
|
"use strict";
|
|
72936
|
-
var
|
|
72936
|
+
var JSZip5 = require_lib3();
|
|
72937
72937
|
function _interopDefaultLegacy(e) {
|
|
72938
72938
|
return e && typeof e === "object" && "default" in e ? e : { "default": e };
|
|
72939
72939
|
}
|
|
72940
|
-
var JSZip__default = /* @__PURE__ */ _interopDefaultLegacy(
|
|
72940
|
+
var JSZip__default = /* @__PURE__ */ _interopDefaultLegacy(JSZip5);
|
|
72941
72941
|
var __assign2 = function() {
|
|
72942
72942
|
__assign2 = Object.assign || function __assign3(t) {
|
|
72943
72943
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
@@ -151933,7 +151933,7 @@ var findPatchKeys = (text) => {
|
|
|
151933
151933
|
return (_text$match = text.match(pattern)) !== null && _text$match !== void 0 ? _text$match : [];
|
|
151934
151934
|
};
|
|
151935
151935
|
|
|
151936
|
-
// packages/core/dist/
|
|
151936
|
+
// packages/core/dist/document/doc-gen.js
|
|
151937
151937
|
var import_exceljs = __toESM(require_excel(), 1);
|
|
151938
151938
|
var import_jszip = __toESM(require_lib3(), 1);
|
|
151939
151939
|
var import_pptxgenjs = __toESM(require_pptxgen_cjs(), 1);
|
|
@@ -151941,7 +151941,7 @@ var import_pdf_lib = __toESM(require_cjs(), 1);
|
|
|
151941
151941
|
var import_fontkit = __toESM(require_fontkit_umd(), 1);
|
|
151942
151942
|
var import_node_fs = require("node:fs");
|
|
151943
151943
|
|
|
151944
|
-
// packages/core/dist/
|
|
151944
|
+
// packages/core/dist/document/doc-theme.js
|
|
151945
151945
|
var DEFAULT_THEME = {
|
|
151946
151946
|
bestFor: "",
|
|
151947
151947
|
fonts: { heading: "", body: "" },
|
|
@@ -152175,7 +152175,7 @@ function themeCssVars(theme) {
|
|
|
152175
152175
|
return `:root{${lines.join(";")}}`;
|
|
152176
152176
|
}
|
|
152177
152177
|
|
|
152178
|
-
// packages/core/dist/
|
|
152178
|
+
// packages/core/dist/document/doc-palette.js
|
|
152179
152179
|
var PALETTE_LIBRARY = [
|
|
152180
152180
|
{
|
|
152181
152181
|
name: "corporate-navy",
|
|
@@ -152413,7 +152413,7 @@ function listPalettes() {
|
|
|
152413
152413
|
return PALETTE_LIBRARY.map(({ name, mood, dark }) => ({ name, mood, dark }));
|
|
152414
152414
|
}
|
|
152415
152415
|
|
|
152416
|
-
// packages/core/dist/
|
|
152416
|
+
// packages/core/dist/document/lucide-icons.js
|
|
152417
152417
|
var LUCIDE_ICONS = {
|
|
152418
152418
|
check: '<path d="M20 6 9 17l-5-5"/>',
|
|
152419
152419
|
"check-circle": '<circle cx="12" cy="12" r="10"/><path d="m9 12 2 2 4-4"/>',
|
|
@@ -152470,7 +152470,7 @@ function iconSvgDataUri(name, colorHex) {
|
|
|
152470
152470
|
return "data:image/svg+xml;base64," + Buffer.from(svg).toString("base64");
|
|
152471
152471
|
}
|
|
152472
152472
|
|
|
152473
|
-
// packages/core/dist/
|
|
152473
|
+
// packages/core/dist/document/doc-gen.js
|
|
152474
152474
|
function bareHex(c) {
|
|
152475
152475
|
return c.replace("#", "").toUpperCase();
|
|
152476
152476
|
}
|
|
@@ -154029,7 +154029,7 @@ async function generateDocument(kind, spec, theme) {
|
|
|
154029
154029
|
}
|
|
154030
154030
|
}
|
|
154031
154031
|
|
|
154032
|
-
// packages/core/dist/
|
|
154032
|
+
// packages/core/dist/document/doc-html.js
|
|
154033
154033
|
var FONT_STACK = 'TalosCJK, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", "WenQuanYi Zen Hei", sans-serif';
|
|
154034
154034
|
function stackWith(font) {
|
|
154035
154035
|
return font ? `"${font.replace(/"/g, "")}", ${FONT_STACK}` : FONT_STACK;
|
|
@@ -154132,7 +154132,7 @@ var import_node_path = require("node:path");
|
|
|
154132
154132
|
var import_node_fs2 = require("node:fs");
|
|
154133
154133
|
var import_node_crypto = require("node:crypto");
|
|
154134
154134
|
|
|
154135
|
-
// packages/core/dist/
|
|
154135
|
+
// packages/core/dist/document/tpl-interp.js
|
|
154136
154136
|
var TAG = /\{\{\{?\s*([#/]?)\s*([^}]*?)\s*\}?\}\}/g;
|
|
154137
154137
|
function parseTemplate(src) {
|
|
154138
154138
|
const tokens = [];
|
|
@@ -154251,7 +154251,7 @@ function interpolate(src, data) {
|
|
|
154251
154251
|
return render(parseTemplate(src), { ctx: data });
|
|
154252
154252
|
}
|
|
154253
154253
|
|
|
154254
|
-
// packages/core/dist/
|
|
154254
|
+
// packages/core/dist/document/html-templates.js
|
|
154255
154255
|
var CARD = "background:var(--card-bg);border:1px solid var(--border);border-radius:16px";
|
|
154256
154256
|
var TEMPLATES = {
|
|
154257
154257
|
cover: {
|
|
@@ -154405,10 +154405,10 @@ function contrastHex(hex) {
|
|
|
154405
154405
|
return lum > 0.55 ? "#1a1a1a" : "#ffffff";
|
|
154406
154406
|
}
|
|
154407
154407
|
|
|
154408
|
-
// packages/core/dist/
|
|
154409
|
-
var
|
|
154408
|
+
// packages/core/dist/document/html-pptx.js
|
|
154409
|
+
var import_jszip4 = __toESM(require_lib3(), 1);
|
|
154410
154410
|
|
|
154411
|
-
// packages/core/dist/
|
|
154411
|
+
// packages/core/dist/document/pptx-anim.js
|
|
154412
154412
|
var import_jszip2 = __toESM(require_lib3(), 1);
|
|
154413
154413
|
var FLY_SUBTYPE = { "fly-up": 4, "fly-down": 1, "fly-left": 2, "fly-right": 8 };
|
|
154414
154414
|
function setVisible(id, spid) {
|
|
@@ -154447,11 +154447,15 @@ function buildSlideTiming(steps, spidOf) {
|
|
|
154447
154447
|
return "";
|
|
154448
154448
|
let id = 100;
|
|
154449
154449
|
const next = () => id++;
|
|
154450
|
+
const beatOpened = /* @__PURE__ */ new Set();
|
|
154450
154451
|
const stepPars = resolved.map(({ s, spid }, i) => {
|
|
154451
154452
|
const { id: pid, sub } = presetOf(s.effect);
|
|
154452
154453
|
const dur = Math.max(1, Math.round(s.durMs ?? 500));
|
|
154453
|
-
const
|
|
154454
|
-
|
|
154454
|
+
const ridesAlong = s.group !== void 0 && beatOpened.has(s.group);
|
|
154455
|
+
if (s.group !== void 0)
|
|
154456
|
+
beatOpened.add(s.group);
|
|
154457
|
+
const delay = ridesAlong ? 0 : Math.max(0, Math.round(s.delayMs ?? (i === 0 ? 0 : 200)));
|
|
154458
|
+
const node = ridesAlong ? "withEffect" : i === 0 ? "clickEffect" : s.start === "with" ? "withEffect" : "afterEffect";
|
|
154455
154459
|
const effectCtnId = next();
|
|
154456
154460
|
const beh = behaviorsOf(s.effect, next, spid, dur);
|
|
154457
154461
|
return `<p:par><p:cTn id="${effectCtnId}" presetID="${pid}" presetClass="entr" presetSubtype="${sub}" fill="hold" grpId="0" nodeType="${node}"><p:stCondLst><p:cond delay="${delay}"/></p:stCondLst><p:childTnLst>${beh}</p:childTnLst></p:cTn></p:par>`;
|
|
@@ -154485,7 +154489,85 @@ async function injectAnimations(buf, perSlide) {
|
|
|
154485
154489
|
return await zip.generateAsync({ type: "nodebuffer", compression: "DEFLATE" });
|
|
154486
154490
|
}
|
|
154487
154491
|
|
|
154488
|
-
// packages/core/dist/
|
|
154492
|
+
// packages/core/dist/document/pptx-transition.js
|
|
154493
|
+
var import_jszip3 = __toESM(require_lib3(), 1);
|
|
154494
|
+
var MC_NS = "http://schemas.openxmlformats.org/markup-compatibility/2006";
|
|
154495
|
+
var P14_NS = "http://schemas.microsoft.com/office/powerpoint/2010/main";
|
|
154496
|
+
var P159_NS = "http://schemas.microsoft.com/office/powerpoint/2015/09/main";
|
|
154497
|
+
var STANDARD = {
|
|
154498
|
+
cut: { tag: "cut", dirs: null },
|
|
154499
|
+
fade: { tag: "fade", dirs: null },
|
|
154500
|
+
dissolve: { tag: "dissolve", dirs: null },
|
|
154501
|
+
wedge: { tag: "wedge", dirs: null },
|
|
154502
|
+
wipe: { tag: "wipe", dirs: ["l", "r", "u", "d"], defaultDir: "l" },
|
|
154503
|
+
push: { tag: "push", dirs: ["l", "r", "u", "d"], defaultDir: "l" },
|
|
154504
|
+
cover: { tag: "cover", dirs: ["l", "r", "u", "d"], defaultDir: "l" },
|
|
154505
|
+
zoom: { tag: "zoom", dirs: ["in", "out"], defaultDir: "in" },
|
|
154506
|
+
split: { tag: "split", dirs: ["in", "out"], dirAttr: "dir", defaultDir: "in" }
|
|
154507
|
+
};
|
|
154508
|
+
var MORPH = "morph";
|
|
154509
|
+
var TRANSITION_EFFECTS = [...Object.keys(STANDARD), MORPH];
|
|
154510
|
+
function speedOf(durMs) {
|
|
154511
|
+
if (durMs === void 0)
|
|
154512
|
+
return "med";
|
|
154513
|
+
if (durMs >= 1e3)
|
|
154514
|
+
return "slow";
|
|
154515
|
+
if (durMs >= 500)
|
|
154516
|
+
return "med";
|
|
154517
|
+
return "fast";
|
|
154518
|
+
}
|
|
154519
|
+
function effectElement(effect, dir) {
|
|
154520
|
+
const def = STANDARD[effect];
|
|
154521
|
+
if (!def)
|
|
154522
|
+
return "<p:fade/>";
|
|
154523
|
+
if (!def.dirs)
|
|
154524
|
+
return `<p:${def.tag}/>`;
|
|
154525
|
+
const chosen = dir && def.dirs.includes(dir) ? dir : def.defaultDir;
|
|
154526
|
+
return `<p:${def.tag} ${def.dirAttr ?? "dir"}="${chosen}"/>`;
|
|
154527
|
+
}
|
|
154528
|
+
function buildTransition(spec) {
|
|
154529
|
+
const effect = (spec.effect || "").trim();
|
|
154530
|
+
if (!effect || effect === "none")
|
|
154531
|
+
return "";
|
|
154532
|
+
const spd = speedOf(spec.durMs);
|
|
154533
|
+
const dur = spec.durMs !== void 0 ? Math.max(1, Math.round(spec.durMs)) : void 0;
|
|
154534
|
+
const isMorph = effect === MORPH;
|
|
154535
|
+
const plain = `<p:transition spd="${spd}">${effectElement(isMorph ? "fade" : effect, spec.dir)}</p:transition>`;
|
|
154536
|
+
if (!isMorph && dur === void 0)
|
|
154537
|
+
return plain;
|
|
154538
|
+
const choiceNs = isMorph ? ` xmlns:p14="${P14_NS}" xmlns:p159="${P159_NS}" Requires="p159"` : ` xmlns:p14="${P14_NS}" Requires="p14"`;
|
|
154539
|
+
const inner = isMorph ? `<p159:morph option="byObject"/>` : effectElement(effect, spec.dir);
|
|
154540
|
+
const durAttr = dur !== void 0 ? ` p14:dur="${dur}"` : "";
|
|
154541
|
+
return `<mc:AlternateContent xmlns:mc="${MC_NS}"><mc:Choice${choiceNs}><p:transition spd="${spd}"${durAttr}>${inner}</p:transition></mc:Choice><mc:Fallback>${plain}</mc:Fallback></mc:AlternateContent>`;
|
|
154542
|
+
}
|
|
154543
|
+
async function injectTransitions(buf, perSlide) {
|
|
154544
|
+
if (!perSlide.some((t) => t && t.effect && t.effect !== "none"))
|
|
154545
|
+
return buf;
|
|
154546
|
+
const zip = await import_jszip3.default.loadAsync(buf);
|
|
154547
|
+
const slidePaths = Object.keys(zip.files).filter((p) => /^ppt\/slides\/slide\d+\.xml$/.test(p)).sort((a, b) => parseInt(a.match(/(\d+)/)[1], 10) - parseInt(b.match(/(\d+)/)[1], 10));
|
|
154548
|
+
for (let i = 0; i < slidePaths.length; i++) {
|
|
154549
|
+
const spec = perSlide[i];
|
|
154550
|
+
if (!spec)
|
|
154551
|
+
continue;
|
|
154552
|
+
const xml0 = await zip.file(slidePaths[i]).async("string");
|
|
154553
|
+
if (xml0.includes("<p:transition") || xml0.includes("mc:AlternateContent"))
|
|
154554
|
+
continue;
|
|
154555
|
+
const frag = buildTransition(spec);
|
|
154556
|
+
if (!frag)
|
|
154557
|
+
continue;
|
|
154558
|
+
let xml;
|
|
154559
|
+
if (xml0.includes("</p:clrMapOvr>"))
|
|
154560
|
+
xml = xml0.replace("</p:clrMapOvr>", `</p:clrMapOvr>${frag}`);
|
|
154561
|
+
else if (xml0.includes("</p:cSld>"))
|
|
154562
|
+
xml = xml0.replace("</p:cSld>", `</p:cSld>${frag}`);
|
|
154563
|
+
else
|
|
154564
|
+
continue;
|
|
154565
|
+
zip.file(slidePaths[i], xml);
|
|
154566
|
+
}
|
|
154567
|
+
return await zip.generateAsync({ type: "nodebuffer", compression: "DEFLATE" });
|
|
154568
|
+
}
|
|
154569
|
+
|
|
154570
|
+
// packages/core/dist/document/html-pptx.js
|
|
154489
154571
|
var DEFAULT_CHART_RAMP = ["2563EB", "10B981", "F59E0B", "EF4444", "8B5CF6", "06B6D4"];
|
|
154490
154572
|
var SLIDE_W_IN = 13.333;
|
|
154491
154573
|
var SLIDE_H_IN = 7.5;
|
|
@@ -154582,7 +154664,7 @@ function gradFillXml(g) {
|
|
|
154582
154664
|
return `<a:gradFill rotWithShape="1"><a:gsLst>${gs}</a:gsLst><a:lin ang="${Math.round(deg * 6e4)}" scaled="1"/></a:gradFill>`;
|
|
154583
154665
|
}
|
|
154584
154666
|
async function injectGradients(buf, grads) {
|
|
154585
|
-
const zip = await
|
|
154667
|
+
const zip = await import_jszip4.default.loadAsync(buf);
|
|
154586
154668
|
for (const path of Object.keys(zip.files).filter((p) => /^ppt\/slides\/slide\d+\.xml$/.test(p))) {
|
|
154587
154669
|
let xml = await zip.file(path).async("string");
|
|
154588
154670
|
let changed = false;
|
|
@@ -154650,6 +154732,7 @@ async function convertLayoutToPptx(snapshot) {
|
|
|
154650
154732
|
pptx.layout = "TALOS_HTML_WIDE";
|
|
154651
154733
|
const gradients = [];
|
|
154652
154734
|
const perSlideAnims = [];
|
|
154735
|
+
const perSlideTransitions = [];
|
|
154653
154736
|
for (const [slideNo, slideSpec] of snapshot.slides.entries()) {
|
|
154654
154737
|
const slide = pptx.addSlide();
|
|
154655
154738
|
const bg = cssColorToHex(slideSpec.background);
|
|
@@ -154857,10 +154940,12 @@ async function convertLayoutToPptx(snapshot) {
|
|
|
154857
154940
|
if (slideSpec.speakerNotes)
|
|
154858
154941
|
slide.addNotes(String(slideSpec.speakerNotes));
|
|
154859
154942
|
perSlideAnims.push(slideAnims);
|
|
154943
|
+
perSlideTransitions.push(slideSpec.transition);
|
|
154860
154944
|
}
|
|
154861
154945
|
let buf = await pptx.write("nodebuffer");
|
|
154862
154946
|
if (gradients.length)
|
|
154863
154947
|
buf = await injectGradients(buf, gradients);
|
|
154948
|
+
buf = await injectTransitions(buf, perSlideTransitions);
|
|
154864
154949
|
buf = await injectAnimations(buf, perSlideAnims);
|
|
154865
154950
|
return { bytes: await finalizePptx(new Uint8Array(buf)), warnings };
|
|
154866
154951
|
}
|
|
@@ -5,18 +5,9 @@
|
|
|
5
5
|
var import_promises = require("node:fs/promises");
|
|
6
6
|
var import_node_path2 = require("node:path");
|
|
7
7
|
|
|
8
|
-
// packages/core/dist/
|
|
8
|
+
// packages/core/dist/document/pdf-extract.js
|
|
9
9
|
var import_node_path = require("node:path");
|
|
10
10
|
var import_node_url = require("node:url");
|
|
11
|
-
|
|
12
|
-
// packages/core/dist/fs/doc-scan.js
|
|
13
|
-
var SCANNED_TEXT_CHARS = 20;
|
|
14
|
-
var SCAN_IMAGE_COVERAGE = 0.5;
|
|
15
|
-
function isScannedPage(s) {
|
|
16
|
-
return s.textChars <= SCANNED_TEXT_CHARS && s.imageCoverage >= SCAN_IMAGE_COVERAGE;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
// packages/core/dist/fs/pdf-extract.js
|
|
20
11
|
var _mupdf = null;
|
|
21
12
|
function loadMupdf() {
|
|
22
13
|
if (!_mupdf) {
|
|
@@ -183,6 +174,13 @@ async function scanPdfSignals(bytes) {
|
|
|
183
174
|
return signals;
|
|
184
175
|
}
|
|
185
176
|
|
|
177
|
+
// packages/core/dist/document/doc-scan.js
|
|
178
|
+
var SCANNED_TEXT_CHARS = 20;
|
|
179
|
+
var SCAN_IMAGE_COVERAGE = 0.5;
|
|
180
|
+
function isScannedPage(s) {
|
|
181
|
+
return s.textChars <= SCANNED_TEXT_CHARS && s.imageCoverage >= SCAN_IMAGE_COVERAGE;
|
|
182
|
+
}
|
|
183
|
+
|
|
186
184
|
// apps/admin/data/skills.lib/document/bin-src/doc-scan.mjs
|
|
187
185
|
function die(msg, code = 1) {
|
|
188
186
|
process.stderr.write(`doc-scan: ${msg}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
var import_promises = require("node:fs/promises");
|
|
6
6
|
var import_node_path2 = require("node:path");
|
|
7
7
|
|
|
8
|
-
// packages/core/dist/
|
|
8
|
+
// packages/core/dist/document/pdf-extract.js
|
|
9
9
|
var import_node_path = require("node:path");
|
|
10
10
|
var import_node_url = require("node:url");
|
|
11
11
|
var _mupdf = null;
|
|
@@ -9819,7 +9819,7 @@ var require_lib3 = __commonJS({
|
|
|
9819
9819
|
var import_promises2 = require("node:fs/promises");
|
|
9820
9820
|
var import_node_path2 = require("node:path");
|
|
9821
9821
|
|
|
9822
|
-
// packages/core/dist/
|
|
9822
|
+
// packages/core/dist/document/doc-validate.js
|
|
9823
9823
|
var import_jszip = __toESM(require_lib3(), 1);
|
|
9824
9824
|
var NAME_RE = /^[A-Za-z_:][A-Za-z0-9_.:-]*/;
|
|
9825
9825
|
function xmlWellFormednessErrors(xml, maxErrors = 5) {
|
|
@@ -10037,7 +10037,7 @@ async function validateOoxml(bytes) {
|
|
|
10037
10037
|
return result(root.kind);
|
|
10038
10038
|
}
|
|
10039
10039
|
|
|
10040
|
-
// packages/core/dist/
|
|
10040
|
+
// packages/core/dist/document/doc-xsd.js
|
|
10041
10041
|
var import_node_path = require("node:path");
|
|
10042
10042
|
var import_node_url = require("node:url");
|
|
10043
10043
|
var import_promises = require("node:fs/promises");
|
|
@@ -10139,7 +10139,7 @@ async function validateOoxmlStrict(bytes, schemaDir) {
|
|
|
10139
10139
|
return { ok: errors.length === 0, checked, skipped, errors };
|
|
10140
10140
|
}
|
|
10141
10141
|
|
|
10142
|
-
// packages/core/dist/
|
|
10142
|
+
// packages/core/dist/document/doc-design-lint.js
|
|
10143
10143
|
var import_jszip3 = __toESM(require_lib3(), 1);
|
|
10144
10144
|
var PLACEHOLDER_RE = /替换为|在这里写|占位|示例文本|Lorem ipsum/i;
|
|
10145
10145
|
var CJK_TEXT_RE = /[-ヿ㐀-䶿一-鿿가-豈-]/;
|
|
@@ -9818,12 +9818,12 @@ var require_lib3 = __commonJS({
|
|
|
9818
9818
|
// apps/admin/data/skills.lib/document/bin-src/doc-xml.mjs
|
|
9819
9819
|
var import_promises2 = require("node:fs/promises");
|
|
9820
9820
|
|
|
9821
|
-
// packages/core/dist/
|
|
9821
|
+
// packages/core/dist/document/doc-xml.js
|
|
9822
9822
|
var import_jszip = __toESM(require_lib3(), 1);
|
|
9823
9823
|
var import_promises = require("node:fs/promises");
|
|
9824
9824
|
var import_node_path = require("node:path");
|
|
9825
9825
|
|
|
9826
|
-
// packages/core/dist/
|
|
9826
|
+
// packages/core/dist/document/ooxml-util.js
|
|
9827
9827
|
function escXml(s) {
|
|
9828
9828
|
return s.replace(/[&<>"']/g, (c) => ({ "&": "&", "<": "<", ">": ">", '"': """, "'": "'" })[c]);
|
|
9829
9829
|
}
|
|
@@ -9907,7 +9907,7 @@ function replaceTextAcrossRuns(xml, find, replacement, opts) {
|
|
|
9907
9907
|
return { xml: rewritten, count };
|
|
9908
9908
|
}
|
|
9909
9909
|
|
|
9910
|
-
// packages/core/dist/
|
|
9910
|
+
// packages/core/dist/document/doc-xml.js
|
|
9911
9911
|
function prettyXml(xml) {
|
|
9912
9912
|
const tokens = xml.split(/(?<=>)(?=<)/);
|
|
9913
9913
|
if (tokens.length < 2)
|
|
@@ -9818,15 +9818,15 @@ var require_lib3 = __commonJS({
|
|
|
9818
9818
|
// apps/admin/data/skills.lib/document/bin-src/docx-annotate.mjs
|
|
9819
9819
|
var import_promises = require("node:fs/promises");
|
|
9820
9820
|
|
|
9821
|
-
// packages/core/dist/
|
|
9821
|
+
// packages/core/dist/document/docx-annotate.js
|
|
9822
9822
|
var import_jszip = __toESM(require_lib3(), 1);
|
|
9823
9823
|
|
|
9824
|
-
// packages/core/dist/
|
|
9824
|
+
// packages/core/dist/document/ooxml-util.js
|
|
9825
9825
|
function escXml(s) {
|
|
9826
9826
|
return s.replace(/[&<>"']/g, (c) => ({ "&": "&", "<": "<", ">": ">", '"': """, "'": "'" })[c]);
|
|
9827
9827
|
}
|
|
9828
9828
|
|
|
9829
|
-
// packages/core/dist/
|
|
9829
|
+
// packages/core/dist/document/docx-annotate.js
|
|
9830
9830
|
var import_node_crypto = require("node:crypto");
|
|
9831
9831
|
var W_NS = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
|
|
9832
9832
|
var W14_NS = "http://schemas.microsoft.com/office/word/2010/wordml";
|