@firecms/collection_editor 3.3.0 → 3.4.0-canary.1faa2a9

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/dist/index.umd.js CHANGED
@@ -2375,10 +2375,9 @@
2375
2375
  ] });
2376
2376
  }
2377
2377
  function StoragePropertyField(t0) {
2378
- const $ = reactCompilerRuntime.c(344);
2378
+ const $ = reactCompilerRuntime.c(341);
2379
2379
  const {
2380
2380
  multiple,
2381
- existing,
2382
2381
  disabled
2383
2382
  } = t0;
2384
2383
  const {
@@ -2442,39 +2441,39 @@
2442
2441
  let t7;
2443
2442
  let t8;
2444
2443
  let t9;
2445
- if ($[6] !== acceptedFiles || $[7] !== disabled || $[8] !== existing || $[9] !== fileName || $[10] !== fileNameValue || $[11] !== imageResizeFormat || $[12] !== imageResizeMaxHeight || $[13] !== imageResizeMaxWidth || $[14] !== imageResizeMode || $[15] !== imageResizeQuality || $[16] !== includeBucketUrl || $[17] !== maxSize || $[18] !== setFieldValue || $[19] !== storagePath || $[20] !== storagePathValue || $[21] !== storeUrl || $[22] !== t || $[23] !== values) {
2444
+ if ($[6] !== acceptedFiles || $[7] !== disabled || $[8] !== fileName || $[9] !== fileNameValue || $[10] !== imageResizeFormat || $[11] !== imageResizeMaxHeight || $[12] !== imageResizeMaxWidth || $[13] !== imageResizeMode || $[14] !== imageResizeQuality || $[15] !== includeBucketUrl || $[16] !== maxSize || $[17] !== setFieldValue || $[18] !== storagePath || $[19] !== storagePathValue || $[20] !== storeUrl || $[21] !== t || $[22] !== values) {
2446
2445
  const maxSizeValue = formex.getIn(values, maxSize);
2447
2446
  const imageResizeMaxWidthValue = formex.getIn(values, imageResizeMaxWidth);
2448
2447
  const imageResizeMaxHeightValue = formex.getIn(values, imageResizeMaxHeight);
2449
2448
  let t222;
2450
- if ($[45] !== imageResizeMode || $[46] !== values) {
2449
+ if ($[44] !== imageResizeMode || $[45] !== values) {
2451
2450
  t222 = formex.getIn(values, imageResizeMode) ?? "cover";
2452
- $[45] = imageResizeMode;
2453
- $[46] = values;
2454
- $[47] = t222;
2451
+ $[44] = imageResizeMode;
2452
+ $[45] = values;
2453
+ $[46] = t222;
2455
2454
  } else {
2456
- t222 = $[47];
2455
+ t222 = $[46];
2457
2456
  }
2458
2457
  const imageResizeModeValue = t222;
2459
2458
  let t232;
2460
- if ($[48] !== imageResizeFormat || $[49] !== values) {
2459
+ if ($[47] !== imageResizeFormat || $[48] !== values) {
2461
2460
  t232 = formex.getIn(values, imageResizeFormat) ?? "original";
2462
- $[48] = imageResizeFormat;
2463
- $[49] = values;
2464
- $[50] = t232;
2461
+ $[47] = imageResizeFormat;
2462
+ $[48] = values;
2463
+ $[49] = t232;
2465
2464
  } else {
2466
- t232 = $[50];
2465
+ t232 = $[49];
2467
2466
  }
2468
2467
  const imageResizeFormatValue = t232;
2469
2468
  const imageResizeQualityValue = formex.getIn(values, imageResizeQuality);
2470
2469
  let t242;
2471
- if ($[51] !== acceptedFiles || $[52] !== values) {
2470
+ if ($[50] !== acceptedFiles || $[51] !== values) {
2472
2471
  t242 = formex.getIn(values, acceptedFiles);
2473
- $[51] = acceptedFiles;
2474
- $[52] = values;
2475
- $[53] = t242;
2472
+ $[50] = acceptedFiles;
2473
+ $[51] = values;
2474
+ $[52] = t242;
2476
2475
  } else {
2477
- t242 = $[53];
2476
+ t242 = $[52];
2478
2477
  }
2479
2478
  const storedValue = t242;
2480
2479
  const fileTypesValue = Array.isArray(storedValue) ? storedValue : void 0;
@@ -2492,7 +2491,7 @@
2492
2491
  let t322;
2493
2492
  let t332;
2494
2493
  let t34;
2495
- if ($[54] !== acceptedFiles || $[55] !== allFileTypesSelected || $[56] !== disabled || $[57] !== fileNameValue || $[58] !== fileTypesValue || $[59] !== setFieldValue || $[60] !== storagePathValue || $[61] !== t) {
2494
+ if ($[53] !== acceptedFiles || $[54] !== allFileTypesSelected || $[55] !== disabled || $[56] !== fileNameValue || $[57] !== fileTypesValue || $[58] !== setFieldValue || $[59] !== storagePathValue || $[60] !== t) {
2496
2495
  const fileTypes = {
2497
2496
  "image/*": t("file_type_images"),
2498
2497
  "video/*": t("file_type_videos"),
@@ -2501,7 +2500,7 @@
2501
2500
  "text/*": t("file_type_text")
2502
2501
  };
2503
2502
  let t352;
2504
- if ($[79] !== acceptedFiles || $[80] !== setFieldValue) {
2503
+ if ($[78] !== acceptedFiles || $[79] !== setFieldValue) {
2505
2504
  t352 = (value) => {
2506
2505
  if (!value) {
2507
2506
  setFieldValue(acceptedFiles, void 0);
@@ -2509,11 +2508,11 @@
2509
2508
  setFieldValue(acceptedFiles, value);
2510
2509
  }
2511
2510
  };
2512
- $[79] = acceptedFiles;
2513
- $[80] = setFieldValue;
2514
- $[81] = t352;
2511
+ $[78] = acceptedFiles;
2512
+ $[79] = setFieldValue;
2513
+ $[80] = t352;
2515
2514
  } else {
2516
- t352 = $[81];
2515
+ t352 = $[80];
2517
2516
  }
2518
2517
  const handleTypesChange = t352;
2519
2518
  hasFilenameCallback = typeof fileNameValue === "function";
@@ -2521,58 +2520,58 @@
2521
2520
  t21 = "col-span-12";
2522
2521
  T1 = ui.ExpandablePanel;
2523
2522
  let t362;
2524
- if ($[82] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
2523
+ if ($[81] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
2525
2524
  t362 = /* @__PURE__ */ jsxRuntime.jsx(ui.CloudUploadIcon, {});
2526
- $[82] = t362;
2525
+ $[81] = t362;
2527
2526
  } else {
2528
- t362 = $[82];
2527
+ t362 = $[81];
2529
2528
  }
2530
2529
  let t372;
2531
- if ($[83] !== t) {
2530
+ if ($[82] !== t) {
2532
2531
  t372 = t("file_upload_config");
2533
- $[83] = t;
2534
- $[84] = t372;
2532
+ $[82] = t;
2533
+ $[83] = t372;
2535
2534
  } else {
2536
- t372 = $[84];
2535
+ t372 = $[83];
2537
2536
  }
2538
- if ($[85] !== t372) {
2537
+ if ($[84] !== t372) {
2539
2538
  t20 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-row text-surface-500 text-text-secondary dark:text-text-secondary-dark", children: [
2540
2539
  t362,
2541
2540
  /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "subtitle2", className: "ml-4", children: t372 })
2542
2541
  ] });
2543
- $[85] = t372;
2544
- $[86] = t20;
2542
+ $[84] = t372;
2543
+ $[85] = t20;
2545
2544
  } else {
2546
- t20 = $[86];
2545
+ t20 = $[85];
2547
2546
  }
2548
2547
  t10 = "grid grid-cols-12 gap-2 p-4";
2549
2548
  t34 = "col-span-12";
2550
2549
  T2 = ui.MultiSelect;
2551
2550
  t252 = "w-full";
2552
- if ($[87] !== t) {
2551
+ if ($[86] !== t) {
2553
2552
  t262 = t("all_file_types_allowed");
2554
- $[87] = t;
2555
- $[88] = t262;
2553
+ $[86] = t;
2554
+ $[87] = t262;
2556
2555
  } else {
2557
- t262 = $[88];
2556
+ t262 = $[87];
2558
2557
  }
2559
2558
  t272 = disabled;
2560
2559
  t282 = acceptedFiles;
2561
- if ($[89] !== fileTypesValue) {
2560
+ if ($[88] !== fileTypesValue) {
2562
2561
  t292 = fileTypesValue ?? [];
2563
- $[89] = fileTypesValue;
2564
- $[90] = t292;
2562
+ $[88] = fileTypesValue;
2563
+ $[89] = t292;
2565
2564
  } else {
2566
- t292 = $[90];
2565
+ t292 = $[89];
2567
2566
  }
2568
2567
  t302 = handleTypesChange;
2569
- if ($[91] !== allFileTypesSelected || $[92] !== t) {
2568
+ if ($[90] !== allFileTypesSelected || $[91] !== t) {
2570
2569
  t312 = allFileTypesSelected ? void 0 : t("allowed_file_types");
2571
- $[91] = allFileTypesSelected;
2572
- $[92] = t;
2573
- $[93] = t312;
2570
+ $[90] = allFileTypesSelected;
2571
+ $[91] = t;
2572
+ $[92] = t312;
2574
2573
  } else {
2575
- t312 = $[93];
2574
+ t312 = $[92];
2576
2575
  }
2577
2576
  t322 = (selected) => {
2578
2577
  if (!selected || selected.length === 0) {
@@ -2581,7 +2580,7 @@
2581
2580
  return selected.map((v) => fileTypes[v]).filter(_temp$d).join(", ");
2582
2581
  };
2583
2582
  let t382;
2584
- if ($[94] !== acceptedFiles || $[95] !== setFieldValue || $[96] !== t) {
2583
+ if ($[93] !== acceptedFiles || $[94] !== setFieldValue || $[95] !== t) {
2585
2584
  t382 = (t392) => {
2586
2585
  const [value_0, label] = t392;
2587
2586
  return /* @__PURE__ */ jsxRuntime.jsxs(ui.MultiSelectItem, { value: value_0, className: "flex items-center gap-2", children: [
@@ -2593,254 +2592,254 @@
2593
2592
  }, children: t("only") })
2594
2593
  ] }, value_0);
2595
2594
  };
2596
- $[94] = acceptedFiles;
2597
- $[95] = setFieldValue;
2598
- $[96] = t;
2599
- $[97] = t382;
2595
+ $[93] = acceptedFiles;
2596
+ $[94] = setFieldValue;
2597
+ $[95] = t;
2598
+ $[96] = t382;
2600
2599
  } else {
2601
- t382 = $[97];
2600
+ t382 = $[96];
2602
2601
  }
2603
2602
  t332 = Object.entries(fileTypes).map(t382);
2604
- $[54] = acceptedFiles;
2605
- $[55] = allFileTypesSelected;
2606
- $[56] = disabled;
2607
- $[57] = fileNameValue;
2608
- $[58] = fileTypesValue;
2609
- $[59] = setFieldValue;
2610
- $[60] = storagePathValue;
2611
- $[61] = t;
2612
- $[62] = T1;
2613
- $[63] = T2;
2614
- $[64] = hasFilenameCallback;
2615
- $[65] = hasStoragePathCallback;
2616
- $[66] = t10;
2617
- $[67] = t20;
2618
- $[68] = t21;
2619
- $[69] = t252;
2620
- $[70] = t262;
2621
- $[71] = t272;
2622
- $[72] = t282;
2623
- $[73] = t292;
2624
- $[74] = t302;
2625
- $[75] = t312;
2626
- $[76] = t322;
2627
- $[77] = t332;
2628
- $[78] = t34;
2603
+ $[53] = acceptedFiles;
2604
+ $[54] = allFileTypesSelected;
2605
+ $[55] = disabled;
2606
+ $[56] = fileNameValue;
2607
+ $[57] = fileTypesValue;
2608
+ $[58] = setFieldValue;
2609
+ $[59] = storagePathValue;
2610
+ $[60] = t;
2611
+ $[61] = T1;
2612
+ $[62] = T2;
2613
+ $[63] = hasFilenameCallback;
2614
+ $[64] = hasStoragePathCallback;
2615
+ $[65] = t10;
2616
+ $[66] = t20;
2617
+ $[67] = t21;
2618
+ $[68] = t252;
2619
+ $[69] = t262;
2620
+ $[70] = t272;
2621
+ $[71] = t282;
2622
+ $[72] = t292;
2623
+ $[73] = t302;
2624
+ $[74] = t312;
2625
+ $[75] = t322;
2626
+ $[76] = t332;
2627
+ $[77] = t34;
2629
2628
  } else {
2630
- T1 = $[62];
2631
- T2 = $[63];
2632
- hasFilenameCallback = $[64];
2633
- hasStoragePathCallback = $[65];
2634
- t10 = $[66];
2635
- t20 = $[67];
2636
- t21 = $[68];
2637
- t252 = $[69];
2638
- t262 = $[70];
2639
- t272 = $[71];
2640
- t282 = $[72];
2641
- t292 = $[73];
2642
- t302 = $[74];
2643
- t312 = $[75];
2644
- t322 = $[76];
2645
- t332 = $[77];
2646
- t34 = $[78];
2629
+ T1 = $[61];
2630
+ T2 = $[62];
2631
+ hasFilenameCallback = $[63];
2632
+ hasStoragePathCallback = $[64];
2633
+ t10 = $[65];
2634
+ t20 = $[66];
2635
+ t21 = $[67];
2636
+ t252 = $[68];
2637
+ t262 = $[69];
2638
+ t272 = $[70];
2639
+ t282 = $[71];
2640
+ t292 = $[72];
2641
+ t302 = $[73];
2642
+ t312 = $[74];
2643
+ t322 = $[75];
2644
+ t332 = $[76];
2645
+ t34 = $[77];
2647
2646
  }
2648
2647
  let t35;
2649
- if ($[98] !== T2 || $[99] !== t252 || $[100] !== t262 || $[101] !== t272 || $[102] !== t282 || $[103] !== t292 || $[104] !== t302 || $[105] !== t312 || $[106] !== t322 || $[107] !== t332) {
2648
+ if ($[97] !== T2 || $[98] !== t252 || $[99] !== t262 || $[100] !== t272 || $[101] !== t282 || $[102] !== t292 || $[103] !== t302 || $[104] !== t312 || $[105] !== t322 || $[106] !== t332) {
2650
2649
  t35 = /* @__PURE__ */ jsxRuntime.jsx(T2, { className: t252, placeholder: t262, disabled: t272, name: t282, value: t292, onValueChange: t302, label: t312, renderValues: t322, children: t332 });
2651
- $[98] = T2;
2652
- $[99] = t252;
2653
- $[100] = t262;
2654
- $[101] = t272;
2655
- $[102] = t282;
2656
- $[103] = t292;
2657
- $[104] = t302;
2658
- $[105] = t312;
2659
- $[106] = t322;
2660
- $[107] = t332;
2661
- $[108] = t35;
2650
+ $[97] = T2;
2651
+ $[98] = t252;
2652
+ $[99] = t262;
2653
+ $[100] = t272;
2654
+ $[101] = t282;
2655
+ $[102] = t292;
2656
+ $[103] = t302;
2657
+ $[104] = t312;
2658
+ $[105] = t322;
2659
+ $[106] = t332;
2660
+ $[107] = t35;
2662
2661
  } else {
2663
- t35 = $[108];
2662
+ t35 = $[107];
2664
2663
  }
2665
- if ($[109] !== t34 || $[110] !== t35) {
2664
+ if ($[108] !== t34 || $[109] !== t35) {
2666
2665
  t11 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: t34, children: t35 });
2667
- $[109] = t34;
2668
- $[110] = t35;
2669
- $[111] = t11;
2666
+ $[108] = t34;
2667
+ $[109] = t35;
2668
+ $[110] = t11;
2670
2669
  } else {
2671
- t11 = $[111];
2670
+ t11 = $[110];
2672
2671
  }
2673
2672
  let t36;
2674
- if ($[112] !== t) {
2673
+ if ($[111] !== t) {
2675
2674
  t36 = t("file_name_label");
2676
- $[112] = t;
2677
- $[113] = t36;
2675
+ $[111] = t;
2676
+ $[112] = t36;
2678
2677
  } else {
2679
- t36 = $[113];
2678
+ t36 = $[112];
2680
2679
  }
2681
2680
  const t37 = hasFilenameCallback || disabled;
2682
2681
  const t38 = hasFilenameCallback ? "-" : fileNameValue;
2683
- if ($[114] !== fileName || $[115] !== t36 || $[116] !== t37 || $[117] !== t38) {
2682
+ if ($[113] !== fileName || $[114] !== t36 || $[115] !== t37 || $[116] !== t38) {
2684
2683
  t12 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-12", children: /* @__PURE__ */ jsxRuntime.jsx(formex.Field, { name: fileName, as: ui.DebouncedTextField, label: t36, size: "small", disabled: t37, value: t38 }) });
2685
- $[114] = fileName;
2686
- $[115] = t36;
2687
- $[116] = t37;
2688
- $[117] = t38;
2689
- $[118] = t12;
2684
+ $[113] = fileName;
2685
+ $[114] = t36;
2686
+ $[115] = t37;
2687
+ $[116] = t38;
2688
+ $[117] = t12;
2690
2689
  } else {
2691
- t12 = $[118];
2690
+ t12 = $[117];
2692
2691
  }
2693
2692
  let t39;
2694
- if ($[119] !== t) {
2693
+ if ($[118] !== t) {
2695
2694
  t39 = t("storage_path_label");
2696
- $[119] = t;
2697
- $[120] = t39;
2695
+ $[118] = t;
2696
+ $[119] = t39;
2698
2697
  } else {
2699
- t39 = $[120];
2698
+ t39 = $[119];
2700
2699
  }
2701
2700
  const t40 = hasStoragePathCallback || disabled;
2702
2701
  const t41 = hasStoragePathCallback ? "-" : storagePathValue;
2703
2702
  let t42;
2704
- if ($[121] !== storagePath || $[122] !== t39 || $[123] !== t40 || $[124] !== t41) {
2703
+ if ($[120] !== storagePath || $[121] !== t39 || $[122] !== t40 || $[123] !== t41) {
2705
2704
  t42 = /* @__PURE__ */ jsxRuntime.jsx(formex.Field, { name: storagePath, as: ui.DebouncedTextField, label: t39, disabled: t40, size: "small", value: t41 });
2706
- $[121] = storagePath;
2707
- $[122] = t39;
2708
- $[123] = t40;
2709
- $[124] = t41;
2710
- $[125] = t42;
2705
+ $[120] = storagePath;
2706
+ $[121] = t39;
2707
+ $[122] = t40;
2708
+ $[123] = t41;
2709
+ $[124] = t42;
2711
2710
  } else {
2712
- t42 = $[125];
2711
+ t42 = $[124];
2713
2712
  }
2714
2713
  let t43;
2715
- if ($[126] !== t) {
2714
+ if ($[125] !== t) {
2716
2715
  t43 = t("storage_placeholders_description");
2717
- $[126] = t;
2718
- $[127] = t43;
2716
+ $[125] = t;
2717
+ $[126] = t43;
2719
2718
  } else {
2720
- t43 = $[127];
2719
+ t43 = $[126];
2721
2720
  }
2722
2721
  let t44;
2723
- if ($[128] !== t43) {
2722
+ if ($[127] !== t43) {
2724
2723
  t44 = /* @__PURE__ */ jsxRuntime.jsx("p", { children: t43 });
2725
- $[128] = t43;
2726
- $[129] = t44;
2724
+ $[127] = t43;
2725
+ $[128] = t44;
2727
2726
  } else {
2728
- t44 = $[129];
2727
+ t44 = $[128];
2729
2728
  }
2730
2729
  let t45;
2731
- if ($[130] !== t) {
2730
+ if ($[129] !== t) {
2732
2731
  t45 = t("storage_placeholder_file");
2733
- $[130] = t;
2734
- $[131] = t45;
2732
+ $[129] = t;
2733
+ $[130] = t45;
2735
2734
  } else {
2736
- t45 = $[131];
2735
+ t45 = $[130];
2737
2736
  }
2738
2737
  let t46;
2739
- if ($[132] !== t45) {
2738
+ if ($[131] !== t45) {
2740
2739
  t46 = /* @__PURE__ */ jsxRuntime.jsx("li", { children: t45 });
2741
- $[132] = t45;
2742
- $[133] = t46;
2740
+ $[131] = t45;
2741
+ $[132] = t46;
2743
2742
  } else {
2744
- t46 = $[133];
2743
+ t46 = $[132];
2745
2744
  }
2746
2745
  let t47;
2747
- if ($[134] !== t) {
2746
+ if ($[133] !== t) {
2748
2747
  t47 = t("storage_placeholder_file_name");
2749
- $[134] = t;
2750
- $[135] = t47;
2748
+ $[133] = t;
2749
+ $[134] = t47;
2751
2750
  } else {
2752
- t47 = $[135];
2751
+ t47 = $[134];
2753
2752
  }
2754
2753
  let t48;
2755
- if ($[136] !== t47) {
2754
+ if ($[135] !== t47) {
2756
2755
  t48 = /* @__PURE__ */ jsxRuntime.jsx("li", { children: t47 });
2757
- $[136] = t47;
2758
- $[137] = t48;
2756
+ $[135] = t47;
2757
+ $[136] = t48;
2759
2758
  } else {
2760
- t48 = $[137];
2759
+ t48 = $[136];
2761
2760
  }
2762
2761
  let t49;
2763
- if ($[138] !== t) {
2762
+ if ($[137] !== t) {
2764
2763
  t49 = t("storage_placeholder_file_ext");
2765
- $[138] = t;
2766
- $[139] = t49;
2764
+ $[137] = t;
2765
+ $[138] = t49;
2767
2766
  } else {
2768
- t49 = $[139];
2767
+ t49 = $[138];
2769
2768
  }
2770
2769
  let t50;
2771
- if ($[140] !== t49) {
2770
+ if ($[139] !== t49) {
2772
2771
  t50 = /* @__PURE__ */ jsxRuntime.jsx("li", { children: t49 });
2773
- $[140] = t49;
2774
- $[141] = t50;
2772
+ $[139] = t49;
2773
+ $[140] = t50;
2775
2774
  } else {
2776
- t50 = $[141];
2775
+ t50 = $[140];
2777
2776
  }
2778
2777
  let t51;
2779
- if ($[142] !== t) {
2778
+ if ($[141] !== t) {
2780
2779
  t51 = t("storage_placeholder_entity_id");
2781
- $[142] = t;
2782
- $[143] = t51;
2780
+ $[141] = t;
2781
+ $[142] = t51;
2783
2782
  } else {
2784
- t51 = $[143];
2783
+ t51 = $[142];
2785
2784
  }
2786
2785
  let t52;
2787
- if ($[144] !== t51) {
2786
+ if ($[143] !== t51) {
2788
2787
  t52 = /* @__PURE__ */ jsxRuntime.jsx("li", { children: t51 });
2789
- $[144] = t51;
2790
- $[145] = t52;
2788
+ $[143] = t51;
2789
+ $[144] = t52;
2791
2790
  } else {
2792
- t52 = $[145];
2791
+ t52 = $[144];
2793
2792
  }
2794
2793
  let t53;
2795
- if ($[146] !== t) {
2794
+ if ($[145] !== t) {
2796
2795
  t53 = t("storage_placeholder_property_key");
2797
- $[146] = t;
2798
- $[147] = t53;
2796
+ $[145] = t;
2797
+ $[146] = t53;
2799
2798
  } else {
2800
- t53 = $[147];
2799
+ t53 = $[146];
2801
2800
  }
2802
2801
  let t54;
2803
- if ($[148] !== t53) {
2802
+ if ($[147] !== t53) {
2804
2803
  t54 = /* @__PURE__ */ jsxRuntime.jsx("li", { children: t53 });
2805
- $[148] = t53;
2806
- $[149] = t54;
2804
+ $[147] = t53;
2805
+ $[148] = t54;
2807
2806
  } else {
2808
- t54 = $[149];
2807
+ t54 = $[148];
2809
2808
  }
2810
2809
  let t55;
2811
- if ($[150] !== t) {
2810
+ if ($[149] !== t) {
2812
2811
  t55 = t("storage_placeholder_path");
2813
- $[150] = t;
2814
- $[151] = t55;
2812
+ $[149] = t;
2813
+ $[150] = t55;
2815
2814
  } else {
2816
- t55 = $[151];
2815
+ t55 = $[150];
2817
2816
  }
2818
2817
  let t56;
2819
- if ($[152] !== t55) {
2818
+ if ($[151] !== t55) {
2820
2819
  t56 = /* @__PURE__ */ jsxRuntime.jsx("li", { children: t55 });
2821
- $[152] = t55;
2822
- $[153] = t56;
2820
+ $[151] = t55;
2821
+ $[152] = t56;
2823
2822
  } else {
2824
- t56 = $[153];
2823
+ t56 = $[152];
2825
2824
  }
2826
2825
  let t57;
2827
- if ($[154] !== t) {
2826
+ if ($[153] !== t) {
2828
2827
  t57 = t("storage_placeholder_rand");
2829
- $[154] = t;
2830
- $[155] = t57;
2828
+ $[153] = t;
2829
+ $[154] = t57;
2831
2830
  } else {
2832
- t57 = $[155];
2831
+ t57 = $[154];
2833
2832
  }
2834
2833
  let t58;
2835
- if ($[156] !== t57) {
2834
+ if ($[155] !== t57) {
2836
2835
  t58 = /* @__PURE__ */ jsxRuntime.jsx("li", { children: t57 });
2837
- $[156] = t57;
2838
- $[157] = t58;
2836
+ $[155] = t57;
2837
+ $[156] = t58;
2839
2838
  } else {
2840
- t58 = $[157];
2839
+ t58 = $[156];
2841
2840
  }
2842
2841
  let t59;
2843
- if ($[158] !== t46 || $[159] !== t48 || $[160] !== t50 || $[161] !== t52 || $[162] !== t54 || $[163] !== t56 || $[164] !== t58) {
2842
+ if ($[157] !== t46 || $[158] !== t48 || $[159] !== t50 || $[160] !== t52 || $[161] !== t54 || $[162] !== t56 || $[163] !== t58) {
2844
2843
  t59 = /* @__PURE__ */ jsxRuntime.jsxs("ul", { children: [
2845
2844
  t46,
2846
2845
  t48,
@@ -2850,112 +2849,110 @@
2850
2849
  t56,
2851
2850
  t58
2852
2851
  ] });
2853
- $[158] = t46;
2854
- $[159] = t48;
2855
- $[160] = t50;
2856
- $[161] = t52;
2857
- $[162] = t54;
2858
- $[163] = t56;
2859
- $[164] = t58;
2860
- $[165] = t59;
2852
+ $[157] = t46;
2853
+ $[158] = t48;
2854
+ $[159] = t50;
2855
+ $[160] = t52;
2856
+ $[161] = t54;
2857
+ $[162] = t56;
2858
+ $[163] = t58;
2859
+ $[164] = t59;
2861
2860
  } else {
2862
- t59 = $[165];
2861
+ t59 = $[164];
2863
2862
  }
2864
2863
  let t60;
2865
- if ($[166] !== t44 || $[167] !== t59) {
2864
+ if ($[165] !== t44 || $[166] !== t59) {
2866
2865
  t60 = /* @__PURE__ */ jsxRuntime.jsxs(ui.Typography, { variant: "caption", className: "ml-3.5 mt-1 mb-2", children: [
2867
2866
  t44,
2868
2867
  t59
2869
2868
  ] });
2870
- $[166] = t44;
2871
- $[167] = t59;
2872
- $[168] = t60;
2869
+ $[165] = t44;
2870
+ $[166] = t59;
2871
+ $[167] = t60;
2873
2872
  } else {
2874
- t60 = $[168];
2873
+ t60 = $[167];
2875
2874
  }
2876
2875
  let t61;
2877
- if ($[169] !== disabled || $[170] !== existing || $[171] !== t) {
2876
+ if ($[168] !== disabled || $[169] !== t) {
2878
2877
  t61 = (t622) => {
2879
2878
  const {
2880
2879
  field,
2881
2880
  form
2882
2881
  } = t622;
2883
- return /* @__PURE__ */ jsxRuntime.jsx(SwitchControl, { label: t("include_bucket_url"), disabled: existing || disabled, form, field });
2882
+ return /* @__PURE__ */ jsxRuntime.jsx(SwitchControl, { label: t("include_bucket_url"), disabled, form, field });
2884
2883
  };
2885
- $[169] = disabled;
2886
- $[170] = existing;
2887
- $[171] = t;
2888
- $[172] = t61;
2884
+ $[168] = disabled;
2885
+ $[169] = t;
2886
+ $[170] = t61;
2889
2887
  } else {
2890
- t61 = $[172];
2888
+ t61 = $[170];
2891
2889
  }
2892
2890
  let t62;
2893
- if ($[173] !== includeBucketUrl || $[174] !== t61) {
2891
+ if ($[171] !== includeBucketUrl || $[172] !== t61) {
2894
2892
  t62 = /* @__PURE__ */ jsxRuntime.jsx(formex.Field, { name: includeBucketUrl, type: "checkbox", children: t61 });
2895
- $[173] = includeBucketUrl;
2896
- $[174] = t61;
2897
- $[175] = t62;
2893
+ $[171] = includeBucketUrl;
2894
+ $[172] = t61;
2895
+ $[173] = t62;
2898
2896
  } else {
2899
- t62 = $[175];
2897
+ t62 = $[173];
2900
2898
  }
2901
2899
  let t63;
2902
- if ($[176] !== t) {
2900
+ if ($[174] !== t) {
2903
2901
  t63 = t("include_bucket_url_description");
2904
- $[176] = t;
2905
- $[177] = t63;
2902
+ $[174] = t;
2903
+ $[175] = t63;
2906
2904
  } else {
2907
- t63 = $[177];
2905
+ t63 = $[175];
2908
2906
  }
2909
2907
  let t64;
2910
- if ($[178] !== t63) {
2908
+ if ($[176] !== t63) {
2911
2909
  t64 = /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "caption", className: "ml-3.5 mt-1 mb-2", children: t63 });
2912
- $[178] = t63;
2913
- $[179] = t64;
2910
+ $[176] = t63;
2911
+ $[177] = t64;
2914
2912
  } else {
2915
- t64 = $[179];
2913
+ t64 = $[177];
2916
2914
  }
2917
2915
  let t65;
2918
- if ($[180] !== disabled || $[181] !== existing || $[182] !== t) {
2916
+ if ($[178] !== disabled || $[179] !== t) {
2919
2917
  t65 = (t662) => {
2920
2918
  const {
2921
2919
  field: field_0,
2922
2920
  form: form_0
2923
2921
  } = t662;
2924
- return /* @__PURE__ */ jsxRuntime.jsx(SwitchControl, { label: t("save_url_instead_of_path"), disabled: existing || disabled, form: form_0, field: field_0 });
2922
+ return /* @__PURE__ */ jsxRuntime.jsx(SwitchControl, { label: t("save_url_instead_of_path"), disabled, form: form_0, field: field_0 });
2925
2923
  };
2926
- $[180] = disabled;
2927
- $[181] = existing;
2928
- $[182] = t;
2929
- $[183] = t65;
2924
+ $[178] = disabled;
2925
+ $[179] = t;
2926
+ $[180] = t65;
2930
2927
  } else {
2931
- t65 = $[183];
2928
+ t65 = $[180];
2932
2929
  }
2933
2930
  let t66;
2934
- if ($[184] !== storeUrl || $[185] !== t65) {
2931
+ if ($[181] !== storeUrl || $[182] !== t65) {
2935
2932
  t66 = /* @__PURE__ */ jsxRuntime.jsx(formex.Field, { name: storeUrl, type: "checkbox", children: t65 });
2936
- $[184] = storeUrl;
2937
- $[185] = t65;
2938
- $[186] = t66;
2933
+ $[181] = storeUrl;
2934
+ $[182] = t65;
2935
+ $[183] = t66;
2939
2936
  } else {
2940
- t66 = $[186];
2937
+ t66 = $[183];
2941
2938
  }
2942
2939
  let t67;
2943
- if ($[187] !== t) {
2940
+ if ($[184] !== t) {
2944
2941
  t67 = t("save_url_description");
2945
- $[187] = t;
2946
- $[188] = t67;
2942
+ $[184] = t;
2943
+ $[185] = t67;
2947
2944
  } else {
2948
- t67 = $[188];
2945
+ t67 = $[185];
2949
2946
  }
2950
2947
  let t68;
2951
- if ($[189] !== t67) {
2948
+ if ($[186] !== t67) {
2952
2949
  t68 = /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "caption", className: "ml-3.5 mt-1 mb-2", children: t67 });
2953
- $[189] = t67;
2954
- $[190] = t68;
2950
+ $[186] = t67;
2951
+ $[187] = t68;
2955
2952
  } else {
2956
- t68 = $[190];
2953
+ t68 = $[187];
2957
2954
  }
2958
- if ($[191] !== t42 || $[192] !== t60 || $[193] !== t62 || $[194] !== t64 || $[195] !== t66 || $[196] !== t68) {
2955
+ if ($[188] !== t42 || $[189] !== t60 || $[190] !== t62 || $[191] !== t64 || $[192] !== t66 || $[193] !== t68) {
2959
2956
  t13 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "col-span-12", children: [
2960
2957
  t42,
2961
2958
  t60,
@@ -2964,27 +2961,27 @@
2964
2961
  t66,
2965
2962
  t68
2966
2963
  ] });
2967
- $[191] = t42;
2968
- $[192] = t60;
2969
- $[193] = t62;
2970
- $[194] = t64;
2971
- $[195] = t66;
2972
- $[196] = t68;
2973
- $[197] = t13;
2964
+ $[188] = t42;
2965
+ $[189] = t60;
2966
+ $[190] = t62;
2967
+ $[191] = t64;
2968
+ $[192] = t66;
2969
+ $[193] = t68;
2970
+ $[194] = t13;
2974
2971
  } else {
2975
- t13 = $[197];
2972
+ t13 = $[194];
2976
2973
  }
2977
2974
  let t69;
2978
- if ($[198] !== t) {
2975
+ if ($[195] !== t) {
2979
2976
  t69 = t("max_size_bytes");
2980
- $[198] = t;
2981
- $[199] = t69;
2977
+ $[195] = t;
2978
+ $[196] = t69;
2982
2979
  } else {
2983
- t69 = $[199];
2980
+ t69 = $[196];
2984
2981
  }
2985
2982
  const t70 = maxSizeValue !== void 0 && maxSizeValue !== null ? maxSizeValue.toString() : "";
2986
2983
  let t71;
2987
- if ($[200] !== maxSize || $[201] !== setFieldValue) {
2984
+ if ($[197] !== maxSize || $[198] !== setFieldValue) {
2988
2985
  t71 = (e_0) => {
2989
2986
  const value_1 = e_0.target.value;
2990
2987
  if (value_1 === "") {
@@ -2993,76 +2990,76 @@
2993
2990
  setFieldValue(maxSize, parseInt(value_1));
2994
2991
  }
2995
2992
  };
2996
- $[200] = maxSize;
2997
- $[201] = setFieldValue;
2998
- $[202] = t71;
2993
+ $[197] = maxSize;
2994
+ $[198] = setFieldValue;
2995
+ $[199] = t71;
2999
2996
  } else {
3000
- t71 = $[202];
2997
+ t71 = $[199];
3001
2998
  }
3002
- if ($[203] !== maxSize || $[204] !== t69 || $[205] !== t70 || $[206] !== t71) {
2999
+ if ($[200] !== maxSize || $[201] !== t69 || $[202] !== t70 || $[203] !== t71) {
3003
3000
  t14 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-12", children: /* @__PURE__ */ jsxRuntime.jsx(ui.DebouncedTextField, { name: maxSize, type: "number", label: t69, size: "small", value: t70, onChange: t71 }) });
3004
- $[203] = maxSize;
3005
- $[204] = t69;
3006
- $[205] = t70;
3007
- $[206] = t71;
3008
- $[207] = t14;
3001
+ $[200] = maxSize;
3002
+ $[201] = t69;
3003
+ $[202] = t70;
3004
+ $[203] = t71;
3005
+ $[204] = t14;
3009
3006
  } else {
3010
- t14 = $[207];
3007
+ t14 = $[204];
3011
3008
  }
3012
3009
  let t72;
3013
- if ($[208] !== t) {
3010
+ if ($[205] !== t) {
3014
3011
  t72 = t("image_resize_configuration");
3015
- $[208] = t;
3016
- $[209] = t72;
3012
+ $[205] = t;
3013
+ $[206] = t72;
3017
3014
  } else {
3018
- t72 = $[209];
3015
+ t72 = $[206];
3019
3016
  }
3020
3017
  let t73;
3021
- if ($[210] !== t72) {
3018
+ if ($[207] !== t72) {
3022
3019
  t73 = /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "subtitle2", color: "secondary", className: "mb-2 block", children: t72 });
3023
- $[210] = t72;
3024
- $[211] = t73;
3020
+ $[207] = t72;
3021
+ $[208] = t73;
3025
3022
  } else {
3026
- t73 = $[211];
3023
+ t73 = $[208];
3027
3024
  }
3028
3025
  let t74;
3029
- if ($[212] !== t) {
3026
+ if ($[209] !== t) {
3030
3027
  t74 = t("image_resize_description");
3031
- $[212] = t;
3032
- $[213] = t74;
3028
+ $[209] = t;
3029
+ $[210] = t74;
3033
3030
  } else {
3034
- t74 = $[213];
3031
+ t74 = $[210];
3035
3032
  }
3036
3033
  let t75;
3037
- if ($[214] !== t74) {
3034
+ if ($[211] !== t74) {
3038
3035
  t75 = /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "caption", className: "mb-2 block text-xs", children: t74 });
3039
- $[214] = t74;
3040
- $[215] = t75;
3036
+ $[211] = t74;
3037
+ $[212] = t75;
3041
3038
  } else {
3042
- t75 = $[215];
3039
+ t75 = $[212];
3043
3040
  }
3044
- if ($[216] !== t73 || $[217] !== t75) {
3041
+ if ($[213] !== t73 || $[214] !== t75) {
3045
3042
  t15 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "col-span-12 mt-4", children: [
3046
3043
  t73,
3047
3044
  t75
3048
3045
  ] });
3049
- $[216] = t73;
3050
- $[217] = t75;
3051
- $[218] = t15;
3046
+ $[213] = t73;
3047
+ $[214] = t75;
3048
+ $[215] = t15;
3052
3049
  } else {
3053
- t15 = $[218];
3050
+ t15 = $[215];
3054
3051
  }
3055
3052
  let t76;
3056
- if ($[219] !== t) {
3053
+ if ($[216] !== t) {
3057
3054
  t76 = t("max_width_px");
3058
- $[219] = t;
3059
- $[220] = t76;
3055
+ $[216] = t;
3056
+ $[217] = t76;
3060
3057
  } else {
3061
- t76 = $[220];
3058
+ t76 = $[217];
3062
3059
  }
3063
3060
  const t77 = imageResizeMaxWidthValue !== void 0 && imageResizeMaxWidthValue !== null ? imageResizeMaxWidthValue.toString() : "";
3064
3061
  let t78;
3065
- if ($[221] !== imageResizeMaxWidth || $[222] !== setFieldValue) {
3062
+ if ($[218] !== imageResizeMaxWidth || $[219] !== setFieldValue) {
3066
3063
  t78 = (e_1) => {
3067
3064
  const value_2 = e_1.target.value;
3068
3065
  if (value_2 === "") {
@@ -3071,34 +3068,34 @@
3071
3068
  setFieldValue(imageResizeMaxWidth, parseInt(value_2));
3072
3069
  }
3073
3070
  };
3074
- $[221] = imageResizeMaxWidth;
3075
- $[222] = setFieldValue;
3076
- $[223] = t78;
3071
+ $[218] = imageResizeMaxWidth;
3072
+ $[219] = setFieldValue;
3073
+ $[220] = t78;
3077
3074
  } else {
3078
- t78 = $[223];
3075
+ t78 = $[220];
3079
3076
  }
3080
- if ($[224] !== disabled || $[225] !== imageResizeMaxWidth || $[226] !== t76 || $[227] !== t77 || $[228] !== t78) {
3077
+ if ($[221] !== disabled || $[222] !== imageResizeMaxWidth || $[223] !== t76 || $[224] !== t77 || $[225] !== t78) {
3081
3078
  t16 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-6", children: /* @__PURE__ */ jsxRuntime.jsx(ui.DebouncedTextField, { name: imageResizeMaxWidth, type: "number", label: t76, size: "small", disabled, value: t77, onChange: t78 }) });
3082
- $[224] = disabled;
3083
- $[225] = imageResizeMaxWidth;
3084
- $[226] = t76;
3085
- $[227] = t77;
3086
- $[228] = t78;
3087
- $[229] = t16;
3079
+ $[221] = disabled;
3080
+ $[222] = imageResizeMaxWidth;
3081
+ $[223] = t76;
3082
+ $[224] = t77;
3083
+ $[225] = t78;
3084
+ $[226] = t16;
3088
3085
  } else {
3089
- t16 = $[229];
3086
+ t16 = $[226];
3090
3087
  }
3091
3088
  let t79;
3092
- if ($[230] !== t) {
3089
+ if ($[227] !== t) {
3093
3090
  t79 = t("max_height_px");
3094
- $[230] = t;
3095
- $[231] = t79;
3091
+ $[227] = t;
3092
+ $[228] = t79;
3096
3093
  } else {
3097
- t79 = $[231];
3094
+ t79 = $[228];
3098
3095
  }
3099
3096
  const t80 = imageResizeMaxHeightValue !== void 0 && imageResizeMaxHeightValue !== null ? imageResizeMaxHeightValue.toString() : "";
3100
3097
  let t81;
3101
- if ($[232] !== imageResizeMaxHeight || $[233] !== setFieldValue) {
3098
+ if ($[229] !== imageResizeMaxHeight || $[230] !== setFieldValue) {
3102
3099
  t81 = (e_2) => {
3103
3100
  const value_3 = e_2.target.value;
3104
3101
  if (value_3 === "") {
@@ -3107,274 +3104,273 @@
3107
3104
  setFieldValue(imageResizeMaxHeight, parseInt(value_3));
3108
3105
  }
3109
3106
  };
3110
- $[232] = imageResizeMaxHeight;
3111
- $[233] = setFieldValue;
3112
- $[234] = t81;
3107
+ $[229] = imageResizeMaxHeight;
3108
+ $[230] = setFieldValue;
3109
+ $[231] = t81;
3113
3110
  } else {
3114
- t81 = $[234];
3111
+ t81 = $[231];
3115
3112
  }
3116
- if ($[235] !== disabled || $[236] !== imageResizeMaxHeight || $[237] !== t79 || $[238] !== t80 || $[239] !== t81) {
3113
+ if ($[232] !== disabled || $[233] !== imageResizeMaxHeight || $[234] !== t79 || $[235] !== t80 || $[236] !== t81) {
3117
3114
  t17 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-6", children: /* @__PURE__ */ jsxRuntime.jsx(ui.DebouncedTextField, { name: imageResizeMaxHeight, type: "number", label: t79, size: "small", disabled, value: t80, onChange: t81 }) });
3118
- $[235] = disabled;
3119
- $[236] = imageResizeMaxHeight;
3120
- $[237] = t79;
3121
- $[238] = t80;
3122
- $[239] = t81;
3123
- $[240] = t17;
3115
+ $[232] = disabled;
3116
+ $[233] = imageResizeMaxHeight;
3117
+ $[234] = t79;
3118
+ $[235] = t80;
3119
+ $[236] = t81;
3120
+ $[237] = t17;
3124
3121
  } else {
3125
- t17 = $[240];
3122
+ t17 = $[237];
3126
3123
  }
3127
3124
  const t82 = imageResizeModeValue || "cover";
3128
3125
  let t83;
3129
- if ($[241] !== imageResizeMode || $[242] !== setFieldValue) {
3126
+ if ($[238] !== imageResizeMode || $[239] !== setFieldValue) {
3130
3127
  t83 = (value_4) => setFieldValue(imageResizeMode, value_4 || "cover");
3131
- $[241] = imageResizeMode;
3132
- $[242] = setFieldValue;
3133
- $[243] = t83;
3128
+ $[238] = imageResizeMode;
3129
+ $[239] = setFieldValue;
3130
+ $[240] = t83;
3134
3131
  } else {
3135
- t83 = $[243];
3132
+ t83 = $[240];
3136
3133
  }
3137
3134
  let t84;
3138
- if ($[244] !== t) {
3135
+ if ($[241] !== t) {
3139
3136
  t84 = t("resize_mode");
3140
- $[244] = t;
3141
- $[245] = t84;
3137
+ $[241] = t;
3138
+ $[242] = t84;
3142
3139
  } else {
3143
- t84 = $[245];
3140
+ t84 = $[242];
3144
3141
  }
3145
3142
  let t85;
3146
- if ($[246] !== t) {
3143
+ if ($[243] !== t) {
3147
3144
  t85 = (selected_0) => {
3148
3145
  if (!selected_0) {
3149
3146
  return t("resize_cover");
3150
3147
  }
3151
3148
  return selected_0 === "contain" ? t("resize_contain_description") : t("resize_cover_description");
3152
3149
  };
3153
- $[246] = t;
3154
- $[247] = t85;
3150
+ $[243] = t;
3151
+ $[244] = t85;
3155
3152
  } else {
3156
- t85 = $[247];
3153
+ t85 = $[244];
3157
3154
  }
3158
3155
  let t86;
3159
- if ($[248] !== t) {
3156
+ if ($[245] !== t) {
3160
3157
  t86 = t("resize_contain_description");
3161
- $[248] = t;
3162
- $[249] = t86;
3158
+ $[245] = t;
3159
+ $[246] = t86;
3163
3160
  } else {
3164
- t86 = $[249];
3161
+ t86 = $[246];
3165
3162
  }
3166
3163
  let t87;
3167
- if ($[250] !== t86) {
3164
+ if ($[247] !== t86) {
3168
3165
  t87 = /* @__PURE__ */ jsxRuntime.jsx(ui.SelectItem, { value: "contain", children: t86 });
3169
- $[250] = t86;
3170
- $[251] = t87;
3166
+ $[247] = t86;
3167
+ $[248] = t87;
3171
3168
  } else {
3172
- t87 = $[251];
3169
+ t87 = $[248];
3173
3170
  }
3174
3171
  let t88;
3175
- if ($[252] !== t) {
3172
+ if ($[249] !== t) {
3176
3173
  t88 = t("resize_cover_description");
3177
- $[252] = t;
3178
- $[253] = t88;
3174
+ $[249] = t;
3175
+ $[250] = t88;
3179
3176
  } else {
3180
- t88 = $[253];
3177
+ t88 = $[250];
3181
3178
  }
3182
3179
  let t89;
3183
- if ($[254] !== t88) {
3180
+ if ($[251] !== t88) {
3184
3181
  t89 = /* @__PURE__ */ jsxRuntime.jsx(ui.SelectItem, { value: "cover", children: t88 });
3185
- $[254] = t88;
3186
- $[255] = t89;
3182
+ $[251] = t88;
3183
+ $[252] = t89;
3187
3184
  } else {
3188
- t89 = $[255];
3185
+ t89 = $[252];
3189
3186
  }
3190
- if ($[256] !== disabled || $[257] !== imageResizeMode || $[258] !== t82 || $[259] !== t83 || $[260] !== t84 || $[261] !== t85 || $[262] !== t87 || $[263] !== t89) {
3187
+ if ($[253] !== disabled || $[254] !== imageResizeMode || $[255] !== t82 || $[256] !== t83 || $[257] !== t84 || $[258] !== t85 || $[259] !== t87 || $[260] !== t89) {
3191
3188
  t18 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-6", children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Select, { disabled, name: imageResizeMode, fullWidth: true, size: "medium", value: t82, onValueChange: t83, label: t84, renderValue: t85, children: [
3192
3189
  t87,
3193
3190
  t89
3194
3191
  ] }) });
3195
- $[256] = disabled;
3196
- $[257] = imageResizeMode;
3197
- $[258] = t82;
3198
- $[259] = t83;
3199
- $[260] = t84;
3200
- $[261] = t85;
3201
- $[262] = t87;
3202
- $[263] = t89;
3203
- $[264] = t18;
3192
+ $[253] = disabled;
3193
+ $[254] = imageResizeMode;
3194
+ $[255] = t82;
3195
+ $[256] = t83;
3196
+ $[257] = t84;
3197
+ $[258] = t85;
3198
+ $[259] = t87;
3199
+ $[260] = t89;
3200
+ $[261] = t18;
3204
3201
  } else {
3205
- t18 = $[264];
3202
+ t18 = $[261];
3206
3203
  }
3207
3204
  const t90 = imageResizeFormatValue || "original";
3208
3205
  let t91;
3209
- if ($[265] !== imageResizeFormat || $[266] !== setFieldValue) {
3206
+ if ($[262] !== imageResizeFormat || $[263] !== setFieldValue) {
3210
3207
  t91 = (value_5) => setFieldValue(imageResizeFormat, value_5 || "original");
3211
- $[265] = imageResizeFormat;
3212
- $[266] = setFieldValue;
3213
- $[267] = t91;
3208
+ $[262] = imageResizeFormat;
3209
+ $[263] = setFieldValue;
3210
+ $[264] = t91;
3214
3211
  } else {
3215
- t91 = $[267];
3212
+ t91 = $[264];
3216
3213
  }
3217
3214
  let t92;
3218
- if ($[268] !== t) {
3215
+ if ($[265] !== t) {
3219
3216
  t92 = t("output_format");
3220
- $[268] = t;
3221
- $[269] = t92;
3217
+ $[265] = t;
3218
+ $[266] = t92;
3222
3219
  } else {
3223
- t92 = $[269];
3220
+ t92 = $[266];
3224
3221
  }
3225
3222
  let t93;
3226
- if ($[270] !== t) {
3223
+ if ($[267] !== t) {
3227
3224
  t93 = (selected_1) => {
3228
3225
  if (!selected_1) {
3229
3226
  return t("format_original");
3230
3227
  }
3231
3228
  return selected_1.charAt(0).toUpperCase() + selected_1.slice(1);
3232
3229
  };
3233
- $[270] = t;
3234
- $[271] = t93;
3230
+ $[267] = t;
3231
+ $[268] = t93;
3235
3232
  } else {
3236
- t93 = $[271];
3233
+ t93 = $[268];
3237
3234
  }
3238
3235
  let t94;
3239
- if ($[272] !== t) {
3236
+ if ($[269] !== t) {
3240
3237
  t94 = t("format_original_description");
3241
- $[272] = t;
3242
- $[273] = t94;
3238
+ $[269] = t;
3239
+ $[270] = t94;
3243
3240
  } else {
3244
- t94 = $[273];
3241
+ t94 = $[270];
3245
3242
  }
3246
3243
  let t95;
3247
- if ($[274] !== t94) {
3244
+ if ($[271] !== t94) {
3248
3245
  t95 = /* @__PURE__ */ jsxRuntime.jsx(ui.SelectItem, { value: "original", children: t94 });
3249
- $[274] = t94;
3250
- $[275] = t95;
3246
+ $[271] = t94;
3247
+ $[272] = t95;
3251
3248
  } else {
3252
- t95 = $[275];
3249
+ t95 = $[272];
3253
3250
  }
3254
3251
  let t96;
3255
3252
  let t97;
3256
- if ($[276] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3253
+ if ($[273] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3257
3254
  t96 = /* @__PURE__ */ jsxRuntime.jsx(ui.SelectItem, { value: "jpeg", children: "JPEG" });
3258
3255
  t97 = /* @__PURE__ */ jsxRuntime.jsx(ui.SelectItem, { value: "png", children: "PNG" });
3259
- $[276] = t96;
3260
- $[277] = t97;
3256
+ $[273] = t96;
3257
+ $[274] = t97;
3261
3258
  } else {
3262
- t96 = $[276];
3263
- t97 = $[277];
3259
+ t96 = $[273];
3260
+ t97 = $[274];
3264
3261
  }
3265
3262
  let t98;
3266
- if ($[278] !== t) {
3263
+ if ($[275] !== t) {
3267
3264
  t98 = t("format_webp_description");
3268
- $[278] = t;
3269
- $[279] = t98;
3265
+ $[275] = t;
3266
+ $[276] = t98;
3270
3267
  } else {
3271
- t98 = $[279];
3268
+ t98 = $[276];
3272
3269
  }
3273
3270
  let t99;
3274
- if ($[280] !== t98) {
3271
+ if ($[277] !== t98) {
3275
3272
  t99 = /* @__PURE__ */ jsxRuntime.jsx(ui.SelectItem, { value: "webp", children: t98 });
3276
- $[280] = t98;
3277
- $[281] = t99;
3273
+ $[277] = t98;
3274
+ $[278] = t99;
3278
3275
  } else {
3279
- t99 = $[281];
3276
+ t99 = $[278];
3280
3277
  }
3281
- if ($[282] !== disabled || $[283] !== imageResizeFormat || $[284] !== t90 || $[285] !== t91 || $[286] !== t92 || $[287] !== t93 || $[288] !== t95 || $[289] !== t99) {
3278
+ if ($[279] !== disabled || $[280] !== imageResizeFormat || $[281] !== t90 || $[282] !== t91 || $[283] !== t92 || $[284] !== t93 || $[285] !== t95 || $[286] !== t99) {
3282
3279
  t19 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-6", children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Select, { disabled, size: "medium", fullWidth: true, name: imageResizeFormat, value: t90, onValueChange: t91, label: t92, renderValue: t93, children: [
3283
3280
  t95,
3284
3281
  t96,
3285
3282
  t97,
3286
3283
  t99
3287
3284
  ] }) });
3288
- $[282] = disabled;
3289
- $[283] = imageResizeFormat;
3290
- $[284] = t90;
3291
- $[285] = t91;
3292
- $[286] = t92;
3293
- $[287] = t93;
3294
- $[288] = t95;
3295
- $[289] = t99;
3296
- $[290] = t19;
3285
+ $[279] = disabled;
3286
+ $[280] = imageResizeFormat;
3287
+ $[281] = t90;
3288
+ $[282] = t91;
3289
+ $[283] = t92;
3290
+ $[284] = t93;
3291
+ $[285] = t95;
3292
+ $[286] = t99;
3293
+ $[287] = t19;
3297
3294
  } else {
3298
- t19 = $[290];
3295
+ t19 = $[287];
3299
3296
  }
3300
3297
  t9 = "col-span-12";
3301
3298
  T0 = ui.DebouncedTextField;
3302
3299
  t3 = imageResizeQuality;
3303
3300
  t4 = "number";
3304
- if ($[291] !== t) {
3301
+ if ($[288] !== t) {
3305
3302
  t5 = t("quality_label");
3306
- $[291] = t;
3307
- $[292] = t5;
3303
+ $[288] = t;
3304
+ $[289] = t5;
3308
3305
  } else {
3309
- t5 = $[292];
3306
+ t5 = $[289];
3310
3307
  }
3311
3308
  t6 = "small";
3312
3309
  t7 = disabled;
3313
3310
  t8 = imageResizeQualityValue !== void 0 && imageResizeQualityValue !== null ? imageResizeQualityValue.toString() : "";
3314
3311
  $[6] = acceptedFiles;
3315
3312
  $[7] = disabled;
3316
- $[8] = existing;
3317
- $[9] = fileName;
3318
- $[10] = fileNameValue;
3319
- $[11] = imageResizeFormat;
3320
- $[12] = imageResizeMaxHeight;
3321
- $[13] = imageResizeMaxWidth;
3322
- $[14] = imageResizeMode;
3323
- $[15] = imageResizeQuality;
3324
- $[16] = includeBucketUrl;
3325
- $[17] = maxSize;
3326
- $[18] = setFieldValue;
3327
- $[19] = storagePath;
3328
- $[20] = storagePathValue;
3329
- $[21] = storeUrl;
3330
- $[22] = t;
3331
- $[23] = values;
3332
- $[24] = T0;
3333
- $[25] = T1;
3334
- $[26] = t10;
3335
- $[27] = t11;
3336
- $[28] = t12;
3337
- $[29] = t13;
3338
- $[30] = t14;
3339
- $[31] = t15;
3340
- $[32] = t16;
3341
- $[33] = t17;
3342
- $[34] = t18;
3343
- $[35] = t19;
3344
- $[36] = t20;
3345
- $[37] = t21;
3346
- $[38] = t3;
3347
- $[39] = t4;
3348
- $[40] = t5;
3349
- $[41] = t6;
3350
- $[42] = t7;
3351
- $[43] = t8;
3352
- $[44] = t9;
3353
- } else {
3354
- T0 = $[24];
3355
- T1 = $[25];
3356
- t10 = $[26];
3357
- t11 = $[27];
3358
- t12 = $[28];
3359
- t13 = $[29];
3360
- t14 = $[30];
3361
- t15 = $[31];
3362
- t16 = $[32];
3363
- t17 = $[33];
3364
- t18 = $[34];
3365
- t19 = $[35];
3366
- t20 = $[36];
3367
- t21 = $[37];
3368
- t3 = $[38];
3369
- t4 = $[39];
3370
- t5 = $[40];
3371
- t6 = $[41];
3372
- t7 = $[42];
3373
- t8 = $[43];
3374
- t9 = $[44];
3313
+ $[8] = fileName;
3314
+ $[9] = fileNameValue;
3315
+ $[10] = imageResizeFormat;
3316
+ $[11] = imageResizeMaxHeight;
3317
+ $[12] = imageResizeMaxWidth;
3318
+ $[13] = imageResizeMode;
3319
+ $[14] = imageResizeQuality;
3320
+ $[15] = includeBucketUrl;
3321
+ $[16] = maxSize;
3322
+ $[17] = setFieldValue;
3323
+ $[18] = storagePath;
3324
+ $[19] = storagePathValue;
3325
+ $[20] = storeUrl;
3326
+ $[21] = t;
3327
+ $[22] = values;
3328
+ $[23] = T0;
3329
+ $[24] = T1;
3330
+ $[25] = t10;
3331
+ $[26] = t11;
3332
+ $[27] = t12;
3333
+ $[28] = t13;
3334
+ $[29] = t14;
3335
+ $[30] = t15;
3336
+ $[31] = t16;
3337
+ $[32] = t17;
3338
+ $[33] = t18;
3339
+ $[34] = t19;
3340
+ $[35] = t20;
3341
+ $[36] = t21;
3342
+ $[37] = t3;
3343
+ $[38] = t4;
3344
+ $[39] = t5;
3345
+ $[40] = t6;
3346
+ $[41] = t7;
3347
+ $[42] = t8;
3348
+ $[43] = t9;
3349
+ } else {
3350
+ T0 = $[23];
3351
+ T1 = $[24];
3352
+ t10 = $[25];
3353
+ t11 = $[26];
3354
+ t12 = $[27];
3355
+ t13 = $[28];
3356
+ t14 = $[29];
3357
+ t15 = $[30];
3358
+ t16 = $[31];
3359
+ t17 = $[32];
3360
+ t18 = $[33];
3361
+ t19 = $[34];
3362
+ t20 = $[35];
3363
+ t21 = $[36];
3364
+ t3 = $[37];
3365
+ t4 = $[38];
3366
+ t5 = $[39];
3367
+ t6 = $[40];
3368
+ t7 = $[41];
3369
+ t8 = $[42];
3370
+ t9 = $[43];
3375
3371
  }
3376
3372
  let t22;
3377
- if ($[293] !== imageResizeQuality || $[294] !== setFieldValue) {
3373
+ if ($[290] !== imageResizeQuality || $[291] !== setFieldValue) {
3378
3374
  t22 = (e_3) => {
3379
3375
  const value_6 = e_3.target.value;
3380
3376
  if (value_6 === "") {
@@ -3386,58 +3382,58 @@
3386
3382
  }
3387
3383
  }
3388
3384
  };
3389
- $[293] = imageResizeQuality;
3390
- $[294] = setFieldValue;
3391
- $[295] = t22;
3385
+ $[290] = imageResizeQuality;
3386
+ $[291] = setFieldValue;
3387
+ $[292] = t22;
3392
3388
  } else {
3393
- t22 = $[295];
3389
+ t22 = $[292];
3394
3390
  }
3395
3391
  let t23;
3396
- if ($[296] !== T0 || $[297] !== t22 || $[298] !== t3 || $[299] !== t4 || $[300] !== t5 || $[301] !== t6 || $[302] !== t7 || $[303] !== t8) {
3392
+ if ($[293] !== T0 || $[294] !== t22 || $[295] !== t3 || $[296] !== t4 || $[297] !== t5 || $[298] !== t6 || $[299] !== t7 || $[300] !== t8) {
3397
3393
  t23 = /* @__PURE__ */ jsxRuntime.jsx(T0, { name: t3, type: t4, label: t5, size: t6, disabled: t7, value: t8, onChange: t22 });
3398
- $[296] = T0;
3399
- $[297] = t22;
3400
- $[298] = t3;
3401
- $[299] = t4;
3402
- $[300] = t5;
3403
- $[301] = t6;
3404
- $[302] = t7;
3405
- $[303] = t8;
3406
- $[304] = t23;
3407
- } else {
3408
- t23 = $[304];
3394
+ $[293] = T0;
3395
+ $[294] = t22;
3396
+ $[295] = t3;
3397
+ $[296] = t4;
3398
+ $[297] = t5;
3399
+ $[298] = t6;
3400
+ $[299] = t7;
3401
+ $[300] = t8;
3402
+ $[301] = t23;
3403
+ } else {
3404
+ t23 = $[301];
3409
3405
  }
3410
3406
  let t24;
3411
- if ($[305] !== t) {
3407
+ if ($[302] !== t) {
3412
3408
  t24 = t("quality_hint");
3413
- $[305] = t;
3414
- $[306] = t24;
3409
+ $[302] = t;
3410
+ $[303] = t24;
3415
3411
  } else {
3416
- t24 = $[306];
3412
+ t24 = $[303];
3417
3413
  }
3418
3414
  let t25;
3419
- if ($[307] !== t24) {
3415
+ if ($[304] !== t24) {
3420
3416
  t25 = /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "caption", className: "ml-3.5 mt-1 mb-2", children: t24 });
3421
- $[307] = t24;
3422
- $[308] = t25;
3417
+ $[304] = t24;
3418
+ $[305] = t25;
3423
3419
  } else {
3424
- t25 = $[308];
3420
+ t25 = $[305];
3425
3421
  }
3426
3422
  let t26;
3427
- if ($[309] !== t23 || $[310] !== t25 || $[311] !== t9) {
3423
+ if ($[306] !== t23 || $[307] !== t25 || $[308] !== t9) {
3428
3424
  t26 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: t9, children: [
3429
3425
  t23,
3430
3426
  t25
3431
3427
  ] });
3432
- $[309] = t23;
3433
- $[310] = t25;
3434
- $[311] = t9;
3435
- $[312] = t26;
3428
+ $[306] = t23;
3429
+ $[307] = t25;
3430
+ $[308] = t9;
3431
+ $[309] = t26;
3436
3432
  } else {
3437
- t26 = $[312];
3433
+ t26 = $[309];
3438
3434
  }
3439
3435
  let t27;
3440
- if ($[313] !== t10 || $[314] !== t11 || $[315] !== t12 || $[316] !== t13 || $[317] !== t14 || $[318] !== t15 || $[319] !== t16 || $[320] !== t17 || $[321] !== t18 || $[322] !== t19 || $[323] !== t26) {
3436
+ if ($[310] !== t10 || $[311] !== t11 || $[312] !== t12 || $[313] !== t13 || $[314] !== t14 || $[315] !== t15 || $[316] !== t16 || $[317] !== t17 || $[318] !== t18 || $[319] !== t19 || $[320] !== t26) {
3441
3437
  t27 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: t10, children: [
3442
3438
  t11,
3443
3439
  t12,
@@ -3450,81 +3446,81 @@
3450
3446
  t19,
3451
3447
  t26
3452
3448
  ] });
3453
- $[313] = t10;
3454
- $[314] = t11;
3455
- $[315] = t12;
3456
- $[316] = t13;
3457
- $[317] = t14;
3458
- $[318] = t15;
3459
- $[319] = t16;
3460
- $[320] = t17;
3461
- $[321] = t18;
3462
- $[322] = t19;
3463
- $[323] = t26;
3464
- $[324] = t27;
3465
- } else {
3466
- t27 = $[324];
3449
+ $[310] = t10;
3450
+ $[311] = t11;
3451
+ $[312] = t12;
3452
+ $[313] = t13;
3453
+ $[314] = t14;
3454
+ $[315] = t15;
3455
+ $[316] = t16;
3456
+ $[317] = t17;
3457
+ $[318] = t18;
3458
+ $[319] = t19;
3459
+ $[320] = t26;
3460
+ $[321] = t27;
3461
+ } else {
3462
+ t27 = $[321];
3467
3463
  }
3468
3464
  let t28;
3469
- if ($[325] !== T1 || $[326] !== t20 || $[327] !== t27) {
3465
+ if ($[322] !== T1 || $[323] !== t20 || $[324] !== t27) {
3470
3466
  t28 = /* @__PURE__ */ jsxRuntime.jsx(T1, { title: t20, children: t27 });
3471
- $[325] = T1;
3472
- $[326] = t20;
3473
- $[327] = t27;
3474
- $[328] = t28;
3467
+ $[322] = T1;
3468
+ $[323] = t20;
3469
+ $[324] = t27;
3470
+ $[325] = t28;
3475
3471
  } else {
3476
- t28 = $[328];
3472
+ t28 = $[325];
3477
3473
  }
3478
3474
  let t29;
3479
- if ($[329] !== t21 || $[330] !== t28) {
3475
+ if ($[326] !== t21 || $[327] !== t28) {
3480
3476
  t29 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: t21, children: t28 });
3481
- $[329] = t21;
3482
- $[330] = t28;
3483
- $[331] = t29;
3477
+ $[326] = t21;
3478
+ $[327] = t28;
3479
+ $[328] = t29;
3484
3480
  } else {
3485
- t29 = $[331];
3481
+ t29 = $[328];
3486
3482
  }
3487
3483
  let t30;
3488
- if ($[332] !== disabled || $[333] !== multiple) {
3484
+ if ($[329] !== disabled || $[330] !== multiple) {
3489
3485
  t30 = !multiple && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-12 gap-2", children: /* @__PURE__ */ jsxRuntime.jsx(GeneralPropertyValidation, { disabled }) });
3490
- $[332] = disabled;
3491
- $[333] = multiple;
3492
- $[334] = t30;
3486
+ $[329] = disabled;
3487
+ $[330] = multiple;
3488
+ $[331] = t30;
3493
3489
  } else {
3494
- t30 = $[334];
3490
+ t30 = $[331];
3495
3491
  }
3496
3492
  let t31;
3497
- if ($[335] !== disabled || $[336] !== multiple) {
3493
+ if ($[332] !== disabled || $[333] !== multiple) {
3498
3494
  t31 = multiple && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-12", children: /* @__PURE__ */ jsxRuntime.jsx(ArrayPropertyValidation, { disabled }) });
3499
- $[335] = disabled;
3500
- $[336] = multiple;
3501
- $[337] = t31;
3495
+ $[332] = disabled;
3496
+ $[333] = multiple;
3497
+ $[334] = t31;
3502
3498
  } else {
3503
- t31 = $[337];
3499
+ t31 = $[334];
3504
3500
  }
3505
3501
  let t32;
3506
- if ($[338] !== t30 || $[339] !== t31) {
3502
+ if ($[335] !== t30 || $[336] !== t31) {
3507
3503
  t32 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-12", children: /* @__PURE__ */ jsxRuntime.jsxs(ValidationPanel, { children: [
3508
3504
  t30,
3509
3505
  t31
3510
3506
  ] }) });
3511
- $[338] = t30;
3512
- $[339] = t31;
3513
- $[340] = t32;
3507
+ $[335] = t30;
3508
+ $[336] = t31;
3509
+ $[337] = t32;
3514
3510
  } else {
3515
- t32 = $[340];
3511
+ t32 = $[337];
3516
3512
  }
3517
3513
  let t33;
3518
- if ($[341] !== t29 || $[342] !== t32) {
3514
+ if ($[338] !== t29 || $[339] !== t32) {
3519
3515
  t33 = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3520
3516
  t29,
3521
3517
  t32
3522
3518
  ] });
3523
- $[341] = t29;
3524
- $[342] = t32;
3525
- $[343] = t33;
3519
+ $[338] = t29;
3520
+ $[339] = t32;
3521
+ $[340] = t33;
3526
3522
  } else {
3527
- t33 = $[343];
3523
+ t33 = $[340];
3528
3524
  }
3529
3525
  return t33;
3530
3526
  }
@@ -10378,7 +10374,7 @@
10378
10374
  return t12;
10379
10375
  }
10380
10376
  function PropertyEditFormFields(t0) {
10381
- const $ = reactCompilerRuntime.c(155);
10377
+ const $ = reactCompilerRuntime.c(153);
10382
10378
  const {
10383
10379
  values,
10384
10380
  errors,
@@ -10586,155 +10582,153 @@
10586
10582
  } else {
10587
10583
  if (selectedFieldConfigId === "file_upload") {
10588
10584
  let t102;
10589
- if ($[51] !== disabled || $[52] !== existing) {
10590
- t102 = /* @__PURE__ */ jsxRuntime.jsx(StoragePropertyField, { existing, multiple: false, disabled });
10585
+ if ($[51] !== disabled) {
10586
+ t102 = /* @__PURE__ */ jsxRuntime.jsx(StoragePropertyField, { multiple: false, disabled });
10591
10587
  $[51] = disabled;
10592
- $[52] = existing;
10593
- $[53] = t102;
10588
+ $[52] = t102;
10594
10589
  } else {
10595
- t102 = $[53];
10590
+ t102 = $[52];
10596
10591
  }
10597
10592
  childComponent = t102;
10598
10593
  } else {
10599
10594
  if (selectedFieldConfigId === "multi_file_upload") {
10600
10595
  let t102;
10601
- if ($[54] !== disabled || $[55] !== existing) {
10602
- t102 = /* @__PURE__ */ jsxRuntime.jsx(StoragePropertyField, { existing, multiple: true, disabled });
10603
- $[54] = disabled;
10604
- $[55] = existing;
10605
- $[56] = t102;
10596
+ if ($[53] !== disabled) {
10597
+ t102 = /* @__PURE__ */ jsxRuntime.jsx(StoragePropertyField, { multiple: true, disabled });
10598
+ $[53] = disabled;
10599
+ $[54] = t102;
10606
10600
  } else {
10607
- t102 = $[56];
10601
+ t102 = $[54];
10608
10602
  }
10609
10603
  childComponent = t102;
10610
10604
  } else {
10611
10605
  if (selectedFieldConfigId === "switch") {
10612
10606
  let t102;
10613
- if ($[57] !== disabled) {
10607
+ if ($[55] !== disabled) {
10614
10608
  t102 = /* @__PURE__ */ jsxRuntime.jsx(BooleanPropertyField, { disabled });
10615
- $[57] = disabled;
10616
- $[58] = t102;
10609
+ $[55] = disabled;
10610
+ $[56] = t102;
10617
10611
  } else {
10618
- t102 = $[58];
10612
+ t102 = $[56];
10619
10613
  }
10620
10614
  childComponent = t102;
10621
10615
  } else {
10622
10616
  if (selectedFieldConfigId === "number_input") {
10623
10617
  let t102;
10624
- if ($[59] !== disabled) {
10618
+ if ($[57] !== disabled) {
10625
10619
  t102 = /* @__PURE__ */ jsxRuntime.jsx(NumberPropertyField, { disabled });
10626
- $[59] = disabled;
10627
- $[60] = t102;
10620
+ $[57] = disabled;
10621
+ $[58] = t102;
10628
10622
  } else {
10629
- t102 = $[60];
10623
+ t102 = $[58];
10630
10624
  }
10631
10625
  childComponent = t102;
10632
10626
  } else {
10633
10627
  if (selectedFieldConfigId === "group") {
10634
10628
  let t102;
10635
- if ($[61] !== allowDataInference || $[62] !== collectionEditable || $[63] !== disabled || $[64] !== getData || $[65] !== propertyConfigs) {
10629
+ if ($[59] !== allowDataInference || $[60] !== collectionEditable || $[61] !== disabled || $[62] !== getData || $[63] !== propertyConfigs) {
10636
10630
  t102 = /* @__PURE__ */ jsxRuntime.jsx(MapPropertyField, { disabled, getData, allowDataInference, collectionEditable, propertyConfigs });
10637
- $[61] = allowDataInference;
10638
- $[62] = collectionEditable;
10639
- $[63] = disabled;
10640
- $[64] = getData;
10641
- $[65] = propertyConfigs;
10642
- $[66] = t102;
10631
+ $[59] = allowDataInference;
10632
+ $[60] = collectionEditable;
10633
+ $[61] = disabled;
10634
+ $[62] = getData;
10635
+ $[63] = propertyConfigs;
10636
+ $[64] = t102;
10643
10637
  } else {
10644
- t102 = $[66];
10638
+ t102 = $[64];
10645
10639
  }
10646
10640
  childComponent = t102;
10647
10641
  } else {
10648
10642
  if (selectedFieldConfigId === "block") {
10649
10643
  let t102;
10650
- if ($[67] !== allowDataInference || $[68] !== collectionEditable || $[69] !== disabled || $[70] !== getData || $[71] !== propertyConfigs) {
10644
+ if ($[65] !== allowDataInference || $[66] !== collectionEditable || $[67] !== disabled || $[68] !== getData || $[69] !== propertyConfigs) {
10651
10645
  t102 = /* @__PURE__ */ jsxRuntime.jsx(BlockPropertyField, { disabled, getData, allowDataInference, collectionEditable, propertyConfigs });
10652
- $[67] = allowDataInference;
10653
- $[68] = collectionEditable;
10654
- $[69] = disabled;
10655
- $[70] = getData;
10656
- $[71] = propertyConfigs;
10657
- $[72] = t102;
10646
+ $[65] = allowDataInference;
10647
+ $[66] = collectionEditable;
10648
+ $[67] = disabled;
10649
+ $[68] = getData;
10650
+ $[69] = propertyConfigs;
10651
+ $[70] = t102;
10658
10652
  } else {
10659
- t102 = $[72];
10653
+ t102 = $[70];
10660
10654
  }
10661
10655
  childComponent = t102;
10662
10656
  } else {
10663
10657
  if (selectedFieldConfigId === "reference") {
10664
10658
  let t102;
10665
- if ($[73] !== disabled || $[74] !== existing || $[75] !== showErrors) {
10659
+ if ($[71] !== disabled || $[72] !== existing || $[73] !== showErrors) {
10666
10660
  t102 = /* @__PURE__ */ jsxRuntime.jsx(ReferencePropertyField, { showErrors, existing, multiple: false, disabled });
10667
- $[73] = disabled;
10668
- $[74] = existing;
10669
- $[75] = showErrors;
10670
- $[76] = t102;
10661
+ $[71] = disabled;
10662
+ $[72] = existing;
10663
+ $[73] = showErrors;
10664
+ $[74] = t102;
10671
10665
  } else {
10672
- t102 = $[76];
10666
+ t102 = $[74];
10673
10667
  }
10674
10668
  childComponent = t102;
10675
10669
  } else {
10676
10670
  if (selectedFieldConfigId === "reference_as_string") {
10677
10671
  let t102;
10678
- if ($[77] !== disabled || $[78] !== existing || $[79] !== showErrors) {
10672
+ if ($[75] !== disabled || $[76] !== existing || $[77] !== showErrors) {
10679
10673
  t102 = /* @__PURE__ */ jsxRuntime.jsx(ReferencePropertyField, { showErrors, existing, asString: true, multiple: false, disabled });
10680
- $[77] = disabled;
10681
- $[78] = existing;
10682
- $[79] = showErrors;
10683
- $[80] = t102;
10674
+ $[75] = disabled;
10675
+ $[76] = existing;
10676
+ $[77] = showErrors;
10677
+ $[78] = t102;
10684
10678
  } else {
10685
- t102 = $[80];
10679
+ t102 = $[78];
10686
10680
  }
10687
10681
  childComponent = t102;
10688
10682
  } else {
10689
10683
  if (selectedFieldConfigId === "date_time") {
10690
10684
  let t102;
10691
- if ($[81] !== disabled) {
10685
+ if ($[79] !== disabled) {
10692
10686
  t102 = /* @__PURE__ */ jsxRuntime.jsx(DateTimePropertyField, { disabled });
10693
- $[81] = disabled;
10694
- $[82] = t102;
10687
+ $[79] = disabled;
10688
+ $[80] = t102;
10695
10689
  } else {
10696
- t102 = $[82];
10690
+ t102 = $[80];
10697
10691
  }
10698
10692
  childComponent = t102;
10699
10693
  } else {
10700
10694
  if (selectedFieldConfigId === "multi_references") {
10701
10695
  let t102;
10702
- if ($[83] !== disabled || $[84] !== existing || $[85] !== showErrors) {
10696
+ if ($[81] !== disabled || $[82] !== existing || $[83] !== showErrors) {
10703
10697
  t102 = /* @__PURE__ */ jsxRuntime.jsx(ReferencePropertyField, { showErrors, existing, multiple: true, disabled });
10704
- $[83] = disabled;
10705
- $[84] = existing;
10706
- $[85] = showErrors;
10707
- $[86] = t102;
10698
+ $[81] = disabled;
10699
+ $[82] = existing;
10700
+ $[83] = showErrors;
10701
+ $[84] = t102;
10708
10702
  } else {
10709
- t102 = $[86];
10703
+ t102 = $[84];
10710
10704
  }
10711
10705
  childComponent = t102;
10712
10706
  } else {
10713
10707
  if (selectedFieldConfigId === "repeat") {
10714
10708
  let t102;
10715
- if ($[87] !== allowDataInference || $[88] !== collectionEditable || $[89] !== disabled || $[90] !== existing || $[91] !== getData || $[92] !== propertyConfigs || $[93] !== showErrors) {
10709
+ if ($[85] !== allowDataInference || $[86] !== collectionEditable || $[87] !== disabled || $[88] !== existing || $[89] !== getData || $[90] !== propertyConfigs || $[91] !== showErrors) {
10716
10710
  t102 = /* @__PURE__ */ jsxRuntime.jsx(RepeatPropertyField, { showErrors, existing, getData, allowDataInference, disabled, collectionEditable, propertyConfigs });
10717
- $[87] = allowDataInference;
10718
- $[88] = collectionEditable;
10719
- $[89] = disabled;
10720
- $[90] = existing;
10721
- $[91] = getData;
10722
- $[92] = propertyConfigs;
10723
- $[93] = showErrors;
10724
- $[94] = t102;
10711
+ $[85] = allowDataInference;
10712
+ $[86] = collectionEditable;
10713
+ $[87] = disabled;
10714
+ $[88] = existing;
10715
+ $[89] = getData;
10716
+ $[90] = propertyConfigs;
10717
+ $[91] = showErrors;
10718
+ $[92] = t102;
10725
10719
  } else {
10726
- t102 = $[94];
10720
+ t102 = $[92];
10727
10721
  }
10728
10722
  childComponent = t102;
10729
10723
  } else {
10730
10724
  if (selectedFieldConfigId === "key_value") {
10731
10725
  let t102;
10732
- if ($[95] !== disabled) {
10726
+ if ($[93] !== disabled) {
10733
10727
  t102 = /* @__PURE__ */ jsxRuntime.jsx(KeyValuePropertyField, { disabled });
10734
- $[95] = disabled;
10735
- $[96] = t102;
10728
+ $[93] = disabled;
10729
+ $[94] = t102;
10736
10730
  } else {
10737
- t102 = $[96];
10731
+ t102 = $[94];
10738
10732
  }
10739
10733
  childComponent = t102;
10740
10734
  } else {
@@ -10757,7 +10751,7 @@
10757
10751
  }
10758
10752
  }
10759
10753
  let t10;
10760
- if ($[97] !== disabled) {
10754
+ if ($[95] !== disabled) {
10761
10755
  t10 = disabled && /* @__PURE__ */ jsxRuntime.jsxs(ui.InfoLabel, { mode: "warn", children: [
10762
10756
  /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { children: "This property can't be edited" }),
10763
10757
  /* @__PURE__ */ jsxRuntime.jsxs(ui.Typography, { variant: "caption", children: [
@@ -10768,170 +10762,170 @@
10768
10762
  "."
10769
10763
  ] })
10770
10764
  ] });
10771
- $[97] = disabled;
10772
- $[98] = t10;
10765
+ $[95] = disabled;
10766
+ $[96] = t10;
10773
10767
  } else {
10774
- t10 = $[98];
10768
+ t10 = $[96];
10775
10769
  }
10776
10770
  const t11 = selectedFieldConfigId;
10777
10771
  let t12;
10778
- if ($[99] !== onWidgetSelectChanged) {
10772
+ if ($[97] !== onWidgetSelectChanged) {
10779
10773
  t12 = (value) => onWidgetSelectChanged(value);
10780
- $[99] = onWidgetSelectChanged;
10781
- $[100] = t12;
10774
+ $[97] = onWidgetSelectChanged;
10775
+ $[98] = t12;
10782
10776
  } else {
10783
- t12 = $[100];
10777
+ t12 = $[98];
10784
10778
  }
10785
10779
  let t13;
10786
- if ($[101] !== onDismiss) {
10780
+ if ($[99] !== onDismiss) {
10787
10781
  t13 = (open, hasValue) => {
10788
10782
  if (!hasValue) {
10789
10783
  onDismiss?.();
10790
10784
  }
10791
10785
  setSelectOpen(open);
10792
10786
  };
10793
- $[101] = onDismiss;
10794
- $[102] = t13;
10787
+ $[99] = onDismiss;
10788
+ $[100] = t13;
10795
10789
  } else {
10796
- t13 = $[102];
10790
+ t13 = $[100];
10797
10791
  }
10798
10792
  const t14 = Boolean(selectedWidgetError);
10799
10793
  let t15;
10800
- if ($[103] !== disabled || $[104] !== existing || $[105] !== inArray || $[106] !== propertyConfigs || $[107] !== selectOpen || $[108] !== t11 || $[109] !== t12 || $[110] !== t13 || $[111] !== t14 || $[112] !== values) {
10794
+ if ($[101] !== disabled || $[102] !== existing || $[103] !== inArray || $[104] !== propertyConfigs || $[105] !== selectOpen || $[106] !== t11 || $[107] !== t12 || $[108] !== t13 || $[109] !== t14 || $[110] !== values) {
10801
10795
  t15 = /* @__PURE__ */ jsxRuntime.jsx(WidgetSelectView, { initialProperty: values, value: t11, onValueChange: t12, open: selectOpen, onOpenChange: t13, disabled, showError: t14, existing, propertyConfigs, inArray });
10802
- $[103] = disabled;
10803
- $[104] = existing;
10804
- $[105] = inArray;
10805
- $[106] = propertyConfigs;
10806
- $[107] = selectOpen;
10807
- $[108] = t11;
10808
- $[109] = t12;
10809
- $[110] = t13;
10810
- $[111] = t14;
10811
- $[112] = values;
10812
- $[113] = t15;
10813
- } else {
10814
- t15 = $[113];
10796
+ $[101] = disabled;
10797
+ $[102] = existing;
10798
+ $[103] = inArray;
10799
+ $[104] = propertyConfigs;
10800
+ $[105] = selectOpen;
10801
+ $[106] = t11;
10802
+ $[107] = t12;
10803
+ $[108] = t13;
10804
+ $[109] = t14;
10805
+ $[110] = values;
10806
+ $[111] = t15;
10807
+ } else {
10808
+ t15 = $[111];
10815
10809
  }
10816
10810
  let t16;
10817
- if ($[114] !== selectedWidgetError || $[115] !== t) {
10811
+ if ($[112] !== selectedWidgetError || $[113] !== t) {
10818
10812
  t16 = selectedWidgetError && /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "caption", className: "ml-3.5", color: "error", children: t("required") });
10819
- $[114] = selectedWidgetError;
10820
- $[115] = t;
10821
- $[116] = t16;
10813
+ $[112] = selectedWidgetError;
10814
+ $[113] = t;
10815
+ $[114] = t16;
10822
10816
  } else {
10823
- t16 = $[116];
10817
+ t16 = $[114];
10824
10818
  }
10825
10819
  let t17;
10826
- if ($[117] !== t15 || $[118] !== t16) {
10820
+ if ($[115] !== t15 || $[116] !== t16) {
10827
10821
  t17 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full flex flex-col gap-2", children: [
10828
10822
  t15,
10829
10823
  t16
10830
10824
  ] });
10831
- $[117] = t15;
10832
- $[118] = t16;
10833
- $[119] = t17;
10825
+ $[115] = t15;
10826
+ $[116] = t16;
10827
+ $[117] = t17;
10834
10828
  } else {
10835
- t17 = $[119];
10829
+ t17 = $[117];
10836
10830
  }
10837
10831
  let t18;
10838
- if ($[120] !== disabled || $[121] !== existing || $[122] !== onDelete || $[123] !== values?.id) {
10832
+ if ($[118] !== disabled || $[119] !== existing || $[120] !== onDelete || $[121] !== values?.id) {
10839
10833
  t18 = onDelete && existing && values?.id && /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { variant: "ghost", className: "m-4", disabled, onClick: () => setDeleteDialogOpen(true), children: /* @__PURE__ */ jsxRuntime.jsx(ui.DeleteIcon, {}) });
10840
- $[120] = disabled;
10841
- $[121] = existing;
10842
- $[122] = onDelete;
10843
- $[123] = values?.id;
10844
- $[124] = t18;
10834
+ $[118] = disabled;
10835
+ $[119] = existing;
10836
+ $[120] = onDelete;
10837
+ $[121] = values?.id;
10838
+ $[122] = t18;
10845
10839
  } else {
10846
- t18 = $[124];
10840
+ t18 = $[122];
10847
10841
  }
10848
10842
  let t19;
10849
- if ($[125] !== t17 || $[126] !== t18) {
10843
+ if ($[123] !== t17 || $[124] !== t18) {
10850
10844
  t19 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex mt-2 justify-between", children: [
10851
10845
  t17,
10852
10846
  t18
10853
10847
  ] });
10854
- $[125] = t17;
10855
- $[126] = t18;
10856
- $[127] = t19;
10848
+ $[123] = t17;
10849
+ $[124] = t18;
10850
+ $[125] = t19;
10857
10851
  } else {
10858
- t19 = $[127];
10852
+ t19 = $[125];
10859
10853
  }
10860
10854
  let t20;
10861
- if ($[128] !== autoUpdateId || $[129] !== disabled || $[130] !== existing || $[131] !== includeIdAndTitle || $[132] !== showErrors) {
10855
+ if ($[126] !== autoUpdateId || $[127] !== disabled || $[128] !== existing || $[129] !== includeIdAndTitle || $[130] !== showErrors) {
10862
10856
  t20 = includeIdAndTitle && /* @__PURE__ */ jsxRuntime.jsx(CommonPropertyFields, { showErrors, disabledId: existing, isNewProperty: !existing, disabled, autoUpdateId, ref: nameFieldRef });
10863
- $[128] = autoUpdateId;
10864
- $[129] = disabled;
10865
- $[130] = existing;
10866
- $[131] = includeIdAndTitle;
10867
- $[132] = showErrors;
10868
- $[133] = t20;
10857
+ $[126] = autoUpdateId;
10858
+ $[127] = disabled;
10859
+ $[128] = existing;
10860
+ $[129] = includeIdAndTitle;
10861
+ $[130] = showErrors;
10862
+ $[131] = t20;
10869
10863
  } else {
10870
- t20 = $[133];
10864
+ t20 = $[131];
10871
10865
  }
10872
10866
  let t21;
10873
- if ($[134] !== disabled) {
10867
+ if ($[132] !== disabled) {
10874
10868
  t21 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-12", children: /* @__PURE__ */ jsxRuntime.jsx(AdvancedPropertyValidation, { disabled }) });
10875
- $[134] = disabled;
10876
- $[135] = t21;
10869
+ $[132] = disabled;
10870
+ $[133] = t21;
10877
10871
  } else {
10878
- t21 = $[135];
10872
+ t21 = $[133];
10879
10873
  }
10880
10874
  let t22;
10881
- if ($[136] !== collectionProperties || $[137] !== disabled) {
10875
+ if ($[134] !== collectionProperties || $[135] !== disabled) {
10882
10876
  t22 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-12", children: /* @__PURE__ */ jsxRuntime.jsxs(ConditionsPanel, { children: [
10883
10877
  /* @__PURE__ */ jsxRuntime.jsx(ConditionsEditor, { disabled, collectionProperties }),
10884
10878
  /* @__PURE__ */ jsxRuntime.jsx(EnumConditionsEditor, { disabled, collectionProperties })
10885
10879
  ] }) });
10886
- $[136] = collectionProperties;
10887
- $[137] = disabled;
10888
- $[138] = t22;
10880
+ $[134] = collectionProperties;
10881
+ $[135] = disabled;
10882
+ $[136] = t22;
10889
10883
  } else {
10890
- t22 = $[138];
10884
+ t22 = $[136];
10891
10885
  }
10892
10886
  let t23;
10893
- if ($[139] !== childComponent || $[140] !== t20 || $[141] !== t21 || $[142] !== t22) {
10887
+ if ($[137] !== childComponent || $[138] !== t20 || $[139] !== t21 || $[140] !== t22) {
10894
10888
  t23 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-12 gap-y-12 mt-8 mb-8", children: [
10895
10889
  t20,
10896
10890
  childComponent,
10897
10891
  t21,
10898
10892
  t22
10899
10893
  ] });
10900
- $[139] = childComponent;
10901
- $[140] = t20;
10902
- $[141] = t21;
10903
- $[142] = t22;
10904
- $[143] = t23;
10894
+ $[137] = childComponent;
10895
+ $[138] = t20;
10896
+ $[139] = t21;
10897
+ $[140] = t22;
10898
+ $[141] = t23;
10905
10899
  } else {
10906
- t23 = $[143];
10900
+ t23 = $[141];
10907
10901
  }
10908
10902
  let t24;
10909
- if ($[144] !== deleteDialogOpen || $[145] !== onDelete || $[146] !== propertyNamespace || $[147] !== t || $[148] !== values?.id) {
10903
+ if ($[142] !== deleteDialogOpen || $[143] !== onDelete || $[144] !== propertyNamespace || $[145] !== t || $[146] !== values?.id) {
10910
10904
  t24 = onDelete && /* @__PURE__ */ jsxRuntime.jsx(core.ConfirmationDialog, { open: deleteDialogOpen, onAccept: () => onDelete(values?.id, propertyNamespace), onCancel: () => setDeleteDialogOpen(false), title: /* @__PURE__ */ jsxRuntime.jsx("div", { children: t("delete_this_property") }), body: /* @__PURE__ */ jsxRuntime.jsx("div", { children: t("delete_property_warning") }) });
10911
- $[144] = deleteDialogOpen;
10912
- $[145] = onDelete;
10913
- $[146] = propertyNamespace;
10914
- $[147] = t;
10915
- $[148] = values?.id;
10916
- $[149] = t24;
10905
+ $[142] = deleteDialogOpen;
10906
+ $[143] = onDelete;
10907
+ $[144] = propertyNamespace;
10908
+ $[145] = t;
10909
+ $[146] = values?.id;
10910
+ $[147] = t24;
10917
10911
  } else {
10918
- t24 = $[149];
10912
+ t24 = $[147];
10919
10913
  }
10920
10914
  let t25;
10921
- if ($[150] !== t10 || $[151] !== t19 || $[152] !== t23 || $[153] !== t24) {
10915
+ if ($[148] !== t10 || $[149] !== t19 || $[150] !== t23 || $[151] !== t24) {
10922
10916
  t25 = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
10923
10917
  t10,
10924
10918
  t19,
10925
10919
  t23,
10926
10920
  t24
10927
10921
  ] });
10928
- $[150] = t10;
10929
- $[151] = t19;
10930
- $[152] = t23;
10931
- $[153] = t24;
10932
- $[154] = t25;
10922
+ $[148] = t10;
10923
+ $[149] = t19;
10924
+ $[150] = t23;
10925
+ $[151] = t24;
10926
+ $[152] = t25;
10933
10927
  } else {
10934
- t25 = $[154];
10928
+ t25 = $[152];
10935
10929
  }
10936
10930
  return t25;
10937
10931
  }
@@ -11487,6 +11481,30 @@
11487
11481
  });
11488
11482
  return result;
11489
11483
  }, [resolvedCollection.properties]);
11484
+ const imageProperties = React.useMemo(() => {
11485
+ const result_0 = [];
11486
+ if (!resolvedCollection.properties) return result_0;
11487
+ const isImageProperty = (prop_0) => {
11488
+ if (!prop_0 || !("dataType" in prop_0)) return false;
11489
+ if (prop_0.dataType === "string") {
11490
+ return Boolean(prop_0.storage?.acceptedFiles?.includes("image/*")) || prop_0.url === "image";
11491
+ }
11492
+ if (prop_0.dataType === "array" && prop_0.of) {
11493
+ return isImageProperty(prop_0.of);
11494
+ }
11495
+ return false;
11496
+ };
11497
+ Object.entries(resolvedCollection.properties).forEach(([key_0, prop_1]) => {
11498
+ if (isImageProperty(prop_1)) {
11499
+ result_0.push({
11500
+ key: key_0,
11501
+ label: prop_1.name || key_0,
11502
+ property: prop_1
11503
+ });
11504
+ }
11505
+ });
11506
+ return result_0;
11507
+ }, [resolvedCollection.properties]);
11490
11508
  if (typeof values.customId === "object") ;
11491
11509
  else if (values.customId === true) ;
11492
11510
  else if (values.customId === false) ;
@@ -11513,25 +11531,25 @@
11513
11531
  ")"
11514
11532
  ] });
11515
11533
  }
11516
- const prop_0 = numberProperties.find((p_0) => p_0.key === value_1);
11517
- if (!prop_0) return t("select_a_property");
11518
- const fieldConfig = core.getFieldConfig(prop_0.property, customizationController.propertyConfigs);
11534
+ const prop_2 = numberProperties.find((p_0) => p_0.key === value_1);
11535
+ if (!prop_2) return t("select_a_property");
11536
+ const fieldConfig = core.getFieldConfig(prop_2.property, customizationController.propertyConfigs);
11519
11537
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
11520
11538
  /* @__PURE__ */ jsxRuntime.jsx(core.PropertyConfigBadge, { propertyConfig: fieldConfig }),
11521
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: prop_0.label })
11539
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: prop_2.label })
11522
11540
  ] });
11523
11541
  }, endAdornment: values.orderProperty ? /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: "small", onClick: (e) => {
11524
11542
  e.stopPropagation();
11525
11543
  setFieldValue("orderProperty", void 0);
11526
- }, children: /* @__PURE__ */ jsxRuntime.jsx(ui.CloseIcon, { size: "small" }) }) : void 0, children: numberProperties.map((prop_1) => {
11527
- const fieldConfig_0 = core.getFieldConfig(prop_1.property, customizationController.propertyConfigs);
11528
- return /* @__PURE__ */ jsxRuntime.jsx(ui.SelectItem, { value: prop_1.key, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
11544
+ }, children: /* @__PURE__ */ jsxRuntime.jsx(ui.CloseIcon, { size: "small" }) }) : void 0, children: numberProperties.map((prop_3) => {
11545
+ const fieldConfig_0 = core.getFieldConfig(prop_3.property, customizationController.propertyConfigs);
11546
+ return /* @__PURE__ */ jsxRuntime.jsx(ui.SelectItem, { value: prop_3.key, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
11529
11547
  /* @__PURE__ */ jsxRuntime.jsx(core.PropertyConfigBadge, { propertyConfig: fieldConfig_0 }),
11530
11548
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
11531
- /* @__PURE__ */ jsxRuntime.jsx("div", { children: prop_1.label }),
11549
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: prop_3.label }),
11532
11550
  /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "caption", color: "secondary", children: fieldConfig_0?.name || t("number") })
11533
11551
  ] })
11534
- ] }) }, prop_1.key);
11552
+ ] }) }, prop_3.key);
11535
11553
  }) }, `order-select-${numberProperties.length}`),
11536
11554
  /* @__PURE__ */ jsxRuntime.jsx(core.FieldCaption, { error: orderPropertyMissing, children: orderPropertyMissing ? t("order_property_not_found", {
11537
11555
  property: values.orderProperty ?? ""
@@ -11570,14 +11588,54 @@
11570
11588
  ] });
11571
11589
  })()
11572
11590
  ] }),
11573
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-12", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Select, { name: "defaultSize", size: "large", fullWidth: true, label: t("default_row_size"), position: "item-aligned", onChange: handleChange, value: values.defaultSize ?? "", renderValue: (value_2) => value_2.toUpperCase(), children: ["xs", "s", "m", "l", "xl"].map((value_3) => /* @__PURE__ */ jsxRuntime.jsx(ui.SelectItem, { value: value_3, children: value_3.toUpperCase() }, `size-select-${value_3}`)) }) }),
11591
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-12 mt-4", children: (() => {
11592
+ const imagePropertyMissing = Boolean(values.imageProperty) && !imageProperties.some((p_2) => p_2.key === values.imageProperty);
11593
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
11594
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "label", color: "secondary", className: "ml-3.5", children: t("image_property") }),
11595
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Select, { name: "imageProperty", size: "large", fullWidth: true, position: "item-aligned", disabled: imageProperties.length === 0, error: imagePropertyMissing, value: values.imageProperty ?? "", onValueChange: (v_0) => {
11596
+ setFieldValue("imageProperty", v_0 || void 0);
11597
+ }, renderValue: (value_2) => {
11598
+ if (imagePropertyMissing) {
11599
+ return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-red-500", children: [
11600
+ value_2,
11601
+ " (",
11602
+ t("not_found_suffix"),
11603
+ ")"
11604
+ ] });
11605
+ }
11606
+ const prop_4 = imageProperties.find((p_3) => p_3.key === value_2);
11607
+ if (!prop_4) return t("select_a_property");
11608
+ const fieldConfig_1 = core.getFieldConfig(prop_4.property, customizationController.propertyConfigs);
11609
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
11610
+ /* @__PURE__ */ jsxRuntime.jsx(core.PropertyConfigBadge, { propertyConfig: fieldConfig_1 }),
11611
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: prop_4.label })
11612
+ ] });
11613
+ }, endAdornment: values.imageProperty ? /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: "small", onClick: (e_0) => {
11614
+ e_0.stopPropagation();
11615
+ setFieldValue("imageProperty", void 0);
11616
+ }, children: /* @__PURE__ */ jsxRuntime.jsx(ui.CloseIcon, { size: "small" }) }) : void 0, children: imageProperties.map((prop_5) => {
11617
+ const fieldConfig_2 = core.getFieldConfig(prop_5.property, customizationController.propertyConfigs);
11618
+ return /* @__PURE__ */ jsxRuntime.jsx(ui.SelectItem, { value: prop_5.key, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
11619
+ /* @__PURE__ */ jsxRuntime.jsx(core.PropertyConfigBadge, { propertyConfig: fieldConfig_2 }),
11620
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
11621
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: prop_5.label }),
11622
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "caption", color: "secondary", children: fieldConfig_2?.name || prop_5.label })
11623
+ ] })
11624
+ ] }) }, prop_5.key);
11625
+ }) }, `image-select-${imageProperties.length}`),
11626
+ /* @__PURE__ */ jsxRuntime.jsx(core.FieldCaption, { error: imagePropertyMissing, children: imagePropertyMissing ? t("image_property_not_found", {
11627
+ property: values.imageProperty ?? ""
11628
+ }) : imageProperties.length === 0 ? t("no_image_properties") : t("image_property_description") })
11629
+ ] });
11630
+ })() }),
11631
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-12", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Select, { name: "defaultSize", size: "large", fullWidth: true, label: t("default_row_size"), position: "item-aligned", onChange: handleChange, value: values.defaultSize ?? "", renderValue: (value_3) => value_3.toUpperCase(), children: ["xs", "s", "m", "l", "xl"].map((value_4) => /* @__PURE__ */ jsxRuntime.jsx(ui.SelectItem, { value: value_4, children: value_4.toUpperCase() }, `size-select-${value_4}`)) }) }),
11574
11632
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "col-span-12", children: [
11575
- /* @__PURE__ */ jsxRuntime.jsx(ui.TextField, { name: "sideDialogWidth", type: "number", "aria-describedby": "sideDialogWidth-helper", onChange: (e_0) => {
11576
- const value_4 = e_0.target.value;
11577
- if (!value_4) {
11633
+ /* @__PURE__ */ jsxRuntime.jsx(ui.TextField, { name: "sideDialogWidth", type: "number", "aria-describedby": "sideDialogWidth-helper", onChange: (e_1) => {
11634
+ const value_5 = e_1.target.value;
11635
+ if (!value_5) {
11578
11636
  setFieldValue("sideDialogWidth", null);
11579
- } else if (!isNaN(Number(value_4))) {
11580
- setFieldValue("sideDialogWidth", Number(value_4));
11637
+ } else if (!isNaN(Number(value_5))) {
11638
+ setFieldValue("sideDialogWidth", Number(value_5));
11581
11639
  }
11582
11640
  }, endAdornment: /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: "small", onClick: () => {
11583
11641
  setFieldValue("sideDialogWidth", null);
@@ -11585,11 +11643,11 @@
11585
11643
  /* @__PURE__ */ jsxRuntime.jsx(core.FieldCaption, { children: t("side_dialog_width_description") })
11586
11644
  ] }),
11587
11645
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "col-span-12", children: [
11588
- /* @__PURE__ */ jsxRuntime.jsx(ui.BooleanSwitchWithLabel, { position: "start", size: "large", label: values.inlineEditing === void 0 || values.inlineEditing ? t("inline_editing_enabled") : t("inline_editing_disabled"), onValueChange: (v_0) => setFieldValue("inlineEditing", v_0), value: values.inlineEditing === void 0 ? true : values.inlineEditing }),
11646
+ /* @__PURE__ */ jsxRuntime.jsx(ui.BooleanSwitchWithLabel, { position: "start", size: "large", label: values.inlineEditing === void 0 || values.inlineEditing ? t("inline_editing_enabled") : t("inline_editing_disabled"), onValueChange: (v_1) => setFieldValue("inlineEditing", v_1), value: values.inlineEditing === void 0 ? true : values.inlineEditing }),
11589
11647
  /* @__PURE__ */ jsxRuntime.jsx(core.FieldCaption, { children: t("inline_editing_description") })
11590
11648
  ] }),
11591
11649
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "col-span-12", children: [
11592
- /* @__PURE__ */ jsxRuntime.jsx(ui.BooleanSwitchWithLabel, { position: "start", size: "large", label: values.includeJsonView === void 0 || values.includeJsonView ? t("include_json_view") : t("no_json_view"), onValueChange: (v_1) => setFieldValue("includeJsonView", v_1), value: values.includeJsonView === void 0 ? true : values.includeJsonView }),
11650
+ /* @__PURE__ */ jsxRuntime.jsx(ui.BooleanSwitchWithLabel, { position: "start", size: "large", label: values.includeJsonView === void 0 || values.includeJsonView ? t("include_json_view") : t("no_json_view"), onValueChange: (v_2) => setFieldValue("includeJsonView", v_2), value: values.includeJsonView === void 0 ? true : values.includeJsonView }),
11593
11651
  /* @__PURE__ */ jsxRuntime.jsx(core.FieldCaption, { children: t("json_view_description") })
11594
11652
  ] })
11595
11653
  ] }),
