@ikas/storefront 0.0.38 → 0.0.40

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.
@@ -5,6 +5,7 @@ declare type Props = {
5
5
  pageComponentPropValue: IkasPageComponentPropValue;
6
6
  pageComponent: IkasThemePageComponent;
7
7
  index: number;
8
+ settingsStr: string;
8
9
  };
9
10
  export declare const ThemeComponent: React.FC<Props>;
10
11
  export {};
@@ -5,6 +5,7 @@ declare type Props = {
5
5
  propValues: IkasPageComponentPropValue[];
6
6
  page?: IkasThemePage;
7
7
  pageSpecificDataStr?: string;
8
+ settingsStr: string;
8
9
  };
9
10
  export declare const IkasPage: React.FC<Props>;
10
11
  export {};
@@ -38,6 +38,7 @@ export default class PageViewModel {
38
38
  handleSetSelectedComponent: (data: any) => void;
39
39
  handleSetHoveredComponent: (data: any) => void;
40
40
  handleScrollToComponent: (data: any) => void;
41
+ updateThemeSettings: (data: any) => void;
41
42
  }
42
43
  export declare enum BridgeMessageType {
43
44
  FRAME_DID_LOAD = "FRAME_DID_LOAD",
@@ -55,5 +56,6 @@ export declare enum BridgeMessageType {
55
56
  COMPONENT_CLICK = "COMPONENT_CLICK",
56
57
  SET_SELECTED_COMPONENT = "SET_SELECTED_COMPONENT",
57
58
  SET_HOVERED_COMPONENT = "SET_HOVERED_COMPONENT",
58
- SCROLL_TO_COMPONENT = "SCROLL_TO_COMPONENT"
59
+ SCROLL_TO_COMPONENT = "SCROLL_TO_COMPONENT",
60
+ UPDATE_THEME_SETTINGS = "UPDATE_THEME_SETTINGS"
59
61
  }
package/build/index.es.js CHANGED
@@ -11355,6 +11355,7 @@ var IkasPageDataProvider = /** @class */ (function () {
11355
11355
  props: {
11356
11356
  propValuesStr: JSON.stringify(this.pageComponentPropValues),
11357
11357
  page: toJS(this.page) || null,
11358
+ settingsStr: JSON.stringify(this.theme.settings || {}),
11358
11359
  },
11359
11360
  };
11360
11361
  },
@@ -12982,6 +12983,28 @@ var IkasThemePageType;
12982
12983
  IkasThemePageType["CART"] = "CART";
12983
12984
  })(IkasThemePageType || (IkasThemePageType = {}));
12984
12985
 
