@emailmaker/filemanager 0.0.8 → 0.10.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/components/FolderSidebar/FolderSidebar.d.ts +1 -1
- package/components/PixieEditor/PixieController.d.ts +40 -0
- package/file-manager.css +45 -11
- package/file-manager.esm.js +10 -10
- package/file-manager.esm.js.map +1 -1
- package/file-manager.js +1 -1
- package/mockServiceWorker.js +1 -1
- package/package.json +1 -1
- package/test-pixie-loading.html +10 -10
- package/types.d.ts +8 -0
package/mockServiceWorker.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const PACKAGE_VERSION="2.
|
|
1
|
+
const PACKAGE_VERSION="2.11.0",INTEGRITY_CHECKSUM="f5825c521429caf22a4dd13b66e243af",IS_MOCKED_RESPONSE=Symbol("isMockedResponse"),activeClientIds=new Set;async function handleRequest(e,t){const n=await resolveMainClient(e),s=e.request.clone(),i=await getResponse(e,n,t);if(n&&activeClientIds.has(n.id)){const e=await serializeRequest(s),a=i.clone();sendToClient(n,{type:"RESPONSE",payload:{isMockedResponse:IS_MOCKED_RESPONSE in i,request:{id:t,...e},response:{type:a.type,status:a.status,statusText:a.statusText,headers:Object.fromEntries(a.headers.entries()),body:a.body}}},a.body?[e.body,a.body]:[])}return i}async function resolveMainClient(e){const t=await self.clients.get(e.clientId);return activeClientIds.has(e.clientId)||"top-level"===t?.frameType?t:(await self.clients.matchAll({type:"window"})).filter(e=>"visible"===e.visibilityState).find(e=>activeClientIds.has(e.id))}async function getResponse(e,t,n){const s=e.request.clone();function i(){const e=new Headers(s.headers),t=e.get("accept");if(t){const n=t.split(",").map(e=>e.trim()).filter(e=>"msw/passthrough"!==e);n.length>0?e.set("accept",n.join(", ")):e.delete("accept")}return fetch(s,{headers:e})}if(!t)return i();if(!activeClientIds.has(t.id))return i();const a=await serializeRequest(e.request),r=await sendToClient(t,{type:"REQUEST",payload:{id:n,...a}},[a.body]);switch(r.type){case"MOCK_RESPONSE":return respondWithMock(r.data);case"PASSTHROUGH":return i()}return i()}function sendToClient(e,t,n=[]){return new Promise((s,i)=>{const a=new MessageChannel;a.port1.onmessage=e=>{if(e.data&&e.data.error)return i(e.data.error);s(e.data)},e.postMessage(t,[a.port2,...n.filter(Boolean)])})}function respondWithMock(e){if(0===e.status)return Response.error();const t=new Response(e.body,e);return Reflect.defineProperty(t,IS_MOCKED_RESPONSE,{value:!0,enumerable:!0}),t}async function serializeRequest(e){return{url:e.url,mode:e.mode,method:e.method,headers:Object.fromEntries(e.headers.entries()),cache:e.cache,credentials:e.credentials,destination:e.destination,integrity:e.integrity,redirect:e.redirect,referrer:e.referrer,referrerPolicy:e.referrerPolicy,body:await e.arrayBuffer(),keepalive:e.keepalive}}addEventListener("install",function(){self.skipWaiting()}),addEventListener("activate",function(e){e.waitUntil(self.clients.claim())}),addEventListener("message",async function(e){const t=Reflect.get(e.source||{},"id");if(!t||!self.clients)return;const n=await self.clients.get(t);if(!n)return;const s=await self.clients.matchAll({type:"window"});switch(e.data){case"KEEPALIVE_REQUEST":sendToClient(n,{type:"KEEPALIVE_RESPONSE"});break;case"INTEGRITY_CHECK_REQUEST":sendToClient(n,{type:"INTEGRITY_CHECK_RESPONSE",payload:{packageVersion:"2.11.0",checksum:INTEGRITY_CHECKSUM}});break;case"MOCK_ACTIVATE":activeClientIds.add(t),sendToClient(n,{type:"MOCKING_ENABLED",payload:{client:{id:n.id,frameType:n.frameType}}});break;case"MOCK_DEACTIVATE":activeClientIds.delete(t);break;case"CLIENT_CLOSED":{activeClientIds.delete(t);const e=s.filter(e=>e.id!==t);0===e.length&&self.registration.unregister();break}}}),addEventListener("fetch",function(e){if("navigate"===e.request.mode)return;if("only-if-cached"===e.request.cache&&"same-origin"!==e.request.mode)return;if(0===activeClientIds.size)return;const t=crypto.randomUUID();e.respondWith(handleRequest(e,t))});
|
package/package.json
CHANGED
package/test-pixie-loading.html
CHANGED
|
@@ -41,9 +41,9 @@
|
|
|
41
41
|
</head>
|
|
42
42
|
<body>
|
|
43
43
|
<h1>Тест загрузки Pixie Editor</h1>
|
|
44
|
-
|
|
44
|
+
|
|
45
45
|
<div id="status" class="status loading">Проверка загрузки...</div>
|
|
46
|
-
|
|
46
|
+
|
|
47
47
|
<div id="details">
|
|
48
48
|
<h3>Проверки:</h3>
|
|
49
49
|
<ul id="checks">
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
|
|
56
56
|
<div id="pixie-container"></div>
|
|
57
57
|
|
|
58
|
-
<script src="/
|
|
58
|
+
<script src="/local_module/pixie/dist/pixie.umd.js"></script>
|
|
59
59
|
<script>
|
|
60
60
|
function updateCheck(id, text, success = true) {
|
|
61
61
|
const element = document.getElementById(id);
|
|
@@ -77,21 +77,21 @@
|
|
|
77
77
|
setTimeout(() => {
|
|
78
78
|
if (typeof window.Pixie !== 'undefined') {
|
|
79
79
|
updateCheck('pixie-check', '✓ Объект Pixie доступен', true);
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
|
|
81
|
+
// Попытка инициализации
|
|
82
82
|
try {
|
|
83
83
|
const pixie = new window.Pixie({
|
|
84
84
|
selector: '#pixie-container',
|
|
85
|
-
|
|
85
|
+
baseUrl: "/local_module/pixie/assets",
|
|
86
86
|
ui: {
|
|
87
87
|
visible: true,
|
|
88
88
|
mode: 'inline'
|
|
89
89
|
}
|
|
90
90
|
});
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
|
|
92
|
+
updateCheck("assets-check", "✓ Ассеты успешно загружены", true);
|
|
93
93
|
updateStatus('✓ Pixie Editor успешно инициализирован!', 'success');
|
|
94
|
-
|
|
94
|
+
|
|
95
95
|
} catch (error) {
|
|
96
96
|
updateCheck('assets-check', `✗ Ошибка инициализации: ${error.message}`, false);
|
|
97
97
|
updateStatus('✗ Ошибка инициализации Pixie', 'error');
|
|
@@ -105,4 +105,4 @@
|
|
|
105
105
|
|
|
106
106
|
</script>
|
|
107
107
|
</body>
|
|
108
|
-
</html>
|
|
108
|
+
</html>
|
package/types.d.ts
CHANGED
|
@@ -166,6 +166,14 @@ export interface FileManagerDataProviders {
|
|
|
166
166
|
targetFolderId: string;
|
|
167
167
|
isFolder: boolean;
|
|
168
168
|
}) => Promise<boolean>;
|
|
169
|
+
copyItem?: (options: {
|
|
170
|
+
itemId: string;
|
|
171
|
+
targetFolderId: string;
|
|
172
|
+
isFolder: boolean;
|
|
173
|
+
}) => Promise<{
|
|
174
|
+
id: string;
|
|
175
|
+
url?: string;
|
|
176
|
+
}>;
|
|
169
177
|
updateFile?: (fileId: string, updates: {
|
|
170
178
|
name?: string;
|
|
171
179
|
type?: string;
|