@@ -12151,7 +12209,7 @@
12151
12209
  /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { className: "mt-8 w-full", size: "large", onClick: () => setNewPropertyDialogOpen(true), startIcon: /* @__PURE__ */ jsxRuntime.jsx(ui.AddIcon, {}), children: t("add_new_property") })
12152
12210
  ] }),
12153
12211
  !asDialog && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-12 lg:col-span-7 p-4 md:py-8 md:px-4 h-full overflow-auto pb-20 md:pb-20", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sticky top-8 min-h-full w-full flex flex-col justify-center", children: [
12154
- selectedPropertyFullId && selectedProperty && !core.isPropertyBuilder(selectedProperty) && /* @__PURE__ */ jsxRuntime.jsx(PropertyForm, { inArray: false, existingProperty: !isNewCollection, autoUpdateId: false, allowDataInference: !isNewCollection, autoOpenTypeSelect: false, propertyKey: selectedPropertyKey, propertyNamespace: selectedPropertyNamespace, property: selectedProperty, onPropertyChanged, onDelete: deleteProperty, onError: onPropertyErrorInternal, forceShowErrors: showErrors, initialErrors, getData, propertyConfigs, collectionEditable, collectionProperties: values.properties }, `edit_view_${selectedPropertyIndex}_${generationCounter}`),
12212
+ selectedPropertyFullId && selectedProperty && !core.isPropertyBuilder(selectedProperty) && /* @__PURE__ */ jsxRuntime.jsx(PropertyForm, { inArray: false, existingProperty: !isNewCollection, autoUpdateId: false, allowDataInference: !isNewCollection, autoOpenTypeSelect: false, propertyKey: selectedPropertyKey, propertyNamespace: selectedPropertyNamespace, property: selectedProperty, onPropertyChanged, onDelete: deleteProperty, onError: onPropertyErrorInternal, forceShowErrors: showErrors, initialErrors, getData, propertyConfigs, collectionEditable, collectionProperties: values.properties }, `edit_view_${selectedPropertyFullId}_${generationCounter}`),
12155
12213
  !selectedProperty && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full flex flex-col items-center justify-center h-full gap-4", children: [
12156
12214
  /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "label", className: "", children: emptyCollection ? t("add_first_property") : t("select_property_to_edit") }),
