@xuda.io/xuda-widget-plugin-xuda-drive 1.0.1 → 1.0.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.
Files changed (3) hide show
  1. package/index.mjs +44 -11
  2. package/package.json +1 -1
  3. package/runtime.mjs +72 -231
package/index.mjs CHANGED
@@ -72,10 +72,11 @@ export const methods = {
72
72
  label: "Drive Folder",
73
73
  type: "string",
74
74
  },
75
- upload_tags: {
76
- label: "Upload Set Tags",
77
- type: "string",
75
+ file_tags: {
76
+ label: "File Tags",
77
+ type: "array",
78
78
  tooltip: "Separate with commas",
79
+ render: "chips",
79
80
  },
80
81
  auto_tag_generator: {
81
82
  label: "Auto Tag Generator",
@@ -141,8 +142,8 @@ export const methods = {
141
142
  name: "Viewer",
142
143
  tooltip: "",
143
144
  fields: {
144
- file_upload_mime_type_preset: {
145
- label: "Mime Type",
145
+ default_view_type: {
146
+ label: "Default View Type",
146
147
  type: "string",
147
148
  render: "select",
148
149
  tooltip: "",
@@ -152,16 +153,16 @@ export const methods = {
152
153
  value: "",
153
154
  },
154
155
  {
155
- label: "Video",
156
- value: "video",
156
+ label: "Thumbnails",
157
+ value: "thumbnails",
157
158
  },
158
159
  {
159
- label: "Audio",
160
- value: "audio",
160
+ label: "List",
161
+ value: "list",
161
162
  },
162
163
  {
163
- label: "Image",
164
- value: "image",
164
+ label: "Slider",
165
+ value: "slider",
165
166
  },
166
167
  ],
167
168
  },
@@ -175,6 +176,38 @@ export const methods = {
175
176
  type: "string",
176
177
  tooltip: "Separate with commas",
177
178
  },
179
+ sort_by: {
180
+ label: "Sort By",
181
+ type: "string",
182
+ render: "select",
183
+ tooltip: "",
184
+ options: [
185
+ {
186
+ label: "File Name",
187
+ value: "",
188
+ },
189
+ {
190
+ label: "Date Modified",
191
+ value: "date",
192
+ },
193
+ ],
194
+ },
195
+ sort_order: {
196
+ label: "Sort Order",
197
+ type: "string",
198
+ render: "segment",
199
+ tooltip: "",
200
+ options: [
201
+ {
202
+ label: "Ascending",
203
+ value: "",
204
+ },
205
+ {
206
+ label: "Descending",
207
+ value: "descending",
208
+ },
209
+ ],
210
+ },
178
211
  },
179
212
  response: { uploaded_files: "" },
180
213
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xuda.io/xuda-widget-plugin-xuda-drive",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Xuda Drive widget plugin",
5
5
  "scripts": {
6
6
  "pub": "npm version patch --force && npm publish --access public"
package/runtime.mjs CHANGED
@@ -325,6 +325,32 @@ export async function upload(fields, e) {
325
325
  formData.append("folder", fields.file_upload_folder);
326
326
  formData.append("public", fields.public_file);
327
327
 
328
+ let tags = [];
329
+
330
+ if (fields.file_tags) {
331
+ function csvToArray(csvString) {
332
+ // Split the string into rows (by newline)
333
+ const rows = csvString.split("\n");
334
+
335
+ // Map through each row and split by commas to create arrays for each row
336
+ return rows.map((row) => row.split(","));
337
+ }
338
+ tags = csvToArray(fields.upload_tags);
339
+ }
340
+
341
+ if (fields.auto_tag_generator) {
342
+ let identifier = fields.auto_tag_identifier || " ";
343
+ let file_tags = file.name.split(identifier);
344
+ if (fields.auto_tag_translations) {
345
+ for (let tag of file_tags) {
346
+ if (auto_tag_translations[tag]) {
347
+ tag = auto_tag_translations[tag];
348
+ }
349
+ }
350
+ }
351
+ }
352
+ formData.append("tags", [...tags, ...file_tags]);
353
+
328
354
  const request = new XMLHttpRequest();
329
355
 
330
356
  let _domain = e._session.domain;
@@ -510,7 +536,7 @@ export async function viewer(fields, e) {
510
536
  <!-- Gallery -->
511
537
  <section class="mt-8 pb-16" aria-labelledby="gallery-heading">
512
538
  <h2 id="gallery-heading" class="sr-only">Recently viewed</h2>
513
- <ul role="list" class="grid grid-cols-2 gap-x-4 gap-y-8 sm:grid-cols-3 sm:gap-x-6 md:grid-cols-4 lg:grid-cols-3 xl:grid-cols-4 xl:gap-x-8">
539
+ <ul role="list" class="grid grid-cols-2 gap-x-4 gap-y-8 sm:grid-cols-3 sm:gap-x-6 md:grid-cols-4 lg:grid-cols-3 xl:grid-cols-4 xl:gap-x-8 [&>li>div>img]:aspect-[3/2]">
514
540
  <li class="relative">
515
541
  <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 ring-2 ring-indigo-500 ring-offset-2" x-state:on="Current" x-state:off="Default" x-state-description='Current: "ring-2 ring-indigo-500 ring-offset-2", Default: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
516
542
  <img src="https://images.unsplash.com/photo-1582053433976-25c00369fc93?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover" x-state:on="Current" x-state:off="Default" x-state-description='Current: "", Default: "group-hover:opacity-75"' />
@@ -521,236 +547,7 @@ export async function viewer(fields, e) {
521
547
  <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_4985.HEIC</p>
522
548
  <p class="pointer-events-none block text-sm font-medium text-gray-500">3.9 MB</p>
523
549
  </li>
524
- <li class="relative">
525
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
526
- <img src="https://images.unsplash.com/photo-1614926857083-7be149266cda?ixlib=rb-1.2.1&amp;ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
527
- <button type="button" class="absolute inset-0 focus:outline-none">
528
- <span class="sr-only">View details for IMG_5214.HEIC</span>
529
- </button>
530
- </div>
531
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_5214.HEIC</p>
532
- <p class="pointer-events-none block text-sm font-medium text-gray-500">4 MB</p>
533
- </li>
534
- <li class="relative">
535
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
536
- <img src="https://images.unsplash.com/photo-1614705827065-62c3dc488f40?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
537
- <button type="button" class="absolute inset-0 focus:outline-none">
538
- <span class="sr-only">View details for IMG_3851.HEIC</span>
539
- </button>
540
- </div>
541
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_3851.HEIC</p>
542
- <p class="pointer-events-none block text-sm font-medium text-gray-500">3.8 MB</p>
543
- </li>
544
- <li class="relative">
545
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
546
- <img src="https://images.unsplash.com/photo-1441974231531-c6227db76b6e?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
547
- <button type="button" class="absolute inset-0 focus:outline-none">
548
- <span class="sr-only">View details for IMG_4278.HEIC</span>
549
- </button>
550
- </div>
551
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_4278.HEIC</p>
552
- <p class="pointer-events-none block text-sm font-medium text-gray-500">4.1 MB</p>
553
- </li>
554
- <li class="relative">
555
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
556
- <img src="https://images.unsplash.com/photo-1586348943529-beaae6c28db9?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
557
- <button type="button" class="absolute inset-0 focus:outline-none">
558
- <span class="sr-only">View details for IMG_6842.HEIC</span>
559
- </button>
560
- </div>
561
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_6842.HEIC</p>
562
- <p class="pointer-events-none block text-sm font-medium text-gray-500">4 MB</p>
563
- </li>
564
- <li class="relative">
565
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
566
- <img src="https://images.unsplash.com/photo-1497436072909-60f360e1d4b1?ixlib=rb-1.2.1&amp;ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
567
- <button type="button" class="absolute inset-0 focus:outline-none">
568
- <span class="sr-only">View details for IMG_3284.HEIC</span>
569
- </button>
570
- </div>
571
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_3284.HEIC</p>
572
- <p class="pointer-events-none block text-sm font-medium text-gray-500">3.9 MB</p>
573
- </li>
574
- <li class="relative">
575
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
576
- <img src="https://images.unsplash.com/photo-1547036967-23d11aacaee0?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
577
- <button type="button" class="absolute inset-0 focus:outline-none">
578
- <span class="sr-only">View details for IMG_4841.HEIC</span>
579
- </button>
580
- </div>
581
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_4841.HEIC</p>
582
- <p class="pointer-events-none block text-sm font-medium text-gray-500">3.8 MB</p>
583
- </li>
584
- <li class="relative">
585
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
586
- <img src="https://images.unsplash.com/photo-1492724724894-7464c27d0ceb?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
587
- <button type="button" class="absolute inset-0 focus:outline-none">
588
- <span class="sr-only">View details for IMG_5644.HEIC</span>
589
- </button>
590
- </div>
591
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_5644.HEIC</p>
592
- <p class="pointer-events-none block text-sm font-medium text-gray-500">4 MB</p>
593
- </li>
594
- <li class="relative">
595
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
596
- <img src="https://images.unsplash.com/photo-1513682322455-ea8b2d81d418?ixlib=rb-1.2.1&amp;ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
597
- <button type="button" class="absolute inset-0 focus:outline-none">
598
- <span class="sr-only">View details for IMG_4945.HEIC</span>
599
- </button>
600
- </div>
601
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_4945.HEIC</p>
602
- <p class="pointer-events-none block text-sm font-medium text-gray-500">4 MB</p>
603
- </li>
604
- <li class="relative">
605
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
606
- <img src="https://images.unsplash.com/photo-1463107971871-fbac9ddb920f?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
607
- <button type="button" class="absolute inset-0 focus:outline-none">
608
- <span class="sr-only">View details for IMG_2156.HEIC</span>
609
- </button>
610
- </div>
611
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_2156.HEIC</p>
612
- <p class="pointer-events-none block text-sm font-medium text-gray-500">4.1 MB</p>
613
- </li>
614
- <li class="relative">
615
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
616
- <img src="https://images.unsplash.com/photo-1552461871-ce4f9fb3b438?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
617
- <button type="button" class="absolute inset-0 focus:outline-none">
618
- <span class="sr-only">View details for IMG_6945.HEIC</span>
619
- </button>
620
- </div>
621
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_6945.HEIC</p>
622
- <p class="pointer-events-none block text-sm font-medium text-gray-500">4.2 MB</p>
623
- </li>
624
- <li class="relative">
625
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
626
- <img src="https://images.unsplash.com/photo-1446292532430-3e76f6ab6444?ixlib=rb-1.2.1&amp;ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
627
- <button type="button" class="absolute inset-0 focus:outline-none">
628
- <span class="sr-only">View details for IMG_1846.HEIC</span>
629
- </button>
630
- </div>
631
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_1846.HEIC</p>
632
- <p class="pointer-events-none block text-sm font-medium text-gray-500">3.6 MB</p>
633
- </li>
634
- <li class="relative">
635
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
636
- <img src="https://images.unsplash.com/photo-1508669232496-137b159c1cdb?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
637
- <button type="button" class="absolute inset-0 focus:outline-none">
638
- <span class="sr-only">View details for IMG_4769.HEIC</span>
639
- </button>
640
- </div>
641
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_4769.HEIC</p>
642
- <p class="pointer-events-none block text-sm font-medium text-gray-500">3.3 MB</p>
643
- </li>
644
- <li class="relative">
645
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
646
- <img src="https://images.unsplash.com/photo-1431512284068-4c4002298068?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
647
- <button type="button" class="absolute inset-0 focus:outline-none">
648
- <span class="sr-only">View details for IMG_9513.HEIC</span>
649
- </button>
650
- </div>
651
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_9513.HEIC</p>
652
- <p class="pointer-events-none block text-sm font-medium text-gray-500">4 MB</p>
653
- </li>
654
- <li class="relative">
655
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
656
- <img src="https://images.unsplash.com/photo-1581320546160-0078de357255?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
657
- <button type="button" class="absolute inset-0 focus:outline-none">
658
- <span class="sr-only">View details for IMG_8451.HEIC</span>
659
- </button>
660
- </div>
661
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_8451.HEIC</p>
662
- <p class="pointer-events-none block text-sm font-medium text-gray-500">3.4 MB</p>
663
- </li>
664
- <li class="relative">
665
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
666
- <img src="https://images.unsplash.com/photo-1541956628-68d338ae09d5?ixlib=rb-1.2.1&amp;ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
667
- <button type="button" class="absolute inset-0 focus:outline-none">
668
- <span class="sr-only">View details for IMG_1298.HEIC</span>
669
- </button>
670
- </div>
671
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_1298.HEIC</p>
672
- <p class="pointer-events-none block text-sm font-medium text-gray-500">4.1 MB</p>
673
- </li>
674
- <li class="relative">
675
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
676
- <img src="https://images.unsplash.com/photo-1505429155379-441cc7a574f7?ixlib=rb-1.2.1&amp;ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
677
- <button type="button" class="absolute inset-0 focus:outline-none">
678
- <span class="sr-only">View details for IMG_6222.HEIC</span>
679
- </button>
680
- </div>
681
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_6222.HEIC</p>
682
- <p class="pointer-events-none block text-sm font-medium text-gray-500">4 MB</p>
683
- </li>
684
- <li class="relative">
685
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
686
- <img src="https://images.unsplash.com/photo-1582029133746-96031e5c8d00?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
687
- <button type="button" class="absolute inset-0 focus:outline-none">
688
- <span class="sr-only">View details for IMG_7451.HEIC</span>
689
- </button>
690
- </div>
691
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_7451.HEIC</p>
692
- <p class="pointer-events-none block text-sm font-medium text-gray-500">3.8 MB</p>
693
- </li>
694
- <li class="relative">
695
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
696
- <img src="https://images.unsplash.com/photo-1575868053350-9fd87f68f984?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
697
- <button type="button" class="absolute inset-0 focus:outline-none">
698
- <span class="sr-only">View details for IMG_9815.HEIC</span>
699
- </button>
700
- </div>
701
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_9815.HEIC</p>
702
- <p class="pointer-events-none block text-sm font-medium text-gray-500">3.9 MB</p>
703
- </li>
704
- <li class="relative">
705
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
706
- <img src="https://images.unsplash.com/photo-1588391051471-1a5283d5a625?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
707
- <button type="button" class="absolute inset-0 focus:outline-none">
708
- <span class="sr-only">View details for IMG_1025.HEIC</span>
709
- </button>
710
- </div>
711
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_1025.HEIC</p>
712
- <p class="pointer-events-none block text-sm font-medium text-gray-500">3.9 MB</p>
713
- </li>
714
- <li class="relative">
715
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
716
- <img src="https://images.unsplash.com/photo-1575314146619-ec67b6213351?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
717
- <button type="button" class="absolute inset-0 focus:outline-none">
718
- <span class="sr-only">View details for IMG_6010.HEIC</span>
719
- </button>
720
- </div>
721
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_6010.HEIC</p>
722
- <p class="pointer-events-none block text-sm font-medium text-gray-500">3.1 MB</p>
723
- </li>
724
- <li class="relative">
725
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
726
- <img src="https://images.unsplash.com/photo-1579874107960-e602329ef20a?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
727
- <button type="button" class="absolute inset-0 focus:outline-none">
728
- <span class="sr-only">View details for IMG_1004.HEIC</span>
729
- </button>
730
- </div>
731
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_1004.HEIC</p>
732
- <p class="pointer-events-none block text-sm font-medium text-gray-500">4.4 MB</p>
733
- </li>
734
- <li class="relative">
735
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
736
- <img src="https://images.unsplash.com/flagged/photo-1551385229-2925ed4eb53d?ixlib=rb-1.2.1&amp;ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
737
- <button type="button" class="absolute inset-0 focus:outline-none">
738
- <span class="sr-only">View details for IMG_8499.HEIC</span>
739
- </button>
740
- </div>
741
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_8499.HEIC</p>
742
- <p class="pointer-events-none block text-sm font-medium text-gray-500">3.4 MB</p>
743
- </li>
744
- <li class="relative">
745
- <div class="aspect-w-10 aspect-h-7 group block w-full overflow-hidden rounded-lg bg-gray-100 focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100" x-state-description='undefined: "ring-2 ring-indigo-500 ring-offset-2", undefined: "focus-within:ring-2 focus-within:ring-indigo-500 focus-within:ring-offset-2 focus-within:ring-offset-gray-100"'>
746
- <img src="https://images.unsplash.com/photo-1498575637358-821023f27355?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=512&amp;q=80" alt="" class="pointer-events-none object-cover group-hover:opacity-75" x-state-description='undefined: "", undefined: "group-hover:opacity-75"' />
747
- <button type="button" class="absolute inset-0 focus:outline-none">
748
- <span class="sr-only">View details for IMG_2154.HEIC</span>
749
- </button>
750
- </div>
751
- <p class="pointer-events-none mt-2 block truncate text-sm font-medium text-gray-900">IMG_2154.HEIC</p>
752
- <p class="pointer-events-none block text-sm font-medium text-gray-500">3.8 MB</p>
753
- </li>
550
+
754
551
  </ul>
755
552
  </section>
756
553
  </div>
@@ -759,4 +556,48 @@ export async function viewer(fields, e) {
759
556
  `;
760
557
 
761
558
  e.$containerP.html(html);
559
+
560
+ const fetchWithTimeout = (url, options = {}, timeout = 600000) => {
561
+ // 100 seconds
562
+ const controller = new AbortController();
563
+ const { signal } = controller;
564
+
565
+ const timeoutPromise = new Promise((_, reject) =>
566
+ setTimeout(() => {
567
+ controller.abort();
568
+ reject(new Error("Request timed out"));
569
+ }, timeout)
570
+ );
571
+
572
+ const fetchPromise = fetch(url, { ...options, signal });
573
+
574
+ return Promise.race([fetchPromise, timeoutPromise]);
575
+ };
576
+
577
+ let opt = {};
578
+
579
+ try {
580
+ let domain =
581
+ e._session.engine_mode === "live_preview" ? `dev.xuda.io` : `xuda.io`;
582
+
583
+ const response = await fetchWithTimeout(
584
+ `https://${domain}/cpi/search_drive_files_workspace`,
585
+ {
586
+ method: "POST",
587
+ headers: {
588
+ Accept: "application/json",
589
+ "Content-Type": "application/json",
590
+ "xu-gtp-token": e_session.gtp_token,
591
+ "xu-app-token": e_session.app_token,
592
+ },
593
+ body: JSON.stringify(opt),
594
+ }
595
+ );
596
+
597
+ if (!response.ok) {
598
+ throw response.status;
599
+ }
600
+ const json = await response.json();
601
+ return json;
602
+ } catch (err) {}
762
603
  }