@cocreate/file 1.17.3 → 1.17.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 CHANGED
@@ -1,3 +1,20 @@
1
+ ## [1.17.5](https://github.com/CoCreate-app/CoCreate-file/compare/v1.17.4...v1.17.5) (2024-06-19)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * getFileId uses pathname as id ([be330a5](https://github.com/CoCreate-app/CoCreate-file/commit/be330a54324ae878a8afadc68bdae1684e944b45))
7
+ * observer target selector ([50dc031](https://github.com/CoCreate-app/CoCreate-file/commit/50dc0318b7c9c02c2d610fe86158d47e6277e667))
8
+ * replace selected file if multiple false ([d419dc3](https://github.com/CoCreate-app/CoCreate-file/commit/d419dc38f223d1d809bcf014dd2fadb0a629fae7))
9
+
10
+ ## [1.17.4](https://github.com/CoCreate-app/CoCreate-file/compare/v1.17.3...v1.17.4) (2024-06-12)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * bump cocreate dependencies ([327849b](https://github.com/CoCreate-app/CoCreate-file/commit/327849b7e69bb1527bc9b29e95648bb0e53535a9))
16
+ * svg icon class ([71c132d](https://github.com/CoCreate-app/CoCreate-file/commit/71c132dcf9ed77c53e017f1f79498e48d443c0cb))
17
+
1
18
  ## [1.17.3](https://github.com/CoCreate-app/CoCreate-file/compare/v1.17.2...v1.17.3) (2024-05-08)
2
19
 
3
20
 
package/docs/index.html CHANGED
@@ -81,52 +81,40 @@
81
81
  class="margin-right:15px"
82
82
  share-network="twitter"
83
83
  title="Share on twitter"
84
- ><i
85
- class="height:20px fill:#505050"
86
- src="/assets/svg/twitter.svg"></i
84
+ ><i src="/assets/svg/twitter.svg"></i
87
85
  ></a>
88
86
  <a
89
87
  class="margin-right:15px"
90
88
  share-network="facebook"
91
89
  title="Share on Facebook"
92
- ><i
93
- class="height:20px fill:#505050"
94
- src="/assets/svg/facebook.svg"></i
90
+ ><i src="/assets/svg/facebook.svg"></i
95
91
  ></a>
96
92
  <a
97
93
  class="margin-right:15px"
98
94
  share-network="instagram"
99
95
  title="Share on instagram"
100
- ><i
101
- class="height:20px fill:#505050"
102
- src="/assets/svg/instagram.svg"></i
96
+ ><i src="/assets/svg/instagram.svg"></i
103
97
  ></a>
104
98
  </div>
105
99
  <a
106
100
  class="margin-right:15px"
107
101
  share-network="share"
108
102
  title="Share on share"
109
- ><i
110
- class="height:20px fill:#505050"
111
- src="/assets/svg/share-alt.svg"></i
103
+ ><i src="/assets/svg/share-alt.svg"></i
112
104
  ></a>
113
105
  </div>
114
106
  <a
115
107
  class="margin-right:15px"
116
108
  share-network="share"
117
109
  title="Share on share"
118
- ><i
119
- class="height:20px fill:#505050"
120
- src="/assets/svg/share-alt.svg"></i
110
+ ><i src="/assets/svg/share-alt.svg"></i
121
111
  ></a>
122
112
  </div>
123
113
  <a
124
114
  href="https://github.com/CoCreate-app/CoCreate-file"
125
115
  target="_blank"
126
116
  class=""
127
- ><i
128
- class="height:20px fill:#505050"
129
- src="/assets/svg/github.svg"></i
117
+ ><i src="/assets/svg/github.svg"></i
130
118
  ></a>
131
119
  </div>
132
120
 
@@ -155,9 +143,7 @@
155
143
  <a
156
144
  class="margin-left:10px display:none"
157
145
  href="#file-install"
158
- ><i
159
- class="height:20px fill:#505050"
160
- src="/assets/svg/link.svg"></i
146
+ ><i src="/assets/svg/link.svg"></i
161
147
  ></a>
162
148
  </span>
163
149
  </div>
@@ -182,9 +168,7 @@
182
168
  <a
183
169
  class="margin-left:10px display:none"
184
170
  href="#file-usage"
185
- ><i
186
- class="height:20px fill:#505050"
187
- src="/assets/svg/link.svg"></i
171
+ ><i src="/assets/svg/link.svg"></i
188
172
  ></a>
189
173
  </span>
190
174
  </div>
@@ -218,9 +202,7 @@
218
202
  <a
219
203
  class="margin-left:10px display:none"
220
204
  href="#file-attributes"
221
- ><i
222
- class="height:20px fill:#505050"
223
- src="/assets/svg/link.svg"></i
205
+ ><i src="/assets/svg/link.svg"></i
224
206
  ></a>
225
207
  </span>
226
208
  </div>
@@ -272,9 +254,7 @@
272
254
  <a
273
255
  class="margin-left:10px display:none"
274
256
  href="#file-demo"
275
- ><i
276
- class="height:20px fill:#505050"
277
- src="/assets/svg/link.svg"></i
257
+ ><i src="/assets/svg/link.svg"></i
278
258
  ></a>
279
259
  </span>
280
260
  </div>
@@ -319,7 +299,7 @@
319
299
  toggle="code-height"
320
300
  toggle-selector="#demo-code"
321
301
  ><i
322
- class="height:18px fill:#505050"
302
+ class="height:18px"
323
303
  src="/assets/svg/eye.svg"></i
324
304
  ></a>
325
305
  <a
@@ -330,18 +310,14 @@
330
310
  hide="#eye-slash"
331
311
  toggle="code-height"
332
312
  toggle-selector="#demo-code"
333
- ><i
334
- class="height:20px fill:#505050"
335
- src="/assets/svg/eye-slash.svg"></i
313
+ ><i src="/assets/svg/eye-slash.svg"></i
336
314
  ></a>
337
315
  <a
338
316
  class="margin-right:10px"
339
317
  id="code"
340
318
  show="#code-slash"
341
319
  hide="#code, #demo-code"
342
- ><i
343
- class="height:20px fill:#505050"
344
- src="/assets/svg/code.svg"></i
320
+ ><i src="/assets/svg/code.svg"></i
345
321
  ></a>
346
322
  <a
347
323
  class="margin-right:10px"
@@ -350,7 +326,7 @@
350
326
  show="#code, #demo-code"
351
327
  hide="#code-slash"
352
328
  ><i
353
- class="display:flex height:18px fill:#505050"
329
+ class="height:18px"
354
330
  src="/assets/svg/code.svg"></i
355
331
  ></a>
356
332
  <a
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cocreate/file",
3
- "version": "1.17.3",
3
+ "version": "1.17.5",
4
4
  "description": "A versatile, configurable headless file uploader supporting local and server operations. Accessible via a JavaScript API and HTML5 attributes, it provides seamless file reading, writing, and uploading with fallbacks to the standard HTML5 file input API. Ideal for developers needing robust file management in headless environments.",
5
5
  "keywords": [
6
6
  "file-uploader",
@@ -63,9 +63,9 @@
63
63
  "webpack-log": "^3.0.1"
64
64
  },
65
65
  "dependencies": {
66
- "@cocreate/actions": "^1.18.1",
67
- "@cocreate/config": "^1.12.2",
68
- "@cocreate/render": "^1.40.3",
69
- "@cocreate/utils": "^1.33.6"
66
+ "@cocreate/actions": "^1.18.2",
67
+ "@cocreate/config": "^1.12.3",
68
+ "@cocreate/render": "^1.41.0",
69
+ "@cocreate/utils": "^1.33.7"
70
70
  }
71
71
  }
package/src/client.js CHANGED
@@ -108,12 +108,21 @@ async function init(elements) {
108
108
 
109
109
  async function fileEvent(event) {
110
110
  try {
111
- const input = event.target;
111
+ const input = event.currentTarget;
112
+ let multiple = input.multiple
113
+ if (!multiple) {
114
+ multiple = input.getAttribute('multiple');
115
+ if (multiple !== null && multiple !== "false") {
116
+ multiple = true;
117
+ } else {
118
+ multiple = false;
119
+ }
120
+ }
121
+
112
122
  let selected = inputs.get(input) || new Map()
113
123
  let files = input.files;
114
124
  if (!files || !files.length) {
115
125
  event.preventDefault()
116
- const multiple = input.multiple
117
126
  if (input.hasAttribute('directory')) {
118
127
  let handle = await window.showDirectoryPicker();
119
128
  let file = {
@@ -130,6 +139,14 @@ async function fileEvent(event) {
130
139
  }
131
140
 
132
141
  file.handle = handle
142
+
143
+ if (!multiple) {
144
+ for (let [id] of selected) {
145
+ Files.delete(id);
146
+ }
147
+ selected.clear();
148
+ }
149
+
133
150
  selected.set(file.id, file)
134
151
  Files.set(file.id, file)
135
152
 
@@ -169,6 +186,13 @@ async function fileEvent(event) {
169
186
  console.log('Duplicate file has been selected. This could be in error as the browser does not provide a clear way of checking duplictaes')
170
187
  }
171
188
 
189
+ if (!multiple) {
190
+ for (let [id] of selected) {
191
+ Files.delete(id);
192
+ }
193
+ selected.clear();
194
+ }
195
+
172
196
  selected.set(files[i].id, files[i])
173
197
  Files.set(files[i].id, files[i])
174
198
  }
@@ -220,14 +244,11 @@ async function getDirectoryHandles(handle, name) {
220
244
 
221
245
  async function getFileId(file) {
222
246
 
223
- if (file.id = file.path || file.webkitRelativePath) {
247
+ if (file.id = file.pathname) {
224
248
  return file.id;
225
249
  } else {
226
- const { name, size, type, lastModified } = file;
227
- const key = `${name}${size}${type}${lastModified}`;
228
-
229
- file.id = key
230
- return key;
250
+ file.id = `${file.name}${file.size}${file.type}${file.lastModified}`;
251
+ return file.id;
231
252
  }
232
253
  }
233
254
 
@@ -534,7 +555,7 @@ async function upload(element, data) {
534
555
  }
535
556
 
536
557
  // Append the first segment to start
537
- appendSegmfent(0);
558
+ appendSegment(0);
538
559
  });
539
560
 
540
561
 
@@ -877,7 +898,7 @@ async function Delete(file) {
877
898
  Observer.init({
878
899
  name: 'CoCreateFileAddedNodes',
879
900
  observe: ['addedNodes'],
880
- target: 'input[type="file"]',
901
+ target: '[type="file"]',
881
902
  callback: mutation => init(mutation.target)
882
903
 
883
904
  });
@@ -886,13 +907,13 @@ Observer.init({
886
907
  name: 'CoCreateFileAttributes',
887
908
  observe: ['attributes'],
888
909
  attributeName: ['type'],
889
- target: 'input[type="file"]',
910
+ target: '[type="file"]',
890
911
  callback: mutation => init(mutation.target)
891
912
  });
892
913
 
893
914
  Actions.init([
894
915
  {
895
- name: ["upload", "download", "saveLocally", "import", "export"],
916
+ name: ["upload", "download", "saveLocally", "asveAs", "import", "export"],
896
917
  callback: (action) => {
897
918
  if (action.name === 'upload')
898
919
  upload(action.element)
package/src/server.js CHANGED
@@ -334,7 +334,7 @@ module.exports = async function file(CoCreateConfig, configPath, match) {
334
334
  let binary = fs.readFileSync(path);
335
335
  let content = new Buffer.from(binary).toString(readType);
336
336
 
337
- return content
337
+ return content;
338
338
  }
339
339
 
340
340
  /**