12157
12215
  /* @__PURE__ */ jsxRuntime.jsxs(ui.Button, { onClick: () => setNewPropertyDialogOpen(true), children: [
@@ -12161,7 +12219,7 @@
12161
12219
  ] }),
12162
12220
  selectedProperty && core.isPropertyBuilder(selectedProperty) && /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "label", className: "flex items-center justify-center", children: t("property_defined_as_builder") })
12163
12221
  ] }) }),
12164
- asDialog && /* @__PURE__ */ jsxRuntime.jsx(PropertyFormDialog, { inArray: false, open: selectedPropertyIndex !== void 0, autoUpdateId: !selectedProperty, allowDataInference: !isNewCollection, existingProperty: true, autoOpenTypeSelect: false, propertyKey: selectedPropertyKey, propertyNamespace: selectedPropertyNamespace, property: selectedProperty, onPropertyChanged, onDelete: deleteProperty, onError: onPropertyErrorInternal, forceShowErrors: showErrors, initialErrors, getData, propertyConfigs, collectionEditable, collectionProperties: values.properties, onCancel: closePropertyDialog, onOkClicked: asDialog ? closePropertyDialog : void 0 }, `edit_view_${selectedPropertyIndex}_${generationCounter}`)
12222
+ asDialog && /* @__PURE__ */ jsxRuntime.jsx(PropertyFormDialog, { inArray: false, open: selectedPropertyIndex !== void 0, autoUpdateId: !selectedProperty, allowDataInference: !isNewCollection, existingProperty: true, autoOpenTypeSelect: false, propertyKey: selectedPropertyKey, propertyNamespace: selectedPropertyNamespace, property: selectedProperty, onPropertyChanged, onDelete: deleteProperty, onError: onPropertyErrorInternal, forceShowErrors: showErrors, initialErrors, getData, propertyConfigs, collectionEditable, collectionProperties: values.properties, onCancel: closePropertyDialog, onOkClicked: asDialog ? closePropertyDialog : void 0 }, `edit_view_${selectedPropertyFullId}_${generationCounter}`)
12165
12223
  ] });
