@brftech/filex-core 0.29.0 → 0.30.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 +35 -0
- package/dist/filex-core.js +13511 -12642
- package/dist/filex-core.js.map +1 -1
- package/dist/filex-core.umd.cjs +71 -71
- package/dist/filex-core.umd.cjs.map +1 -1
- package/dist/index.d.ts +78 -0
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/FileExplorer.vue +440 -4
- package/src/components/Breadcrumb.vue +14 -1
- package/src/components/RecentlyOpened.vue +9 -1
- package/src/components/SideNav.vue +409 -0
- package/src/components/TokensPanel.vue +109 -1
- package/src/components/Toolbar.vue +98 -3
- package/src/locales/en.ts +34 -0
- package/src/locales/tr.ts +34 -0
- package/src/styles/base.css +360 -0
- package/src/types/ExplorerConfig.ts +68 -0
package/dist/index.d.ts
CHANGED
|
@@ -114,6 +114,11 @@ declare type __VLS_Props_18 = {
|
|
|
114
114
|
|
|
115
115
|
declare type __VLS_Props_19 = {
|
|
116
116
|
config: ExplorerConfig;
|
|
117
|
+
/**
|
|
118
|
+
* Render the full self-service key manager (scopes, folder confinement,
|
|
119
|
+
* expiry) instead of the one-field minter the guides embed.
|
|
120
|
+
*/
|
|
121
|
+
full?: boolean;
|
|
117
122
|
/**
|
|
118
123
|
* Which protocol the surrounding guide is showing. It only changes the
|
|
119
124
|
* default label — a token minted here works on all of them, and pretending
|
|
@@ -784,6 +789,70 @@ export declare interface ExplorerConfig {
|
|
|
784
789
|
rootPath?: string;
|
|
785
790
|
/** Whether the info panel toggle is visible. */
|
|
786
791
|
showInfoPanel?: boolean;
|
|
792
|
+
/**
|
|
793
|
+
* Which set of chrome the explorer presents. A PRESET, not a feature switch:
|
|
794
|
+
* nothing is removed from the code, and every capability stays reachable —
|
|
795
|
+
* `'simple'` only changes what is on screen by default.
|
|
796
|
+
*
|
|
797
|
+
* 'standard' (default) — everything: tab strip, split pane, all three view
|
|
798
|
+
* modes. The tool the explorer has always been.
|
|
799
|
+
* 'simple' — one pane, one folder, list/grid only. The
|
|
800
|
+
* navigation panel starts expanded, the tab strip
|
|
801
|
+
* and split pane are off, the gallery view mode and
|
|
802
|
+
* the host's "How to connect" surface are hidden.
|
|
803
|
+
*
|
|
804
|
+
* Why it exists (GitHub #14): the reporter's users are not in IT and read
|
|
805
|
+
* split panes, tabs and mount instructions as a file manager they would have
|
|
806
|
+
* to relearn. The answer was NOT a second UI — one explorer, configured, so
|
|
807
|
+
* a fix lands in one place for every surface that mounts this package.
|
|
808
|
+
*
|
|
809
|
+
* ⚠ It does not gate the navigation panel. The panel ships in both profiles,
|
|
810
|
+
* for administrators too; only its default expanded/collapsed state and the
|
|
811
|
+
* rest of the chrome differ. A viewer's own collapse choice, once made,
|
|
812
|
+
* outranks the profile — it is a per-viewer preference, not a policy.
|
|
813
|
+
*/
|
|
814
|
+
uiProfile?: 'standard' | 'simple';
|
|
815
|
+
/**
|
|
816
|
+
* Render the navigation panel (Upload · Recent / Starred / Shared with me /
|
|
817
|
+
* Trash · the storage list). Collapsible to an icon rail by the viewer, whose
|
|
818
|
+
* choice is remembered per browser.
|
|
819
|
+
*
|
|
820
|
+
* Default: ON — everywhere, including the desktop app and every embed. This
|
|
821
|
+
* package is the reason those are one product; a panel that appeared in the
|
|
822
|
+
* web app and nowhere else would turn it back into three (0.16.0 did exactly
|
|
823
|
+
* that with `tabStrip` and it had to be undone).
|
|
824
|
+
*
|
|
825
|
+
* ⚠ ONE exception, and it is about `rootPath`, not about who is embedding: a
|
|
826
|
+
* confined embed has no storage list to show, and its views would list files
|
|
827
|
+
* from OUTSIDE the folder the embed was confined to. So `rootPath` flips the
|
|
828
|
+
* default to off. Setting `sideNav: true` alongside `rootPath` still wins —
|
|
829
|
+
* the panel is then yours, along with what its views will show.
|
|
830
|
+
*/
|
|
831
|
+
sideNav?: boolean;
|
|
832
|
+
/**
|
|
833
|
+
* Show the navigation panel's **Connections** entries — "How to connect"
|
|
834
|
+
* (the storage list and the per-protocol guides: WebDAV · SFTP · FTPS · S3 ·
|
|
835
|
+
* NFS · `filex mount`) and **API keys** (mint and revoke the tokens three of
|
|
836
|
+
* those protocols sign in with).
|
|
837
|
+
*
|
|
838
|
+
* Default: on, EXCEPT under `uiProfile: 'simple'`, where it is off. Those two
|
|
839
|
+
* defaults answer two different people: #14's reporter called mount
|
|
840
|
+
* instructions power-user noise in front of users who are not in IT, and an
|
|
841
|
+
* embedder's own tenant may still legitimately need an S3 key. Whichever one
|
|
842
|
+
* you are, say so explicitly and the default stops mattering.
|
|
843
|
+
*
|
|
844
|
+
* ⚠ Not gated on role, ever. The backend decides what a caller may see —
|
|
845
|
+
* ConnectionsPanel renders what the API returns, and `/api/tokens` caps every
|
|
846
|
+
* scope against the caller's own role and grants. A UI-side role check here
|
|
847
|
+
* would only hide the surface from the accounts that need it most; that is
|
|
848
|
+
* the bug this became: for a year the sole place to mint the token the FTPS
|
|
849
|
+
* guide told you to use was the admin panel.
|
|
850
|
+
*
|
|
851
|
+
* ⚠ The entries live in the panel, so `sideNav: false` takes them with it.
|
|
852
|
+
* Hosts that want the surface without the panel mount `<filex-connections>`
|
|
853
|
+
* (or `ConnectionsPanel`) on a page of their own.
|
|
854
|
+
*/
|
|
855
|
+
connections?: boolean;
|
|
787
856
|
/** Default view. */
|
|
788
857
|
viewMode?: 'list' | 'grid';
|
|
789
858
|
/** Override max upload size (MB) — falls back to /limits otherwise. */
|
|
@@ -1038,6 +1107,9 @@ locale: LocaleCode;
|
|
|
1038
1107
|
narrow?: boolean;
|
|
1039
1108
|
theme?: ThemeMode;
|
|
1040
1109
|
inspectorOpen?: boolean;
|
|
1110
|
+
navOpen?: boolean;
|
|
1111
|
+
navEnabled?: boolean;
|
|
1112
|
+
viewModes?: ViewMode[];
|
|
1041
1113
|
}> & Readonly<{
|
|
1042
1114
|
onAction?: ((key: string) => any) | undefined;
|
|
1043
1115
|
onUpload?: (() => any) | undefined;
|
|
@@ -1049,6 +1121,7 @@ onRefresh?: (() => any) | undefined;
|
|
|
1049
1121
|
"onOpen-recents"?: (() => any) | undefined;
|
|
1050
1122
|
"onUpdate:density"?: ((v: Density) => any) | undefined;
|
|
1051
1123
|
"onToggle-inspector"?: (() => any) | undefined;
|
|
1124
|
+
"onToggle-nav"?: (() => any) | undefined;
|
|
1052
1125
|
"onOpen-theme"?: (() => any) | undefined;
|
|
1053
1126
|
"onOpen-shortcut-settings"?: (() => any) | undefined;
|
|
1054
1127
|
}>, {
|
|
@@ -1064,6 +1137,7 @@ refresh: () => any;
|
|
|
1064
1137
|
"open-recents": () => any;
|
|
1065
1138
|
"update:density": (v: Density) => any;
|
|
1066
1139
|
"toggle-inspector": () => any;
|
|
1140
|
+
"toggle-nav": () => any;
|
|
1067
1141
|
"open-theme": () => any;
|
|
1068
1142
|
"open-shortcut-settings": () => any;
|
|
1069
1143
|
}, PublicProps, {}, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
|
|
@@ -1172,6 +1246,9 @@ locale: LocaleCode;
|
|
|
1172
1246
|
narrow?: boolean;
|
|
1173
1247
|
theme?: ThemeMode;
|
|
1174
1248
|
inspectorOpen?: boolean;
|
|
1249
|
+
navOpen?: boolean;
|
|
1250
|
+
navEnabled?: boolean;
|
|
1251
|
+
viewModes?: ViewMode[];
|
|
1175
1252
|
}> & Readonly<{
|
|
1176
1253
|
onAction?: ((key: string) => any) | undefined;
|
|
1177
1254
|
onUpload?: (() => any) | undefined;
|
|
@@ -1183,6 +1260,7 @@ onRefresh?: (() => any) | undefined;
|
|
|
1183
1260
|
"onOpen-recents"?: (() => any) | undefined;
|
|
1184
1261
|
"onUpdate:density"?: ((v: Density) => any) | undefined;
|
|
1185
1262
|
"onToggle-inspector"?: (() => any) | undefined;
|
|
1263
|
+
"onToggle-nav"?: (() => any) | undefined;
|
|
1186
1264
|
"onOpen-theme"?: (() => any) | undefined;
|
|
1187
1265
|
"onOpen-shortcut-settings"?: (() => any) | undefined;
|
|
1188
1266
|
}>, {
|