12986
+ var IkasThemeColor = /** @class */ (function () {
12987
+ function IkasThemeColor(data) {
12988
+ this.id = data.id || v4();
12989
+ this.displayName = data.displayName || "";
12990
+ this.key = data.key || "";
12991
+ this.color = data.color || "";
12992
+ makeAutoObservable(this);
12993
+ }
12994
+ return IkasThemeColor;
12995
+ }());
12996
+
12997
+ var IkasThemeSettings = /** @class */ (function () {
12998
+ function IkasThemeSettings(data) {
12999
+ if (data === void 0) { data = {}; }
13000
+ this.colors = data.colors
13001
+ ? data.colors.map(function (c) { return new IkasThemeColor(c); })
13002
+ : [];
13003
+ makeAutoObservable(this);
13004
+ }
13005
+ return IkasThemeSettings;
13006
+ }());
13007
+
12985
13008
  var IkasTheme = /** @class */ (function () {
12986
13009
  function IkasTheme(data) {
12987
13010
  if (data === void 0) { data = {}; }
@@ -12990,6 +13013,9 @@ var IkasTheme = /** @class */ (function () {
12990
13013
  ? data.components.map(function (c) { return new IkasThemeComponent(c); })
12991
13014
  : [];
12992
13015
  this.pages = data.pages ? data.pages.map(function (p) { return new IkasThemePage(p); }) : [];
13016
+ this.settings = data.settings
13017
+ ? new IkasThemeSettings(data.settings)
13018
+ : new IkasThemeSettings();
12993
13019
  makeAutoObservable(this);
12994
13020
  }
12995
13021
  Object.defineProperty(IkasTheme.prototype, "headerComponent", {
@@ -20189,7 +20215,7 @@ var IkasCustomerStore = /** @class */ (function () {
20189
20215
  case 1:
20190
20216
  savedCustomer = _a.sent();
20191
20217
  if (savedCustomer) {
20192
- this.setCustomer(customer);
20218
+ this.setCustomer(savedCustomer);
20193
20219
  return [2 /*return*/, true];
20194
20220
  }
20195
20221
  return [2 /*return*/, false];
@@ -22895,8 +22921,14 @@ var style = {
22895
22921
  };
22896
22922
 
22897
22923
  var ThemeComponent = observer(function (_a) {
22898
- var pageComponentPropValue = _a.pageComponentPropValue, pageComponent = _a.pageComponent, index = _a.index;
22924
+ var pageComponentPropValue = _a.pageComponentPropValue, pageComponent = _a.pageComponent, index = _a.index, settingsStr = _a.settingsStr;
22899
22925
  var store = IkasStorefrontConfig.store, components = IkasStorefrontConfig.components;
22926
+ var settings = new IkasThemeSettings(JSON.parse(settingsStr));
22927
+ useEffect(function () {
22928
+ settings.colors.map(function (sc) {
22929
+ return document.documentElement.style.setProperty(sc.key, sc.color);
22930
+ });
22931
+ }, [settings]);
22900
22932
  var propValues = pageComponentPropValue.propValues;
22901
22933
  var hasNullValue = computed(function () {
22902
22934
  return Object.entries(propValues || {}).some(function (_a) {
@@ -22906,15 +22938,15 @@ var ThemeComponent = observer(function (_a) {
22906
22938
  });
22907
22939
  });
22908
22940
  var Component = components[pageComponent.componentId];
22909
- return (createElement("div", { id: index + "" }, hasNullValue.get() ? (createElement(ErrorComponent, null)) : (createElement(Component, __assign({ key: pageComponent.id }, propValues, { store: store })))));
22941
+ return (createElement("div", { id: index + "" }, hasNullValue.get() ? (createElement(ErrorComponent, null)) : (createElement(Component, __assign({ key: pageComponent.id }, propValues, { settings: settings, store: store })))));
22910
22942
  });
22911
22943
 
22912
22944
  var IkasPage = observer(function (_a) {
22913
22945
  var _b, _c;
22914
- var propValues = _a.propValues, page = _a.page, pageSpecificDataStr = _a.pageSpecificDataStr;
22946
+ var propValues = _a.propValues, page = _a.page, pageSpecificDataStr = _a.pageSpecificDataStr, settingsStr = _a.settingsStr;
22915
22947
  var renderComponent = function (pageComponent, index) {
22916
22948
  var pageComponentPropValue = propValues.find(function (pv) { return pv.pageComponent.id === pageComponent.id; });
22917
- return (createElement(ThemeComponent, { key: pageComponent.id, index: index, pageComponentPropValue: pageComponentPropValue, pageComponent: pageComponent }));
22949
+ return (createElement(ThemeComponent, { key: pageComponent.id, index: index, pageComponentPropValue: pageComponentPropValue, pageComponent: pageComponent, settingsStr: settingsStr }));
22918
22950
  };
22919
22951
  var headerComponent = (_b = propValues.find(function (pv) { return pv.component.isHeader; })) === null || _b === void 0 ? void 0 : _b.pageComponent;
22920
22952
  var footerComponent = (_c = propValues.find(function (pv) { return pv.component.isFooter; })) === null || _c === void 0 ? void 0 : _c.pageComponent;
@@ -22978,51 +23010,55 @@ var PageViewModel = /** @class */ (function () {
22978
23010
  case BridgeMessageType.SET_SELECTED_COMPONENT: return [3 /*break*/, 15];
22979
23011
  case BridgeMessageType.SET_HOVERED_COMPONENT: return [3 /*break*/, 16];
22980
23012
  case BridgeMessageType.SCROLL_TO_COMPONENT: return [3 /*break*/, 17];
23013
+ case BridgeMessageType.UPDATE_THEME_SETTINGS: return [3 /*break*/, 18];
22981
23014
  }
22982
- return [3 /*break*/, 18];
23015
+ return [3 /*break*/, 19];
22983
23016
  case 1: return [4 /*yield*/, this.handleUpdateFrameData(data)];
22984
23017
  case 2:
22985
23018
  _b.sent();
22986
- return [3 /*break*/, 19];
23019
+ return [3 /*break*/, 20];
22987
23020
  case 3: return [4 /*yield*/, this.handleUpdatePropValue(data)];
22988
23021
  case 4:
22989
23022
  _b.sent();
22990
- return [3 /*break*/, 19];
23023
+ return [3 /*break*/, 20];
22991
23024
  case 5: return [4 /*yield*/, this.handleUpdatePageParams(data)];
22992
23025
  case 6:
22993
23026
  _b.sent();
22994
- return [3 /*break*/, 19];
23027
+ return [3 /*break*/, 20];
22995
23028
  case 7: return [4 /*yield*/, this.handleUpdatePageComponentOrder(data)];
22996
23029
  case 8:
22997
23030
  _b.sent();
22998
- return [3 /*break*/, 19];
23031
+ return [3 /*break*/, 20];
22999
23032
  case 9:
23000
23033
  this.handleAddNewComponent(data);
23001
- return [3 /*break*/, 19];
23034
+ return [3 /*break*/, 20];
23002
23035
  case 10:
23003
23036
  this.handleDeleteComponent(data);
23004
- return [3 /*break*/, 19];
23037
+ return [3 /*break*/, 20];
23005
23038
  case 11:
23006
23039
  this.handleUpdateComponent(data);
23007
- return [3 /*break*/, 19];
23040
+ return [3 /*break*/, 20];
23008
23041
  case 12: return [4 /*yield*/, this.handleAddNewPageComponent(data)];
23009
23042
  case 13:
23010
23043
  _b.sent();
23011
- return [3 /*break*/, 19];
23044
+ return [3 /*break*/, 20];
23012
23045
  case 14:
23013
23046
  this.handleDeletePageComponent(data);
23014
- return [3 /*break*/, 19];
23047
+ return [3 /*break*/, 20];
23015
23048
  case 15:
23016
23049
  this.handleSetSelectedComponent(data);
23017
- return [3 /*break*/, 19];
23050
+ return [3 /*break*/, 20];
23018
23051
  case 16:
23019
23052
  this.handleSetHoveredComponent(data);
23020
- return [3 /*break*/, 19];
23053
+ return [3 /*break*/, 20];
23021
23054
  case 17:
23022
23055
  this.handleScrollToComponent(data);
23023
- return [3 /*break*/, 19];
23024
- case 18: return [3 /*break*/, 19];
23025
- case 19: return [2 /*return*/];
23056
+ return [3 /*break*/, 20];
23057
+ case 18:
23058
+ this.updateThemeSettings(data);
23059
+ return [3 /*break*/, 20];
23060
+ case 19: return [3 /*break*/, 20];
23061
+ case 20: return [2 /*return*/];
23026
23062
  }
23027
23063
  });
23028
23064
  }); };
@@ -23219,6 +23255,12 @@ var PageViewModel = /** @class */ (function () {
23219
23255
  });
23220
23256
  }
23221
23257
  };
23258
+ this.updateThemeSettings = function (data) {
23259
+ var settings = data.settings;
23260
+ if (_this.theme) {
23261
+ _this.theme.settings = new IkasThemeSettings(settings);
23262
+ }
23263
+ };
23222
23264
  this.router = router;
23223
23265
  makeAutoObservable(this);
23224
23266
  this.startMessaging();
@@ -23261,20 +23303,27 @@ var BridgeMessageType;
23261
23303
  BridgeMessageType["SET_SELECTED_COMPONENT"] = "SET_SELECTED_COMPONENT";
23262
23304
  BridgeMessageType["SET_HOVERED_COMPONENT"] = "SET_HOVERED_COMPONENT";
23263
23305
  BridgeMessageType["SCROLL_TO_COMPONENT"] = "SCROLL_TO_COMPONENT";
23306
+ BridgeMessageType["UPDATE_THEME_SETTINGS"] = "UPDATE_THEME_SETTINGS";
23264
23307
  })(BridgeMessageType || (BridgeMessageType = {}));
23265
23308
 
23266
23309
  var ThemeEditorComponent = observer(function (_a) {
23267
- var _b;
23310
+ var _b, _c;
23268
23311
  var vm = _a.vm, pageComponent = _a.pageComponent;
23269
23312
  var ref = useRef(null);
23270
23313
  var store = IkasStorefrontConfig.store, components = IkasStorefrontConfig.components;
23271
23314
  useEffect(function () {
23272
23315
  vm.setComponentRef(ref.current, pageComponent);
23273
23316
  }, []);
23317
+ useEffect(function () {
23318
+ var _a;
23319
+ (_a = vm.theme) === null || _a === void 0 ? void 0 : _a.settings.colors.map(function (sc) {
23320
+ return document.documentElement.style.setProperty(sc.key, sc.color);
23321
+ });
23322
+ }, [(_b = vm.theme) === null || _b === void 0 ? void 0 : _b.settings]);
23274
23323
  var pageComponentPropValue = computed(function () {
23275
23324
  return vm.pageDataProvider.pageComponentPropValues.find(function (pc) { return pc.pageComponent.id === pageComponent.id; });
23276
23325
  });
23277
- var propValues = (_b = pageComponentPropValue.get()) === null || _b === void 0 ? void 0 : _b.propValues;
23326
+ var propValues = (_c = pageComponentPropValue.get()) === null || _c === void 0 ? void 0 : _c.propValues;
23278
23327
  if (!propValues)
23279
23328
  return null;
23280
23329
  var Component = components[pageComponent.componentId];
@@ -23302,7 +23351,8 @@ var ThemeEditorComponent = observer(function (_a) {
23302
23351
  vm.onClick(pageComponent.id);
23303
23352
  };
23304
23353
  var rendered = computed(function () {
23305
- return hasNullValue.get() ? (createElement(ErrorComponent, null)) : (createElement(Component, __assign({ store: store }, propValues)));
23354
+ var _a;
23355
+ return hasNullValue.get() ? (createElement(ErrorComponent, null)) : (createElement(Component, __assign({ store: store }, propValues, { settings: (_a = vm.theme) === null || _a === void 0 ? void 0 : _a.settings })));
23306
23356
  });
23307
23357
  return (createElement("div", { ref: ref, style: { position: "relative" }, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, onClick: onClick },
23308
23358
  rendered.get(),
@@ -23388,10 +23438,10 @@ var index = /*#__PURE__*/Object.freeze({
23388
23438
  });
23389
23439
 
23390
23440
  var Page = function (_a) {
23391
- var page = _a.page, propValuesStr = _a.propValuesStr;
23441
+ var page = _a.page, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23392
23442
  var router = useRouter();
23393
23443
  var propValues = IkasPageDataProvider.initPropValues(propValuesStr, router);
23394
- return createElement(IkasPage, { page: page, propValues: propValues });
23444
+ return (createElement(IkasPage, { settingsStr: settingsStr, page: page, propValues: propValues }));
23395
23445
  };
23396
23446
  var getStaticProps = function (context) { return __awaiter(void 0, void 0, void 0, function () {
23397
23447
  var theme, provider;
@@ -23416,7 +23466,7 @@ var home = /*#__PURE__*/Object.freeze({
23416
23466
  });
23417
23467
 
23418
23468
  var Page$1 = function (_a) {
23419
- var page = _a.page, pageSpecificDataStr = _a.pageSpecificDataStr, propValuesStr = _a.propValuesStr;
23469
+ var page = _a.page, pageSpecificDataStr = _a.pageSpecificDataStr, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23420
23470
  var router = useRouter();
23421
23471
  var _b = useState(false), isBrowser = _b[0], setIsBrowser = _b[1];
23422
23472
  var _c = useState(IkasPageDataProvider.initPropValues(propValuesStr, router)), propValues = _c[0], setPropValues = _c[1];
@@ -23427,7 +23477,7 @@ var Page$1 = function (_a) {
23427
23477
  setPropValues(IkasPageDataProvider.initPropValues(propValuesStr, router, isBrowser));
23428
23478
  }, [isBrowser, propValuesStr]);
23429
23479
  handleGTM(page, pageSpecificDataStr);
23430
- return (createElement(IkasPage, { page: page, propValues: propValues, pageSpecificDataStr: pageSpecificDataStr }));
23480
+ return (createElement(IkasPage, { page: page, propValues: propValues, pageSpecificDataStr: pageSpecificDataStr, settingsStr: settingsStr }));
23431
23481
  };
23432
23482
  var index$1 = observer(Page$1);
23433
23483
  var getStaticPaths = function (context) { return __awaiter(void 0, void 0, void 0, function () {
@@ -23537,10 +23587,10 @@ var index$2 = /*#__PURE__*/Object.freeze({
23537
23587
  });
23538
23588
 
23539
23589
  var Page$2 = function (_a) {
23540
- var page = _a.page, propValuesStr = _a.propValuesStr;
23590
+ var page = _a.page, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23541
23591
  var router = useRouter();
23542
23592
  var propValues = IkasPageDataProvider.initPropValues(propValuesStr, router);
23543
- return createElement(IkasPage, { page: page, propValues: propValues });
23593
+ return (createElement(IkasPage, { page: page, settingsStr: settingsStr, propValues: propValues }));
23544
23594
  };
23545
23595
  var getStaticPaths$1 = function (context) { return __awaiter(void 0, void 0, void 0, function () {
23546
23596
  var theme, customPages, customPagePaths;
@@ -23631,10 +23681,10 @@ var _id_$1 = /*#__PURE__*/Object.freeze({
23631
23681
  });
23632
23682
 
23633
23683
  var Page$3 = function (_a) {
23634
- var page = _a.page, propValuesStr = _a.propValuesStr;
23684
+ var page = _a.page, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23635
23685
  var router = useRouter();
23636
23686
  var propValues = IkasPageDataProvider.initPropValues(propValuesStr, router);
23637
- return createElement(IkasPage, { page: page, propValues: propValues });
23687
+ return (createElement(IkasPage, { settingsStr: settingsStr, page: page, propValues: propValues }));
23638
23688
  };
23639
23689
  var getStaticProps$3 = function (context) { return __awaiter(void 0, void 0, void 0, function () {
23640
23690
  var theme, provider;
@@ -23659,10 +23709,10 @@ var index$3 = /*#__PURE__*/Object.freeze({
23659
23709
  });
23660
23710
 
23661
23711
  var Page$4 = function (_a) {
23662
- var page = _a.page, propValuesStr = _a.propValuesStr;
23712
+ var page = _a.page, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23663
23713
  var router = useRouter();
23664
23714
  var propValues = IkasPageDataProvider.initPropValues(propValuesStr, router);
23665
- return createElement(IkasPage, { page: page, propValues: propValues });
23715
+ return (createElement(IkasPage, { settingsStr: settingsStr, page: page, propValues: propValues }));
23666
23716
  };
23667
23717
  var getStaticProps$4 = function (context) { return __awaiter(void 0, void 0, void 0, function () {
23668
23718
  var theme, provider;
@@ -23687,10 +23737,10 @@ var addresses = /*#__PURE__*/Object.freeze({
23687
23737
  });
23688
23738
 
23689
23739
  var Page$5 = function (_a) {
23690
- var page = _a.page, propValuesStr = _a.propValuesStr;
23740
+ var page = _a.page, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23691
23741
  var router = useRouter();
23692
23742
  var propValues = IkasPageDataProvider.initPropValues(propValuesStr, router);
23693
- return createElement(IkasPage, { page: page, propValues: propValues });
23743
+ return (createElement(IkasPage, { settingsStr: settingsStr, page: page, propValues: propValues }));
23694
23744
  };
23695
23745
  var getStaticProps$5 = function (context) { return __awaiter(void 0, void 0, void 0, function () {
23696
23746
  var theme, provider;
@@ -23715,10 +23765,10 @@ var index$4 = /*#__PURE__*/Object.freeze({
23715
23765
  });
23716
23766
 
23717
23767
  var Page$6 = function (_a) {
23718
- var page = _a.page, propValuesStr = _a.propValuesStr;
23768
+ var page = _a.page, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23719
23769
  var router = useRouter();
23720
23770
  var propValues = IkasPageDataProvider.initPropValues(propValuesStr, router);
23721
- return createElement(IkasPage, { page: page, propValues: propValues });
23771
+ return (createElement(IkasPage, { settingsStr: settingsStr, page: page, propValues: propValues }));
23722
23772
  };
23723
23773
  var getServerSideProps$1 = function (context) { return __awaiter(void 0, void 0, void 0, function () {
23724
23774
  var theme, provider;
@@ -23743,10 +23793,10 @@ var _id_$2 = /*#__PURE__*/Object.freeze({
23743
23793
  });
23744
23794
 
23745
23795
  var Page$7 = function (_a) {
23746
- var page = _a.page, propValuesStr = _a.propValuesStr;
23796
+ var page = _a.page, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23747
23797
  var router = useRouter();
23748
23798
  var propValues = IkasPageDataProvider.initPropValues(propValuesStr, router);
23749
- return createElement(IkasPage, { page: page, propValues: propValues });
23799
+ return (createElement(IkasPage, { settingsStr: settingsStr, page: page, propValues: propValues }));
23750
23800
  };
23751
23801
  var getStaticProps$6 = function (context) { return __awaiter(void 0, void 0, void 0, function () {
23752
23802
  var theme, provider;
@@ -23771,10 +23821,10 @@ var login = /*#__PURE__*/Object.freeze({
23771
23821
  });
23772
23822
 
23773
23823
  var Page$8 = function (_a) {
23774
- var page = _a.page, propValuesStr = _a.propValuesStr;
23824
+ var page = _a.page, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23775
23825
  var router = useRouter();
23776
23826
  var propValues = IkasPageDataProvider.initPropValues(propValuesStr, router);
23777
- return createElement(IkasPage, { page: page, propValues: propValues });
23827
+ return (createElement(IkasPage, { settingsStr: settingsStr, page: page, propValues: propValues }));
23778
23828
  };
23779
23829
  var getStaticProps$7 = function (context) { return __awaiter(void 0, void 0, void 0, function () {
23780
23830
  var theme, provider;
@@ -23799,10 +23849,10 @@ var register = /*#__PURE__*/Object.freeze({
23799
23849
  });
23800
23850
 
23801
23851
  var Page$9 = function (_a) {
23802
- var page = _a.page, propValuesStr = _a.propValuesStr;
23852
+ var page = _a.page, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23803
23853
  var router = useRouter();
23804
23854
  var propValues = IkasPageDataProvider.initPropValues(propValuesStr, router);
23805
- return createElement(IkasPage, { page: page, propValues: propValues });
23855
+ return (createElement(IkasPage, { settingsStr: settingsStr, page: page, propValues: propValues }));
23806
23856
  };
23807
23857
  var getStaticProps$8 = function (context) { return __awaiter(void 0, void 0, void 0, function () {
23808
23858
  var theme, provider;
@@ -23827,10 +23877,10 @@ var forgotPassword = /*#__PURE__*/Object.freeze({
23827
23877
  });
23828
23878
 
23829
23879
  var Page$a = function (_a) {
23830
- var page = _a.page, propValuesStr = _a.propValuesStr;
23880
+ var page = _a.page, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23831
23881
  var router = useRouter();
23832
23882
  var propValues = IkasPageDataProvider.initPropValues(propValuesStr, router);
23833
- return createElement(IkasPage, { page: page, propValues: propValues });
23883
+ return (createElement(IkasPage, { settingsStr: settingsStr, page: page, propValues: propValues }));
23834
23884
  };
23835
23885
  var getStaticProps$9 = function (context) { return __awaiter(void 0, void 0, void 0, function () {
23836
23886
  var theme, provider;
@@ -23855,10 +23905,10 @@ var recoverPassword = /*#__PURE__*/Object.freeze({
23855
23905
  });
23856
23906
 
23857
23907
  var Page$b = function (_a) {
23858
- var page = _a.page, propValuesStr = _a.propValuesStr;
23908
+ var page = _a.page, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23859
23909
  var router = useRouter();
23860
23910
  var propValues = IkasPageDataProvider.initPropValues(propValuesStr, router);
23861
- return createElement(IkasPage, { page: page, propValues: propValues });
23911
+ return (createElement(IkasPage, { settingsStr: settingsStr, page: page, propValues: propValues }));
23862
23912
  };
23863
23913
  var getStaticProps$a = function (context) { return __awaiter(void 0, void 0, void 0, function () {
23864
23914
  var theme, provider;
@@ -23904,4 +23954,4 @@ var IkasBaseStore = /** @class */ (function () {
23904
23954
  return IkasBaseStore;
23905
23955
  }());
23906
23956
 
23907
- export { index$3 as AccountPage, addresses as AddressesPage, cart as CartPage, _id_$1 as CheckoutPage, _slug_ as CustomPage, editor$1 as EditorPage, forgotPassword as ForgotPasswordPage, GTMAddToCart, GTMBeginCheckout, GTMBody, GTMCheckoutStep, GTMDisableHTML, GTMHead, GTMPageView, GTMProductView, GTMPurchase, GTMRemoveFromCart, IkasAmountTypeEnum$1 as IkasAmountTypeEnum, IkasBaseStore, IkasBrand, IkasBrandAPI, IkasBrandList, IkasBrandListPropValue, IkasBrandListSortType, IkasBrandListType, IkasBrandPropValue, IkasCardAssociation, IkasCardType, IkasCartAPI, IkasCategory, IkasCategoryAPI, IkasCategoryList, IkasCategoryListPropValue, IkasCategoryListSortType, IkasCategoryListType, IkasCategoryPropValue, IkasCheckout, IkasCheckoutAPI, IkasCheckoutPage, IkasCheckoutRecoveryEmailStatus, IkasCheckoutRecoveryStatus, IkasCheckoutStatus, IkasCityAPI, IkasCountryAPI, IkasCustomer, IkasCustomerAPI, IkasCustomerAddress, IkasDistrictAPI, IkasHTMLMetaData, IkasHTMLMetaDataAPI, IkasHTMLMetaDataTargetType, IkasImage, IkasLinkPropValue, IkasLinkType, IkasMerchantAPI, IkasMerchantSettings, IkasNavigationLink, IkasOrder, IkasOrderCancelledReason, IkasOrderLineItem, IkasOrderPackageFulfillStatus, IkasOrderPackageStatus, IkasOrderPaymentStatus, IkasOrderShippingMethod, IkasOrderStatus, IkasOrderTransaction, IkasPage, IkasPageComponentPropValue, IkasPageDataProvider, IkasPageEditor, IkasPageHead, IkasPaymentMethod, IkasProduct, IkasProductAPI, IkasProductAttribute, IkasProductAttributeAPI, IkasProductAttributeValue, IkasProductDetail, IkasProductDetailPropValue, IkasProductList, IkasProductListFilter, IkasProductListPropValue, IkasProductListSortType, IkasProductListType, IkasProductPrice, IkasProductType, IkasProductVariant, IkasProductVariantType, IkasShippingMethod, IkasShippingMethodEnum, IkasStateAPI, IkasStorefrontAPI, IkasStorefrontConfig, IkasTheme, IkasThemeAPI, IkasThemeComponent, IkasThemeComponentProp, IkasThemeComponentPropType, IkasThemePage, IkasThemePageComponent, IkasThemePageType, IkasTransactionStatusEnum, IkasTransactionTypeEnum, IkasVariantSelectionType, IkasVariantType, IkasVariantTypeAPI, IkasVariantValue, home as IndexPage, login as LoginPage, _id_$2 as OrderDetailPage, index$4 as OrdersPage, recoverPassword as RecoverPasswordPage, register as RegisterPage, index$2 as SlugPage, apollo, decodeBase64, formatMoney, pascalCase, stringToSlug, validatePhoneNumber };
23957
+ export { index$3 as AccountPage, addresses as AddressesPage, cart as CartPage, _id_$1 as CheckoutPage, _slug_ as CustomPage, editor$1 as EditorPage, forgotPassword as ForgotPasswordPage, GTMAddToCart, GTMBeginCheckout, GTMBody, GTMCheckoutStep, GTMDisableHTML, GTMHead, GTMPageView, GTMProductView, GTMPurchase, GTMRemoveFromCart, IkasAmountTypeEnum$1 as IkasAmountTypeEnum, IkasBaseStore, IkasBrand, IkasBrandAPI, IkasBrandList, IkasBrandListPropValue, IkasBrandListSortType, IkasBrandListType, IkasBrandPropValue, IkasCardAssociation, IkasCardType, IkasCartAPI, IkasCategory, IkasCategoryAPI, IkasCategoryList, IkasCategoryListPropValue, IkasCategoryListSortType, IkasCategoryListType, IkasCategoryPropValue, IkasCheckout, IkasCheckoutAPI, IkasCheckoutPage, IkasCheckoutRecoveryEmailStatus, IkasCheckoutRecoveryStatus, IkasCheckoutStatus, IkasCityAPI, IkasCountryAPI, IkasCustomer, IkasCustomerAPI, IkasCustomerAddress, IkasDistrictAPI, IkasHTMLMetaData, IkasHTMLMetaDataAPI, IkasHTMLMetaDataTargetType, IkasImage, IkasLinkPropValue, IkasLinkType, IkasMerchantAPI, IkasMerchantSettings, IkasNavigationLink, IkasOrder, IkasOrderCancelledReason, IkasOrderLineItem, IkasOrderPackageFulfillStatus, IkasOrderPackageStatus, IkasOrderPaymentStatus, IkasOrderShippingMethod, IkasOrderStatus, IkasOrderTransaction, IkasPage, IkasPageComponentPropValue, IkasPageDataProvider, IkasPageEditor, IkasPageHead, IkasPaymentMethod, IkasProduct, IkasProductAPI, IkasProductAttribute, IkasProductAttributeAPI, IkasProductAttributeValue, IkasProductDetail, IkasProductDetailPropValue, IkasProductList, IkasProductListFilter, IkasProductListPropValue, IkasProductListSortType, IkasProductListType, IkasProductPrice, IkasProductType, IkasProductVariant, IkasProductVariantType, IkasShippingMethod, IkasShippingMethodEnum, IkasStateAPI, IkasStorefrontAPI, IkasStorefrontConfig, IkasTheme, IkasThemeAPI, IkasThemeComponent, IkasThemeComponentProp, IkasThemeComponentPropType, IkasThemePage, IkasThemePageComponent, IkasThemePageType, IkasThemeSettings, IkasTransactionStatusEnum, IkasTransactionTypeEnum, IkasVariantSelectionType, IkasVariantType, IkasVariantTypeAPI, IkasVariantValue, home as IndexPage, login as LoginPage, _id_$2 as OrderDetailPage, index$4 as OrdersPage, recoverPassword as RecoverPasswordPage, register as RegisterPage, index$2 as SlugPage, apollo, decodeBase64, formatMoney, pascalCase, stringToSlug, validatePhoneNumber };
package/build/index.js CHANGED
@@ -11367,6 +11367,7 @@ var IkasPageDataProvider = /** @class */ (function () {
11367
11367
  props: {
11368
11368
  propValuesStr: JSON.stringify(this.pageComponentPropValues),
11369
11369
  page: mobx.toJS(this.page) || null,
11370
+ settingsStr: JSON.stringify(this.theme.settings || {}),
11370
11371
  },
11371
11372
  };
11372
11373
  },
@@ -12972,6 +12973,28 @@ var IkasThemePage = /** @class */ (function () {
12972
12973
  IkasThemePageType["CART"] = "CART";
12973
12974
  })(exports.IkasThemePageType || (exports.IkasThemePageType = {}));
12974
12975
 
12976
+ var IkasThemeColor = /** @class */ (function () {
12977
+ function IkasThemeColor(data) {
12978
+ this.id = data.id || v4();
12979
+ this.displayName = data.displayName || "";
12980
+ this.key = data.key || "";
12981
+ this.color = data.color || "";
12982
+ mobx.makeAutoObservable(this);
12983
+ }
12984
+ return IkasThemeColor;
12985
+ }());
12986
+
12987
+ var IkasThemeSettings = /** @class */ (function () {
12988
+ function IkasThemeSettings(data) {
12989
+ if (data === void 0) { data = {}; }
12990
+ this.colors = data.colors
12991
+ ? data.colors.map(function (c) { return new IkasThemeColor(c); })
12992
+ : [];
12993
+ mobx.makeAutoObservable(this);
12994
+ }
12995
+ return IkasThemeSettings;
12996
+ }());
12997
+
12975
12998
  var IkasTheme = /** @class */ (function () {
12976
12999
  function IkasTheme(data) {
12977
13000
  if (data === void 0) { data = {}; }
@@ -12980,6 +13003,9 @@ var IkasTheme = /** @class */ (function () {
12980
13003
  ? data.components.map(function (c) { return new IkasThemeComponent(c); })
12981
13004
  : [];
12982
13005
  this.pages = data.pages ? data.pages.map(function (p) { return new IkasThemePage(p); }) : [];
13006
+ this.settings = data.settings
13007
+ ? new IkasThemeSettings(data.settings)
13008
+ : new IkasThemeSettings();
12983
13009
  mobx.makeAutoObservable(this);
12984
13010
  }
12985
13011
  Object.defineProperty(IkasTheme.prototype, "headerComponent", {
@@ -20172,7 +20198,7 @@ var IkasCustomerStore = /** @class */ (function () {
20172
20198
  case 1:
20173
20199
  savedCustomer = _a.sent();
20174
20200
  if (savedCustomer) {
20175
- this.setCustomer(customer);
20201
+ this.setCustomer(savedCustomer);
20176
20202
  return [2 /*return*/, true];
20177
20203
  }
20178
20204
  return [2 /*return*/, false];
@@ -22878,8 +22904,14 @@ var style = {
22878
22904
  };
22879
22905
 
22880
22906
  var ThemeComponent = mobxReactLite.observer(function (_a) {
22881
- var pageComponentPropValue = _a.pageComponentPropValue, pageComponent = _a.pageComponent, index = _a.index;
22907
+ var pageComponentPropValue = _a.pageComponentPropValue, pageComponent = _a.pageComponent, index = _a.index, settingsStr = _a.settingsStr;
22882
22908
  var store = IkasStorefrontConfig.store, components = IkasStorefrontConfig.components;
22909
+ var settings = new IkasThemeSettings(JSON.parse(settingsStr));
22910
+ React.useEffect(function () {
22911
+ settings.colors.map(function (sc) {
22912
+ return document.documentElement.style.setProperty(sc.key, sc.color);
22913
+ });
22914
+ }, [settings]);
22883
22915
  var propValues = pageComponentPropValue.propValues;
22884
22916
  var hasNullValue = mobx.computed(function () {
22885
22917
  return Object.entries(propValues || {}).some(function (_a) {
@@ -22889,15 +22921,15 @@ var ThemeComponent = mobxReactLite.observer(function (_a) {
22889
22921
  });
22890
22922
  });
22891
22923
  var Component = components[pageComponent.componentId];
22892
- return (React.createElement("div", { id: index + "" }, hasNullValue.get() ? (React.createElement(ErrorComponent, null)) : (React.createElement(Component, __assign({ key: pageComponent.id }, propValues, { store: store })))));
22924
+ return (React.createElement("div", { id: index + "" }, hasNullValue.get() ? (React.createElement(ErrorComponent, null)) : (React.createElement(Component, __assign({ key: pageComponent.id }, propValues, { settings: settings, store: store })))));
22893
22925
  });
22894
22926
 
22895
22927
  var IkasPage = mobxReactLite.observer(function (_a) {
22896
22928
  var _b, _c;
22897
- var propValues = _a.propValues, page = _a.page, pageSpecificDataStr = _a.pageSpecificDataStr;
22929
+ var propValues = _a.propValues, page = _a.page, pageSpecificDataStr = _a.pageSpecificDataStr, settingsStr = _a.settingsStr;
22898
22930
  var renderComponent = function (pageComponent, index) {
22899
22931
  var pageComponentPropValue = propValues.find(function (pv) { return pv.pageComponent.id === pageComponent.id; });
22900
- return (React.createElement(ThemeComponent, { key: pageComponent.id, index: index, pageComponentPropValue: pageComponentPropValue, pageComponent: pageComponent }));
22932
+ return (React.createElement(ThemeComponent, { key: pageComponent.id, index: index, pageComponentPropValue: pageComponentPropValue, pageComponent: pageComponent, settingsStr: settingsStr }));
22901
22933
  };
22902
22934
  var headerComponent = (_b = propValues.find(function (pv) { return pv.component.isHeader; })) === null || _b === void 0 ? void 0 : _b.pageComponent;
22903
22935
  var footerComponent = (_c = propValues.find(function (pv) { return pv.component.isFooter; })) === null || _c === void 0 ? void 0 : _c.pageComponent;
@@ -22961,51 +22993,55 @@ var PageViewModel = /** @class */ (function () {
22961
22993
  case BridgeMessageType.SET_SELECTED_COMPONENT: return [3 /*break*/, 15];
22962
22994
  case BridgeMessageType.SET_HOVERED_COMPONENT: return [3 /*break*/, 16];
22963
22995
  case BridgeMessageType.SCROLL_TO_COMPONENT: return [3 /*break*/, 17];
22996
+ case BridgeMessageType.UPDATE_THEME_SETTINGS: return [3 /*break*/, 18];
22964
22997
  }
22965
- return [3 /*break*/, 18];
22998
+ return [3 /*break*/, 19];
22966
22999
  case 1: return [4 /*yield*/, this.handleUpdateFrameData(data)];
22967
23000
  case 2:
22968
23001
  _b.sent();
22969
- return [3 /*break*/, 19];
23002
+ return [3 /*break*/, 20];
22970
23003
  case 3: return [4 /*yield*/, this.handleUpdatePropValue(data)];
22971
23004
  case 4:
22972
23005
  _b.sent();
22973
- return [3 /*break*/, 19];
23006
+ return [3 /*break*/, 20];
22974
23007
  case 5: return [4 /*yield*/, this.handleUpdatePageParams(data)];
22975
23008
  case 6:
22976
23009
  _b.sent();
22977
- return [3 /*break*/, 19];
23010
+ return [3 /*break*/, 20];
22978
23011
  case 7: return [4 /*yield*/, this.handleUpdatePageComponentOrder(data)];
22979
23012
  case 8:
22980
23013
  _b.sent();
22981
- return [3 /*break*/, 19];
23014
+ return [3 /*break*/, 20];
22982
23015
  case 9:
22983
23016
  this.handleAddNewComponent(data);
22984
- return [3 /*break*/, 19];
23017
+ return [3 /*break*/, 20];
22985
23018
  case 10:
22986
23019
  this.handleDeleteComponent(data);
22987
- return [3 /*break*/, 19];
23020
+ return [3 /*break*/, 20];
22988
23021
  case 11:
22989
23022
  this.handleUpdateComponent(data);
22990
- return [3 /*break*/, 19];
23023
+ return [3 /*break*/, 20];
22991
23024
  case 12: return [4 /*yield*/, this.handleAddNewPageComponent(data)];
22992
23025
  case 13:
22993
23026
  _b.sent();
22994
- return [3 /*break*/, 19];
23027
+ return [3 /*break*/, 20];
22995
23028
  case 14:
22996
23029
  this.handleDeletePageComponent(data);
22997
- return [3 /*break*/, 19];
23030
+ return [3 /*break*/, 20];
22998
23031
  case 15:
22999
23032
  this.handleSetSelectedComponent(data);
23000
- return [3 /*break*/, 19];
23033
+ return [3 /*break*/, 20];
23001
23034
  case 16:
23002
23035
  this.handleSetHoveredComponent(data);
23003
- return [3 /*break*/, 19];
23036
+ return [3 /*break*/, 20];
23004
23037
  case 17:
23005
23038
  this.handleScrollToComponent(data);
23006
- return [3 /*break*/, 19];
23007
- case 18: return [3 /*break*/, 19];
23008
- case 19: return [2 /*return*/];
23039
+ return [3 /*break*/, 20];
23040
+ case 18:
23041
+ this.updateThemeSettings(data);
23042
+ return [3 /*break*/, 20];
23043
+ case 19: return [3 /*break*/, 20];
23044
+ case 20: return [2 /*return*/];
23009
23045
  }
23010
23046
  });
23011
23047
  }); };
@@ -23202,6 +23238,12 @@ var PageViewModel = /** @class */ (function () {
23202
23238
  });
23203
23239
  }
23204
23240
  };
23241
+ this.updateThemeSettings = function (data) {
23242
+ var settings = data.settings;
23243
+ if (_this.theme) {
23244
+ _this.theme.settings = new IkasThemeSettings(settings);
23245
+ }
23246
+ };
23205
23247
  this.router = router;
23206
23248
  mobx.makeAutoObservable(this);
23207
23249
  this.startMessaging();
@@ -23244,20 +23286,27 @@ var BridgeMessageType;
23244
23286
  BridgeMessageType["SET_SELECTED_COMPONENT"] = "SET_SELECTED_COMPONENT";
23245
23287
  BridgeMessageType["SET_HOVERED_COMPONENT"] = "SET_HOVERED_COMPONENT";
23246
23288
  BridgeMessageType["SCROLL_TO_COMPONENT"] = "SCROLL_TO_COMPONENT";
23289
+ BridgeMessageType["UPDATE_THEME_SETTINGS"] = "UPDATE_THEME_SETTINGS";
23247
23290
  })(BridgeMessageType || (BridgeMessageType = {}));
23248
23291
 
23249
23292
  var ThemeEditorComponent = mobxReactLite.observer(function (_a) {
23250
- var _b;
23293
+ var _b, _c;
23251
23294
  var vm = _a.vm, pageComponent = _a.pageComponent;
23252
23295
  var ref = React.useRef(null);
23253
23296
  var store = IkasStorefrontConfig.store, components = IkasStorefrontConfig.components;
23254
23297
  React.useEffect(function () {
23255
23298
  vm.setComponentRef(ref.current, pageComponent);
23256
23299
  }, []);
23300
+ React.useEffect(function () {
23301
+ var _a;
23302
+ (_a = vm.theme) === null || _a === void 0 ? void 0 : _a.settings.colors.map(function (sc) {
23303
+ return document.documentElement.style.setProperty(sc.key, sc.color);
23304
+ });
23305
+ }, [(_b = vm.theme) === null || _b === void 0 ? void 0 : _b.settings]);
23257
23306
  var pageComponentPropValue = mobx.computed(function () {
23258
23307
  return vm.pageDataProvider.pageComponentPropValues.find(function (pc) { return pc.pageComponent.id === pageComponent.id; });
23259
23308
  });
23260
- var propValues = (_b = pageComponentPropValue.get()) === null || _b === void 0 ? void 0 : _b.propValues;
23309
+ var propValues = (_c = pageComponentPropValue.get()) === null || _c === void 0 ? void 0 : _c.propValues;
23261
23310
  if (!propValues)
23262
23311
  return null;
23263
23312
  var Component = components[pageComponent.componentId];
@@ -23285,7 +23334,8 @@ var ThemeEditorComponent = mobxReactLite.observer(function (_a) {
23285
23334
  vm.onClick(pageComponent.id);
23286
23335
  };
23287
23336
  var rendered = mobx.computed(function () {
23288
- return hasNullValue.get() ? (React.createElement(ErrorComponent, null)) : (React.createElement(Component, __assign({ store: store }, propValues)));
23337
+ var _a;
23338
+ return hasNullValue.get() ? (React.createElement(ErrorComponent, null)) : (React.createElement(Component, __assign({ store: store }, propValues, { settings: (_a = vm.theme) === null || _a === void 0 ? void 0 : _a.settings })));
23289
23339
  });
23290
23340
  return (React.createElement("div", { ref: ref, style: { position: "relative" }, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, onClick: onClick },
23291
23341
  rendered.get(),
@@ -23371,10 +23421,10 @@ var index = /*#__PURE__*/Object.freeze({
23371
23421
  });
23372
23422
 
23373
23423
  var Page = function (_a) {
23374
- var page = _a.page, propValuesStr = _a.propValuesStr;
23424
+ var page = _a.page, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23375
23425
  var router$1 = router.useRouter();
23376
23426
  var propValues = IkasPageDataProvider.initPropValues(propValuesStr, router$1);
23377
- return React.createElement(IkasPage, { page: page, propValues: propValues });
23427
+ return (React.createElement(IkasPage, { settingsStr: settingsStr, page: page, propValues: propValues }));
23378
23428
  };
23379
23429
  var getStaticProps = function (context) { return __awaiter(void 0, void 0, void 0, function () {
23380
23430
  var theme, provider;
@@ -23399,7 +23449,7 @@ var home = /*#__PURE__*/Object.freeze({
23399
23449
  });
23400
23450
 
23401
23451
  var Page$1 = function (_a) {
23402
- var page = _a.page, pageSpecificDataStr = _a.pageSpecificDataStr, propValuesStr = _a.propValuesStr;
23452
+ var page = _a.page, pageSpecificDataStr = _a.pageSpecificDataStr, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23403
23453
  var router$1 = router.useRouter();
23404
23454
  var _b = React.useState(false), isBrowser = _b[0], setIsBrowser = _b[1];
23405
23455
  var _c = React.useState(IkasPageDataProvider.initPropValues(propValuesStr, router$1)), propValues = _c[0], setPropValues = _c[1];
@@ -23410,7 +23460,7 @@ var Page$1 = function (_a) {
23410
23460
  setPropValues(IkasPageDataProvider.initPropValues(propValuesStr, router$1, isBrowser));
23411
23461
  }, [isBrowser, propValuesStr]);
23412
23462
  handleGTM(page, pageSpecificDataStr);
23413
- return (React.createElement(IkasPage, { page: page, propValues: propValues, pageSpecificDataStr: pageSpecificDataStr }));
23463
+ return (React.createElement(IkasPage, { page: page, propValues: propValues, pageSpecificDataStr: pageSpecificDataStr, settingsStr: settingsStr }));
23414
23464
  };
23415
23465
  var index$1 = mobxReactLite.observer(Page$1);
23416
23466
  var getStaticPaths = function (context) { return __awaiter(void 0, void 0, void 0, function () {
@@ -23520,10 +23570,10 @@ var index$2 = /*#__PURE__*/Object.freeze({
23520
23570
  });
23521
23571
 
23522
23572
  var Page$2 = function (_a) {
23523
- var page = _a.page, propValuesStr = _a.propValuesStr;
23573
+ var page = _a.page, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23524
23574
  var router$1 = router.useRouter();
23525
23575
  var propValues = IkasPageDataProvider.initPropValues(propValuesStr, router$1);
23526
- return React.createElement(IkasPage, { page: page, propValues: propValues });
23576
+ return (React.createElement(IkasPage, { page: page, settingsStr: settingsStr, propValues: propValues }));
23527
23577
  };
23528
23578
  var getStaticPaths$1 = function (context) { return __awaiter(void 0, void 0, void 0, function () {
23529
23579
  var theme, customPages, customPagePaths;
@@ -23614,10 +23664,10 @@ var _id_$1 = /*#__PURE__*/Object.freeze({
23614
23664
  });
23615
23665
 
23616
23666
  var Page$3 = function (_a) {
23617
- var page = _a.page, propValuesStr = _a.propValuesStr;
23667
+ var page = _a.page, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23618
23668
  var router$1 = router.useRouter();
23619
23669
  var propValues = IkasPageDataProvider.initPropValues(propValuesStr, router$1);
23620
- return React.createElement(IkasPage, { page: page, propValues: propValues });
23670
+ return (React.createElement(IkasPage, { settingsStr: settingsStr, page: page, propValues: propValues }));
23621
23671
  };
23622
23672
  var getStaticProps$3 = function (context) { return __awaiter(void 0, void 0, void 0, function () {
23623
23673
  var theme, provider;
@@ -23642,10 +23692,10 @@ var index$3 = /*#__PURE__*/Object.freeze({
23642
23692
  });
23643
23693
 
23644
23694
  var Page$4 = function (_a) {
23645
- var page = _a.page, propValuesStr = _a.propValuesStr;
23695
+ var page = _a.page, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23646
23696
  var router$1 = router.useRouter();
23647
23697
  var propValues = IkasPageDataProvider.initPropValues(propValuesStr, router$1);
23648
- return React.createElement(IkasPage, { page: page, propValues: propValues });
23698
+ return (React.createElement(IkasPage, { settingsStr: settingsStr, page: page, propValues: propValues }));
23649
23699
  };
23650
23700
  var getStaticProps$4 = function (context) { return __awaiter(void 0, void 0, void 0, function () {
23651
23701
  var theme, provider;
@@ -23670,10 +23720,10 @@ var addresses = /*#__PURE__*/Object.freeze({
23670
23720
  });
23671
23721
 
23672
23722
  var Page$5 = function (_a) {
23673
- var page = _a.page, propValuesStr = _a.propValuesStr;
23723
+ var page = _a.page, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23674
23724
  var router$1 = router.useRouter();
23675
23725
  var propValues = IkasPageDataProvider.initPropValues(propValuesStr, router$1);
23676
- return React.createElement(IkasPage, { page: page, propValues: propValues });
23726
+ return (React.createElement(IkasPage, { settingsStr: settingsStr, page: page, propValues: propValues }));
23677
23727
  };
23678
23728
  var getStaticProps$5 = function (context) { return __awaiter(void 0, void 0, void 0, function () {
23679
23729
  var theme, provider;
@@ -23698,10 +23748,10 @@ var index$4 = /*#__PURE__*/Object.freeze({
23698
23748
  });
23699
23749
 
23700
23750
  var Page$6 = function (_a) {
23701
- var page = _a.page, propValuesStr = _a.propValuesStr;
23751
+ var page = _a.page, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23702
23752
  var router$1 = router.useRouter();
23703
23753
  var propValues = IkasPageDataProvider.initPropValues(propValuesStr, router$1);
23704
- return React.createElement(IkasPage, { page: page, propValues: propValues });
23754
+ return (React.createElement(IkasPage, { settingsStr: settingsStr, page: page, propValues: propValues }));
23705
23755
  };
23706
23756
  var getServerSideProps$1 = function (context) { return __awaiter(void 0, void 0, void 0, function () {
23707
23757
  var theme, provider;
@@ -23726,10 +23776,10 @@ var _id_$2 = /*#__PURE__*/Object.freeze({
23726
23776
  });
23727
23777
 
23728
23778
  var Page$7 = function (_a) {
23729
- var page = _a.page, propValuesStr = _a.propValuesStr;
23779
+ var page = _a.page, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23730
23780
  var router$1 = router.useRouter();
23731
23781
  var propValues = IkasPageDataProvider.initPropValues(propValuesStr, router$1);
23732
- return React.createElement(IkasPage, { page: page, propValues: propValues });
23782
+ return (React.createElement(IkasPage, { settingsStr: settingsStr, page: page, propValues: propValues }));
23733
23783
  };
23734
23784
  var getStaticProps$6 = function (context) { return __awaiter(void 0, void 0, void 0, function () {
23735
23785
  var theme, provider;
@@ -23754,10 +23804,10 @@ var login = /*#__PURE__*/Object.freeze({
23754
23804
  });
23755
23805
 
23756
23806
  var Page$8 = function (_a) {
23757
- var page = _a.page, propValuesStr = _a.propValuesStr;
23807
+ var page = _a.page, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23758
23808
  var router$1 = router.useRouter();
23759
23809
  var propValues = IkasPageDataProvider.initPropValues(propValuesStr, router$1);
23760
- return React.createElement(IkasPage, { page: page, propValues: propValues });
23810
+ return (React.createElement(IkasPage, { settingsStr: settingsStr, page: page, propValues: propValues }));
23761
23811
  };
23762
23812
  var getStaticProps$7 = function (context) { return __awaiter(void 0, void 0, void 0, function () {
23763
23813
  var theme, provider;
@@ -23782,10 +23832,10 @@ var register = /*#__PURE__*/Object.freeze({
23782
23832
  });
23783
23833
 
23784
23834
  var Page$9 = function (_a) {
23785
- var page = _a.page, propValuesStr = _a.propValuesStr;
23835
+ var page = _a.page, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23786
23836
  var router$1 = router.useRouter();
23787
23837
  var propValues = IkasPageDataProvider.initPropValues(propValuesStr, router$1);
23788
- return React.createElement(IkasPage, { page: page, propValues: propValues });
23838
+ return (React.createElement(IkasPage, { settingsStr: settingsStr, page: page, propValues: propValues }));
23789
23839
  };
23790
23840
  var getStaticProps$8 = function (context) { return __awaiter(void 0, void 0, void 0, function () {
23791
23841
  var theme, provider;
@@ -23810,10 +23860,10 @@ var forgotPassword = /*#__PURE__*/Object.freeze({
23810
23860
  });
23811
23861
 
23812
23862
  var Page$a = function (_a) {
23813
- var page = _a.page, propValuesStr = _a.propValuesStr;
23863
+ var page = _a.page, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23814
23864
  var router$1 = router.useRouter();
23815
23865
  var propValues = IkasPageDataProvider.initPropValues(propValuesStr, router$1);
23816
- return React.createElement(IkasPage, { page: page, propValues: propValues });
23866
+ return (React.createElement(IkasPage, { settingsStr: settingsStr, page: page, propValues: propValues }));
23817
23867
  };
23818
23868
  var getStaticProps$9 = function (context) { return __awaiter(void 0, void 0, void 0, function () {
23819
23869
  var theme, provider;
@@ -23838,10 +23888,10 @@ var recoverPassword = /*#__PURE__*/Object.freeze({
23838
23888
  });
23839
23889
 
23840
23890
  var Page$b = function (_a) {
23841
- var page = _a.page, propValuesStr = _a.propValuesStr;
23891
+ var page = _a.page, propValuesStr = _a.propValuesStr, settingsStr = _a.settingsStr;
23842
23892
  var router$1 = router.useRouter();
23843
23893
  var propValues = IkasPageDataProvider.initPropValues(propValuesStr, router$1);
23844
- return React.createElement(IkasPage, { page: page, propValues: propValues });
23894
+ return (React.createElement(IkasPage, { settingsStr: settingsStr, page: page, propValues: propValues }));
23845
23895
  };
23846
23896
  var getStaticProps$a = function (context) { return __awaiter(void 0, void 0, void 0, function () {
23847
23897
  var theme, provider;
@@ -23962,6 +24012,7 @@ exports.IkasThemeComponent = IkasThemeComponent;
23962
24012
  exports.IkasThemeComponentProp = IkasThemeComponentProp;
23963
24013
  exports.IkasThemePage = IkasThemePage;
23964
24014
  exports.IkasThemePageComponent = IkasThemePageComponent;
24015
+ exports.IkasThemeSettings = IkasThemeSettings;
23965
24016
  exports.IkasVariantType = IkasVariantType;
23966
24017
  exports.IkasVariantTypeAPI = IkasVariantTypeAPI;
23967
24018
  exports.IkasVariantValue = IkasVariantValue;
@@ -10,3 +10,4 @@ export { IkasProductListPropValue } from "./page/component/prop-value/product-li
10
10
  export { IkasProductDetailPropValue } from "./page/component/prop-value/product-detail";
11
11
  export { IkasCategoryPropValue } from "./page/component/prop-value/category";
12
12
  export { IkasCategoryListPropValue } from "./page/component/prop-value/category-list";
13
+ export { IkasThemeSettings } from "./settings/index";
@@ -0,0 +1,5 @@
1
+ import { IkasThemeColor } from "./prop/index";
2
+ export declare class IkasThemeSettings {
3
+ colors: IkasThemeColor[];
4
+ constructor(data?: Partial<IkasThemeSettings>);
5
+ }
@@ -0,0 +1,7 @@
1
+ export declare class IkasThemeColor {
2
+ id: string;
3
+ displayName: string;
4
+ key: string;
5
+ color: string;
6
+ constructor(data: Partial<IkasThemeColor>);
7
+ }
@@ -1,9 +1,11 @@
1
1
  import { IkasThemeComponent } from "./component/index";
2
2
  import { IkasThemePage } from "./page/index";
3
+ import { IkasThemeSettings } from "./settings/index";
3
4
  export declare class IkasTheme {
4
5
  name: string;
5
6
  components: IkasThemeComponent[];
6
7
  pages: IkasThemePage[];
8
+ settings: IkasThemeSettings;
7
9
  constructor(data?: Partial<IkasTheme>);
8
10
  get headerComponent(): IkasThemeComponent | undefined;
9
11
  get footerComponent(): IkasThemeComponent | undefined;
@@ -8,6 +8,7 @@ declare type Props = {
8
8
  pageSpecificDataStr: string;
9
9
  page: IkasThemePage;
10
10
  queryParams?: ParsedUrlQuery;
11
+ settingsStr: string;
11
12
  };
12
13
  declare const _default: React.FunctionComponent<Props>;
13
14
  export default _default;
@@ -4,6 +4,7 @@ import { IkasThemePage } from "../../models/index";
4
4
  declare type Props = {
5
5
  propValuesStr: string;
6
6
  page: IkasThemePage;
7
+ settingsStr: string;
7
8
  };
8
9
  declare const Page: React.FC<Props>;
9
10
  export default Page;
@@ -4,6 +4,7 @@ import { IkasThemePage } from "../../models/index";
4
4
  declare type Props = {
5
5
  propValuesStr: string;
6
6
  page: IkasThemePage;
7
+ settingsStr: string;
7
8
  };
8
9
  declare const Page: React.FC<Props>;
9
10
  export default Page;
@@ -4,6 +4,7 @@ import { IkasThemePage } from "../../models/index";
4
4
  declare type Props = {
5
5
  propValuesStr: string;
6
6
  page: IkasThemePage;
7
+ settingsStr: string;
7
8
  };
8
9
  declare const Page: React.FC<Props>;
9
10
  export default Page;
@@ -4,6 +4,7 @@ import { IkasThemePage } from "../../models/index";
4
4
  declare type Props = {
5
5
  propValuesStr: string;
6
6
  page: IkasThemePage;
7
+ settingsStr: string;
7
8
  };
8
9
  declare const Page: React.FC<Props>;
9
10
  export default Page;
@@ -4,6 +4,7 @@ import { IkasThemePage } from "../../../models/index";
4
4
  declare type Props = {
5
5
  propValuesStr: string;
6
6
  page: IkasThemePage;
7
+ settingsStr: string;
7
8
  };
8
9
  declare const Page: React.FC<Props>;
9
10
  export default Page;
@@ -4,6 +4,7 @@ import { IkasThemePage } from "../../../models/index";
4
4
  declare type Props = {
5
5
  propValuesStr: string;
6
6
  page: IkasThemePage;
7
+ settingsStr: string;
7
8
  };
8
9
  declare const Page: React.FC<Props>;
9
10
  export default Page;
@@ -4,6 +4,7 @@ import { IkasThemePage } from "../../models/index";
4
4
  declare type Props = {
5
5
  propValuesStr: string;
6
6
  page: IkasThemePage;
7
+ settingsStr: string;
7
8
  };
8
9
  declare const Page: React.FC<Props>;
9
10
  export default Page;
@@ -4,6 +4,7 @@ import { IkasThemePage } from "../../models/index";
4
4
  declare type Props = {
5
5
  propValuesStr: string;
6
6
  page: IkasThemePage;
7
+ settingsStr: string;
7
8
  };
8
9
  declare const Page: React.FC<Props>;
9
10
  export default Page;
@@ -4,6 +4,7 @@ import { IkasThemePage } from "../models/index";
4
4
  declare type Props = {
5
5
  propValuesStr: string;
6
6
  page: IkasThemePage;
7
+ settingsStr: string;
7
8
  };
8
9
  declare const Page: React.FC<Props>;
9
10
  export default Page;
@@ -4,6 +4,7 @@ import { IkasThemePage } from "../models/index";
4
4
  declare type Props = {
5
5
  propValuesStr: string;
6
6
  page: IkasThemePage;
7
+ settingsStr: string;
7
8
  };
8
9
  declare const Page: React.FC<Props>;
9
10
  export default Page;
@@ -4,6 +4,7 @@ import { IkasThemePage } from "../../models/index";
4
4
  declare type Props = {
5
5
  propValuesStr: string;
6
6
  page: IkasThemePage;
7
+ settingsStr: string;
7
8
  };
8
9
  declare const Page: React.FC<Props>;
9
10
  export default Page;
@@ -12,6 +12,7 @@ export declare class IkasPageDataProvider {
12
12
  props: {
13
13
  propValuesStr: string;
14
14
  page: IkasThemePage | null;
15
+ settingsStr: string;
15
16
  };
16
17
  };
17
18
  get isStaticPage(): boolean | null | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ikas/storefront",
3
- "version": "0.0.38",
3
+ "version": "0.0.40",
4
4
  "main": "./build/index.js",
5
5
  "module": "./build/index.es.js",
6
6
  "author": "Umut Ozan Yıldırım",