12166
12224
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
12167
12225
  body,
@@ -17592,9 +17650,9 @@
17592
17650
  storage_placeholder_path: "{path} - Path of this entity",
17593
17651
  storage_placeholder_rand: "{rand} - Random value used to avoid name collisions",
17594
17652
  include_bucket_url: "Include bucket URL (gs://...) in saved value",
17595
- include_bucket_url_description: "Turn this setting on if you want to save a fully-qualified storage URL (e.g. gs://my-bucket/path/to/file) instead of just the storage path. You can only change this prop upon creation.",
17653
+ include_bucket_url_description: "Turn this setting on if you want to save a fully-qualified storage URL (e.g. gs://my-bucket/path/to/file) instead of just the storage path. Changing it only affects new uploads: values already saved keep their current format.",
17596
17654
  save_url_instead_of_path: "Save URL instead of storage path",
17597
- save_url_description: "Turn this setting on, if you prefer to save the download URL of the uploaded file instead of the storage path. You can only change this prop upon creation.",
17655
+ save_url_description: "Turn this setting on, if you prefer to save the download URL of the uploaded file instead of the storage path. Changing it only affects new uploads: values already saved keep their current format.",
17598
17656
  max_size_bytes: "Max size (in bytes)",
17599
17657
  image_resize_configuration: "Image Resize Configuration",
17600
17658
  image_resize_description: "Automatically resize and optimize images before upload (JPEG, PNG, WebP only)",
@@ -17703,360 +17761,632 @@
17703
17761
  widget_group_group: "Group",
17704
17762
  widget_group_array: "Array"
17705
17763
  };
