pptx-vue-viewer 3.16.4 → 3.16.5
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/CHANGELOG.md +6 -0
- package/dist/{AiChatPanel-CwSED4VT.cjs → AiChatPanel-BeeXIkUA.cjs} +1 -1
- package/dist/AiChatPanel-BeeXIkUA.cjs.br +0 -0
- package/dist/AiChatPanel-BeeXIkUA.cjs.gz +0 -0
- package/dist/{AiChatPanel-CxZ1Vnzq.js → AiChatPanel-DK40a-om.js} +1 -1
- package/dist/AiChatPanel-DK40a-om.js.br +0 -0
- package/dist/AiChatPanel-DK40a-om.js.gz +0 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.br +0 -0
- package/dist/index.cjs.gz +0 -0
- package/dist/index.js +1 -1
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/viewer/index.cjs +1 -1
- package/dist/viewer/index.cjs.br +0 -0
- package/dist/viewer/index.cjs.gz +0 -0
- package/dist/viewer/index.js +1 -1
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/{viewer-D0r74bcP.cjs → viewer-C5NgFQ-r.cjs} +2 -2
- package/dist/viewer-C5NgFQ-r.cjs.br +0 -0
- package/dist/viewer-C5NgFQ-r.cjs.gz +0 -0
- package/dist/{viewer-BObk1hi9.js → viewer-DrlFyHn2.js} +2 -2
- package/dist/viewer-DrlFyHn2.js.br +0 -0
- package/dist/viewer-DrlFyHn2.js.gz +0 -0
- package/package.json +1 -1
- package/dist/AiChatPanel-CwSED4VT.cjs.br +0 -0
- package/dist/AiChatPanel-CwSED4VT.cjs.gz +0 -0
- package/dist/AiChatPanel-CxZ1Vnzq.js.br +0 -0
- package/dist/AiChatPanel-CxZ1Vnzq.js.gz +0 -0
- package/dist/viewer-BObk1hi9.js.br +0 -0
- package/dist/viewer-BObk1hi9.js.gz +0 -0
- package/dist/viewer-D0r74bcP.cjs.br +0 -0
- package/dist/viewer-D0r74bcP.cjs.gz +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,12 @@ A release listed with no entries carried no Conventional Commit in this package'
|
|
|
7
7
|
scope: scripts/release-plan.mjs re-releases a package whenever any of its files
|
|
8
8
|
change, not only on conventional ones.
|
|
9
9
|
|
|
10
|
+
## [3.16.4](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-vue-viewer@3.16.4) - 2026-09-12
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
- **core:** Avoid duplicating rich axis titles on save (by @Sudhansh6) ([0a06dce](https://github.com/ChristopherVR/pptx-viewer/commit/0a06dcea06f8376d10924f373a1e005e24575beb))
|
|
15
|
+
|
|
10
16
|
## [3.16.3](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-vue-viewer@3.16.3) - 2026-09-11
|
|
11
17
|
|
|
12
18
|
### Bug Fixes
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e = require("./useViewerSettingsDialog-YLKKK5Tp.cjs"), t = require("./viewer-
|
|
1
|
+
const e = require("./useViewerSettingsDialog-YLKKK5Tp.cjs"), t = require("./viewer-C5NgFQ-r.cjs");
|
|
2
2
|
let r = require("vue"), a = require("lucide-vue-next"), n = require("ai");
|
|
3
3
|
var o = /* @__PURE__ */ new Set([
|
|
4
4
|
"input-available",
|
|
Binary file
|
|
Binary file
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { xn as e } from "./useViewerSettingsDialog-D2Oo3dlu.js";
|
|
2
|
-
import { S as t, T as a, _ as s, b as r, d as l, f as o, g as n, h as i, m as p, o as d, p as c, u, v as m, x, y as g } from "./viewer-
|
|
2
|
+
import { S as t, T as a, _ as s, b as r, d as l, f as o, g as n, h as i, m as p, o as d, p as c, u, v as m, x, y as g } from "./viewer-DrlFyHn2.js";
|
|
3
3
|
import { Fragment as f, Suspense as b, computed as v, createBlock as h, createCommentVNode as y, createElementBlock as k, createElementVNode as w, createTextVNode as C, createVNode as P, defineComponent as S, nextTick as T, normalizeClass as I, normalizeStyle as j, onBeforeUnmount as _, onMounted as A, openBlock as E, ref as M, renderList as F, resolveDynamicComponent as B, shallowRef as D, toDisplayString as N, unref as L, vModelText as R, watch as H, withAsyncContext as W, withCtx as z, withDirectives as V } from "vue";
|
|
4
4
|
import { Bot as K, ChartColumn as O, Check as U, Crosshair as $, Eye as q, Film as G, GitMerge as J, History as Q, LayoutTemplate as X, LoaderCircle as Y, MessageSquare as Z, MessageSquarePlus as ee, Move as te, Navigation as ae, Palette as se, Pin as re, PinOff as le, Plus as oe, Search as ne, Send as ie, Shapes as pe, Sparkles as de, Square as ce, StickyNote as ue, Table as me, Trash2 as xe, TriangleAlert as ge, Type as fe, User as be, Wrench as ve, X as he } from "lucide-vue-next";
|
|
5
5
|
import { getToolOrDynamicToolName as ye, isDynamicToolUIPart as ke, isToolUIPart as we } from "ai";
|
|
Binary file
|
|
Binary file
|
package/dist/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const e = require("./useViewerSettingsDialog-YLKKK5Tp.cjs"), o = require("./viewer-
|
|
2
|
+
const e = require("./useViewerSettingsDialog-YLKKK5Tp.cjs"), o = require("./viewer-C5NgFQ-r.cjs");
|
|
3
3
|
exports.AUDIENCE_HASH = e.AUDIENCE_HASH, exports.CollaborationCursors = o.CollaborationCursors_default, exports.CollaborationStatusIndicator = o.CollaborationStatusIndicator_default, exports.ElementRenderer = o.ElementRenderer_default, exports.FollowModeBar = o.FollowModeBar_default, exports.PPTX_OPEN_ACCEPT = e.PPTX_OPEN_ACCEPT, exports.PRESENTATION_OPEN_EXTENSIONS = e.PRESENTATION_OPEN_EXTENSIONS, exports.PowerPointViewer = o.PowerPointViewer_default, exports.RemoteSelectionOverlay = o.RemoteSelectionOverlay_default, exports.RibbonToolbar = o.RibbonToolbar_default, exports.SlideCanvas = o.SlideCanvas_default, exports.SlideStage = o.SlideStage_default, exports.clearAudienceContent = e.clearAudienceContent, exports.cn = o.cn, exports.defaultCssVars = e.defaultCssVars, exports.defaultRadius = e.defaultRadius, exports.defaultThemeColors = e.defaultThemeColors, exports.exportAllSlidesToSvg = e.exportAllSlidesToSvg, exports.exportAllSlidesToSvgBlobs = e.exportAllSlidesToSvgBlobs, exports.exportSlideToSvg = e.exportSlideToSvg, exports.exportSlideToSvgBlob = e.exportSlideToSvgBlob, exports.forgetSessionDeck = e.forgetSessionDeck, exports.getSessionTabId = e.getSessionTabId, exports.isAudienceTab = e.isAudienceTab, exports.isLegacyBinaryPresentation = e.isLegacyBinaryPresentation, exports.isSupportedPresentationFile = e.isSupportedPresentationFile, exports.loadAudienceContent = e.loadAudienceContent, exports.loadSessionDeck = e.loadSessionDeck, exports.parseAudienceNonce = e.parseAudienceNonce, exports.parsePresentationSessionId = e.parsePresentationSessionId, exports.presentationBaseName = e.presentationBaseName, exports.provideViewerTheme = o.provideViewerTheme, exports.rememberSessionDeck = e.rememberSessionDeck, exports.renderToCanvas = e.renderToCanvas, exports.restoreSessionDeck = e.restoreSessionDeck, exports.savedPresentationFileName = e.savedPresentationFileName, exports.storeAudienceContent = e.storeAudienceContent, exports.themeToCssVars = e.themeToCssVars, exports.useCollaboration = e.useCollaboration, exports.useCollaborativeHistory = o.useCollaborativeHistory, exports.useCollaborativeState = o.useCollaborativeState, exports.usePresenceTracking = o.usePresenceTracking, exports.useThemeStyle = o.useThemeStyle, exports.useViewerTheme = o.useViewerTheme, exports.useYjsProvider = o.useYjsProvider, exports.vermilionDarkColors = e.vermilionDarkColors, exports.vermilionDarkTheme = e.vermilionDarkTheme, exports.vermilionLightColors = e.vermilionLightColors, exports.vermilionLightTheme = e.vermilionLightTheme, exports.vermilionRadius = e.vermilionRadius;
|
package/dist/index.cjs.br
CHANGED
|
Binary file
|
package/dist/index.cjs.gz
CHANGED
|
Binary file
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { $s as a, Au as s, Bd as e, Bm as o, Br as r, C as t, Du as i, En as l, Gl as m, H as n, Hm as d, Ic as u, Qs as S, Ru as w, S as C, Sp as b, Tm as c, Um as p, Vm as f, Wm as B, Wr as R, es as g, fu as v, it as D, mp as E, qd as H, sm as T, tc as V, w as W, x as j, yf as x, zd as y, zu as z } from "./useViewerSettingsDialog-D2Oo3dlu.js";
|
|
2
|
-
import { C as G, D as I, E as P, G as U, H as q, T as A, U as F, W as M, a as O, c as Q, i as $, l as h, n as k, r as J, s as K, t as L, w as N } from "./viewer-
|
|
2
|
+
import { C as G, D as I, E as P, G as U, H as q, T as A, U as F, W as M, a as O, c as Q, i as $, l as h, n as k, r as J, s as K, t as L, w as N } from "./viewer-DrlFyHn2.js";
|
|
3
3
|
export { l as AUDIENCE_HASH, h as CollaborationCursors, q as CollaborationStatusIndicator, I as ElementRenderer, K as FollowModeBar, r as PPTX_OPEN_ACCEPT, R as PRESENTATION_OPEN_EXTENSIONS, O as PowerPointViewer, Q as RemoteSelectionOverlay, N as RibbonToolbar, G as SlideCanvas, P as SlideStage, g as clearAudienceContent, A as cn, S as defaultCssVars, a as defaultRadius, V as defaultThemeColors, j as exportAllSlidesToSvg, C as exportAllSlidesToSvgBlobs, t as exportSlideToSvg, W as exportSlideToSvgBlob, u as forgetSessionDeck, m as getSessionTabId, v as isAudienceTab, i as isLegacyBinaryPresentation, s as isSupportedPresentationFile, w as loadAudienceContent, z as loadSessionDeck, y as parseAudienceNonce, e as parsePresentationSessionId, H as presentationBaseName, F as provideViewerTheme, x as rememberSessionDeck, n as renderToCanvas, E as restoreSessionDeck, b as savedPresentationFileName, T as storeAudienceContent, c as themeToCssVars, D as useCollaboration, L as useCollaborativeHistory, k as useCollaborativeState, J as usePresenceTracking, M as useThemeStyle, U as useViewerTheme, $ as useYjsProvider, o as vermilionDarkColors, f as vermilionDarkTheme, d as vermilionLightColors, p as vermilionLightTheme, B as vermilionRadius };
|
package/dist/index.js.br
CHANGED
|
Binary file
|
package/dist/index.js.gz
CHANGED
|
Binary file
|
package/dist/viewer/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const e = require("../useViewerSettingsDialog-YLKKK5Tp.cjs"), t = require("../viewer-
|
|
2
|
+
const e = require("../useViewerSettingsDialog-YLKKK5Tp.cjs"), t = require("../viewer-C5NgFQ-r.cjs");
|
|
3
3
|
exports.AUDIENCE_HASH = e.AUDIENCE_HASH, exports.ChartRenderer = t.ChartRenderer_default, exports.CollaborationCursors = t.CollaborationCursors_default, exports.CollaborationStatusIndicator = t.CollaborationStatusIndicator_default, exports.ConnectorRenderer = t.ConnectorRenderer_default, exports.DEFAULT_CANVAS_HEIGHT = e.DEFAULT_CANVAS_HEIGHT, exports.DEFAULT_CANVAS_WIDTH = e.DEFAULT_CANVAS_WIDTH, exports.DEFAULT_FILL_COLOR = e.DEFAULT_FILL_COLOR, exports.DEFAULT_STROKE_COLOR = e.DEFAULT_STROKE_COLOR, exports.DEFAULT_TEXT_COLOR = e.DEFAULT_TEXT_COLOR, exports.ElementRenderer = t.ElementRenderer_default, exports.EquationRenderer = t.EquationRenderer_default, exports.FollowModeBar = t.FollowModeBar_default, exports.InkRenderer = t.InkRenderer_default, exports.Model3DRenderer = t.Model3DRenderer_default, exports.OleRenderer = t.OleRenderer_default, exports.PowerPointViewer = t.PowerPointViewer_default, exports.RemoteSelectionOverlay = t.RemoteSelectionOverlay_default, exports.RibbonToolbar = t.RibbonToolbar_default, exports.SlideCanvas = t.SlideCanvas_default, exports.SlideStage = t.SlideStage_default, exports.SmartArtRenderer = t.SmartArtRenderer_default, exports.TableRenderer = t.TableRenderer_default, exports.WordArtText = t.WordArtText_default, exports.ZoomRenderer = t.ZoomRenderer_default, exports.buildInitialGuides = e.buildInitialGuides, exports.clearAudienceContent = e.clearAudienceContent, exports.collectImagePaths = e.collectImagePaths, exports.collectMediaElements = e.collectMediaElements, exports.exportAllSlidesToSvg = e.exportAllSlidesToSvg, exports.exportAllSlidesToSvgBlobs = e.exportAllSlidesToSvgBlobs, exports.exportSlideToSvg = e.exportSlideToSvg, exports.exportSlideToSvgBlob = e.exportSlideToSvgBlob, exports.getContainerStyle = t.getContainerStyle, exports.getImageSrc = t.getImageSrc, exports.getResolvedShapeClipPath = e.getResolvedShapeClipPath, exports.getResolvedShapeClipPathFor = e.getResolvedShapeClipPathFor, exports.getShapeFillStrokeStyle = t.getShapeFillStrokeStyle, exports.getTextBlockStyle = t.getTextBlockStyle, exports.isAudienceTab = e.isAudienceTab, exports.loadAudienceContent = e.loadAudienceContent, exports.parseAudienceNonce = e.parseAudienceNonce, exports.storeAudienceContent = e.storeAudienceContent, exports.useCollaboration = e.useCollaboration, exports.useCollaborativeHistory = t.useCollaborativeHistory, exports.useCollaborativeState = t.useCollaborativeState, exports.useEditorHistory = e.useEditorHistory, exports.useEditorOperations = e.useEditorOperations, exports.useLoadContent = e.useLoadContent, exports.usePresenceTracking = t.usePresenceTracking, exports.useYjsProvider = t.useYjsProvider;
|
package/dist/viewer/index.cjs.br
CHANGED
|
Binary file
|
package/dist/viewer/index.cjs.gz
CHANGED
|
Binary file
|
package/dist/viewer/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { C as a, En as s, J as e, Ru as r, S as o, Ul as n, Wl as t, X as l, _n as i, cs as d, es as R, fu as m, gn as C, hn as S, it as w, j as b, ls as u, qa as c, sm as g, vn as j, w as v, x as E, yn as f, zd as p } from "../useViewerSettingsDialog-D2Oo3dlu.js";
|
|
2
|
-
import { A as x, B as A, C as D, D as I, E as M, F as O, H as P, I as T, L as V, M as h, N as k, O as q, P as y, R as z, V as B, a as F, c as W, i as H, j as J, k as L, l as N, n as U, r as X, s as Z, t as _, w as G, z as K } from "../viewer-
|
|
2
|
+
import { A as x, B as A, C as D, D as I, E as M, F as O, H as P, I as T, L as V, M as h, N as k, O as q, P as y, R as z, V as B, a as F, c as W, i as H, j as J, k as L, l as N, n as U, r as X, s as Z, t as _, w as G, z as K } from "../viewer-DrlFyHn2.js";
|
|
3
3
|
export { s as AUDIENCE_HASH, V as ChartRenderer, N as CollaborationCursors, P as CollaborationStatusIndicator, T as ConnectorRenderer, S as DEFAULT_CANVAS_HEIGHT, C as DEFAULT_CANVAS_WIDTH, i as DEFAULT_FILL_COLOR, j as DEFAULT_STROKE_COLOR, f as DEFAULT_TEXT_COLOR, I as ElementRenderer, O as EquationRenderer, Z as FollowModeBar, y as InkRenderer, k as Model3DRenderer, h as OleRenderer, F as PowerPointViewer, W as RemoteSelectionOverlay, G as RibbonToolbar, D as SlideCanvas, M as SlideStage, J as SmartArtRenderer, x as TableRenderer, L as WordArtText, q as ZoomRenderer, c as buildInitialGuides, R as clearAudienceContent, d as collectImagePaths, u as collectMediaElements, E as exportAllSlidesToSvg, o as exportAllSlidesToSvgBlobs, a as exportSlideToSvg, v as exportSlideToSvgBlob, z as getContainerStyle, K as getImageSrc, n as getResolvedShapeClipPath, t as getResolvedShapeClipPathFor, A as getShapeFillStrokeStyle, B as getTextBlockStyle, m as isAudienceTab, r as loadAudienceContent, p as parseAudienceNonce, g as storeAudienceContent, w as useCollaboration, _ as useCollaborativeHistory, U as useCollaborativeState, l as useEditorHistory, e as useEditorOperations, b as useLoadContent, X as usePresenceTracking, H as useYjsProvider };
|
package/dist/viewer/index.js.br
CHANGED
|
Binary file
|
package/dist/viewer/index.js.gz
CHANGED
|
Binary file
|
|
@@ -6578,7 +6578,7 @@ var ws = ["title", "onClick"], Cs = { class: "inline-flex items-center gap-2 tex
|
|
|
6578
6578
|
(0, a.createElementVNode)("span", Ts, (0, a.toDisplayString)(t.drawingWidth), 1)
|
|
6579
6579
|
], 8, Vs)])], 64));
|
|
6580
6580
|
}
|
|
6581
|
-
}), _s = "3.16.
|
|
6581
|
+
}), _s = "3.16.4", Ps = Symbol("pptx-account-auth");
|
|
6582
6582
|
var zs = { class: "pptx-vue-account mt-8 flex max-w-[760px] flex-col gap-6" }, Fs = { class: "pptx-vue-account-section border border-border bg-card p-6 text-card-foreground" }, As = { class: "text-base font-semibold" }, Ms = { class: "mt-4 flex items-center gap-4" }, Os = { class: "min-w-0 flex-1" }, Ls = { class: "block text-xs font-medium text-muted-foreground" }, Rs = ["value", "placeholder"], $s = { class: "mt-4" }, Us = { class: "block text-xs font-medium text-muted-foreground" }, js = { class: "mt-2 flex gap-2" }, Ks = [
|
|
6583
6583
|
"aria-pressed",
|
|
6584
6584
|
"aria-label",
|
|
@@ -39325,7 +39325,7 @@ var Fle = pe((0, a.defineComponent)({
|
|
|
39325
39325
|
var o;
|
|
39326
39326
|
}), 128))])], 8, Bre))), 128))])) : ((0, a.openBlock)(), (0, a.createElementBlock)("div", Sre, [(0, a.createElementVNode)("p", Ere, (0, a.toDisplayString)((0, a.unref)(r)("pptx.accessibility.noIssuesFound")), 1), (0, a.createElementVNode)("p", wre, (0, a.toDisplayString)((0, a.unref)(r)("pptx.accessibility.noIssuesHint")), 1)]))], 8, xre));
|
|
39327
39327
|
}
|
|
39328
|
-
}), Are = (0, a.defineAsyncComponent)(() => Promise.resolve().then(() => require("./AiChatPanel-
|
|
39328
|
+
}), Are = (0, a.defineAsyncComponent)(() => Promise.resolve().then(() => require("./AiChatPanel-BeeXIkUA.cjs"))), Mre = { class: "pptx-vue-custom-shows flex flex-col gap-2 p-2.5 text-xs text-foreground" }, Ore = { class: "pptx-vue-cs-header flex items-center" }, Lre = { class: "pptx-vue-cs-title m-0 text-[13px] font-semibold" }, Rre = { class: "pptx-vue-cs-list-row flex items-center gap-1.5" }, $re = ["aria-label", "value"], Ure = {
|
|
39329
39329
|
key: 0,
|
|
39330
39330
|
value: "",
|
|
39331
39331
|
disabled: ""
|
|
Binary file
|
|
Binary file
|
|
@@ -6582,7 +6582,7 @@ var RP = ["title", "onClick"], NP = { class: "inline-flex items-center gap-2 tex
|
|
|
6582
6582
|
Xv("span", VP, Cx(t.drawingWidth), 1)
|
|
6583
6583
|
], 8, jP)])], 64));
|
|
6584
6584
|
}
|
|
6585
|
-
}), ZP = "3.16.
|
|
6585
|
+
}), ZP = "3.16.4", WP = Symbol("pptx-account-auth");
|
|
6586
6586
|
var GP = { class: "pptx-vue-account mt-8 flex max-w-[760px] flex-col gap-6" }, qP = { class: "pptx-vue-account-section border border-border bg-card p-6 text-card-foreground" }, XP = { class: "text-base font-semibold" }, JP = { class: "mt-4 flex items-center gap-4" }, YP = { class: "min-w-0 flex-1" }, QP = { class: "block text-xs font-medium text-muted-foreground" }, eE = ["value", "placeholder"], tE = { class: "mt-4" }, nE = { class: "block text-xs font-medium text-muted-foreground" }, aE = { class: "mt-2 flex gap-2" }, oE = [
|
|
6587
6587
|
"aria-pressed",
|
|
6588
6588
|
"aria-label",
|
|
@@ -39310,7 +39310,7 @@ var XCe = If(tx({
|
|
|
39310
39310
|
var n;
|
|
39311
39311
|
}), 128))])], 8, L_e))), 128))])) : (xx(), qv("div", B_e, [Xv("p", R_e, Cx(Ex(o)("pptx.accessibility.noIssuesFound")), 1), Xv("p", N_e, Cx(Ex(o)("pptx.accessibility.noIssuesHint")), 1)]))], 8, D_e));
|
|
39312
39312
|
}
|
|
39313
|
-
}), J_e = ex(() => import("./AiChatPanel-
|
|
39313
|
+
}), J_e = ex(() => import("./AiChatPanel-DK40a-om.js")), Y_e = { class: "pptx-vue-custom-shows flex flex-col gap-2 p-2.5 text-xs text-foreground" }, Q_e = { class: "pptx-vue-cs-header flex items-center" }, eIe = { class: "pptx-vue-cs-title m-0 text-[13px] font-semibold" }, tIe = { class: "pptx-vue-cs-list-row flex items-center gap-1.5" }, nIe = ["aria-label", "value"], aIe = {
|
|
39314
39314
|
key: 0,
|
|
39315
39315
|
value: "",
|
|
39316
39316
|
disabled: ""
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|