@geekron/strapi 0.2.1 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -47498,7 +47498,8 @@ function SortableTree({
47498
47498
  defaultItems = DEFAULT_ITEMS,
47499
47499
  indicator = false,
47500
47500
  indentationWidth = DEFAULT_INDENTATION_WIDTH,
47501
- removable
47501
+ removable,
47502
+ onChange
47502
47503
  }) {
47503
47504
  const {
47504
47505
  items,
@@ -47550,6 +47551,16 @@ function SortableTree({
47550
47551
  offset: offsetLeft
47551
47552
  };
47552
47553
  }, [flattenedItems, offsetLeft]);
47554
+ const isInitialMount = import_react8.useRef(true);
47555
+ import_react8.useEffect(() => {
47556
+ if (isInitialMount.current) {
47557
+ isInitialMount.current = false;
47558
+ return;
47559
+ }
47560
+ if (onChange) {
47561
+ onChange(items);
47562
+ }
47563
+ }, [items, onChange]);
47553
47564
  const announcements = useAnnouncements(items, indicator, indentationWidth);
47554
47565
  const handleDragEnd = ({ active, over }) => {
47555
47566
  handleDragCancel();
@@ -47642,6 +47653,9 @@ var DataNested = ({
47642
47653
  required
47643
47654
  }) => {
47644
47655
  const field = import_admin3.useField(name);
47656
+ const handleChange = (value) => {
47657
+ field.onChange(name, value);
47658
+ };
47645
47659
  return /* @__PURE__ */ jsx_dev_runtime23.jsxDEV(import_design_system5.Field.Root, {
47646
47660
  name,
47647
47661
  id: name,
@@ -47655,7 +47669,9 @@ var DataNested = ({
47655
47669
  /* @__PURE__ */ jsx_dev_runtime23.jsxDEV(SortableTree, {
47656
47670
  collapsible: true,
47657
47671
  indicator: true,
47658
- removable: true
47672
+ removable: true,
47673
+ defaultItems: field.value || [],
47674
+ onChange: handleChange
47659
47675
  }, undefined, false, undefined, this),
47660
47676
  /* @__PURE__ */ jsx_dev_runtime23.jsxDEV(import_design_system5.Field.Hint, {}, undefined, false, undefined, this),
47661
47677
  /* @__PURE__ */ jsx_dev_runtime23.jsxDEV(import_design_system5.Field.Error, {}, undefined, false, undefined, this)
@@ -47543,7 +47543,8 @@ function SortableTree({
47543
47543
  defaultItems = DEFAULT_ITEMS,
47544
47544
  indicator = false,
47545
47545
  indentationWidth = DEFAULT_INDENTATION_WIDTH,
47546
- removable
47546
+ removable,
47547
+ onChange
47547
47548
  }) {
47548
47549
  const {
47549
47550
  items,
@@ -47595,6 +47596,16 @@ function SortableTree({
47595
47596
  offset: offsetLeft
47596
47597
  };
47597
47598
  }, [flattenedItems, offsetLeft]);
47599
+ const isInitialMount = useRef2(true);
47600
+ useEffect2(() => {
47601
+ if (isInitialMount.current) {
47602
+ isInitialMount.current = false;
47603
+ return;
47604
+ }
47605
+ if (onChange) {
47606
+ onChange(items);
47607
+ }
47608
+ }, [items, onChange]);
47598
47609
  const announcements = useAnnouncements(items, indicator, indentationWidth);
47599
47610
  const handleDragEnd = ({ active, over }) => {
47600
47611
  handleDragCancel();
@@ -47687,6 +47698,9 @@ var DataNested = ({
47687
47698
  required
47688
47699
  }) => {
47689
47700
  const field = useField2(name);
47701
+ const handleChange = (value) => {
47702
+ field.onChange(name, value);
47703
+ };
47690
47704
  return /* @__PURE__ */ jsxDEV23(Field2.Root, {
47691
47705
  name,
47692
47706
  id: name,
@@ -47700,7 +47714,9 @@ var DataNested = ({
47700
47714
  /* @__PURE__ */ jsxDEV23(SortableTree, {
47701
47715
  collapsible: true,
47702
47716
  indicator: true,
47703
- removable: true
47717
+ removable: true,
47718
+ defaultItems: field.value || [],
47719
+ onChange: handleChange
47704
47720
  }, undefined, false, undefined, this),
47705
47721
  /* @__PURE__ */ jsxDEV23(Field2.Hint, {}, undefined, false, undefined, this),
47706
47722
  /* @__PURE__ */ jsxDEV23(Field2.Error, {}, undefined, false, undefined, this)
@@ -52,21 +52,6 @@ var schema_default = {
52
52
  }
53
53
  },
54
54
  attributes: {
55
- favicon: {
56
- type: "media",
57
- pluginOptions: {
58
- i18n: {
59
- localized: true
60
- }
61
- },
62
- multiple: false,
63
- required: false,
64
- allowedTypes: [
65
- "images",
66
- "files",
67
- "videos"
68
- ]
69
- },
70
55
  title: {
71
56
  type: "string",
72
57
  pluginOptions: {
@@ -150,6 +135,15 @@ var schema_default2 = {
150
135
  }
151
136
  },
152
137
  required: true
138
+ },
139
+ items: {
140
+ type: "customField",
141
+ pluginOptions: {
142
+ i18n: {
143
+ localized: true
144
+ }
145
+ },
146
+ customField: "plugin::website.dataNested"
153
147
  }
154
148
  }
155
149
  };
@@ -191,17 +185,8 @@ var schema_default3 = {
191
185
  }
192
186
  },
193
187
  attributes: {
194
- enabled: {
195
- type: "boolean",
196
- pluginOptions: {
197
- i18n: {
198
- localized: true
199
- }
200
- },
201
- required: true,
202
- default: true
203
- },
204
188
  title: {
189
+ required: true,
205
190
  type: "string",
206
191
  pluginOptions: {
207
192
  i18n: {
@@ -209,37 +194,32 @@ var schema_default3 = {
209
194
  }
210
195
  }
211
196
  },
212
- logo: {
213
- type: "media",
197
+ url: {
198
+ required: true,
199
+ type: "string",
214
200
  pluginOptions: {
215
201
  i18n: {
216
202
  localized: true
217
203
  }
218
- },
219
- multiple: false,
220
- allowedTypes: [
221
- "images"
222
- ]
204
+ }
223
205
  },
224
- icon: {
225
- type: "media",
206
+ enabled: {
207
+ type: "boolean",
226
208
  pluginOptions: {
227
209
  i18n: {
228
210
  localized: true
229
211
  }
230
212
  },
231
- multiple: false,
232
- allowedTypes: [
233
- "images"
234
- ]
213
+ default: true
235
214
  },
236
- url: {
237
- type: "string",
215
+ index: {
216
+ type: "boolean",
238
217
  pluginOptions: {
239
218
  i18n: {
240
219
  localized: true
241
220
  }
242
- }
221
+ },
222
+ default: false
243
223
  },
244
224
  robots: {
245
225
  type: "text",
@@ -265,22 +245,21 @@ var schema_default3 = {
265
245
  }
266
246
  }
267
247
  },
268
- inquiryEmail: {
269
- type: "email",
248
+ gtagId: {
249
+ type: "string",
270
250
  pluginOptions: {
271
251
  i18n: {
272
252
  localized: true
273
253
  }
274
254
  }
275
255
  },
276
- index: {
277
- type: "boolean",
256
+ inquiryEmail: {
257
+ type: "email",
278
258
  pluginOptions: {
279
259
  i18n: {
280
260
  localized: true
281
261
  }
282
- },
283
- default: false
262
+ }
284
263
  }
285
264
  }
286
265
  };
@@ -304,8 +283,85 @@ var site_default4 = {
304
283
  services: site_default3,
305
284
  routes: site_default2
306
285
  };
307
- // server/src/api/translation/content-types/translation/schema.json
286
+ // server/src/api/theme/content-types/theme/schema.json
308
287
  var schema_default4 = {
288
+ kind: "singleType",
289
+ collectionName: "themes",
290
+ info: {
291
+ singularName: "theme",
292
+ pluralName: "themes",
293
+ displayName: "Theme",
294
+ description: "Theme setting"
295
+ },
296
+ options: {
297
+ draftAndPublish: true
298
+ },
299
+ pluginOptions: {
300
+ i18n: {
301
+ localized: true
302
+ }
303
+ },
304
+ attributes: {
305
+ logo: {
306
+ type: "component",
307
+ pluginOptions: {
308
+ i18n: {
309
+ localized: true
310
+ }
311
+ },
312
+ component: "base.image",
313
+ repeatable: false
314
+ },
315
+ icon: {
316
+ type: "component",
317
+ pluginOptions: {
318
+ i18n: {
319
+ localized: true
320
+ }
321
+ },
322
+ component: "base.image",
323
+ repeatable: false
324
+ },
325
+ styles: {
326
+ type: "text",
327
+ pluginOptions: {
328
+ i18n: {
329
+ localized: true
330
+ }
331
+ }
332
+ },
333
+ scripts: {
334
+ type: "text",
335
+ pluginOptions: {
336
+ i18n: {
337
+ localized: true
338
+ }
339
+ }
340
+ }
341
+ }
342
+ };
343
+
344
+ // server/src/api/theme/controllers/theme.ts
345
+ var import_strapi10 = require("@strapi/strapi");
346
+ var theme_default = import_strapi10.factories.createCoreController("plugin::website.theme");
347
+
348
+ // server/src/api/theme/routes/theme.ts
349
+ var import_strapi11 = require("@strapi/strapi");
350
+ var theme_default2 = import_strapi11.factories.createCoreRouter("plugin::website.theme");
351
+
352
+ // server/src/api/theme/services/theme.ts
353
+ var import_strapi12 = require("@strapi/strapi");
354
+ var theme_default3 = import_strapi12.factories.createCoreService("plugin::website.theme");
355
+
356
+ // server/src/api/theme/index.ts
357
+ var theme_default4 = {
358
+ schema: schema_default4,
359
+ controllers: theme_default,
360
+ services: theme_default3,
361
+ routes: theme_default2
362
+ };
363
+ // server/src/api/translation/content-types/translation/schema.json
364
+ var schema_default5 = {
309
365
  kind: "collectionType",
310
366
  collectionName: "translations",
311
367
  info: {
@@ -345,59 +401,45 @@ var schema_default4 = {
345
401
  };
346
402
 
347
403
  // server/src/api/translation/controllers/translation.ts
348
- var import_strapi10 = require("@strapi/strapi");
349
- var translation_default = import_strapi10.factories.createCoreController("plugin::website.translation");
404
+ var import_strapi13 = require("@strapi/strapi");
405
+ var translation_default = import_strapi13.factories.createCoreController("plugin::website.translation");
350
406
 
351
407
  // server/src/api/translation/routes/translation.ts
352
- var import_strapi11 = require("@strapi/strapi");
353
- var translation_default2 = import_strapi11.factories.createCoreRouter("plugin::website.translation");
408
+ var import_strapi14 = require("@strapi/strapi");
409
+ var translation_default2 = import_strapi14.factories.createCoreRouter("plugin::website.translation");
354
410
 
355
411
  // server/src/api/translation/services/translation.ts
356
- var import_strapi12 = require("@strapi/strapi");
357
- var translation_default3 = import_strapi12.factories.createCoreService("plugin::website.translation");
412
+ var import_strapi15 = require("@strapi/strapi");
413
+ var translation_default3 = import_strapi15.factories.createCoreService("plugin::website.translation");
358
414
 
359
415
  // server/src/api/translation/index.ts
360
416
  var translation_default4 = {
361
- schema: schema_default4,
417
+ schema: schema_default5,
362
418
  controllers: translation_default,
363
419
  services: translation_default3,
364
420
  routes: translation_default2
365
421
  };
366
422
 
367
423
  // server/src/api/index.ts
424
+ var modules = { translation: translation_default4, common: common_default4, menu: menu_default4, site: site_default4, theme: theme_default4 };
368
425
  var contentTypes = {};
369
426
  var controllers = {};
370
427
  var routes = {};
371
428
  var services = {};
372
- contentTypes.common = {
373
- schema: common_default4.schema
374
- };
375
- contentTypes.menu = {
376
- schema: menu_default4.schema
377
- };
378
- contentTypes.site = {
379
- schema: site_default4.schema
380
- };
381
- contentTypes.translation = {
382
- schema: translation_default4.schema
383
- };
384
- routes.common = common_default4.routes;
385
- routes.menu = menu_default4.routes;
386
- routes.site = site_default4.routes;
387
- routes.translation = translation_default4.routes;
388
- services.common = common_default4.services;
389
- services.menu = menu_default4.services;
390
- services.site = site_default4.services;
391
- services.translation = translation_default4.services;
392
- controllers.common = common_default4.controllers;
393
- controllers.menu = menu_default4.controllers;
394
- controllers.site = site_default4.controllers;
395
- controllers.translation = translation_default4.controllers;
429
+ Object.keys(modules).forEach((moduleName) => {
430
+ const module2 = modules[moduleName];
431
+ services[moduleName] = module2.services;
432
+ routes[moduleName] = module2.routes;
433
+ controllers[moduleName] = module2.controllers;
434
+ contentTypes[moduleName] = {
435
+ schema: module2.schema
436
+ };
437
+ });
396
438
  var api_default = {
397
439
  contentTypes,
398
440
  controllers,
399
- routes,
400
- services
441
+ services,
442
+ routes
401
443
  };
402
444
 
403
445
  // server/src/bootstrap.ts
@@ -668,35 +710,14 @@ var destroy = ({ strapi: strapi2 }) => {
668
710
  strapi2.log.info("dashboard server plugin: bootstrap");
669
711
  };
670
712
  var destroy_default = destroy;
671
-
672
- // server/src/components/index.ts
673
- var createComponent = (strapi2, { name, displayName, icon, attributes }) => {
674
- const category = "website";
675
- if (strapi2.components[`${category}.${name}`])
676
- return;
677
- const builder = strapi2.plugin("content-type-builder");
678
- builder.services.components.createComponent({
679
- component: {
680
- icon,
681
- category,
682
- displayName,
683
- attributes
684
- }
685
- }).then((r) => {
686
- console.log(`create ${name} component`, r);
687
- });
688
- };
689
- var registerComponents = (strapi2, components) => {
690
- components.forEach((component) => {
691
- createComponent(strapi2, component);
692
- });
693
- };
694
-
695
- // server/src/components/banner.ts
696
- var component = {
697
- name: "banner",
698
- icon: "landscape",
699
- displayName: "Banner",
713
+ // server/src/components/schema/banner.json
714
+ var banner_default = {
715
+ collectionName: "components_website_banners",
716
+ info: {
717
+ displayName: "Banner",
718
+ icon: "landscape"
719
+ },
720
+ options: {},
700
721
  attributes: {
701
722
  title: {
702
723
  type: "string"
@@ -708,49 +729,27 @@ var component = {
708
729
  type: "string"
709
730
  },
710
731
  image: {
711
- type: "media",
712
- multiple: false,
713
- required: true,
714
- allowedTypes: ["images"]
715
- },
716
- mImage: {
717
- type: "media",
718
- multiple: false,
719
- allowedTypes: ["images"]
732
+ type: "component",
733
+ component: "base.image",
734
+ repeatable: false
720
735
  }
721
736
  }
722
737
  };
723
- var banner_default = component;
724
-
725
- // server/src/components/logo.ts
726
- var component2 = {
727
- name: "logo",
728
- icon: "picture",
729
- displayName: "Logo",
730
- attributes: {
731
- main: {
732
- type: "media",
733
- multiple: false,
734
- allowedTypes: ["images"]
735
- },
736
- sub: {
737
- type: "media",
738
- multiple: false,
739
- allowedTypes: ["images"]
740
- }
741
- }
742
- };
743
- var logo_default = component2;
744
-
745
- // server/src/components/social.ts
746
- var component3 = {
747
- name: "social",
748
- icon: "paperPlane",
749
- displayName: "Social",
738
+ // server/src/components/schema/social.json
739
+ var social_default = {
740
+ collectionName: "components_website_socials",
741
+ info: {
742
+ displayName: "Social",
743
+ icon: "paperPlane"
744
+ },
745
+ options: {},
750
746
  attributes: {
751
747
  type: {
752
748
  type: "enumeration",
753
- enum: ["url", "qrcode"]
749
+ enum: [
750
+ "url",
751
+ "qrcode"
752
+ ]
754
753
  },
755
754
  url: {
756
755
  type: "string",
@@ -765,6 +764,14 @@ var component3 = {
765
764
  }
766
765
  }
767
766
  },
767
+ icon: {
768
+ type: "customField",
769
+ customField: "plugin::website.iconPicker"
770
+ },
771
+ color: {
772
+ type: "customField",
773
+ customField: "plugin::website.colorPicker"
774
+ },
768
775
  qrcode: {
769
776
  type: "media",
770
777
  conditions: {
@@ -778,43 +785,50 @@ var component3 = {
778
785
  }
779
786
  },
780
787
  multiple: false,
781
- allowedTypes: ["images"]
788
+ allowedTypes: [
789
+ "images"
790
+ ]
782
791
  }
783
792
  }
784
793
  };
785
- var social_default = component3;
786
794
 
787
- // server/src/components/video.ts
788
- var component4 = {
789
- name: "video",
790
- icon: "play",
791
- displayName: "Video",
792
- attributes: {
793
- url: {
794
- type: "string",
795
- required: true
796
- },
797
- title: {
798
- type: "string"
799
- },
800
- image: {
801
- type: "media",
802
- multiple: false,
803
- allowedTypes: ["images"]
795
+ // server/src/components/index.ts
796
+ var schemas = { banner: banner_default, social: social_default };
797
+ var createComponent = (strapi2, { name, displayName, icon, attributes }) => {
798
+ const category = "website";
799
+ if (strapi2.components[`${category}.${name}`])
800
+ return;
801
+ const builder = strapi2.plugin("content-type-builder");
802
+ builder.services.components.createComponent({
803
+ component: {
804
+ icon,
805
+ category,
806
+ displayName,
807
+ attributes
804
808
  }
805
- }
809
+ }).then(() => {
810
+ console.log(`create ${name} component`);
811
+ });
812
+ };
813
+ var registerComponents = (strapi2, components) => {
814
+ components.forEach((component) => {
815
+ createComponent(strapi2, component);
816
+ });
806
817
  };
807
- var video_default = component4;
818
+ var components = [];
819
+ Object.entries(schemas).forEach(([name, schema]) => {
820
+ components.push({
821
+ name,
822
+ icon: schema.info.icon,
823
+ displayName: schema.info.displayName,
824
+ attributes: schema.attributes
825
+ });
826
+ });
808
827
 
809
828
  // server/src/register.ts
810
829
  var register = ({ strapi: strapi2 }) => {
830
+ registerComponents(strapi2, components);
811
831
  strapi2.log.info("website server plugin: register");
812
- registerComponents(strapi2, [
813
- banner_default,
814
- social_default,
815
- logo_default,
816
- video_default
817
- ]);
818
832
  strapi2.customFields.register([
819
833
  {
820
834
  name: "slugInput",