17706
- const collectionEditorTranslationsEs = {
17707
- file_upload_config: "Configuración de subida de archivos",
17708
- file_type_images: "Imágenes",
17709
- file_type_videos: "Videos",
17710
- file_type_audio: "Archivos de audio",
17711
- file_type_applications: "Archivos (pdf, zip, csv, excel...)",
17712
- file_type_text: "Archivos de texto",
17713
- only: "Solo",
17714
- all_file_types_allowed: "Todos los tipos de archivo permitidos",
17715
- allowed_file_types: "Tipos de archivo permitidos",
17716
- file_name_label: "Nombre del archivo",
17717
- storage_path_label: "Ruta de almacenamiento",
17718
- storage_placeholders_description: "Puedes usar los siguientes marcadores en los valores del nombre de archivo y la ruta de almacenamiento:",
17719
- storage_placeholder_file: "{file} - Nombre completo del archivo subido",
17720
- storage_placeholder_file_name: "{file.name} - Nombre del archivo subido sin extensión",
17721
- storage_placeholder_file_ext: "{file.ext} - Extensión del archivo subido",
17722
- storage_placeholder_entity_id: "{entityId} - ID de la entidad",
17723
- storage_placeholder_property_key: "{propertyKey} - ID de este campo",
17724
- storage_placeholder_path: "{path} - Ruta de esta entidad",
17725
- storage_placeholder_rand: "{rand} - Valor aleatorio para evitar colisiones de nombres",
17726
- include_bucket_url: "Incluir URL del bucket (gs://...) en el valor guardado",
17727
- include_bucket_url_description: "Activa esta opción si deseas guardar una URL de almacenamiento completa (ej. gs://mi-bucket/ruta/al/archivo) en lugar de solo la ruta de almacenamiento. Solo puedes cambiar esta opción al crear.",
17728
- save_url_instead_of_path: "Guardar URL en lugar de ruta de almacenamiento",
17729
- save_url_description: "Activa esta opción si prefieres guardar la URL de descarga del archivo subido en lugar de la ruta de almacenamiento. Solo puedes cambiar esta opción al crear.",
17730
- max_size_bytes: "Tamaño máximo (en bytes)",
17731
- image_resize_configuration: "Configuración de redimensionamiento de imagen",
17732
- image_resize_description: "Redimensionar y optimizar imágenes automáticamente antes de subirlas (solo JPEG, PNG, WebP)",
17733
- max_width_px: "Ancho máximo (px)",
17734
- max_height_px: "Alto máximo (px)",
17735
- resize_mode: "Modo de redimensionamiento",
17736
- resize_contain: "Contener",
17737
- resize_contain_description: "Contener (ajustar dentro de los límites)",
17738
- resize_cover: "Cubrir",
17739
- resize_cover_description: "Cubrir (rellenar límites, puede recortar)",
17740
- output_format: "Formato de salida",
17741
- format_original: "Original",
17742
- format_original_description: "Original (mantener mismo formato)",
17743
- format_webp_description: "WebP (mejor compresión)",
17744
- quality_label: "Calidad (0–100)",
17745
- quality_hint: "Mayor calidad = archivo más grande. Recomendado: 80–90 para fotos, 90–100 para gráficos",
17746
- preview_type: "Tipo de vista previa",
17747
- preview_image: "Imagen",
17748
- preview_video: "Video",
17749
- preview_audio: "Audio",
17750
- display_url: "Mostrar URL",
17751
- default_value_not_set: "Valor predeterminado no establecido",
17752
- default_value_is: "El valor predeterminado es {{value}}",
17753
- default_value_was_cleared: "El valor predeterminado fue eliminado",
17754
- enum_missing_values: "A esta propiedad enum le faltan algunos valores",
17755
- mode_label: "Modo",
17756
- date_time_mode: "Fecha/Hora",
17757
- date_mode: "Fecha",
17758
- automatic_value: "Valor automático",
17759
- auto_on_create: "Al crear",
17760
- auto_on_update: "En cada actualización",
17761
- auto_none: "Ninguno",
17762
- auto_value_description: "Actualizar este campo automáticamente al crear o actualizar la entidad",
17763
- timezone_label: "Zona horaria",
17764
- local_timezone: "Zona horaria local",
17765
- timezone_description: "Zona horaria para mostrar e ingresar fechas. Los valores se almacenan siempre en UTC.",
17766
- target_collection: "Colección de destino",
17767
- views_group: "Vistas",
17768
- add_property_to: "Añadir propiedad a {{name}}",
17769
- add_first_property_to_group: "Añade la primera propiedad a este grupo",
17770
- spread_children_as_columns: "Distribuir hijos como columnas",
17771
- spread_children_description: "Activa esta opción si deseas mostrar los hijos de este grupo como columnas individuales. Solo funciona para grupos de nivel superior.",
17772
- paste_behavior: "Comportamiento al pegar",
17773
- strip_html_on_paste: "Eliminar HTML al pegar",
17774
- strip_html_description: "Eliminar etiquetas HTML y estilos en línea al pegar contenido de fuentes externas",
17775
- convert_pasted_to_markdown: "Convertir texto pegado a markdown",
17776
- convert_pasted_description: "Convertir texto enriquecido (de Google Docs, Word, etc.) a formato markdown limpio",
17777
- markdown_url_note: "Al usar Markdown, las URLs de los archivos subidos siempre se guardan en el valor de texto (no la ruta).",
17778
- hide_from_collection: "Ocultar de la colección",
17779
- hide_from_collection_tooltip: "Ocultar este campo de la vista de colección. Seguirá visible en la vista de formulario",
17780
- read_only: "Solo lectura",
17781
- read_only_tooltip: "Es un campo de solo lectura. Mostrar solo como vista previa",
17782
- nullable: "Nullable",
17783
- nullable_tooltip: "Permitir que este campo se establezca explícitamente como null. Se mostrará un botón de borrar al usuario",
17784
- tab_general: "General",
17785
- tab_display: "Visualización",
17786
- tab_properties: "Propiedades",
17787
- tab_extend: "Extender",
17788
- unsaved_changes_in_collection: "Hay cambios sin guardar en esta colección",
17789
- error_persisting_collection: "Error al guardar la colección: {{error}}",
17790
- details_in_console: "Detalles en la consola",
17791
- error_inferring_collection: "Error al inferir la colección: {{error}}",
17792
- collection_deleted: "Colección eliminada",
17793
- data_imported_successfully_msg: "Datos importados correctamente",
17794
- must_specify_path: "Debes especificar una ruta en la base de datos para esta colección",
17795
- collection_path_already_exists: "Ya existe una colección con la ruta especificada. Si deseas tener múltiples colecciones con la misma ruta de base de datos, asegúrate de que tengan IDs diferentes",
17796
- collection_path_odd_segments: "Las rutas de colección deben tener un número impar de segmentos: {{path}}",
17797
- collection_uses_path_as_id: "Ya existe una colección que usa este valor como ruta",
17798
- collection_uses_this_id: "Ya existe una colección que usa este ID",
17799
- delete_stored_config: "¿Eliminar la configuración almacenada?",
17800
- delete_stored_config_body: "Esto no eliminará ningún dato, solo la configuración almacenada, y se restaurará al estado del código.",
17801
- order_label: "Orden",
17802
- // Collection Properties Editor
17803
- select_property_to_edit: "Selecciona una propiedad para editarla",
17804
- add_first_property: "Ahora puedes añadir tu primera propiedad",
17805
- add_new_property: "Añadir nueva propiedad",
17806
- no_permission_add_properties: "No tienes permiso para añadir nuevas propiedades",
17807
- get_code_for_collection: "Obtener el código de esta colección",
17808
- add_properties_from_data: "Añadir nuevas propiedades basadas en datos",
17809
- collection_name_placeholder: "Nombre de la colección",
17810
- created_by: "Creado por {{name}}",
17811
- property_defined_as_builder: "Esta propiedad está definida como un property builder en código",
17812
- // Extend Settings
17813
- extend_title: "Extender",
17814
- extend_description: "Añade subcolecciones, vistas personalizadas y acciones de entidad a esta colección.",
17815
- collection_defined_in_code: "Esta colección está definida en código. Los cambios realizados en este editor sobreescribirán las propiedades definidas en código. Puedes eliminar los valores sobreescritos para volver al estado definido en código.",
17816
- reset_to_code: "Restablecer al código",
17817
- widget_group_text: "Texto",
17818
- widget_group_boolean: "Booleano",
17819
- widget_group_users: "Usuarios",
17820
- widget_group_select: "Selección",
17821
- widget_group_number: "Número",
17822
- widget_group_file: "Archivo",
17823
- widget_group_reference: "Referencia",
17824
- widget_group_date: "Fecha",
17825
- widget_group_group: "Grupo",
17826
- widget_group_array: "Lista"
17827
- };
17828
- const collectionEditorTranslationsDe = {
17829
- file_upload_config: "Dateiupload-Konfiguration",
17830
- file_type_images: "Bilder",
17831
- file_type_videos: "Videos",
17832
- file_type_audio: "Audiodateien",
17833
- file_type_applications: "Dateien (pdf, zip, csv, excel...)",
17834
- file_type_text: "Textdateien",
17835
- only: "Nur",
17836
- all_file_types_allowed: "Alle Dateitypen erlaubt",
17837
- allowed_file_types: "Erlaubte Dateitypen",
17838
- file_name_label: "Dateiname",
17839
- storage_path_label: "Speicherpfad",
17840
- storage_placeholders_description: "Sie können die folgenden Platzhalter in den Werten für Dateiname und Speicherpfad verwenden:",
17841
- storage_placeholder_file: "{file} - Vollständiger Name der hochgeladenen Datei",
17842
- storage_placeholder_file_name: "{file.name} - Name der hochgeladenen Datei ohne Erweiterung",
17843
- storage_placeholder_file_ext: "{file.ext} - Erweiterung der hochgeladenen Datei",
17844
- storage_placeholder_entity_id: "{entityId} - ID der Entität",
17845
- storage_placeholder_property_key: "{propertyKey} - ID dieses Feldes",
17846
- storage_placeholder_path: "{path} - Pfad dieser Entität",
17847
- storage_placeholder_rand: "{rand} - Zufallswert zur Vermeidung von Namenskollisionen",
17848
- include_bucket_url: "Bucket-URL (gs://...) im gespeicherten Wert einschließen",
17849
- include_bucket_url_description: "Aktivieren Sie diese Einstellung, wenn Sie eine vollqualifizierte Speicher-URL (z. B. gs://mein-bucket/pfad/zur/datei) statt nur des Speicherpfads speichern möchten. Diese Einstellung kann nur bei der Erstellung geändert werden.",
17850
- save_url_instead_of_path: "URL statt Speicherpfad speichern",
17851
- save_url_description: "Aktivieren Sie diese Einstellung, wenn Sie bevorzugen, die Download-URL der hochgeladenen Datei statt des Speicherpfads zu speichern. Diese Einstellung kann nur bei der Erstellung geändert werden.",
17852
- max_size_bytes: "Maximale Größe (in Bytes)",
17853
- image_resize_configuration: "Bildgrößenanpassungs-Konfiguration",
17854
- image_resize_description: "Bilder vor dem Hochladen automatisch anpassen und optimieren (nur JPEG, PNG, WebP)",
17855
- max_width_px: "Maximale Breite (px)",
17856
- max_height_px: "Maximale Höhe (px)",
17857
- resize_mode: "Anpassungsmodus",
17858
- resize_contain: "Einpassen",
17859
- resize_contain_description: "Einpassen (innerhalb der Grenzen)",
17860
- resize_cover: "Abdecken",
17861
- resize_cover_description: "Abdecken (Grenzen füllen, kann zuschneiden)",
17862
- output_format: "Ausgabeformat",
17863
- format_original: "Original",
17864
- format_original_description: "Original (gleiches Format beibehalten)",
17865
- format_webp_description: "WebP (beste Komprimierung)",
17866
- quality_label: "Qualität (0–100)",
17867
- quality_hint: "Höhere Qualität = größere Datei. Empfohlen: 80–90 für Fotos, 90–100 für Grafiken",
17868
- preview_type: "Vorschautyp",
17869
- preview_image: "Bild",
17870
- preview_video: "Video",
17871
- preview_audio: "Audio",
17872
- display_url: "URL anzeigen",
17873
- default_value_not_set: "Standardwert nicht gesetzt",
17874
- default_value_is: "Standardwert ist {{value}}",
17875
- default_value_was_cleared: "Standardwert wurde gelöscht",
17876
- enum_missing_values: "Dieser Enum-Eigenschaft fehlen einige Werte",
17877
- mode_label: "Modus",
17878
- date_time_mode: "Datum/Uhrzeit",
17879
- date_mode: "Datum",
17880
- automatic_value: "Automatischer Wert",
17881
- auto_on_create: "Bei Erstellung",
17882
- auto_on_update: "Bei jeder Aktualisierung",
17883
- auto_none: "Keiner",
17884
- auto_value_description: "Dieses Feld automatisch beim Erstellen oder Aktualisieren der Entität aktualisieren",
17885
- timezone_label: "Zeitzone",
17886
- local_timezone: "Lokale Zeitzone",
17887
- timezone_description: "Zeitzone für die Anzeige und Eingabe von Daten. Werte werden immer in UTC gespeichert.",
17888
- target_collection: "Zielsammlung",
17889
- views_group: "Ansichten",
17890
- add_property_to: "Eigenschaft zu {{name}} hinzufügen",
17891
- add_first_property_to_group: "Erste Eigenschaft zu dieser Gruppe hinzufügen",
17892
- spread_children_as_columns: "Kinder als Spalten verteilen",
17893
- spread_children_description: "Setzen Sie dieses Flag auf true, wenn Sie die Kinder dieser Gruppe als einzelne Spalten anzeigen möchten. Dies funktioniert nur für Gruppen auf der obersten Ebene.",
17894
- paste_behavior: "Einfügeverhalten",
17895
- strip_html_on_paste: "HTML beim Einfügen entfernen",
17896
- strip_html_description: "HTML-Tags und Inline-Stile beim Einfügen von Inhalten aus externen Quellen entfernen",
17897
- convert_pasted_to_markdown: "Eingefügten Text in Markdown konvertieren",
17898
- convert_pasted_description: "Rich Text (von Google Docs, Word usw.) in sauberes Markdown-Format konvertieren",
17899
- markdown_url_note: "Bei Verwendung von Markdown werden die URLs der hochgeladenen Dateien immer im Textwert gespeichert (nicht der Pfad).",
17900
- hide_from_collection: "Aus Sammlung ausblenden",
17901
- hide_from_collection_tooltip: "Dieses Feld aus der Sammlungsansicht ausblenden. Es wird weiterhin in der Formularansicht sichtbar sein",
17902
- read_only: "Nur lesen",
17903
- read_only_tooltip: "Ist dieses Feld schreibgeschützt. Nur als Vorschau anzeigen",
17904
- nullable: "Nullable",
17905
- nullable_tooltip: "Erlaubt es, dieses Feld explizit auf null zu setzen. Dem Benutzer wird eine Löschen-Schaltfläche angezeigt",
17906
- tab_general: "Allgemein",
17907
- tab_display: "Anzeige",
17908
- tab_properties: "Eigenschaften",
17909
- tab_extend: "Erweitern",
17910
- unsaved_changes_in_collection: "Es gibt ungespeicherte Änderungen in dieser Sammlung",
17911
- error_persisting_collection: "Fehler beim Speichern der Sammlung: {{error}}",
17912
- details_in_console: "Details in der Konsole",
17913
- error_inferring_collection: "Fehler beim Ableiten der Sammlung: {{error}}",
17914
- collection_deleted: "Sammlung gelöscht",
17915
- data_imported_successfully_msg: "Daten erfolgreich importiert",
17916
- must_specify_path: "Sie müssen einen Pfad in der Datenbank für diese Sammlung angeben",
17917
- collection_path_already_exists: "Es gibt bereits eine Sammlung mit dem angegebenen Pfad. Wenn Sie mehrere Sammlungen mit demselben Datenbankpfad haben möchten, stellen Sie sicher, dass sie unterschiedliche IDs haben",
17918
- collection_path_odd_segments: "Sammlungspfade müssen eine ungerade Anzahl von Segmenten haben: {{path}}",
17919
- collection_uses_path_as_id: "Es gibt bereits eine Sammlung, die diesen Wert als Pfad verwendet",
17920
- collection_uses_this_id: "Es gibt bereits eine Sammlung, die diese ID verwendet",
17921
- delete_stored_config: "Gespeicherte Konfiguration löschen?",
17922
- delete_stored_config_body: "Dadurch werden keine Daten gelöscht, nur die gespeicherte Konfiguration, und der Code-Zustand wird wiederhergestellt.",
17923
- order_label: "Reihenfolge",
17924
- // Collection Properties Editor
17925
- select_property_to_edit: "Wähle eine Eigenschaft aus, um sie zu bearbeiten",
17926
- add_first_property: "Jetzt kannst du deine erste Eigenschaft hinzufügen",
17927
- add_new_property: "Neue Eigenschaft hinzufügen",
17928
- no_permission_add_properties: "Du hast keine Berechtigung, neue Eigenschaften hinzuzufügen",
17929
- get_code_for_collection: "Code für diese Sammlung abrufen",
17930
- add_properties_from_data: "Neue Eigenschaften basierend auf Daten hinzufügen",
17931
- collection_name_placeholder: "Sammlungsname",
17932
- created_by: "Erstellt von {{name}}",
17933
- property_defined_as_builder: "Diese Eigenschaft ist als Property Builder im Code definiert",
17934
- // Extend Settings
17935
- extend_title: "Erweitern",
17936
- extend_description: "Füge Untersammlungen, benutzerdefinierte Ansichten und Entitätsaktionen zu dieser Sammlung hinzu.",
17937
- collection_defined_in_code: "Diese Sammlung ist im Code definiert. Die in diesem Editor vorgenommenen Änderungen überschreiben die im Code definierten Eigenschaften. Du kannst die überschriebenen Werte löschen, um zum im Code definierten Zustand zurückzukehren.",
17938
- reset_to_code: "Auf Code zurücksetzen",
17939
- widget_group_text: "Text",
17940
- widget_group_boolean: "Boolean",
17941
- widget_group_users: "Benutzer",
17942
- widget_group_select: "Auswahl",
17943
- widget_group_number: "Zahl",
17944
- widget_group_file: "Datei",
17945
- widget_group_reference: "Referenz",
17946
- widget_group_date: "Datum",
17947
- widget_group_group: "Gruppe",
17948
- widget_group_array: "Array"
17764
+ function useCollectionEditorPlugin({
17765
+ collectionConfigController,
17766
+ configPermissions,
17767
+ reservedGroups,
17768
+ extraView,
17769
+ getUser,
17770
+ collectionInference,
17771
+ getData,
17772
+ onAnalyticsEvent,
17773
+ includeIntroView = true,
17774
+ pathSuggestions,
17775
+ generateCollection
17776
+ }) {
17777
+ return {
17778
+ key: "collection_editor",
17779
+ loading: collectionConfigController.loading,
17780
+ provider: {
17781
+ Component: ConfigControllerProvider,
17782
+ props: {
17783
+ collectionConfigController,
17784
+ configPermissions,
17785
+ collectionInference,
17786
+ reservedGroups,
17787
+ extraView,
17788
+ getUser,
17789
+ getData,
17790
+ onAnalyticsEvent,
17791
+ pathSuggestions,
17792
+ generateCollection
17793
+ }
17794
+ },
17795
+ homePage: {
17796
+ additionalActions: /* @__PURE__ */ jsxRuntime.jsx(NewCollectionButton, {}),
17797
+ additionalChildrenStart: includeIntroView ? /* @__PURE__ */ jsxRuntime.jsx(IntroWidget, {}) : void 0,
17798
+ CollectionActions: HomePageEditorCollectionAction,
17799
+ AdditionalCards: NewCollectionCard,
17800
+ allowDragAndDrop: true,
17801
+ navigationEntries: collectionConfigController.navigationEntries,
17802
+ onNavigationEntriesUpdate: collectionConfigController.saveNavigationEntries
17803
+ },
17804
+ collectionView: {
17805
+ CollectionActionsStart: EditorCollectionActionStart,
17806
+ CollectionActions: EditorCollectionAction,
17807
+ HeaderAction: CollectionViewHeaderAction,
17808
+ AddColumnComponent: PropertyAddColumnComponent,
17809
+ onColumnsReorder: collectionConfigController.updatePropertiesOrder,
17810
+ onKanbanColumnsReorder: collectionConfigController.updateKanbanColumnsOrder,
17811
+ KanbanSetupComponent: KanbanSetupAction,
17812
+ AddKanbanColumnComponent: AddKanbanColumnAction
17813
+ },
17814
+ form: {
17815
+ ActionsTop: EditorEntityAction
17816
+ },
17817
+ i18n: {
17818
+ // Only English is bundled; the rest load when that language is selected.
17819
+ // Seven languages of strings in every plugin bundle is dead weight for
17820
+ // the six nobody is reading.
17821
+ en: collectionEditorTranslationsEn,
17822
+ es: () => Promise.resolve().then(() => es).then((m) => m.collectionEditorTranslationsEs),
17823
+ de: () => Promise.resolve().then(() => de).then((m_0) => m_0.collectionEditorTranslationsDe),
17824
+ fr: () => Promise.resolve().then(() => fr).then((m_1) => m_1.collectionEditorTranslationsFr),
17825
+ it: () => Promise.resolve().then(() => it).then((m_2) => m_2.collectionEditorTranslationsIt),
17826
+ hi: () => Promise.resolve().then(() => hi).then((m_3) => m_3.collectionEditorTranslationsHi),
17827
+ pt: () => Promise.resolve().then(() => pt).then((m_4) => m_4.collectionEditorTranslationsPt)
17828
+ }
17829
+ };
17830
+ }
17831
+ function IntroWidget() {
17832
+ const $ = reactCompilerRuntime.c(24);
17833
+ const navigation = core.useNavigationController();
17834
+ if (!navigation.topLevelNavigation) {
17835
+ throw Error("Navigation not ready in FireCMSHomePage");
17836
+ }
17837
+ const authController = core.useAuthController();
17838
+ const {
17839
+ t
17840
+ } = core.useTranslation();
17841
+ const collectionEditorController = useCollectionEditorController();
17842
+ let t0;
17843
+ if ($[0] !== authController || $[1] !== collectionEditorController) {
17844
+ t0 = collectionEditorController.configPermissions ? collectionEditorController.configPermissions({
17845
+ user: authController.user
17846
+ }).createCollections : true;
17847
+ $[0] = authController;
17848
+ $[1] = collectionEditorController;
17849
+ $[2] = t0;
17850
+ } else {
17851
+ t0 = $[2];
17852
+ }
17853
+ const canCreateCollections = t0;
17854
+ if (!navigation.initialised || (navigation.collections ?? []).length > 0) {
17855
+ return null;
17856
+ }
17857
+ let t1;
17858
+ if ($[3] !== t) {
17859
+ t1 = t("no_collections_found");
17860
+ $[3] = t;
17861
+ $[4] = t1;
17862
+ } else {
17863
+ t1 = $[4];
17864
+ }
17865
+ let t2;
17866
+ if ($[5] !== t1) {
17867
+ t2 = /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "subtitle2", className: "uppercase", children: t1 });
17868
+ $[5] = t1;
17869
+ $[6] = t2;
17870
+ } else {
17871
+ t2 = $[6];
17872
+ }
17873
+ let t3;
17874
+ if ($[7] !== t) {
17875
+ t3 = t("start_building_collections");
17876
+ $[7] = t;
17877
+ $[8] = t3;
17878
+ } else {
17879
+ t3 = $[8];
17880
+ }
17881
+ let t4;
17882
+ if ($[9] !== t3) {
17883
+ t4 = /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { children: t3 });
17884
+ $[9] = t3;
17885
+ $[10] = t4;
17886
+ } else {
17887
+ t4 = $[10];
17888
+ }
17889
+ let t5;
17890
+ if ($[11] !== canCreateCollections || $[12] !== collectionEditorController || $[13] !== t) {
17891
+ t5 = canCreateCollections && /* @__PURE__ */ jsxRuntime.jsxs(ui.Button, { onClick: collectionEditorController && canCreateCollections ? () => collectionEditorController.createCollection({
17892
+ parentCollectionIds: [],
17893
+ redirect: true,
17894
+ sourceClick: "new_collection_card"
17895
+ }) : void 0, children: [
17896
+ /* @__PURE__ */ jsxRuntime.jsx(ui.AddIcon, {}),
17897
+ t("create_first_collection")
17898
+ ] });
17899
+ $[11] = canCreateCollections;
17900
+ $[12] = collectionEditorController;
17901
+ $[13] = t;
17902
+ $[14] = t5;
17903
+ } else {
17904
+ t5 = $[14];
17905
+ }
17906
+ let t6;
17907
+ if ($[15] !== t) {
17908
+ t6 = t("define_collections_programmatically");
17909
+ $[15] = t;
17910
+ $[16] = t6;
17911
+ } else {
17912
+ t6 = $[16];
17913
+ }
17914
+ let t7;
17915
+ if ($[17] !== t6) {
17916
+ t7 = /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { color: "secondary", children: t6 });
17917
+ $[17] = t6;
17918
+ $[18] = t7;
17919
+ } else {
17920
+ t7 = $[18];
17921
+ }
17922
+ let t8;
17923
+ if ($[19] !== t2 || $[20] !== t4 || $[21] !== t5 || $[22] !== t7) {
17924
+ t8 = /* @__PURE__ */ jsxRuntime.jsxs(ui.Paper, { className: "my-4 px-4 py-6 flex flex-col bg-white dark:bg-surface-accent-800 gap-2", children: [
17925
+ t2,
17926
+ t4,
17927
+ t5,
17928
+ t7
17929
+ ] });
17930
+ $[19] = t2;
17931
+ $[20] = t4;
17932
+ $[21] = t5;
17933
+ $[22] = t7;
17934
+ $[23] = t8;
17935
+ } else {
17936
+ t8 = $[23];
17937
+ }
17938
+ return t8;
17939
+ }
17940
+ const mergeCollections = (baseCollections, backendCollections = [], modifyCollection) => {
17941
+ const markAsEditable = (c) => {
17942
+ core.makePropertiesEditable(c.properties);
17943
+ c.subcollections?.forEach(markAsEditable);
17944
+ };
17945
+ backendCollections.forEach(markAsEditable);
17946
+ const result = core.joinCollectionLists(baseCollections, backendCollections, [], modifyCollection);
17947
+ result.sort((a, b) => {
17948
+ const indexA = baseCollections.findIndex((c) => c.id === a.id);
17949
+ const indexB = baseCollections.findIndex((c) => c.id === b.id);
17950
+ if (indexA === -1 && indexB === -1) {
17951
+ return 0;
17952
+ }
17953
+ if (indexA === -1) {
17954
+ return 1;
17955
+ }
17956
+ if (indexB === -1) {
17957
+ return -1;
17958
+ }
17959
+ return indexA - indexB;
17960
+ });
17961
+ return result;
17949
17962
  };
17950
- const collectionEditorTranslationsFr = {
17951
- file_upload_config: "Configuration du téléchargement de fichiers",
17952
- file_type_images: "Images",
17953
- file_type_videos: "Vidéos",
17954
- file_type_audio: "Fichiers audio",
17955
- file_type_applications: "Fichiers (pdf, zip, csv, excel...)",
17956
- file_type_text: "Fichiers texte",
17957
- only: "Uniquement",
17958
- all_file_types_allowed: "Tous les types de fichiers autorisés",
17959
- allowed_file_types: "Types de fichiers autorisés",
17960
- file_name_label: "Nom du fichier",
17961
- storage_path_label: "Chemin de stockage",
17962
- storage_placeholders_description: "Vous pouvez utiliser les espaces réservés suivants dans les valeurs du nom de fichier et du chemin de stockage :",
17963
- storage_placeholder_file: "{file} - Nom complet du fichier téléchargé",
17964
- storage_placeholder_file_name: "{file.name} - Nom du fichier téléchargé sans extension",
17965
- storage_placeholder_file_ext: "{file.ext} - Extension du fichier téléchargé",
17966
- storage_placeholder_entity_id: "{entityId} - ID de l'entité",
17967
- storage_placeholder_property_key: "{propertyKey} - ID de ce champ",
17968
- storage_placeholder_path: "{path} - Chemin de cette entité",
17969
- storage_placeholder_rand: "{rand} - Valeur aléatoire pour éviter les conflits de noms",
17970
- include_bucket_url: "Inclure l'URL du bucket (gs://...) dans la valeur enregistrée",
17971
- include_bucket_url_description: "Activez ce paramètre si vous souhaitez enregistrer une URL de stockage complète (ex. gs://mon-bucket/chemin/vers/fichier) au lieu du simple chemin de stockage. Vous ne pouvez modifier ce paramètre qu'à la création.",
17972
- save_url_instead_of_path: "Enregistrer l'URL au lieu du chemin de stockage",
17973
- save_url_description: "Activez ce paramètre si vous préférez enregistrer l'URL de téléchargement du fichier plutôt que le chemin de stockage. Vous ne pouvez modifier ce paramètre qu'à la création.",
17974
- max_size_bytes: "Taille maximale (en octets)",
17975
- image_resize_configuration: "Configuration du redimensionnement d'image",
17976
- image_resize_description: "Redimensionner et optimiser automatiquement les images avant le téléchargement (JPEG, PNG, WebP uniquement)",
17977
- max_width_px: "Largeur max (px)",
17978
- max_height_px: "Hauteur max (px)",
17979
- resize_mode: "Mode de redimensionnement",
17980
- resize_contain: "Contenir",
17981
- resize_contain_description: "Contenir (ajuster aux limites)",
17982
- resize_cover: "Couvrir",
17983
- resize_cover_description: "Couvrir (remplir les limites, peut rogner)",
17984
- output_format: "Format de sortie",
17963
+ function MissingReferenceWidget(t0) {
17964
+ const $ = reactCompilerRuntime.c(12);
17965
+ const {
17966
+ path: pathProp
17967
+ } = t0;
17968
+ const navigation = core.useNavigationController();
17969
+ const path = getLastSegment(pathProp);
17970
+ let t1;
17971
+ if ($[0] !== navigation || $[1] !== pathProp) {
17972
+ t1 = navigation.getParentCollectionIds(pathProp);
17973
+ $[0] = navigation;
17974
+ $[1] = pathProp;
17975
+ $[2] = t1;
17976
+ } else {
17977
+ t1 = $[2];
17978
+ }
17979
+ const parentCollectionIds = t1;
17980
+ const collectionEditor = useCollectionEditorController();
17981
+ const t2 = "No collection for path: " + path;
17982
+ let t3;
17983
+ if ($[3] !== t2) {
17984
+ t3 = /* @__PURE__ */ jsxRuntime.jsx(core.ErrorView, { error: t2 });
17985
+ $[3] = t2;
17986
+ $[4] = t3;
17987
+ } else {
17988
+ t3 = $[4];
17989
+ }
17990
+ let t4;
17991
+ if ($[5] !== collectionEditor || $[6] !== parentCollectionIds || $[7] !== path) {
17992
+ t4 = /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { className: "mx-2", size: "small", onClick: () => {
17993
+ collectionEditor.createCollection({
17994
+ initialValues: {
17995
+ path,
17996
+ name: core.prettifyIdentifier(path)
17997
+ },
17998
+ parentCollectionIds,
17999
+ redirect: false,
18000
+ sourceClick: "missing_reference"
18001
+ });
18002
+ }, children: "Create" });
18003
+ $[5] = collectionEditor;
18004
+ $[6] = parentCollectionIds;
18005
+ $[7] = path;
18006
+ $[8] = t4;
18007
+ } else {
18008
+ t4 = $[8];
18009
+ }
18010
+ let t5;
18011
+ if ($[9] !== t3 || $[10] !== t4) {
18012
+ t5 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-1 flex flex-col items-center", children: [
18013
+ t3,
18014
+ t4
18015
+ ] });
18016
+ $[9] = t3;
18017
+ $[10] = t4;
18018
+ $[11] = t5;
18019
+ } else {
18020
+ t5 = $[11];
18021
+ }
18022
+ return t5;
18023
+ }
18024
+ function getLastSegment(path) {
18025
+ const segments = path.split("/");
18026
+ return segments[segments.length - 1];
18027
+ }
18028
+ const collectionEditorTranslationsEs = {
18029
+ file_upload_config: "Configuración de subida de archivos",
18030
+ file_type_images: "Imágenes",
18031
+ file_type_videos: "Videos",
18032
+ file_type_audio: "Archivos de audio",
18033
+ file_type_applications: "Archivos (pdf, zip, csv, excel...)",
18034
+ file_type_text: "Archivos de texto",
18035
+ only: "Solo",
18036
+ all_file_types_allowed: "Todos los tipos de archivo permitidos",
18037
+ allowed_file_types: "Tipos de archivo permitidos",
18038
+ file_name_label: "Nombre del archivo",
18039
+ storage_path_label: "Ruta de almacenamiento",
18040
+ storage_placeholders_description: "Puedes usar los siguientes marcadores en los valores del nombre de archivo y la ruta de almacenamiento:",
18041
+ storage_placeholder_file: "{file} - Nombre completo del archivo subido",
18042
+ storage_placeholder_file_name: "{file.name} - Nombre del archivo subido sin extensión",
18043
+ storage_placeholder_file_ext: "{file.ext} - Extensión del archivo subido",
18044
+ storage_placeholder_entity_id: "{entityId} - ID de la entidad",
18045
+ storage_placeholder_property_key: "{propertyKey} - ID de este campo",
18046
+ storage_placeholder_path: "{path} - Ruta de esta entidad",
18047
+ storage_placeholder_rand: "{rand} - Valor aleatorio para evitar colisiones de nombres",
18048
+ include_bucket_url: "Incluir URL del bucket (gs://...) en el valor guardado",
18049
+ include_bucket_url_description: "Activa esta opción si deseas guardar una URL de almacenamiento completa (ej. gs://mi-bucket/ruta/al/archivo) en lugar de solo la ruta de almacenamiento. Cambiarla solo afecta a las nuevas subidas: los valores ya guardados mantienen su formato actual.",
18050
+ save_url_instead_of_path: "Guardar URL en lugar de ruta de almacenamiento",
18051
+ save_url_description: "Activa esta opción si prefieres guardar la URL de descarga del archivo subido en lugar de la ruta de almacenamiento. Cambiarla solo afecta a las nuevas subidas: los valores ya guardados mantienen su formato actual.",
18052
+ max_size_bytes: "Tamaño máximo (en bytes)",
18053
+ image_resize_configuration: "Configuración de redimensionamiento de imagen",
18054
+ image_resize_description: "Redimensionar y optimizar imágenes automáticamente antes de subirlas (solo JPEG, PNG, WebP)",
18055
+ max_width_px: "Ancho máximo (px)",
18056
+ max_height_px: "Alto máximo (px)",
18057
+ resize_mode: "Modo de redimensionamiento",
18058
+ resize_contain: "Contener",
18059
+ resize_contain_description: "Contener (ajustar dentro de los límites)",
18060
+ resize_cover: "Cubrir",
18061
+ resize_cover_description: "Cubrir (rellenar límites, puede recortar)",
18062
+ output_format: "Formato de salida",
17985
18063
  format_original: "Original",
17986
- format_original_description: "Original (conserver le même format)",
17987
- format_webp_description: "WebP (meilleure compression)",
17988
- quality_label: "Qualité (0–100)",
17989
- quality_hint: "Qualité plus élevée = fichier plus volumineux. Recommandé : 80–90 pour les photos, 90–100 pour les graphiques",
17990
- preview_type: "Type d'aperçu",
17991
- preview_image: "Image",
17992
- preview_video: "Vidéo",
18064
+ format_original_description: "Original (mantener mismo formato)",
18065
+ format_webp_description: "WebP (mejor compresión)",
18066
+ quality_label: "Calidad (0–100)",
18067
+ quality_hint: "Mayor calidad = archivo más grande. Recomendado: 80–90 para fotos, 90–100 para gráficos",
18068
+ preview_type: "Tipo de vista previa",
18069
+ preview_image: "Imagen",
18070
+ preview_video: "Video",
17993
18071
  preview_audio: "Audio",
17994
- display_url: "Afficher l'URL",
17995
- default_value_not_set: "Valeur par défaut non définie",
17996
- default_value_is: "La valeur par défaut est {{value}}",
17997
- default_value_was_cleared: "La valeur par défaut a été supprimée",
17998
- enum_missing_values: "Cette propriété enum est incomplète",
17999
- mode_label: "Mode",
18000
- date_time_mode: "Date/Heure",
18001
- date_mode: "Date",
18002
- automatic_value: "Valeur automatique",
18003
- auto_on_create: "À la création",
18004
- auto_on_update: "À chaque mise à jour",
18005
- auto_none: "Aucune",
18006
- auto_value_description: "Mettre à jour ce champ automatiquement lors de la création ou de la mise à jour de l'entité",
18007
- timezone_label: "Fuseau horaire",
18008
- local_timezone: "Fuseau horaire local",
18009
- timezone_description: "Fuseau horaire pour l'affichage et la saisie des dates. Les valeurs sont toujours stockées en UTC.",
18010
- target_collection: "Collection cible",
18011
- views_group: "Vues",
18012
- add_property_to: "Ajouter une propriété à {{name}}",
18013
- add_first_property_to_group: "Ajoutez la première propriété à ce groupe",
18014
- spread_children_as_columns: "Étendre les enfants en colonnes",
18015
- spread_children_description: "Activez cette option si vous souhaitez afficher les enfants de ce groupe en colonnes individuelles. Cela ne fonctionne que pour les groupes de premier niveau.",
18016
- paste_behavior: "Comportement du collage",
18017
- strip_html_on_paste: "Supprimer le HTML au collage",
18018
- strip_html_description: "Supprimer les balises HTML et les styles en ligne lors du collage de contenu provenant de sources externes",
18019
- convert_pasted_to_markdown: "Convertir le texte collé en markdown",
18020
- convert_pasted_description: "Convertir le texte enrichi (de Google Docs, Word, etc.) en format markdown propre",
18021
- markdown_url_note: "Avec Markdown, les URL des fichiers téléchargés sont toujours enregistrées dans la valeur texte (pas le chemin).",
18022
- hide_from_collection: "Masquer de la collection",
18023
- hide_from_collection_tooltip: "Masquer ce champ de la vue collection. Il restera visible dans la vue formulaire",
18024
- read_only: "Lecture seule",
18025
- read_only_tooltip: "Ce champ est en lecture seule. Affichage en aperçu uniquement",
18072
+ display_url: "Mostrar URL",
18073
+ default_value_not_set: "Valor predeterminado no establecido",
18074
+ default_value_is: "El valor predeterminado es {{value}}",
18075
+ default_value_was_cleared: "El valor predeterminado fue eliminado",
18076
+ enum_missing_values: "A esta propiedad enum le faltan algunos valores",
18077
+ mode_label: "Modo",
18078
+ date_time_mode: "Fecha/Hora",
18079
+ date_mode: "Fecha",
18080
+ automatic_value: "Valor automático",
18081
+ auto_on_create: "Al crear",
18082
+ auto_on_update: "En cada actualización",
18083
+ auto_none: "Ninguno",
18084
+ auto_value_description: "Actualizar este campo automáticamente al crear o actualizar la entidad",
18085
+ timezone_label: "Zona horaria",
18086
+ local_timezone: "Zona horaria local",
18087
+ timezone_description: "Zona horaria para mostrar e ingresar fechas. Los valores se almacenan siempre en UTC.",
18088
+ target_collection: "Colección de destino",
18089
+ views_group: "Vistas",
18090
+ add_property_to: "Añadir propiedad a {{name}}",
18091
+ add_first_property_to_group: "Añade la primera propiedad a este grupo",
18092
+ spread_children_as_columns: "Distribuir hijos como columnas",
18093
+ spread_children_description: "Activa esta opción si deseas mostrar los hijos de este grupo como columnas individuales. Solo funciona para grupos de nivel superior.",
18094
+ paste_behavior: "Comportamiento al pegar",
18095
+ strip_html_on_paste: "Eliminar HTML al pegar",
18096
+ strip_html_description: "Eliminar etiquetas HTML y estilos en línea al pegar contenido de fuentes externas",
18097
+ convert_pasted_to_markdown: "Convertir texto pegado a markdown",
18098
+ convert_pasted_description: "Convertir texto enriquecido (de Google Docs, Word, etc.) a formato markdown limpio",
18099
+ markdown_url_note: "Al usar Markdown, las URLs de los archivos subidos siempre se guardan en el valor de texto (no la ruta).",
18100
+ hide_from_collection: "Ocultar de la colección",
18101
+ hide_from_collection_tooltip: "Ocultar este campo de la vista de colección. Seguirá visible en la vista de formulario",
18102
+ read_only: "Solo lectura",
18103
+ read_only_tooltip: "Es un campo de solo lectura. Mostrar solo como vista previa",
18026
18104
  nullable: "Nullable",
18027
- nullable_tooltip: "Permettre de définir explicitement ce champ comme null. Un bouton d'effacement sera affiché à l'utilisateur",
18028
- tab_general: "Général",
18029
- tab_display: "Affichage",
18030
- tab_properties: "Propriétés",
18031
- tab_extend: "Extension",
18032
- unsaved_changes_in_collection: "Il y a des modifications non enregistrées dans cette collection",
18033
- error_persisting_collection: "Erreur lors de la sauvegarde de la collection : {{error}}",
18034
- details_in_console: "Détails dans la console",
18035
- error_inferring_collection: "Erreur lors de l'inférence de la collection : {{error}}",
18036
- collection_deleted: "Collection supprimée",
18037
- data_imported_successfully_msg: "Données importées avec succès",
18038
- must_specify_path: "Vous devez spécifier un chemin dans la base de données pour cette collection",
18039
- collection_path_already_exists: "Il existe déjà une collection avec le chemin spécifié. Si vous souhaitez avoir plusieurs collections avec le même chemin, assurez-vous qu'elles ont des ID différents",
18040
- collection_path_odd_segments: "Les chemins de collection doivent avoir un nombre impair de segments : {{path}}",
18041
- collection_uses_path_as_id: "Il existe déjà une collection qui utilise cette valeur comme chemin",
18042
- collection_uses_this_id: "Il existe déjà une collection qui utilise cet ID",
18043
- delete_stored_config: "Supprimer la configuration enregistrée ?",
18044
- delete_stored_config_body: "Cela ne supprimera aucune donnée, uniquement la configuration enregistrée, et restaurera l'état du code.",
18045
- order_label: "Ordre",
18105
+ nullable_tooltip: "Permitir que este campo se establezca explícitamente como null. Se mostrará un botón de borrar al usuario",
18106
+ tab_general: "General",
18107
+ tab_display: "Visualización",
18108
+ tab_properties: "Propiedades",
18109
+ tab_extend: "Extender",
18110
+ unsaved_changes_in_collection: "Hay cambios sin guardar en esta colección",
18111
+ error_persisting_collection: "Error al guardar la colección: {{error}}",
18112
+ details_in_console: "Detalles en la consola",
18113
+ error_inferring_collection: "Error al inferir la colección: {{error}}",
18114
+ collection_deleted: "Colección eliminada",
18115
+ data_imported_successfully_msg: "Datos importados correctamente",
18116
+ must_specify_path: "Debes especificar una ruta en la base de datos para esta colección",
18117
+ collection_path_already_exists: "Ya existe una colección con la ruta especificada. Si deseas tener múltiples colecciones con la misma ruta de base de datos, asegúrate de que tengan IDs diferentes",
18118
+ collection_path_odd_segments: "Las rutas de colección deben tener un número impar de segmentos: {{path}}",
18119
+ collection_uses_path_as_id: "Ya existe una colección que usa este valor como ruta",
18120
+ collection_uses_this_id: "Ya existe una colección que usa este ID",
18121
+ delete_stored_config: "¿Eliminar la configuración almacenada?",
18122
+ delete_stored_config_body: "Esto no eliminará ningún dato, solo la configuración almacenada, y se restaurará al estado del código.",
18123
+ order_label: "Orden",
18046
18124
  // Collection Properties Editor
18047
- select_property_to_edit: "Sélectionnez une propriété pour la modifier",
18048
- add_first_property: "Vous pouvez maintenant ajouter votre première propriété",
18049
- add_new_property: "Ajouter une nouvelle propriété",
18050
- no_permission_add_properties: "Vous n'avez pas la permission d'ajouter de nouvelles propriétés",
18051
- get_code_for_collection: "Obtenir le code de cette collection",
18052
- add_properties_from_data: "Ajouter de nouvelles propriétés basées sur les données",
18053
- collection_name_placeholder: "Nom de la collection",
18054
- created_by: "Créé par {{name}}",
18055
- property_defined_as_builder: "Cette propriété est définie comme un property builder dans le code",
18125
+ select_property_to_edit: "Selecciona una propiedad para editarla",
18126
+ add_first_property: "Ahora puedes añadir tu primera propiedad",
18127
+ add_new_property: "Añadir nueva propiedad",
18128
+ no_permission_add_properties: "No tienes permiso para añadir nuevas propiedades",
18129
+ get_code_for_collection: "Obtener el código de esta colección",
18130
+ add_properties_from_data: "Añadir nuevas propiedades basadas en datos",
18131
+ collection_name_placeholder: "Nombre de la colección",
18132
+ created_by: "Creado por {{name}}",
18133
+ property_defined_as_builder: "Esta propiedad está definida como un property builder en código",
18056
18134
  // Extend Settings
18057
- extend_title: "Extension",
18058
- extend_description: "Ajoutez des sous-collections, des vues personnalisées et des actions d’entité à cette collection.",
18059
- collection_defined_in_code: "Cette collection est définie dans le code. Les modifications effectuées dans cet éditeur remplaceront les propriétés définies dans le code. Vous pouvez supprimer les valeurs remplacées pour revenir à l'état défini dans le code.",
18135
+ extend_title: "Extender",
18136
+ extend_description: "Añade subcolecciones, vistas personalizadas y acciones de entidad a esta colección.",
18137
+ collection_defined_in_code: "Esta colección está definida en código. Los cambios realizados en este editor sobreescribirán las propiedades definidas en código. Puedes eliminar los valores sobreescritos para volver al estado definido en código.",
18138
+ reset_to_code: "Restablecer al código",
18139
+ widget_group_text: "Texto",
18140
+ widget_group_boolean: "Booleano",
18141
+ widget_group_users: "Usuarios",
18142
+ widget_group_select: "Selección",
18143
+ widget_group_number: "Número",
18144
+ widget_group_file: "Archivo",
18145
+ widget_group_reference: "Referencia",
18146
+ widget_group_date: "Fecha",
18147
+ widget_group_group: "Grupo",
18148
+ widget_group_array: "Lista"
18149
+ };
18150
+ const es = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
18151
+ __proto__: null,
18152
+ collectionEditorTranslationsEs
18153
+ }, Symbol.toStringTag, { value: "Module" }));
18154
+ const collectionEditorTranslationsDe = {
18155
+ file_upload_config: "Dateiupload-Konfiguration",
18156
+ file_type_images: "Bilder",
18157
+ file_type_videos: "Videos",
18158
+ file_type_audio: "Audiodateien",
18159
+ file_type_applications: "Dateien (pdf, zip, csv, excel...)",
18160
+ file_type_text: "Textdateien",
18161
+ only: "Nur",
18162
+ all_file_types_allowed: "Alle Dateitypen erlaubt",
18163
+ allowed_file_types: "Erlaubte Dateitypen",
18164
+ file_name_label: "Dateiname",
18165
+ storage_path_label: "Speicherpfad",
18166
+ storage_placeholders_description: "Sie können die folgenden Platzhalter in den Werten für Dateiname und Speicherpfad verwenden:",
18167
+ storage_placeholder_file: "{file} - Vollständiger Name der hochgeladenen Datei",
18168
+ storage_placeholder_file_name: "{file.name} - Name der hochgeladenen Datei ohne Erweiterung",
18169
+ storage_placeholder_file_ext: "{file.ext} - Erweiterung der hochgeladenen Datei",
18170
+ storage_placeholder_entity_id: "{entityId} - ID der Entität",
18171
+ storage_placeholder_property_key: "{propertyKey} - ID dieses Feldes",
18172
+ storage_placeholder_path: "{path} - Pfad dieser Entität",
18173
+ storage_placeholder_rand: "{rand} - Zufallswert zur Vermeidung von Namenskollisionen",
18174
+ include_bucket_url: "Bucket-URL (gs://...) im gespeicherten Wert einschließen",
18175
+ include_bucket_url_description: "Aktivieren Sie diese Einstellung, wenn Sie eine vollqualifizierte Speicher-URL (z. B. gs://mein-bucket/pfad/zur/datei) statt nur des Speicherpfads speichern möchten. Eine Änderung wirkt sich nur auf neue Uploads aus: Bereits gespeicherte Werte behalten ihr aktuelles Format.",
18176
+ save_url_instead_of_path: "URL statt Speicherpfad speichern",
18177
+ save_url_description: "Aktivieren Sie diese Einstellung, wenn Sie bevorzugen, die Download-URL der hochgeladenen Datei statt des Speicherpfads zu speichern. Eine Änderung wirkt sich nur auf neue Uploads aus: Bereits gespeicherte Werte behalten ihr aktuelles Format.",
18178
+ max_size_bytes: "Maximale Größe (in Bytes)",
18179
+ image_resize_configuration: "Bildgrößenanpassungs-Konfiguration",
18180
+ image_resize_description: "Bilder vor dem Hochladen automatisch anpassen und optimieren (nur JPEG, PNG, WebP)",
18181
+ max_width_px: "Maximale Breite (px)",
18182
+ max_height_px: "Maximale Höhe (px)",
18183
+ resize_mode: "Anpassungsmodus",
18184
+ resize_contain: "Einpassen",
18185
+ resize_contain_description: "Einpassen (innerhalb der Grenzen)",
18186
+ resize_cover: "Abdecken",
18187
+ resize_cover_description: "Abdecken (Grenzen füllen, kann zuschneiden)",
18188
+ output_format: "Ausgabeformat",
18189
+ format_original: "Original",
18190
+ format_original_description: "Original (gleiches Format beibehalten)",
18191
+ format_webp_description: "WebP (beste Komprimierung)",
18192
+ quality_label: "Qualität (0–100)",
18193
+ quality_hint: "Höhere Qualität = größere Datei. Empfohlen: 80–90 für Fotos, 90–100 für Grafiken",
18194
+ preview_type: "Vorschautyp",
18195
+ preview_image: "Bild",
18196
+ preview_video: "Video",
18197
+ preview_audio: "Audio",
18198
+ display_url: "URL anzeigen",
18199
+ default_value_not_set: "Standardwert nicht gesetzt",
18200
+ default_value_is: "Standardwert ist {{value}}",
18201
+ default_value_was_cleared: "Standardwert wurde gelöscht",
18202
+ enum_missing_values: "Dieser Enum-Eigenschaft fehlen einige Werte",
18203
+ mode_label: "Modus",
18204
+ date_time_mode: "Datum/Uhrzeit",
18205
+ date_mode: "Datum",
18206
+ automatic_value: "Automatischer Wert",
18207
+ auto_on_create: "Bei Erstellung",
18208
+ auto_on_update: "Bei jeder Aktualisierung",
18209
+ auto_none: "Keiner",
18210
+ auto_value_description: "Dieses Feld automatisch beim Erstellen oder Aktualisieren der Entität aktualisieren",
18211
+ timezone_label: "Zeitzone",
18212
+ local_timezone: "Lokale Zeitzone",
18213
+ timezone_description: "Zeitzone für die Anzeige und Eingabe von Daten. Werte werden immer in UTC gespeichert.",
18214
+ target_collection: "Zielsammlung",
18215
+ views_group: "Ansichten",
18216
+ add_property_to: "Eigenschaft zu {{name}} hinzufügen",
18217
+ add_first_property_to_group: "Erste Eigenschaft zu dieser Gruppe hinzufügen",
18218
+ spread_children_as_columns: "Kinder als Spalten verteilen",
18219
+ spread_children_description: "Setzen Sie dieses Flag auf true, wenn Sie die Kinder dieser Gruppe als einzelne Spalten anzeigen möchten. Dies funktioniert nur für Gruppen auf der obersten Ebene.",
18220
+ paste_behavior: "Einfügeverhalten",
18221
+ strip_html_on_paste: "HTML beim Einfügen entfernen",
18222
+ strip_html_description: "HTML-Tags und Inline-Stile beim Einfügen von Inhalten aus externen Quellen entfernen",
18223
+ convert_pasted_to_markdown: "Eingefügten Text in Markdown konvertieren",
18224
+ convert_pasted_description: "Rich Text (von Google Docs, Word usw.) in sauberes Markdown-Format konvertieren",
18225
+ markdown_url_note: "Bei Verwendung von Markdown werden die URLs der hochgeladenen Dateien immer im Textwert gespeichert (nicht der Pfad).",
18226
+ hide_from_collection: "Aus Sammlung ausblenden",
18227
+ hide_from_collection_tooltip: "Dieses Feld aus der Sammlungsansicht ausblenden. Es wird weiterhin in der Formularansicht sichtbar sein",
18228
+ read_only: "Nur lesen",
18229
+ read_only_tooltip: "Ist dieses Feld schreibgeschützt. Nur als Vorschau anzeigen",
18230
+ nullable: "Nullable",
18231
+ nullable_tooltip: "Erlaubt es, dieses Feld explizit auf null zu setzen. Dem Benutzer wird eine Löschen-Schaltfläche angezeigt",
18232
+ tab_general: "Allgemein",
18233
+ tab_display: "Anzeige",
18234
+ tab_properties: "Eigenschaften",
18235
+ tab_extend: "Erweitern",
18236
+ unsaved_changes_in_collection: "Es gibt ungespeicherte Änderungen in dieser Sammlung",
18237
+ error_persisting_collection: "Fehler beim Speichern der Sammlung: {{error}}",
18238
+ details_in_console: "Details in der Konsole",
18239
+ error_inferring_collection: "Fehler beim Ableiten der Sammlung: {{error}}",
18240
+ collection_deleted: "Sammlung gelöscht",
18241
+ data_imported_successfully_msg: "Daten erfolgreich importiert",
18242
+ must_specify_path: "Sie müssen einen Pfad in der Datenbank für diese Sammlung angeben",
18243
+ collection_path_already_exists: "Es gibt bereits eine Sammlung mit dem angegebenen Pfad. Wenn Sie mehrere Sammlungen mit demselben Datenbankpfad haben möchten, stellen Sie sicher, dass sie unterschiedliche IDs haben",
18244
+ collection_path_odd_segments: "Sammlungspfade müssen eine ungerade Anzahl von Segmenten haben: {{path}}",
18245
+ collection_uses_path_as_id: "Es gibt bereits eine Sammlung, die diesen Wert als Pfad verwendet",
18246
+ collection_uses_this_id: "Es gibt bereits eine Sammlung, die diese ID verwendet",
18247
+ delete_stored_config: "Gespeicherte Konfiguration löschen?",
18248
+ delete_stored_config_body: "Dadurch werden keine Daten gelöscht, nur die gespeicherte Konfiguration, und der Code-Zustand wird wiederhergestellt.",
18249
+ order_label: "Reihenfolge",
18250
+ // Collection Properties Editor
18251
+ select_property_to_edit: "Wähle eine Eigenschaft aus, um sie zu bearbeiten",
18252
+ add_first_property: "Jetzt kannst du deine erste Eigenschaft hinzufügen",
18253
+ add_new_property: "Neue Eigenschaft hinzufügen",
18254
+ no_permission_add_properties: "Du hast keine Berechtigung, neue Eigenschaften hinzuzufügen",
18255
+ get_code_for_collection: "Code für diese Sammlung abrufen",
18256
+ add_properties_from_data: "Neue Eigenschaften basierend auf Daten hinzufügen",
18257
+ collection_name_placeholder: "Sammlungsname",
18258
+ created_by: "Erstellt von {{name}}",
18259
+ property_defined_as_builder: "Diese Eigenschaft ist als Property Builder im Code definiert",
18260
+ // Extend Settings
18261
+ extend_title: "Erweitern",
18262
+ extend_description: "Füge Untersammlungen, benutzerdefinierte Ansichten und Entitätsaktionen zu dieser Sammlung hinzu.",
18263
+ collection_defined_in_code: "Diese Sammlung ist im Code definiert. Die in diesem Editor vorgenommenen Änderungen überschreiben die im Code definierten Eigenschaften. Du kannst die überschriebenen Werte löschen, um zum im Code definierten Zustand zurückzukehren.",
18264
+ reset_to_code: "Auf Code zurücksetzen",
18265
+ widget_group_text: "Text",
18266
+ widget_group_boolean: "Boolean",
18267
+ widget_group_users: "Benutzer",
18268
+ widget_group_select: "Auswahl",
18269
+ widget_group_number: "Zahl",
18270
+ widget_group_file: "Datei",
18271
+ widget_group_reference: "Referenz",
18272
+ widget_group_date: "Datum",
18273
+ widget_group_group: "Gruppe",
18274
+ widget_group_array: "Array"
18275
+ };
18276
+ const de = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
18277
+ __proto__: null,
18278
+ collectionEditorTranslationsDe
18279
+ }, Symbol.toStringTag, { value: "Module" }));
18280
+ const collectionEditorTranslationsFr = {
18281
+ file_upload_config: "Configuration du téléchargement de fichiers",
18282
+ file_type_images: "Images",
18283
+ file_type_videos: "Vidéos",
18284
+ file_type_audio: "Fichiers audio",
18285
+ file_type_applications: "Fichiers (pdf, zip, csv, excel...)",
18286
+ file_type_text: "Fichiers texte",
18287
+ only: "Uniquement",
18288
+ all_file_types_allowed: "Tous les types de fichiers autorisés",
18289
+ allowed_file_types: "Types de fichiers autorisés",
18290
+ file_name_label: "Nom du fichier",
18291
+ storage_path_label: "Chemin de stockage",
18292
+ storage_placeholders_description: "Vous pouvez utiliser les espaces réservés suivants dans les valeurs du nom de fichier et du chemin de stockage :",
18293
+ storage_placeholder_file: "{file} - Nom complet du fichier téléchargé",
18294
+ storage_placeholder_file_name: "{file.name} - Nom du fichier téléchargé sans extension",
18295
+ storage_placeholder_file_ext: "{file.ext} - Extension du fichier téléchargé",
18296
+ storage_placeholder_entity_id: "{entityId} - ID de l'entité",
18297
+ storage_placeholder_property_key: "{propertyKey} - ID de ce champ",
18298
+ storage_placeholder_path: "{path} - Chemin de cette entité",
18299
+ storage_placeholder_rand: "{rand} - Valeur aléatoire pour éviter les conflits de noms",
18300
+ include_bucket_url: "Inclure l'URL du bucket (gs://...) dans la valeur enregistrée",
18301
+ include_bucket_url_description: "Activez ce paramètre si vous souhaitez enregistrer une URL de stockage complète (ex. gs://mon-bucket/chemin/vers/fichier) au lieu du simple chemin de stockage. Sa modification n'affecte que les nouveaux envois : les valeurs déjà enregistrées conservent leur format actuel.",
18302
+ save_url_instead_of_path: "Enregistrer l'URL au lieu du chemin de stockage",
18303
+ save_url_description: "Activez ce paramètre si vous préférez enregistrer l'URL de téléchargement du fichier plutôt que le chemin de stockage. Sa modification n'affecte que les nouveaux envois : les valeurs déjà enregistrées conservent leur format actuel.",
18304
+ max_size_bytes: "Taille maximale (en octets)",
18305
+ image_resize_configuration: "Configuration du redimensionnement d'image",
18306
+ image_resize_description: "Redimensionner et optimiser automatiquement les images avant le téléchargement (JPEG, PNG, WebP uniquement)",
18307
+ max_width_px: "Largeur max (px)",
18308
+ max_height_px: "Hauteur max (px)",
18309
+ resize_mode: "Mode de redimensionnement",
18310
+ resize_contain: "Contenir",
18311
+ resize_contain_description: "Contenir (ajuster aux limites)",
18312
+ resize_cover: "Couvrir",
18313
+ resize_cover_description: "Couvrir (remplir les limites, peut rogner)",
18314
+ output_format: "Format de sortie",
18315
+ format_original: "Original",
18316
+ format_original_description: "Original (conserver le même format)",
18317
+ format_webp_description: "WebP (meilleure compression)",
18318
+ quality_label: "Qualité (0–100)",
18319
+ quality_hint: "Qualité plus élevée = fichier plus volumineux. Recommandé : 80–90 pour les photos, 90–100 pour les graphiques",
18320
+ preview_type: "Type d'aperçu",
18321
+ preview_image: "Image",
18322
+ preview_video: "Vidéo",
18323
+ preview_audio: "Audio",
18324
+ display_url: "Afficher l'URL",
18325
+ default_value_not_set: "Valeur par défaut non définie",
18326
+ default_value_is: "La valeur par défaut est {{value}}",
18327
+ default_value_was_cleared: "La valeur par défaut a été supprimée",
18328
+ enum_missing_values: "Cette propriété enum est incomplète",
18329
+ mode_label: "Mode",
18330
+ date_time_mode: "Date/Heure",
18331
+ date_mode: "Date",
18332
+ automatic_value: "Valeur automatique",
18333
+ auto_on_create: "À la création",
18334
+ auto_on_update: "À chaque mise à jour",
18335
+ auto_none: "Aucune",
18336
+ auto_value_description: "Mettre à jour ce champ automatiquement lors de la création ou de la mise à jour de l'entité",
18337
+ timezone_label: "Fuseau horaire",
18338
+ local_timezone: "Fuseau horaire local",
18339
+ timezone_description: "Fuseau horaire pour l'affichage et la saisie des dates. Les valeurs sont toujours stockées en UTC.",
18340
+ target_collection: "Collection cible",
18341
+ views_group: "Vues",
18342
+ add_property_to: "Ajouter une propriété à {{name}}",
18343
+ add_first_property_to_group: "Ajoutez la première propriété à ce groupe",
18344
+ spread_children_as_columns: "Étendre les enfants en colonnes",
18345
+ spread_children_description: "Activez cette option si vous souhaitez afficher les enfants de ce groupe en colonnes individuelles. Cela ne fonctionne que pour les groupes de premier niveau.",
18346
+ paste_behavior: "Comportement du collage",
18347
+ strip_html_on_paste: "Supprimer le HTML au collage",
18348
+ strip_html_description: "Supprimer les balises HTML et les styles en ligne lors du collage de contenu provenant de sources externes",
18349
+ convert_pasted_to_markdown: "Convertir le texte collé en markdown",
18350
+ convert_pasted_description: "Convertir le texte enrichi (de Google Docs, Word, etc.) en format markdown propre",
18351
+ markdown_url_note: "Avec Markdown, les URL des fichiers téléchargés sont toujours enregistrées dans la valeur texte (pas le chemin).",
18352
+ hide_from_collection: "Masquer de la collection",
18353
+ hide_from_collection_tooltip: "Masquer ce champ de la vue collection. Il restera visible dans la vue formulaire",
18354
+ read_only: "Lecture seule",
18355
+ read_only_tooltip: "Ce champ est en lecture seule. Affichage en aperçu uniquement",
18356
+ nullable: "Nullable",
18357
+ nullable_tooltip: "Permettre de définir explicitement ce champ comme null. Un bouton d'effacement sera affiché à l'utilisateur",
18358
+ tab_general: "Général",
18359
+ tab_display: "Affichage",
18360
+ tab_properties: "Propriétés",
18361
+ tab_extend: "Extension",
18362
+ unsaved_changes_in_collection: "Il y a des modifications non enregistrées dans cette collection",
18363
+ error_persisting_collection: "Erreur lors de la sauvegarde de la collection : {{error}}",
18364
+ details_in_console: "Détails dans la console",
18365
+ error_inferring_collection: "Erreur lors de l'inférence de la collection : {{error}}",
18366
+ collection_deleted: "Collection supprimée",
18367
+ data_imported_successfully_msg: "Données importées avec succès",
18368
+ must_specify_path: "Vous devez spécifier un chemin dans la base de données pour cette collection",
18369
+ collection_path_already_exists: "Il existe déjà une collection avec le chemin spécifié. Si vous souhaitez avoir plusieurs collections avec le même chemin, assurez-vous qu'elles ont des ID différents",
18370
+ collection_path_odd_segments: "Les chemins de collection doivent avoir un nombre impair de segments : {{path}}",
18371
+ collection_uses_path_as_id: "Il existe déjà une collection qui utilise cette valeur comme chemin",
18372
+ collection_uses_this_id: "Il existe déjà une collection qui utilise cet ID",
18373
+ delete_stored_config: "Supprimer la configuration enregistrée ?",
18374
+ delete_stored_config_body: "Cela ne supprimera aucune donnée, uniquement la configuration enregistrée, et restaurera l'état du code.",
18375
+ order_label: "Ordre",
18376
+ // Collection Properties Editor
18377
+ select_property_to_edit: "Sélectionnez une propriété pour la modifier",
18378
+ add_first_property: "Vous pouvez maintenant ajouter votre première propriété",
18379
+ add_new_property: "Ajouter une nouvelle propriété",
18380
+ no_permission_add_properties: "Vous n'avez pas la permission d'ajouter de nouvelles propriétés",
18381
+ get_code_for_collection: "Obtenir le code de cette collection",
18382
+ add_properties_from_data: "Ajouter de nouvelles propriétés basées sur les données",
18383
+ collection_name_placeholder: "Nom de la collection",
18384
+ created_by: "Créé par {{name}}",
18385
+ property_defined_as_builder: "Cette propriété est définie comme un property builder dans le code",
18386
+ // Extend Settings
18387
+ extend_title: "Extension",
18388
+ extend_description: "Ajoutez des sous-collections, des vues personnalisées et des actions d’entité à cette collection.",
18389
+ collection_defined_in_code: "Cette collection est définie dans le code. Les modifications effectuées dans cet éditeur remplaceront les propriétés définies dans le code. Vous pouvez supprimer les valeurs remplacées pour revenir à l'état défini dans le code.",
18060
18390
  reset_to_code: "Réinitialiser au code",
18061
18391
  widget_group_text: "Texte",
18062
18392
  widget_group_boolean: "Booléen",
@@ -18069,6 +18399,10 @@
18069
18399
  widget_group_group: "Groupe",
18070
18400
  widget_group_array: "Liste"
18071
18401
  };
18402
+ const fr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
18403
+ __proto__: null,
18404
+ collectionEditorTranslationsFr
18405
+ }, Symbol.toStringTag, { value: "Module" }));
18072
18406
  const collectionEditorTranslationsIt = {
18073
18407
  file_upload_config: "Configurazione caricamento file",
18074
18408
  file_type_images: "Immagini",
@@ -18090,9 +18424,9 @@
18090
18424
  storage_placeholder_path: "{path} - Percorso di questa entità",
18091
18425
  storage_placeholder_rand: "{rand} - Valore casuale per evitare conflitti di nomi",
18092
18426
  include_bucket_url: "Includi URL del bucket (gs://...) nel valore salvato",
18093
- include_bucket_url_description: "Attiva questa impostazione se desideri salvare un URL di archiviazione completo (es. gs://mio-bucket/percorso/al/file) invece del solo percorso di archiviazione. Puoi modificare questa impostazione solo alla creazione.",
18427
+ include_bucket_url_description: "Attiva questa impostazione se desideri salvare un URL di archiviazione completo (es. gs://mio-bucket/percorso/al/file) invece del solo percorso di archiviazione. La modifica influisce solo sui nuovi caricamenti: i valori già salvati mantengono il loro formato attuale.",
18094
18428
  save_url_instead_of_path: "Salva URL invece del percorso di archiviazione",
18095
- save_url_description: "Attiva questa impostazione se preferisci salvare l'URL di download del file caricato invece del percorso di archiviazione. Puoi modificare questa impostazione solo alla creazione.",
18429
+ save_url_description: "Attiva questa impostazione se preferisci salvare l'URL di download del file caricato invece del percorso di archiviazione. La modifica influisce solo sui nuovi caricamenti: i valori già salvati mantengono il loro formato attuale.",
18096
18430
  max_size_bytes: "Dimensione massima (in byte)",
18097
18431
  image_resize_configuration: "Configurazione ridimensionamento immagine",
18098
18432
  image_resize_description: "Ridimensiona e ottimizza automaticamente le immagini prima del caricamento (solo JPEG, PNG, WebP)",
@@ -18191,6 +18525,10 @@
18191
18525
  widget_group_group: "Gruppo",
18192
18526
  widget_group_array: "Lista"
18193
18527
  };
18528
+ const it = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
18529
+ __proto__: null,
18530
+ collectionEditorTranslationsIt
18531
+ }, Symbol.toStringTag, { value: "Module" }));
18194
18532
  const collectionEditorTranslationsHi = {
18195
18533
  file_upload_config: "फ़ाइल अपलोड कॉन्फ़िगरेशन",
18196
18534
  file_type_images: "चित्र",
@@ -18212,9 +18550,9 @@
18212
18550
  storage_placeholder_path: "{path} - इस इकाई का पथ",
18213
18551
  storage_placeholder_rand: "{rand} - नाम टकराव से बचने के लिए यादृच्छिक मूल्य",
18214
18552
  include_bucket_url: "सहेजे गए मान में बकेट URL (gs://...) शामिल करें",
18215
- include_bucket_url_description: "यदि आप केवल स्टोरेज पथ के बजाय पूरी तरह से योग्य स्टोरेज URL (जैसे gs://my-bucket/path/to/file) सहेजना चाहते हैं तो इस सेटिंग को चालू करें। आप इसे केवल निर्माण के समय बदल सकते हैं।",
18553
+ include_bucket_url_description: "यदि आप केवल स्टोरेज पथ के बजाय पूरी तरह से योग्य स्टोरेज URL (जैसे gs://my-bucket/path/to/file) सहेजना चाहते हैं तो इस सेटिंग को चालू करें। इसे बदलने का असर केवल नए अपलोड पर होता है: पहले से सहेजे गए मान अपने मौजूदा प्रारूप में बने रहते हैं।",
18216
18554
  save_url_instead_of_path: "स्टोरेज पथ के बजाय URL सहेजें",
18217
- save_url_description: "यदि आप स्टोरेज पथ के बजाय अपलोड की गई फ़ाइल का डाउनलोड URL सहेजना पसंद करते हैं तो इस सेटिंग को चालू करें। आप इसे केवल निर्माण के समय बदल सकते हैं।",
18555
+ save_url_description: "यदि आप स्टोरेज पथ के बजाय अपलोड की गई फ़ाइल का डाउनलोड URL सहेजना पसंद करते हैं तो इस सेटिंग को चालू करें। इसे बदलने का असर केवल नए अपलोड पर होता है: पहले से सहेजे गए मान अपने मौजूदा प्रारूप में बने रहते हैं।",
18218
18556
  max_size_bytes: "अधिकतम आकार (बाइट में)",
18219
18557
  image_resize_configuration: "छवि आकार बदलने का कॉन्फ़िगरेशन",
18220
18558
  image_resize_description: "अपलोड से पहले स्वचालित रूप से छवियों का आकार बदलें और अनुकूलित करें (केवल JPEG, PNG, WebP)",
@@ -18241,537 +18579,208 @@
18241
18579
  default_value_was_cleared: "डिफ़ॉल्ट मान हटा दिया गया",
18242
18580
  enum_missing_values: "इस enum प्रॉपर्टी में कुछ मान अनुपस्थित हैं",
18243
18581
  mode_label: "मोड",
18244
- date_time_mode: "दिनांक/समय",
18245
- date_mode: "दिनांक",
18246
- automatic_value: "स्वचालित मान",
18247
- auto_on_create: "निर्माण पर",
18248
- auto_on_update: "किसी भी अपडेट पर",
18249
- auto_none: "कोई नहीं",
18250
- auto_value_description: "इकाई बनाते या अपडेट करते समय इस फ़ील्ड को स्वचालित रूप से अपडेट करें",
18251
- timezone_label: "समय क्षेत्र",
18252
- local_timezone: "स्थानीय समय क्षेत्र",
18253
- timezone_description: "तारीखों को प्रदर्शित और इनपुट करने के लिए समय क्षेत्र। मान हमेशा UTC में संग्रहीत होते हैं।",
18254
- target_collection: "लक्ष्य संग्रह",
18255
- views_group: "दृश्य",
18256
- add_property_to: "{{name}} में प्रॉपर्टी जोड़ें",
18257
- add_first_property_to_group: "इस समूह में पहली प्रॉपर्टी जोड़ें",
18258
- spread_children_as_columns: "बच्चों को कॉलम के रूप में फैलाएँ",
18259
- spread_children_description: "यदि आप इस समूह के बच्चों को व्यक्तिगत कॉलम के रूप में प्रदर्शित करना चाहते हैं तो इसे चालू करें। यह केवल शीर्ष स्तर के समूहों के लिए काम करता है।",
18260
- paste_behavior: "पेस्ट व्यवहार",
18261
- strip_html_on_paste: "पेस्ट करते समय HTML हटाएँ",
18262
- strip_html_description: "बाहरी स्रोतों से सामग्री पेस्ट करते समय HTML टैग और इनलाइन स्टाइल हटाएँ",
18263
- convert_pasted_to_markdown: "पेस्ट किए गए टेक्स्ट को markdown में बदलें",
18264
- convert_pasted_description: "रिच टेक्स्ट (Google Docs, Word, आदि से) को साफ़ markdown प्रारूप में बदलें",
18265
- markdown_url_note: "Markdown का उपयोग करते समय, अपलोड की गई फ़ाइलों का URL हमेशा टेक्स्ट मान में सहेजा जाता है (पथ नहीं)।",
18266
- hide_from_collection: "संग्रह से छिपाएँ",
18267
- hide_from_collection_tooltip: "इस फ़ील्ड को संग्रह दृश्य से छिपाएँ। यह फ़ॉर्म दृश्य में अभी भी दिखाई देगा",
18268
- read_only: "केवल पढ़ने के लिए",
18269
- read_only_tooltip: "क्या यह फ़ील्ड केवल पढ़ने के लिए है। केवल पूर्वावलोकन के रूप में प्रदर्शित करें",
18270
- nullable: "Nullable",
18271
- nullable_tooltip: "इस फ़ील्ड को स्पष्ट रूप से null पर सेट करने की अनुमति दें। उपयोगकर्ता को एक क्लियर बटन दिखाया जाएगा",
18272
- tab_general: "सामान्य",
18273
- tab_display: "प्रदर्शन",
18274
- tab_properties: "प्रॉपर्टीज़",
18275
- tab_extend: "विस्तार",
18276
- unsaved_changes_in_collection: "इस संग्रह में असहेजे परिवर्तन हैं",
18277
- error_persisting_collection: "संग्रह सहेजने में त्रुटि: {{error}}",
18278
- details_in_console: "कंसोल में विवरण",
18279
- error_inferring_collection: "संग्रह अनुमान में त्रुटि: {{error}}",
18280
- collection_deleted: "संग्रह हटाया गया",
18281
- data_imported_successfully_msg: "डेटा सफलतापूर्वक आयातित",
18282
- must_specify_path: "आपको इस संग्रह के लिए डेटाबेस में एक पथ निर्दिष्ट करना होगा",
18283
- collection_path_already_exists: "निर्दिष्ट पथ के साथ पहले से ही एक संग्रह है। यदि आप एक ही डेटाबेस पथ के साथ कई संग्रह चाहते हैं, तो सुनिश्चित करें कि उनकी अलग-अलग ID हों",
18284
- collection_path_odd_segments: "संग्रह पथों में विषम संख्या में खंड होने चाहिए: {{path}}",
18285
- collection_uses_path_as_id: "पहले से ही एक संग्रह है जो इस मान को पथ के रूप में उपयोग करता है",
18286
- collection_uses_this_id: "पहले से ही एक संग्रह है जो इस ID का उपयोग करता है",
18287
- delete_stored_config: "सहेजा गया कॉन्फ़िगरेशन हटाएँ?",
18288
- delete_stored_config_body: "यह कोई डेटा नहीं हटाएगा, केवल सहेजा गया कॉन्फ़िगरेशन, और कोड स्थिति में रीसेट करेगा।",
18289
- order_label: "क्रम",
18290
- // Collection Properties Editor
18291
- select_property_to_edit: "संपादित करने के लिए एक प्रॉपर्टी चुनें",
18292
- add_first_property: "अब आप अपनी पहली प्रॉपर्टी जोड़ सकते हैं",
18293
- add_new_property: "नई प्रॉपर्टी जोड़ें",
18294
- no_permission_add_properties: "आपको नई प्रॉपर्टीज़ जोड़ने की अनुमति नहीं है",
18295
- get_code_for_collection: "इस संग्रह का कोड प्राप्त करें",
18296
- add_properties_from_data: "डेटा के आधार पर नई प्रॉपर्टीज़ जोड़ें",
18297
- collection_name_placeholder: "संग्रह का नाम",
18298
- created_by: "{{name}} द्वारा बनाया गया",
18299
- property_defined_as_builder: "यह प्रॉपर्टी कोड में property builder के रूप में परिभाषित है",
18300
- // Extend Settings
18301
- extend_title: "विस्तार",
18302
- extend_description: "इस संग्रह में उप-संग्रह, कस्टम दृश्य और इकाई क्रियाएँ जोड़ें।",
18303
- collection_defined_in_code: "यह संग्रह कोड में परिभाषित है। इस संपादक में किए गए परिवर्तन कोड में परिभाषित प्रॉपर्टीज़ को ओवरराइड करेंगे। आप ओवरराइड किए गए मानों को हटाकर कोड में परिभाषित स्थिति पर वापस जा सकते हैं।",
18304
- reset_to_code: "कोड पर रीसेट करें",
18305
- widget_group_text: "टेक्स्ट",
18306
- widget_group_boolean: "बूलियन",
18307
- widget_group_users: "उपयोगकर्ता",
18308
- widget_group_select: "चयन",
18309
- widget_group_number: "संख्या",
18310
- widget_group_file: "फ़ाइल",
18311
- widget_group_reference: "संदर्भ",
18312
- widget_group_date: "दिनांक",
18313
- widget_group_group: "समूह",
18314
- widget_group_array: "सूची"
18315
- };
18316
- const collectionEditorTranslationsPt = {
18317
- file_upload_config: "Configuração de upload de arquivo",
18318
- file_type_images: "Imagens",
18319
- file_type_videos: "Vídeos",
18320
- file_type_audio: "Arquivos de áudio",
18321
- file_type_applications: "Arquivos (pdf, zip, csv, excel...)",
18322
- file_type_text: "Arquivos de texto",
18323
- only: "Apenas",
18324
- all_file_types_allowed: "Todos os tipos de arquivo permitidos",
18325
- allowed_file_types: "Tipos de arquivo permitidos",
18326
- file_name_label: "Nome do arquivo",
18327
- storage_path_label: "Caminho de armazenamento",
18328
- storage_placeholders_description: "Você pode usar os seguintes marcadores nos valores do nome do arquivo e do caminho de armazenamento:",
18329
- storage_placeholder_file: "{file} - Nome completo do arquivo enviado",
18330
- storage_placeholder_file_name: "{file.name} - Nome do arquivo enviado sem extensão",
18331
- storage_placeholder_file_ext: "{file.ext} - Extensão do arquivo enviado",
18332
- storage_placeholder_entity_id: "{entityId} - ID da entidade",
18333
- storage_placeholder_property_key: "{propertyKey} - ID deste campo",
18334
- storage_placeholder_path: "{path} - Caminho desta entidade",
18335
- storage_placeholder_rand: "{rand} - Valor aleatório para evitar colisões de nomes",
18336
- include_bucket_url: "Incluir URL do bucket (gs://...) no valor salvo",
18337
- include_bucket_url_description: "Ative esta configuração se deseja salvar uma URL de armazenamento completa (ex. gs://meu-bucket/caminho/para/arquivo) em vez de apenas o caminho de armazenamento. Você só pode alterar esta configuração na criação.",
18338
- save_url_instead_of_path: "Salvar URL em vez do caminho de armazenamento",
18339
- save_url_description: "Ative esta configuração se preferir salvar a URL de download do arquivo enviado em vez do caminho de armazenamento. Você só pode alterar esta configuração na criação.",
18340
- max_size_bytes: "Tamanho máximo (em bytes)",
18341
- image_resize_configuration: "Configuração de redimensionamento de imagem",
18342
- image_resize_description: "Redimensionar e otimizar imagens automaticamente antes do upload (apenas JPEG, PNG, WebP)",
18343
- max_width_px: "Largura máx (px)",
18344
- max_height_px: "Altura máx (px)",
18345
- resize_mode: "Modo de redimensionamento",
18346
- resize_contain: "Conter",
18347
- resize_contain_description: "Conter (ajustar dentro dos limites)",
18348
- resize_cover: "Cobrir",
18349
- resize_cover_description: "Cobrir (preencher limites, pode cortar)",
18350
- output_format: "Formato de saída",
18351
- format_original: "Original",
18352
- format_original_description: "Original (manter mesmo formato)",
18353
- format_webp_description: "WebP (melhor compressão)",
18354
- quality_label: "Qualidade (0–100)",
18355
- quality_hint: "Maior qualidade = arquivo maior. Recomendado: 80–90 para fotos, 90–100 para gráficos",
18356
- preview_type: "Tipo de pré-visualização",
18357
- preview_image: "Imagem",
18358
- preview_video: "Vídeo",
18359
- preview_audio: "Áudio",
18360
- display_url: "Exibir URL",
18361
- default_value_not_set: "Valor padrão não definido",
18362
- default_value_is: "O valor padrão é {{value}}",
18363
- default_value_was_cleared: "O valor padrão foi removido",
18364
- enum_missing_values: "Esta propriedade enum está com valores faltando",
18365
- mode_label: "Modo",
18366
- date_time_mode: "Data/Hora",
18367
- date_mode: "Data",
18368
- automatic_value: "Valor automático",
18369
- auto_on_create: "Na criação",
18370
- auto_on_update: "Em qualquer atualização",
18371
- auto_none: "Nenhum",
18372
- auto_value_description: "Atualizar este campo automaticamente ao criar ou atualizar a entidade",
18373
- timezone_label: "Fuso horário",
18374
- local_timezone: "Fuso horário local",
18375
- timezone_description: "Fuso horário para exibir e inserir datas. Os valores são sempre armazenados em UTC.",
18376
- target_collection: "Coleção alvo",
18377
- views_group: "Visualizações",
18378
- add_property_to: "Adicionar propriedade a {{name}}",
18379
- add_first_property_to_group: "Adicione a primeira propriedade a este grupo",
18380
- spread_children_as_columns: "Expandir filhos como colunas",
18381
- spread_children_description: "Ative esta opção se deseja exibir os filhos deste grupo como colunas individuais. Isso só funciona para grupos de nível superior.",
18382
- paste_behavior: "Comportamento ao colar",
18383
- strip_html_on_paste: "Remover HTML ao colar",
18384
- strip_html_description: "Remover tags HTML e estilos inline ao colar conteúdo de fontes externas",
18385
- convert_pasted_to_markdown: "Converter texto colado em markdown",
18386
- convert_pasted_description: "Converter texto rico (do Google Docs, Word, etc.) em formato markdown limpo",
18387
- markdown_url_note: "Ao usar Markdown, as URLs dos arquivos enviados são sempre salvas no valor de texto (não o caminho).",
18388
- hide_from_collection: "Ocultar da coleção",
18389
- hide_from_collection_tooltip: "Ocultar este campo da visualização da coleção. Ele ainda estará visível na visualização do formulário",
18390
- read_only: "Somente leitura",
18391
- read_only_tooltip: "Este é um campo somente leitura. Exibir apenas como pré-visualização",
18392
- nullable: "Nullable",
18393
- nullable_tooltip: "Permitir que este campo seja explicitamente definido como null. Um botão de limpar será exibido ao usuário",
18394
- tab_general: "Geral",
18395
- tab_display: "Exibição",
18396
- tab_properties: "Propriedades",
18397
- tab_extend: "Estender",
18398
- unsaved_changes_in_collection: "Existem alterações não salvas nesta coleção",
18399
- error_persisting_collection: "Erro ao salvar a coleção: {{error}}",
18400
- details_in_console: "Detalhes no console",
18401
- error_inferring_collection: "Erro ao inferir a coleção: {{error}}",
18402
- collection_deleted: "Coleção excluída",
18403
- data_imported_successfully_msg: "Dados importados com sucesso",
18404
- must_specify_path: "Você deve especificar um caminho no banco de dados para esta coleção",
18405
- collection_path_already_exists: "Já existe uma coleção com o caminho especificado. Se deseja ter múltiplas coleções com o mesmo caminho de banco de dados, certifique-se de que tenham IDs diferentes",
18406
- collection_path_odd_segments: "Os caminhos de coleção devem ter um número ímpar de segmentos: {{path}}",
18407
- collection_uses_path_as_id: "Já existe uma coleção que usa este valor como caminho",
18408
- collection_uses_this_id: "Já existe uma coleção que usa este ID",
18409
- delete_stored_config: "Excluir a configuração salva?",
18410
- delete_stored_config_body: "Isso não excluirá nenhum dado, apenas a configuração salva, e restaurará ao estado do código.",
18411
- order_label: "Ordem",
18412
- // Collection Properties Editor
18413
- select_property_to_edit: "Selecione uma propriedade para editá-la",
18414
- add_first_property: "Agora você pode adicionar sua primeira propriedade",
18415
- add_new_property: "Adicionar nova propriedade",
18416
- no_permission_add_properties: "Você não tem permissão para adicionar novas propriedades",
18417
- get_code_for_collection: "Obter o código desta coleção",
18418
- add_properties_from_data: "Adicionar novas propriedades com base nos dados",
18419
- collection_name_placeholder: "Nome da coleção",
18420
- created_by: "Criado por {{name}}",
18421
- property_defined_as_builder: "Esta propriedade está definida como um property builder no código",
18422
- // Extend Settings
18423
- extend_title: "Estender",
18424
- extend_description: "Adicione subcoleções, visualizações personalizadas e ações de entidade a esta coleção.",
18425
- collection_defined_in_code: "Esta coleção está definida no código. As alterações feitas neste editor substituirão as propriedades definidas no código. Você pode excluir os valores substituídos para voltar ao estado definido no código.",
18426
- reset_to_code: "Restaurar ao código",
18427
- widget_group_text: "Texto",
18428
- widget_group_boolean: "Booleano",
18429
- widget_group_users: "Usuários",
18430
- widget_group_select: "Seleção",
18431
- widget_group_number: "Número",
18432
- widget_group_file: "Arquivo",
18433
- widget_group_reference: "Referência",
18434
- widget_group_date: "Data",
18435
- widget_group_group: "Grupo",
18436
- widget_group_array: "Lista"
18437
- };
18438
- function useCollectionEditorPlugin(t0) {
18439
- const $ = reactCompilerRuntime.c(28);
18440
- const {
18441
- collectionConfigController,
18442
- configPermissions,
18443
- reservedGroups,
18444
- extraView,
18445
- getUser,
18446
- collectionInference,
18447
- getData,
18448
- onAnalyticsEvent,
18449
- includeIntroView: t1,
18450
- pathSuggestions,
18451
- generateCollection
18452
- } = t0;
18453
- const includeIntroView = t1 === void 0 ? true : t1;
18454
- let t2;
18455
- if ($[0] !== collectionConfigController || $[1] !== collectionInference || $[2] !== configPermissions || $[3] !== extraView || $[4] !== generateCollection || $[5] !== getData || $[6] !== getUser || $[7] !== onAnalyticsEvent || $[8] !== pathSuggestions || $[9] !== reservedGroups) {
18456
- t2 = {
18457
- Component: ConfigControllerProvider,
18458
- props: {
18459
- collectionConfigController,
18460
- configPermissions,
18461
- collectionInference,
18462
- reservedGroups,
18463
- extraView,
18464
- getUser,
18465
- getData,
18466
- onAnalyticsEvent,
18467
- pathSuggestions,
18468
- generateCollection
18469
- }
18470
- };
18471
- $[0] = collectionConfigController;
18472
- $[1] = collectionInference;
18473
- $[2] = configPermissions;
18474
- $[3] = extraView;
18475
- $[4] = generateCollection;
18476
- $[5] = getData;
18477
- $[6] = getUser;
18478
- $[7] = onAnalyticsEvent;
18479
- $[8] = pathSuggestions;
18480
- $[9] = reservedGroups;
18481
- $[10] = t2;
18482
- } else {
18483
- t2 = $[10];
18484
- }
18485
- let t3;
18486
- if ($[11] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
18487
- t3 = /* @__PURE__ */ jsxRuntime.jsx(NewCollectionButton, {});
18488
- $[11] = t3;
18489
- } else {
18490
- t3 = $[11];
18491
- }
18492
- let t4;
18493
- if ($[12] !== includeIntroView) {
18494
- t4 = includeIntroView ? /* @__PURE__ */ jsxRuntime.jsx(IntroWidget, {}) : void 0;
18495
- $[12] = includeIntroView;
18496
- $[13] = t4;
18497
- } else {
18498
- t4 = $[13];
18499
- }
18500
- let t5;
18501
- if ($[14] !== collectionConfigController.navigationEntries || $[15] !== collectionConfigController.saveNavigationEntries || $[16] !== t4) {
18502
- t5 = {
18503
- additionalActions: t3,
18504
- additionalChildrenStart: t4,
18505
- CollectionActions: HomePageEditorCollectionAction,
18506
- AdditionalCards: NewCollectionCard,
18507
- allowDragAndDrop: true,
18508
- navigationEntries: collectionConfigController.navigationEntries,
18509
- onNavigationEntriesUpdate: collectionConfigController.saveNavigationEntries
18510
- };
18511
- $[14] = collectionConfigController.navigationEntries;
18512
- $[15] = collectionConfigController.saveNavigationEntries;
18513
- $[16] = t4;
18514
- $[17] = t5;
18515
- } else {
18516
- t5 = $[17];
18517
- }
18518
- let t6;
18519
- if ($[18] !== collectionConfigController.updateKanbanColumnsOrder || $[19] !== collectionConfigController.updatePropertiesOrder) {
18520
- t6 = {
18521
- CollectionActionsStart: EditorCollectionActionStart,
18522
- CollectionActions: EditorCollectionAction,
18523
- HeaderAction: CollectionViewHeaderAction,
18524
- AddColumnComponent: PropertyAddColumnComponent,
18525
- onColumnsReorder: collectionConfigController.updatePropertiesOrder,
18526
- onKanbanColumnsReorder: collectionConfigController.updateKanbanColumnsOrder,
18527
- KanbanSetupComponent: KanbanSetupAction,
18528
- AddKanbanColumnComponent: AddKanbanColumnAction
18529
- };
18530
- $[18] = collectionConfigController.updateKanbanColumnsOrder;
18531
- $[19] = collectionConfigController.updatePropertiesOrder;
18532
- $[20] = t6;
18533
- } else {
18534
- t6 = $[20];
18535
- }
18536
- let t7;
18537
- let t8;
18538
- if ($[21] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
18539
- t7 = {
18540
- ActionsTop: EditorEntityAction
18541
- };
18542
- t8 = {
18543
- en: collectionEditorTranslationsEn,
18544
- es: collectionEditorTranslationsEs,
18545
- de: collectionEditorTranslationsDe,
18546
- fr: collectionEditorTranslationsFr,
18547
- it: collectionEditorTranslationsIt,
18548
- hi: collectionEditorTranslationsHi,
18549
- pt: collectionEditorTranslationsPt
18550
- };
18551
- $[21] = t7;
18552
- $[22] = t8;
18553
- } else {
18554
- t7 = $[21];
18555
- t8 = $[22];
18556
- }
18557
- let t9;
18558
- if ($[23] !== collectionConfigController.loading || $[24] !== t2 || $[25] !== t5 || $[26] !== t6) {
18559
- t9 = {
18560
- key: "collection_editor",
18561
- loading: collectionConfigController.loading,
18562
- provider: t2,
18563
- homePage: t5,
18564
- collectionView: t6,
18565
- form: t7,
18566
- i18n: t8
18567
- };
18568
- $[23] = collectionConfigController.loading;
18569
- $[24] = t2;
18570
- $[25] = t5;
18571
- $[26] = t6;
18572
- $[27] = t9;
18573
- } else {
18574
- t9 = $[27];
18575
- }
18576
- return t9;
18577
- }
18578
- function IntroWidget() {
18579
- const $ = reactCompilerRuntime.c(24);
18580
- const navigation = core.useNavigationController();
18581
- if (!navigation.topLevelNavigation) {
18582
- throw Error("Navigation not ready in FireCMSHomePage");
18583
- }
18584
- const authController = core.useAuthController();
18585
- const {
18586
- t
18587
- } = core.useTranslation();
18588
- const collectionEditorController = useCollectionEditorController();
18589
- let t0;
18590
- if ($[0] !== authController || $[1] !== collectionEditorController) {
18591
- t0 = collectionEditorController.configPermissions ? collectionEditorController.configPermissions({
18592
- user: authController.user
18593
- }).createCollections : true;
18594
- $[0] = authController;
18595
- $[1] = collectionEditorController;
18596
- $[2] = t0;
18597
- } else {
18598
- t0 = $[2];
18599
- }
18600
- const canCreateCollections = t0;
18601
- if (!navigation.initialised || (navigation.collections ?? []).length > 0) {
18602
- return null;
18603
- }
18604
- let t1;
18605
- if ($[3] !== t) {
18606
- t1 = t("no_collections_found");
18607
- $[3] = t;
18608
- $[4] = t1;
18609
- } else {
18610
- t1 = $[4];
18611
- }
18612
- let t2;
18613
- if ($[5] !== t1) {
18614
- t2 = /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "subtitle2", className: "uppercase", children: t1 });
18615
- $[5] = t1;
18616
- $[6] = t2;
18617
- } else {
18618
- t2 = $[6];
18619
- }
18620
- let t3;
18621
- if ($[7] !== t) {
18622
- t3 = t("start_building_collections");
18623
- $[7] = t;
18624
- $[8] = t3;
18625
- } else {
18626
- t3 = $[8];
18627
- }
18628
- let t4;
18629
- if ($[9] !== t3) {
18630
- t4 = /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { children: t3 });
18631
- $[9] = t3;
18632
- $[10] = t4;
18633
- } else {
18634
- t4 = $[10];
18635
- }
18636
- let t5;
18637
- if ($[11] !== canCreateCollections || $[12] !== collectionEditorController || $[13] !== t) {
18638
- t5 = canCreateCollections && /* @__PURE__ */ jsxRuntime.jsxs(ui.Button, { onClick: collectionEditorController && canCreateCollections ? () => collectionEditorController.createCollection({
18639
- parentCollectionIds: [],
18640
- redirect: true,
18641
- sourceClick: "new_collection_card"
18642
- }) : void 0, children: [
18643
- /* @__PURE__ */ jsxRuntime.jsx(ui.AddIcon, {}),
18644
- t("create_first_collection")
18645
- ] });
18646
- $[11] = canCreateCollections;
18647
- $[12] = collectionEditorController;
18648
- $[13] = t;
18649
- $[14] = t5;
18650
- } else {
18651
- t5 = $[14];
18652
- }
18653
- let t6;
18654
- if ($[15] !== t) {
18655
- t6 = t("define_collections_programmatically");
18656
- $[15] = t;
18657
- $[16] = t6;
18658
- } else {
18659
- t6 = $[16];
18660
- }
18661
- let t7;
18662
- if ($[17] !== t6) {
18663
- t7 = /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { color: "secondary", children: t6 });
18664
- $[17] = t6;
18665
- $[18] = t7;
18666
- } else {
18667
- t7 = $[18];
18668
- }
18669
- let t8;
18670
- if ($[19] !== t2 || $[20] !== t4 || $[21] !== t5 || $[22] !== t7) {
18671
- t8 = /* @__PURE__ */ jsxRuntime.jsxs(ui.Paper, { className: "my-4 px-4 py-6 flex flex-col bg-white dark:bg-surface-accent-800 gap-2", children: [
18672
- t2,
18673
- t4,
18674
- t5,
18675
- t7
18676
- ] });
18677
- $[19] = t2;
18678
- $[20] = t4;
18679
- $[21] = t5;
18680
- $[22] = t7;
18681
- $[23] = t8;
18682
- } else {
18683
- t8 = $[23];
18684
- }
18685
- return t8;
18686
- }
18687
- const mergeCollections = (baseCollections, backendCollections = [], modifyCollection) => {
18688
- const markAsEditable = (c) => {
18689
- core.makePropertiesEditable(c.properties);
18690
- c.subcollections?.forEach(markAsEditable);
18691
- };
18692
- backendCollections.forEach(markAsEditable);
18693
- const result = core.joinCollectionLists(baseCollections, backendCollections, [], modifyCollection);
18694
- result.sort((a, b) => {
18695
- const indexA = baseCollections.findIndex((c) => c.id === a.id);
18696
- const indexB = baseCollections.findIndex((c) => c.id === b.id);
18697
- if (indexA === -1 && indexB === -1) {
18698
- return 0;
18699
- }
18700
- if (indexA === -1) {
18701
- return 1;
18702
- }
18703
- if (indexB === -1) {
18704
- return -1;
18705
- }
18706
- return indexA - indexB;
18707
- });
18708
- return result;
18582
+ date_time_mode: "दिनांक/समय",
18583
+ date_mode: "दिनांक",
18584
+ automatic_value: "स्वचालित मान",
18585
+ auto_on_create: "निर्माण पर",
18586
+ auto_on_update: "किसी भी अपडेट पर",
18587
+ auto_none: "कोई नहीं",
18588
+ auto_value_description: "इकाई बनाते या अपडेट करते समय इस फ़ील्ड को स्वचालित रूप से अपडेट करें",
18589
+ timezone_label: "समय क्षेत्र",
18590
+ local_timezone: "स्थानीय समय क्षेत्र",
18591
+ timezone_description: "तारीखों को प्रदर्शित और इनपुट करने के लिए समय क्षेत्र। मान हमेशा UTC में संग्रहीत होते हैं।",
18592
+ target_collection: "लक्ष्य संग्रह",
18593
+ views_group: "दृश्य",
18594
+ add_property_to: "{{name}} में प्रॉपर्टी जोड़ें",
18595
+ add_first_property_to_group: "इस समूह में पहली प्रॉपर्टी जोड़ें",
18596
+ spread_children_as_columns: "बच्चों को कॉलम के रूप में फैलाएँ",
18597
+ spread_children_description: "यदि आप इस समूह के बच्चों को व्यक्तिगत कॉलम के रूप में प्रदर्शित करना चाहते हैं तो इसे चालू करें। यह केवल शीर्ष स्तर के समूहों के लिए काम करता है।",
18598
+ paste_behavior: "पेस्ट व्यवहार",
18599
+ strip_html_on_paste: "पेस्ट करते समय HTML हटाएँ",
18600
+ strip_html_description: "बाहरी स्रोतों से सामग्री पेस्ट करते समय HTML टैग और इनलाइन स्टाइल हटाएँ",
18601
+ convert_pasted_to_markdown: "पेस्ट किए गए टेक्स्ट को markdown में बदलें",
18602
+ convert_pasted_description: "रिच टेक्स्ट (Google Docs, Word, आदि से) को साफ़ markdown प्रारूप में बदलें",
18603
+ markdown_url_note: "Markdown का उपयोग करते समय, अपलोड की गई फ़ाइलों का URL हमेशा टेक्स्ट मान में सहेजा जाता है (पथ नहीं)।",
18604
+ hide_from_collection: "संग्रह से छिपाएँ",
18605
+ hide_from_collection_tooltip: "इस फ़ील्ड को संग्रह दृश्य से छिपाएँ। यह फ़ॉर्म दृश्य में अभी भी दिखाई देगा",
18606
+ read_only: "केवल पढ़ने के लिए",
18607
+ read_only_tooltip: "क्या यह फ़ील्ड केवल पढ़ने के लिए है। केवल पूर्वावलोकन के रूप में प्रदर्शित करें",
18608
+ nullable: "Nullable",
18609
+ nullable_tooltip: "इस फ़ील्ड को स्पष्ट रूप से null पर सेट करने की अनुमति दें। उपयोगकर्ता को एक क्लियर बटन दिखाया जाएगा",
18610
+ tab_general: "सामान्य",
18611
+ tab_display: "प्रदर्शन",
18612
+ tab_properties: "प्रॉपर्टीज़",
18613
+ tab_extend: "विस्तार",
18614
+ unsaved_changes_in_collection: "इस संग्रह में असहेजे परिवर्तन हैं",
18615
+ error_persisting_collection: "संग्रह सहेजने में त्रुटि: {{error}}",
18616
+ details_in_console: "कंसोल में विवरण",
18617
+ error_inferring_collection: "संग्रह अनुमान में त्रुटि: {{error}}",
18618
+ collection_deleted: "संग्रह हटाया गया",
18619
+ data_imported_successfully_msg: "डेटा सफलतापूर्वक आयातित",
18620
+ must_specify_path: "आपको इस संग्रह के लिए डेटाबेस में एक पथ निर्दिष्ट करना होगा",
18621
+ collection_path_already_exists: "निर्दिष्ट पथ के साथ पहले से ही एक संग्रह है। यदि आप एक ही डेटाबेस पथ के साथ कई संग्रह चाहते हैं, तो सुनिश्चित करें कि उनकी अलग-अलग ID हों",
18622
+ collection_path_odd_segments: "संग्रह पथों में विषम संख्या में खंड होने चाहिए: {{path}}",
18623
+ collection_uses_path_as_id: "पहले से ही एक संग्रह है जो इस मान को पथ के रूप में उपयोग करता है",
18624
+ collection_uses_this_id: "पहले से ही एक संग्रह है जो इस ID का उपयोग करता है",
18625
+ delete_stored_config: "सहेजा गया कॉन्फ़िगरेशन हटाएँ?",
18626
+ delete_stored_config_body: "यह कोई डेटा नहीं हटाएगा, केवल सहेजा गया कॉन्फ़िगरेशन, और कोड स्थिति में रीसेट करेगा।",
18627
+ order_label: "क्रम",
18628
+ // Collection Properties Editor
18629
+ select_property_to_edit: "संपादित करने के लिए एक प्रॉपर्टी चुनें",
18630
+ add_first_property: "अब आप अपनी पहली प्रॉपर्टी जोड़ सकते हैं",
18631
+ add_new_property: "नई प्रॉपर्टी जोड़ें",
18632
+ no_permission_add_properties: "आपको नई प्रॉपर्टीज़ जोड़ने की अनुमति नहीं है",
18633
+ get_code_for_collection: "इस संग्रह का कोड प्राप्त करें",
18634
+ add_properties_from_data: "डेटा के आधार पर नई प्रॉपर्टीज़ जोड़ें",
18635
+ collection_name_placeholder: "संग्रह का नाम",
18636
+ created_by: "{{name}} द्वारा बनाया गया",
18637
+ property_defined_as_builder: "यह प्रॉपर्टी कोड में property builder के रूप में परिभाषित है",
18638
+ // Extend Settings
18639
+ extend_title: "विस्तार",
18640
+ extend_description: "इस संग्रह में उप-संग्रह, कस्टम दृश्य और इकाई क्रियाएँ जोड़ें।",
18641
+ collection_defined_in_code: "यह संग्रह कोड में परिभाषित है। इस संपादक में किए गए परिवर्तन कोड में परिभाषित प्रॉपर्टीज़ को ओवरराइड करेंगे। आप ओवरराइड किए गए मानों को हटाकर कोड में परिभाषित स्थिति पर वापस जा सकते हैं।",
18642
+ reset_to_code: "कोड पर रीसेट करें",
18643
+ widget_group_text: "टेक्स्ट",
18644
+ widget_group_boolean: "बूलियन",
18645
+ widget_group_users: "उपयोगकर्ता",
18646
+ widget_group_select: "चयन",
18647
+ widget_group_number: "संख्या",
18648
+ widget_group_file: "फ़ाइल",
18649
+ widget_group_reference: "संदर्भ",
18650
+ widget_group_date: "दिनांक",
18651
+ widget_group_group: "समूह",
18652
+ widget_group_array: "सूची"
18709
18653
  };
18710
- function MissingReferenceWidget(t0) {
18711
- const $ = reactCompilerRuntime.c(12);
18712
- const {
18713
- path: pathProp
18714
- } = t0;
18715
- const navigation = core.useNavigationController();
18716
- const path = getLastSegment(pathProp);
18717
- let t1;
18718
- if ($[0] !== navigation || $[1] !== pathProp) {
18719
- t1 = navigation.getParentCollectionIds(pathProp);
18720
- $[0] = navigation;
18721
- $[1] = pathProp;
18722
- $[2] = t1;
18723
- } else {
18724
- t1 = $[2];
18725
- }
18726
- const parentCollectionIds = t1;
18727
- const collectionEditor = useCollectionEditorController();
18728
- const t2 = "No collection for path: " + path;
18729
- let t3;
18730
- if ($[3] !== t2) {
18731
- t3 = /* @__PURE__ */ jsxRuntime.jsx(core.ErrorView, { error: t2 });
18732
- $[3] = t2;
18733
- $[4] = t3;
18734
- } else {
18735
- t3 = $[4];
18736
- }
18737
- let t4;
18738
- if ($[5] !== collectionEditor || $[6] !== parentCollectionIds || $[7] !== path) {
18739
- t4 = /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { className: "mx-2", size: "small", onClick: () => {
18740
- collectionEditor.createCollection({
18741
- initialValues: {
18742
- path,
18743
- name: core.prettifyIdentifier(path)
18744
- },
18745
- parentCollectionIds,
18746
- redirect: false,
18747
- sourceClick: "missing_reference"
18748
- });
18749
- }, children: "Create" });
18750
- $[5] = collectionEditor;
18751
- $[6] = parentCollectionIds;
18752
- $[7] = path;
18753
- $[8] = t4;
18754
- } else {
18755
- t4 = $[8];
18756
- }
18757
- let t5;
18758
- if ($[9] !== t3 || $[10] !== t4) {
18759
- t5 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-1 flex flex-col items-center", children: [
18760
- t3,
18761
- t4
18762
- ] });
18763
- $[9] = t3;
18764
- $[10] = t4;
18765
- $[11] = t5;
18766
- } else {
18767
- t5 = $[11];
18768
- }
18769
- return t5;
18770
- }
18771
- function getLastSegment(path) {
18772
- const segments = path.split("/");
18773
- return segments[segments.length - 1];
18774
- }
18654
+ const hi = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
18655
+ __proto__: null,
18656
+ collectionEditorTranslationsHi
18657
+ }, Symbol.toStringTag, { value: "Module" }));
18658
+ const collectionEditorTranslationsPt = {
18659
+ file_upload_config: "Configuração de upload de arquivo",
18660
+ file_type_images: "Imagens",
18661
+ file_type_videos: "Vídeos",
18662
+ file_type_audio: "Arquivos de áudio",
18663
+ file_type_applications: "Arquivos (pdf, zip, csv, excel...)",
18664
+ file_type_text: "Arquivos de texto",
18665
+ only: "Apenas",
18666
+ all_file_types_allowed: "Todos os tipos de arquivo permitidos",
18667
+ allowed_file_types: "Tipos de arquivo permitidos",
18668
+ file_name_label: "Nome do arquivo",
18669
+ storage_path_label: "Caminho de armazenamento",
18670
+ storage_placeholders_description: "Você pode usar os seguintes marcadores nos valores do nome do arquivo e do caminho de armazenamento:",
18671
+ storage_placeholder_file: "{file} - Nome completo do arquivo enviado",
18672
+ storage_placeholder_file_name: "{file.name} - Nome do arquivo enviado sem extensão",
18673
+ storage_placeholder_file_ext: "{file.ext} - Extensão do arquivo enviado",
18674
+ storage_placeholder_entity_id: "{entityId} - ID da entidade",
18675
+ storage_placeholder_property_key: "{propertyKey} - ID deste campo",
18676
+ storage_placeholder_path: "{path} - Caminho desta entidade",
18677
+ storage_placeholder_rand: "{rand} - Valor aleatório para evitar colisões de nomes",
18678
+ include_bucket_url: "Incluir URL do bucket (gs://...) no valor salvo",
18679
+ include_bucket_url_description: "Ative esta configuração se deseja salvar uma URL de armazenamento completa (ex. gs://meu-bucket/caminho/para/arquivo) em vez de apenas o caminho de armazenamento. Alterá-la afeta apenas os novos envios: os valores já salvos mantêm o formato atual.",
18680
+ save_url_instead_of_path: "Salvar URL em vez do caminho de armazenamento",
18681
+ save_url_description: "Ative esta configuração se preferir salvar a URL de download do arquivo enviado em vez do caminho de armazenamento. Alterá-la afeta apenas os novos envios: os valores já salvos mantêm o formato atual.",
18682
+ max_size_bytes: "Tamanho máximo (em bytes)",
18683
+ image_resize_configuration: "Configuração de redimensionamento de imagem",
18684
+ image_resize_description: "Redimensionar e otimizar imagens automaticamente antes do upload (apenas JPEG, PNG, WebP)",
18685
+ max_width_px: "Largura máx (px)",
18686
+ max_height_px: "Altura máx (px)",
18687
+ resize_mode: "Modo de redimensionamento",
18688
+ resize_contain: "Conter",
18689
+ resize_contain_description: "Conter (ajustar dentro dos limites)",
18690
+ resize_cover: "Cobrir",
18691
+ resize_cover_description: "Cobrir (preencher limites, pode cortar)",
18692
+ output_format: "Formato de saída",
18693
+ format_original: "Original",
18694
+ format_original_description: "Original (manter mesmo formato)",
18695
+ format_webp_description: "WebP (melhor compressão)",
18696
+ quality_label: "Qualidade (0–100)",
18697
+ quality_hint: "Maior qualidade = arquivo maior. Recomendado: 80–90 para fotos, 90–100 para gráficos",
18698
+ preview_type: "Tipo de pré-visualização",
18699
+ preview_image: "Imagem",
18700
+ preview_video: "Vídeo",
18701
+ preview_audio: "Áudio",
18702
+ display_url: "Exibir URL",
18703
+ default_value_not_set: "Valor padrão não definido",
18704
+ default_value_is: "O valor padrão é {{value}}",
18705
+ default_value_was_cleared: "O valor padrão foi removido",
18706
+ enum_missing_values: "Esta propriedade enum está com valores faltando",
18707
+ mode_label: "Modo",
18708
+ date_time_mode: "Data/Hora",
18709
+ date_mode: "Data",
18710
+ automatic_value: "Valor automático",
18711
+ auto_on_create: "Na criação",
18712
+ auto_on_update: "Em qualquer atualização",
18713
+ auto_none: "Nenhum",
18714
+ auto_value_description: "Atualizar este campo automaticamente ao criar ou atualizar a entidade",
18715
+ timezone_label: "Fuso horário",
18716
+ local_timezone: "Fuso horário local",
18717
+ timezone_description: "Fuso horário para exibir e inserir datas. Os valores são sempre armazenados em UTC.",
18718
+ target_collection: "Coleção alvo",
18719
+ views_group: "Visualizações",
18720
+ add_property_to: "Adicionar propriedade a {{name}}",
18721
+ add_first_property_to_group: "Adicione a primeira propriedade a este grupo",
18722
+ spread_children_as_columns: "Expandir filhos como colunas",
18723
+ spread_children_description: "Ative esta opção se deseja exibir os filhos deste grupo como colunas individuais. Isso só funciona para grupos de nível superior.",
18724
+ paste_behavior: "Comportamento ao colar",
18725
+ strip_html_on_paste: "Remover HTML ao colar",
18726
+ strip_html_description: "Remover tags HTML e estilos inline ao colar conteúdo de fontes externas",
18727
+ convert_pasted_to_markdown: "Converter texto colado em markdown",
18728
+ convert_pasted_description: "Converter texto rico (do Google Docs, Word, etc.) em formato markdown limpo",
18729
+ markdown_url_note: "Ao usar Markdown, as URLs dos arquivos enviados são sempre salvas no valor de texto (não o caminho).",
18730
+ hide_from_collection: "Ocultar da coleção",
18731
+ hide_from_collection_tooltip: "Ocultar este campo da visualização da coleção. Ele ainda estará visível na visualização do formulário",
18732
+ read_only: "Somente leitura",
18733
+ read_only_tooltip: "Este é um campo somente leitura. Exibir apenas como pré-visualização",
18734
+ nullable: "Nullable",
18735
+ nullable_tooltip: "Permitir que este campo seja explicitamente definido como null. Um botão de limpar será exibido ao usuário",
18736
+ tab_general: "Geral",
18737
+ tab_display: "Exibição",
18738
+ tab_properties: "Propriedades",
18739
+ tab_extend: "Estender",
18740
+ unsaved_changes_in_collection: "Existem alterações não salvas nesta coleção",
18741
+ error_persisting_collection: "Erro ao salvar a coleção: {{error}}",
18742
+ details_in_console: "Detalhes no console",
18743
+ error_inferring_collection: "Erro ao inferir a coleção: {{error}}",
18744
+ collection_deleted: "Coleção excluída",
18745
+ data_imported_successfully_msg: "Dados importados com sucesso",
18746
+ must_specify_path: "Você deve especificar um caminho no banco de dados para esta coleção",
18747
+ collection_path_already_exists: "Já existe uma coleção com o caminho especificado. Se deseja ter múltiplas coleções com o mesmo caminho de banco de dados, certifique-se de que tenham IDs diferentes",
18748
+ collection_path_odd_segments: "Os caminhos de coleção devem ter um número ímpar de segmentos: {{path}}",
18749
+ collection_uses_path_as_id: "Já existe uma coleção que usa este valor como caminho",
18750
+ collection_uses_this_id: "Já existe uma coleção que usa este ID",
18751
+ delete_stored_config: "Excluir a configuração salva?",
18752
+ delete_stored_config_body: "Isso não excluirá nenhum dado, apenas a configuração salva, e restaurará ao estado do código.",
18753
+ order_label: "Ordem",
18754
+ // Collection Properties Editor
18755
+ select_property_to_edit: "Selecione uma propriedade para editá-la",
18756
+ add_first_property: "Agora você pode adicionar sua primeira propriedade",
18757
+ add_new_property: "Adicionar nova propriedade",
18758
+ no_permission_add_properties: "Você não tem permissão para adicionar novas propriedades",
18759
+ get_code_for_collection: "Obter o código desta coleção",
18760
+ add_properties_from_data: "Adicionar novas propriedades com base nos dados",
18761
+ collection_name_placeholder: "Nome da coleção",
18762
+ created_by: "Criado por {{name}}",
18763
+ property_defined_as_builder: "Esta propriedade está definida como um property builder no código",
18764
+ // Extend Settings
18765
+ extend_title: "Estender",
18766
+ extend_description: "Adicione subcoleções, visualizações personalizadas e ações de entidade a esta coleção.",
18767
+ collection_defined_in_code: "Esta coleção está definida no código. As alterações feitas neste editor substituirão as propriedades definidas no código. Você pode excluir os valores substituídos para voltar ao estado definido no código.",
18768
+ reset_to_code: "Restaurar ao código",
18769
+ widget_group_text: "Texto",
18770
+ widget_group_boolean: "Booleano",
18771
+ widget_group_users: "Usuários",
18772
+ widget_group_select: "Seleção",
18773
+ widget_group_number: "Número",
18774
+ widget_group_file: "Arquivo",
18775
+ widget_group_reference: "Referência",
18776
+ widget_group_date: "Data",
18777
+ widget_group_group: "Grupo",
18778
+ widget_group_array: "Lista"
18779
+ };
18780
+ const pt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
18781
+ __proto__: null,
18782
+ collectionEditorTranslationsPt
18783
+ }, Symbol.toStringTag, { value: "Module" }));
18775
18784
  exports2.CollectionGenerationApiError = CollectionGenerationApiError;
18776
18785
  exports2.DEFAULT_COLLECTION_GENERATION_ENDPOINT = DEFAULT_COLLECTION_GENERATION_ENDPOINT;
18777
18786
  exports2.MissingReferenceWidget = MissingReferenceWidget;