@knovator/pagecreator-admin 0.9.5 → 1.1.0

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/index.cjs CHANGED
@@ -1705,108 +1705,96 @@ const TRANSLATION_PAIRS_COMMON = {
1705
1705
  pleaseType: 'Please type',
1706
1706
  toProceedOrCancel: 'to processed or close this modal to cancel.',
1707
1707
  confirm: 'Confirm',
1708
- nextContent: 'Next',
1709
- previousContent: 'Previous',
1710
- page: 'Page',
1711
1708
  next: 'Next',
1709
+ previous: 'Previous',
1710
+ page: 'Page',
1712
1711
  indicatesRequired: 'Indicates fields are required',
1713
- addButtonText: 'Add',
1714
- cancelButtonText: 'Cancel',
1715
- yesButtonText: 'Yes',
1716
- deleteButtonText: 'Delete',
1717
- createButtonText: 'Create',
1718
- updateButtonText: 'Update',
1712
+ cancel: 'Cancel',
1713
+ yes: 'Yes',
1714
+ delete: 'Delete',
1715
+ create: 'Create',
1716
+ update: 'Update',
1719
1717
  showing: 'Showing',
1718
+ add: 'Add',
1720
1719
  of: 'of',
1721
- typeHerePlaceholder: 'Type Here'
1720
+ typeHerePlaceholder: 'Type Here',
1721
+ code: 'Code',
1722
+ codePlaceholder: 'Enter code',
1723
+ codeRequired: 'Code is required',
1724
+ name: 'Name',
1725
+ namePlaceholder: 'Enter name',
1726
+ nameRequired: 'Name is required',
1727
+ title: 'Title',
1728
+ titlePlaceholder: 'Enter title',
1729
+ titleRequired: 'Title is required',
1730
+ active: 'Active',
1731
+ actions: 'Actions'
1722
1732
  };
1723
1733
  const TRANSLATION_PAIRS_WIDGET = {
1724
- 'widget.name': 'Name',
1725
- 'widget.namePlaceholder': 'Enter name',
1726
- 'widget.nameRequired': 'Name is required',
1727
- 'widget.widgetTitle': 'Widget Title',
1728
- 'widget.widgetTitlePlaceholder': 'Enter Widget Title',
1729
- 'widget.widgetTitleRequired': 'Widget Title is required',
1730
- 'widget.itemsType': 'Items Type',
1731
- 'widget.itemsTypePlaceholder': 'Select Items Type',
1732
- 'widget.widgetType': 'Widget Type',
1733
- 'widget.widgetTypeRequired': 'Widget Type is required',
1734
- 'widget.color': 'Color',
1735
- 'widget.code': 'Code',
1736
- 'widget.codePlaceholder': 'Enter code',
1737
- 'widget.codeRequired': 'Code is required',
1738
- 'widget.webPerRow': 'Web Per Row',
1739
- 'widget.webPerRowPlaceholder': 'Enter web per row',
1740
- 'widget.mobilePerRow': 'Mobile Per Row',
1741
- 'widget.mobilePerRowPlaceholder': 'Enter mobile per row',
1742
- 'widget.tabletPerRow': 'Tablet Per Row',
1743
- 'widget.tabletPerRowPlaceholder': 'Enter tablet per row',
1744
- 'widget.mobileItems': 'Mobile Items',
1745
- 'widget.webItems': 'Web Items',
1746
- 'widget.searchPlaceholder': 'Search Widgets...',
1747
- 'widget.autoPlay': 'Auto Play',
1748
- 'widget.tableName': 'Name',
1749
- 'widget.tableCode': 'Code',
1750
- 'widget.tableActive': 'Active',
1751
- 'widget.addWidgetTitle': 'Add Widget',
1752
- 'widget.updateWidgetTitle': 'Update Widget',
1753
- 'widget.webPerRowRequired': 'Web Per Row is required',
1754
- 'widget.tabletPerRowRequired': 'Tablet Per Row is required',
1755
- 'widget.mobilePerRowRequired': 'Mobile Per Row is required',
1756
- 'widget.tabDeleteTitle': 'Are you sure you want to delete this tab?',
1757
- 'widget.widgetTitleInfo': 'HTML is supported',
1758
- 'widget.minPerRow': 'Value must be greater than zero',
1759
- 'widget.actionsLabel': 'Actions',
1760
- 'widget.tabNameRequired': 'Tab Name is required'
1761
- };
1762
- const TRANSLATION_PAIRS_ITEM = {
1763
- 'item.title': 'Title',
1764
- 'item.titlePlaceholder': 'Enter title',
1765
- 'item.subtitle': 'Subtitle',
1766
- 'item.subTitlePlaceholder': 'Enter Subtitle',
1767
- 'item.altText': 'Alt Text',
1768
- 'item.altTextPlaceholder': 'Enter alt text',
1769
- 'item.link': 'Link',
1770
- 'item.linkPlaceholder': 'Enter link',
1771
- 'item.image': 'Image',
1772
- 'item.uploadFile': 'Upload File',
1773
- 'item.dragDrop': 'or drag and drop',
1774
- 'item.allowedFormat': 'PNG, JPG, SVG up to 2 MB',
1775
- 'item.srcset': 'Srcset',
1776
- 'item.screenSizeRequired': 'ScreenSize is required',
1777
- 'item.widthRequired': 'Width is required',
1778
- 'item.heightRequired': 'Height is required',
1779
- 'item.minScreenSize': 'ScreenSize should be greater than 0',
1780
- 'item.minWidth': 'Width should be greater than 0',
1781
- 'item.minHeight': 'Height should be greater than 0',
1782
- 'item.titleRequired': 'Title is required',
1783
- 'item.deleteTitle': 'Are you sure you want to delete this item?'
1734
+ itemsType: 'Items Type',
1735
+ itemsTypePlaceholder: 'Select Items Type',
1736
+ widgetType: 'Widget Type',
1737
+ widgetTypeRequired: 'Widget Type is required',
1738
+ color: 'Color',
1739
+ webPerRow: 'Web Per Row',
1740
+ webPerRowPlaceholder: 'Enter web per row',
1741
+ mobilePerRow: 'Mobile Per Row',
1742
+ mobilePerRowPlaceholder: 'Enter mobile per row',
1743
+ tabletPerRow: 'Tablet Per Row',
1744
+ tabletPerRowPlaceholder: 'Enter tablet per row',
1745
+ mobileItems: 'Mobile Items',
1746
+ webItems: 'Web Items',
1747
+ searchPlaceholder: 'Search Widgets...',
1748
+ autoPlay: 'Auto Play',
1749
+ addWidgetTitle: 'Add Widget',
1750
+ updateWidgetTitle: 'Update Widget',
1751
+ webPerRowRequired: 'Web Per Row is required',
1752
+ tabletPerRowRequired: 'Tablet Per Row is required',
1753
+ mobilePerRowRequired: 'Mobile Per Row is required',
1754
+ tabDeleteTitle: 'Are you sure you want to delete this tab?',
1755
+ widgetTitleInfo: 'HTML is supported',
1756
+ minPerRow: 'Value must be greater than zero',
1757
+ // actionsLabel': 'Actions', -> 'actions'
1758
+ tabNameRequired: 'Tab Name is required',
1759
+ subtitle: 'Subtitle',
1760
+ subTitlePlaceholder: 'Enter Subtitle',
1761
+ altText: 'Alt Text',
1762
+ altTextPlaceholder: 'Enter alt text',
1763
+ link: 'Link',
1764
+ linkPlaceholder: 'Enter link',
1765
+ image: 'Image',
1766
+ uploadFile: 'Upload File',
1767
+ dragDrop: 'or drag and drop',
1768
+ allowedFormat: 'PNG, JPG, SVG up to 2 MB',
1769
+ srcset: 'Srcset',
1770
+ screenSizeRequired: 'ScreenSize is required',
1771
+ widthRequired: 'Width is required',
1772
+ heightRequired: 'Height is required',
1773
+ minScreenSize: 'ScreenSize should be greater than 0',
1774
+ minWidth: 'Width should be greater than 0',
1775
+ minHeight: 'Height should be greater than 0',
1776
+ deleteTitle: 'Are you sure you want to delete this item?',
1777
+ textContent: 'Text',
1778
+ textContentRequired: 'Text is required',
1779
+ textContentInfo: 'HTML is supported',
1780
+ textContentPlaceholder: 'Enter text'
1784
1781
  };
1785
1782
  const TRANSLATION_PAIRS_PAGE = {
1786
- 'page.name': 'Name',
1787
- 'page.namePlaceholder': 'Enter name',
1788
- 'page.nameRequired': 'Name is required',
1789
- 'page.code': 'Code',
1790
- 'page.codePlaceholder': 'Enter code',
1791
- 'page.codeRequired': 'Code is required',
1792
- 'page.slug': 'Slug',
1793
- 'page.slugPlaceholder': 'Enter Slug',
1794
- 'page.slugRequired': 'Slug is required',
1795
- 'page.addPageTitle': 'Add Page',
1796
- 'page.updatePageTitle': 'Update Page',
1797
- 'page.searchPages': 'Search Pages...',
1798
- 'page.tableName': 'Name',
1799
- 'page.tableCode': 'Code',
1800
- 'page.widgets': 'Widgets',
1801
- 'page.actionsLabel': 'Actions'
1802
- };
1803
-
1804
- /* eslint-disable @typescript-eslint/no-empty-function */
1783
+ widgets: 'Widgets',
1784
+ slug: 'Slug',
1785
+ slugPlaceholder: 'Enter Slug',
1786
+ slugRequired: 'Slug is required',
1787
+ addPage: 'Add Page',
1788
+ updatePage: 'Update Page',
1789
+ searchPages: 'Search Pages...'
1790
+ };
1791
+
1805
1792
  const ProviderContext = /*#__PURE__*/React.createContext(null);
1806
1793
  const Provider = ({
1807
1794
  children,
1808
1795
  baseUrl,
1809
1796
  token,
1797
+ translations,
1810
1798
  onError: _onError = () => {},
1811
1799
  onSuccess: _onSuccess = () => {},
1812
1800
  onLogout: _onLogout = () => {},
@@ -1823,7 +1811,8 @@ const Provider = ({
1823
1811
  onLogout: _onLogout,
1824
1812
  switchClass: _switchClass,
1825
1813
  widgetRoutesPrefix: _widgetRoutesPrefix,
1826
- pageRoutesPrefix: _pageRoutesPrefix
1814
+ pageRoutesPrefix: _pageRoutesPrefix,
1815
+ commonTranslations: Object.assign(Object.assign({}, TRANSLATION_PAIRS_COMMON), translations || {})
1827
1816
  }
1828
1817
  }, children);
1829
1818
  };
@@ -2545,12 +2534,6 @@ const isEmpty = data => {
2545
2534
  if ([undefined, null, ''].includes(data)) return true;
2546
2535
  return false;
2547
2536
  };
2548
- function createTranslation(t, obj) {
2549
- return function (key) {
2550
- if (typeof t === 'function') return t(key);
2551
- return obj[key] || '';
2552
- };
2553
- }
2554
2537
  const build_path = (...args) => {
2555
2538
  return args.map((part, i) => {
2556
2539
  if (i === 0) {
@@ -3027,8 +3010,6 @@ const usePage = ({
3027
3010
 
3028
3011
  const PageContext = /*#__PURE__*/React.createContext(null);
3029
3012
  const PageContextProvider = ({
3030
- t: _t = key => Object.assign({}, TRANSLATION_PAIRS_COMMON)[key],
3031
- // Form
3032
3013
  searchText: _searchText = '',
3033
3014
  changeSearch: _changeSearch = () => {},
3034
3015
  list: _list = [],
@@ -3059,12 +3040,12 @@ const PageContextProvider = ({
3059
3040
  data: _data = [],
3060
3041
  canDelete: _canDelete = false,
3061
3042
  loader: _loader = undefined,
3043
+ pageTranslations,
3062
3044
  // other
3063
3045
  children
3064
3046
  }) => {
3065
3047
  return /*#__PURE__*/React__default["default"].createElement(PageContext.Provider, {
3066
3048
  value: {
3067
- t: _t,
3068
3049
  // Form
3069
3050
  list: _list,
3070
3051
  searchText: _searchText,
@@ -3095,7 +3076,8 @@ const PageContextProvider = ({
3095
3076
  columns: _columns,
3096
3077
  data: _data,
3097
3078
  canDelete: _canDelete,
3098
- loader: _loader
3079
+ loader: _loader,
3080
+ pageTranslations: Object.assign(Object.assign({}, TRANSLATION_PAIRS_PAGE), pageTranslations || {})
3099
3081
  }
3100
3082
  }, children);
3101
3083
  };
@@ -3216,10 +3198,12 @@ const PageTable = ({
3216
3198
  extraActions,
3217
3199
  extraColumns
3218
3200
  }) => {
3201
+ const {
3202
+ commonTranslations
3203
+ } = useProviderState();
3219
3204
  const {
3220
3205
  list,
3221
3206
  onChangeFormState,
3222
- t,
3223
3207
  loading,
3224
3208
  loader,
3225
3209
  canUpdate,
@@ -3232,14 +3216,14 @@ const PageTable = ({
3232
3216
  loader: loader,
3233
3217
  loading: loading,
3234
3218
  dataKeys: [{
3235
- label: t('page.tableName'),
3219
+ label: commonTranslations.name,
3236
3220
  dataKey: 'name',
3237
3221
  highlight: true
3238
3222
  }, {
3239
- label: t('page.tableCode'),
3223
+ label: commonTranslations.code,
3240
3224
  dataKey: 'code'
3241
3225
  }],
3242
- actionsLabel: t('page.actionsLabel'),
3226
+ actionsLabel: commonTranslations.actions,
3243
3227
  actions: {
3244
3228
  edit: canUpdate ? onUpdateClick : undefined,
3245
3229
  delete: canDelete ? onDeleteClick : undefined
@@ -3501,7 +3485,12 @@ const SrcSet = ({
3501
3485
  errors,
3502
3486
  name,
3503
3487
  disabled: _disabled2 = false,
3504
- t
3488
+ screenSizeRequired,
3489
+ heightRequired,
3490
+ minHeight,
3491
+ minScreenSize,
3492
+ minWidth,
3493
+ widthRequired
3505
3494
  }) => {
3506
3495
  const {
3507
3496
  fields,
@@ -3531,8 +3520,8 @@ const SrcSet = ({
3531
3520
  size: _size,
3532
3521
  placeholder: "Screen Size",
3533
3522
  rest: register(`${name}.${index}.screenSize`, {
3534
- required: t('item.screenSizeRequired'),
3535
- validate: value => Number(value) <= 0 ? t('item.minScreenSize') : true
3523
+ required: screenSizeRequired,
3524
+ validate: value => Number(value) <= 0 ? minScreenSize : true
3536
3525
  }),
3537
3526
  disabled: _disabled2
3538
3527
  }), /*#__PURE__*/React__default["default"].createElement("span", {
@@ -3541,8 +3530,8 @@ const SrcSet = ({
3541
3530
  error: (_f = (_e = (_d = errors === null || errors === void 0 ? void 0 : errors[index]) === null || _d === void 0 ? void 0 : _d['width']) === null || _e === void 0 ? void 0 : _e.message) === null || _f === void 0 ? void 0 : _f.toString(),
3542
3531
  index: index,
3543
3532
  rest: register(`${name}.${index}.width`, {
3544
- required: t('item.widthRequired'),
3545
- validate: value => Number(value) <= 0 ? t('item.minWidth') : true
3533
+ required: widthRequired,
3534
+ validate: value => Number(value) <= 0 ? minWidth : true
3546
3535
  }),
3547
3536
  className: className,
3548
3537
  size: _size,
@@ -3554,8 +3543,8 @@ const SrcSet = ({
3554
3543
  error: (_j = (_h = (_g = errors === null || errors === void 0 ? void 0 : errors[index]) === null || _g === void 0 ? void 0 : _g['height']) === null || _h === void 0 ? void 0 : _h.message) === null || _j === void 0 ? void 0 : _j.toString(),
3555
3544
  index: index,
3556
3545
  rest: register(`${name}.${index}.height`, {
3557
- required: t('item.heightRequired'),
3558
- validate: value => Number(value) <= 0 ? t('item.minHeight') : true
3546
+ required: heightRequired,
3547
+ validate: value => Number(value) <= 0 ? minHeight : true
3559
3548
  }),
3560
3549
  className: className,
3561
3550
  size: _size,
@@ -3592,7 +3581,7 @@ var Input = Object.assign(Input$1, {
3592
3581
 
3593
3582
  const PageSearch = () => {
3594
3583
  const {
3595
- t,
3584
+ pageTranslations,
3596
3585
  canList,
3597
3586
  changeSearch,
3598
3587
  setCurrentPage
@@ -3612,7 +3601,7 @@ const PageSearch = () => {
3612
3601
  value: search,
3613
3602
  disabled: !canList,
3614
3603
  onChange: e => onChangeSearch(e.target.value),
3615
- placeholder: t('page.searchPages')
3604
+ placeholder: pageTranslations.searchPages
3616
3605
  });
3617
3606
  };
3618
3607
 
@@ -3930,7 +3919,9 @@ const PageForm = ({
3930
3919
  formRef
3931
3920
  }) => {
3932
3921
  const {
3933
- t,
3922
+ commonTranslations
3923
+ } = useProviderState();
3924
+ const {
3934
3925
  data,
3935
3926
  formState,
3936
3927
  onPageFormSubmit,
@@ -3940,7 +3931,8 @@ const PageForm = ({
3940
3931
  getWidgets,
3941
3932
  onChangeWidgetSequence,
3942
3933
  canAdd,
3943
- canUpdate
3934
+ canUpdate,
3935
+ pageTranslations
3944
3936
  } = usePageState();
3945
3937
  const {
3946
3938
  register,
@@ -4011,39 +4003,39 @@ const PageForm = ({
4011
4003
  };
4012
4004
  // Schemas
4013
4005
  const pageFormSchema = [{
4014
- label: `${t('page.name')}`,
4006
+ label: commonTranslations.name,
4015
4007
  required: true,
4016
4008
  accessor: 'name',
4017
4009
  type: 'text',
4018
- placeholder: t('page.namePlaceholder'),
4010
+ placeholder: commonTranslations.namePlaceholder,
4019
4011
  onInput: handleCapitalize,
4020
4012
  validations: {
4021
- required: t('page.nameRequired')
4013
+ required: commonTranslations.nameRequired
4022
4014
  }
4023
4015
  }, {
4024
- label: `${t('page.code')}`,
4016
+ label: commonTranslations.code,
4025
4017
  accessor: 'code',
4026
4018
  required: true,
4027
4019
  type: 'text',
4028
4020
  onInput: handleCode,
4029
4021
  editable: false,
4030
- placeholder: t('page.codePlaceholder'),
4022
+ placeholder: commonTranslations.codePlaceholder,
4031
4023
  validations: {
4032
- required: t('page.codeRequired')
4024
+ required: commonTranslations.codeRequired
4033
4025
  }
4034
4026
  }, {
4035
- label: `${t('page.slug')}`,
4027
+ label: pageTranslations.slug,
4036
4028
  accessor: 'slug',
4037
4029
  required: true,
4038
4030
  type: 'text',
4039
4031
  onInput: handleSlug,
4040
4032
  editable: false,
4041
- placeholder: t('page.slugPlaceholder'),
4033
+ placeholder: pageTranslations.slugPlaceholder,
4042
4034
  validations: {
4043
- required: t('page.slugRequired')
4035
+ required: pageTranslations.slugRequired
4044
4036
  }
4045
4037
  }, {
4046
- label: t('page.widgets'),
4038
+ label: pageTranslations.widgets,
4047
4039
  accessor: 'widgets',
4048
4040
  type: 'ReactSelect',
4049
4041
  options: widgets,
@@ -4098,15 +4090,17 @@ const Button = ({
4098
4090
  };
4099
4091
 
4100
4092
  const AddButton$1 = () => {
4093
+ const {
4094
+ commonTranslations
4095
+ } = useProviderState();
4101
4096
  const {
4102
4097
  onChangeFormState,
4103
- t,
4104
4098
  canAdd
4105
4099
  } = usePageState();
4106
4100
  return /*#__PURE__*/React__default["default"].createElement(Button, {
4107
4101
  disabled: !canAdd,
4108
4102
  onClick: () => onChangeFormState('ADD')
4109
- }, t('addButtonText') || t('common:addButtonText'));
4103
+ }, commonTranslations.add);
4110
4104
  };
4111
4105
 
4112
4106
  const ChevronLeft = ({
@@ -4210,7 +4204,9 @@ const Pagination = ({
4210
4204
 
4211
4205
  const PagePagination = () => {
4212
4206
  const {
4213
- t,
4207
+ commonTranslations
4208
+ } = useProviderState();
4209
+ const {
4214
4210
  totalPages,
4215
4211
  totalRecords,
4216
4212
  currentPage,
@@ -4218,11 +4214,11 @@ const PagePagination = () => {
4218
4214
  setCurrentPage
4219
4215
  } = usePageState();
4220
4216
  return /*#__PURE__*/React__default["default"].createElement(Pagination, {
4221
- ofText: t('of') || t('common:of'),
4222
- pageText: t('confirm') || t('common:confirm'),
4223
- showingText: t('showing') || t('common:showing'),
4224
- nextContent: t('nextContent') || t('common:nextContent'),
4225
- previousContent: t('previousContent') || t('common:previousContent'),
4217
+ ofText: commonTranslations.of,
4218
+ pageText: commonTranslations.confirm,
4219
+ showingText: commonTranslations.showing,
4220
+ nextContent: commonTranslations.next,
4221
+ previousContent: commonTranslations.previous,
4226
4222
  totalPages: totalPages,
4227
4223
  totalRecords: totalRecords,
4228
4224
  currentPage: currentPage,
@@ -4231,6 +4227,65 @@ const PagePagination = () => {
4231
4227
  });
4232
4228
  };
4233
4229
 
4230
+ const Drawer = ({
4231
+ children,
4232
+ open,
4233
+ onClose,
4234
+ title,
4235
+ footerContent
4236
+ }) => {
4237
+ const nodeRef = React.useRef(null);
4238
+ return /*#__PURE__*/React__default["default"].createElement(CSSTransition__default["default"], {
4239
+ ref: nodeRef,
4240
+ in: open,
4241
+ timeout: {
4242
+ enter: 250,
4243
+ exit: 350
4244
+ },
4245
+ classNames: "khb_drawer",
4246
+ mountOnEnter: true,
4247
+ unmountOnExit: true
4248
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
4249
+ className: "khb_drawer-wrapper-1",
4250
+ "aria-labelledby": "modal",
4251
+ role: "dialog",
4252
+ "aria-modal": "true",
4253
+ ref: nodeRef,
4254
+ "data-testid": "drawer"
4255
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
4256
+ className: "khb_drawer-wrapper-2"
4257
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
4258
+ className: "khb_drawer-backdrop",
4259
+ role: "button",
4260
+ onClick: onClose,
4261
+ onKeyDown: onClose,
4262
+ tabIndex: 0
4263
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
4264
+ className: "khb_drawer-container-1"
4265
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
4266
+ className: "khb_drawer-container-2"
4267
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
4268
+ className: "khb_drawer-close-section"
4269
+ }, /*#__PURE__*/React__default["default"].createElement("button", {
4270
+ type: "button",
4271
+ className: "khb_drawer-close-btn",
4272
+ onClick: onClose,
4273
+ "data-testid": "drawer-close"
4274
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
4275
+ className: "khb_sr-only"
4276
+ }, "Close panel"), /*#__PURE__*/React__default["default"].createElement(Close, null))), /*#__PURE__*/React__default["default"].createElement("div", {
4277
+ className: "khb_drawer-main"
4278
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
4279
+ className: "khb_drawer-header"
4280
+ }, /*#__PURE__*/React__default["default"].createElement("p", {
4281
+ className: "khb_drawer-header-title"
4282
+ }, title)), /*#__PURE__*/React__default["default"].createElement("div", {
4283
+ className: "khb_darwer-content"
4284
+ }, children), footerContent && /*#__PURE__*/React__default["default"].createElement("div", {
4285
+ className: "khb_drawer-footer"
4286
+ }, footerContent)))))));
4287
+ };
4288
+
4234
4289
  const Modal = ({
4235
4290
  open,
4236
4291
  onClose,
@@ -4327,65 +4382,6 @@ const DeleteModal = ({
4327
4382
  }, confirm || TRANSLATION_PAIRS_COMMON.confirm)))) : null;
4328
4383
  };
4329
4384
 
4330
- const Drawer = ({
4331
- children,
4332
- open,
4333
- onClose,
4334
- title,
4335
- footerContent
4336
- }) => {
4337
- const nodeRef = React.useRef(null);
4338
- return /*#__PURE__*/React__default["default"].createElement(CSSTransition__default["default"], {
4339
- ref: nodeRef,
4340
- in: open,
4341
- timeout: {
4342
- enter: 250,
4343
- exit: 350
4344
- },
4345
- classNames: "khb_drawer",
4346
- mountOnEnter: true,
4347
- unmountOnExit: true
4348
- }, /*#__PURE__*/React__default["default"].createElement("div", {
4349
- className: "khb_drawer-wrapper-1",
4350
- "aria-labelledby": "modal",
4351
- role: "dialog",
4352
- "aria-modal": "true",
4353
- ref: nodeRef,
4354
- "data-testid": "drawer"
4355
- }, /*#__PURE__*/React__default["default"].createElement("div", {
4356
- className: "khb_drawer-wrapper-2"
4357
- }, /*#__PURE__*/React__default["default"].createElement("div", {
4358
- className: "khb_drawer-backdrop",
4359
- role: "button",
4360
- onClick: onClose,
4361
- onKeyDown: onClose,
4362
- tabIndex: 0
4363
- }), /*#__PURE__*/React__default["default"].createElement("div", {
4364
- className: "khb_drawer-container-1"
4365
- }, /*#__PURE__*/React__default["default"].createElement("div", {
4366
- className: "khb_drawer-container-2"
4367
- }, /*#__PURE__*/React__default["default"].createElement("div", {
4368
- className: "khb_drawer-close-section"
4369
- }, /*#__PURE__*/React__default["default"].createElement("button", {
4370
- type: "button",
4371
- className: "khb_drawer-close-btn",
4372
- onClick: onClose,
4373
- "data-testid": "drawer-close"
4374
- }, /*#__PURE__*/React__default["default"].createElement("span", {
4375
- className: "khb_sr-only"
4376
- }, "Close panel"), /*#__PURE__*/React__default["default"].createElement(Close, null))), /*#__PURE__*/React__default["default"].createElement("div", {
4377
- className: "khb_drawer-main"
4378
- }, /*#__PURE__*/React__default["default"].createElement("div", {
4379
- className: "khb_drawer-header"
4380
- }, /*#__PURE__*/React__default["default"].createElement("p", {
4381
- className: "khb_drawer-header-title"
4382
- }, title)), /*#__PURE__*/React__default["default"].createElement("div", {
4383
- className: "khb_darwer-content"
4384
- }, children), footerContent && /*#__PURE__*/React__default["default"].createElement("div", {
4385
- className: "khb_drawer-footer"
4386
- }, footerContent)))))));
4387
- };
4388
-
4389
4385
  const FormActions = ({
4390
4386
  loading: _loading = false,
4391
4387
  primaryLabel: _primaryLabel = 'Submit',
@@ -4407,14 +4403,14 @@ const PageFormActions = ({
4407
4403
  formRef
4408
4404
  }) => {
4409
4405
  const {
4410
- onError
4406
+ onError,
4407
+ commonTranslations
4411
4408
  } = useProviderState();
4412
4409
  const {
4413
4410
  closeForm,
4414
4411
  loading,
4415
4412
  canAdd,
4416
4413
  canUpdate,
4417
- t,
4418
4414
  formState
4419
4415
  } = usePageState();
4420
4416
  const onSubmitClick = e => {
@@ -4434,10 +4430,10 @@ const PageFormActions = ({
4434
4430
  if (!canAdd && !canUpdate) return null;
4435
4431
  return /*#__PURE__*/React__default["default"].createElement(FormActions, {
4436
4432
  loading: loading,
4437
- primaryLabel: formState === 'ADD' ? t('createButtonText') || t('common:createButtonText') : t('updateButtonText') || t('common:updateButtonText'),
4433
+ primaryLabel: formState === 'ADD' ? commonTranslations.create : commonTranslations.update,
4438
4434
  onPrimaryButtonClick: onSubmitClick,
4439
4435
  onSecondaryButtonClick: closeForm,
4440
- secondaryLabel: t('cancelButtonText') || t('common:cancelButtonText')
4436
+ secondaryLabel: commonTranslations.cancel
4441
4437
  });
4442
4438
  };
4443
4439
 
@@ -4456,8 +4452,8 @@ const PageFormWrapper = ({
4456
4452
  };
4457
4453
 
4458
4454
  const Page = ({
4459
- t,
4460
4455
  loader,
4456
+ translations,
4461
4457
  explicitForm: _explicitForm = false,
4462
4458
  children,
4463
4459
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -4465,9 +4461,12 @@ const Page = ({
4465
4461
  permissions: _permissions = {},
4466
4462
  preConfirmDelete
4467
4463
  }) => {
4464
+ const {
4465
+ commonTranslations
4466
+ } = useProviderState();
4468
4467
  const derivedPermissions = Object.assign(DEFAULT_PERMISSIONS, _permissions);
4469
4468
  const formRef = React.useRef(null);
4470
- const derivedT = createTranslation(t, Object.assign(Object.assign({}, TRANSLATION_PAIRS_COMMON), TRANSLATION_PAIRS_PAGE));
4469
+ const combinedTranslations = Object.assign(Object.assign({}, TRANSLATION_PAIRS_PAGE), translations);
4471
4470
  const {
4472
4471
  list,
4473
4472
  widgets,
@@ -4496,7 +4495,6 @@ const Page = ({
4496
4495
  canList: derivedPermissions.list
4497
4496
  });
4498
4497
  return /*#__PURE__*/React__default["default"].createElement(PageContextProvider, {
4499
- t: derivedT,
4500
4498
  loader: loader,
4501
4499
  list: list,
4502
4500
  searchText: searchText,
@@ -4522,13 +4520,14 @@ const Page = ({
4522
4520
  canAdd: derivedPermissions.add,
4523
4521
  canDelete: derivedPermissions.delete,
4524
4522
  canUpdate: derivedPermissions.update,
4525
- canList: derivedPermissions.list
4523
+ canList: derivedPermissions.list,
4524
+ pageTranslations: translations
4526
4525
  }, children ? children : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(AddButton$1, null), /*#__PURE__*/React__default["default"].createElement(PageSearch, null), /*#__PURE__*/React__default["default"].createElement("div", {
4527
4526
  className: "khb_table-wrapper"
4528
4527
  }, /*#__PURE__*/React__default["default"].createElement(PageTable, null), /*#__PURE__*/React__default["default"].createElement(PagePagination, null))), !_explicitForm && /*#__PURE__*/React__default["default"].createElement(Drawer, {
4529
4528
  open: formState === 'ADD' || formState === 'UPDATE',
4530
4529
  onClose: onCloseForm,
4531
- title: formState === 'ADD' ? derivedT('page.addPageTitle') : formState === 'UPDATE' ? derivedT('page.updatePageTitle') : '',
4530
+ title: formState === 'ADD' ? combinedTranslations.addPage : formState === 'UPDATE' ? combinedTranslations.updatePage : '',
4532
4531
  footerContent: /*#__PURE__*/React__default["default"].createElement(PageFormActions, {
4533
4532
  formRef: formRef
4534
4533
  })
@@ -4539,13 +4538,13 @@ const Page = ({
4539
4538
  itemData: itemData,
4540
4539
  onClose: onCloseForm,
4541
4540
  onConfirmDelete: onCofirmDeletePage,
4542
- confirmationRequired: derivedT('confirmationRequired') || derivedT('common:confirmationRequired'),
4543
- confirm: derivedT('confirm') || derivedT('common:confirm'),
4544
- lossOfData: derivedT('lossOfData') || derivedT('common:lossOfData'),
4545
- permanentlyDelete: derivedT('permanentlyDelete') || derivedT('common:permanentlyDelete'),
4546
- pleaseType: derivedT('pleaseType') || derivedT('common:pleaseType'),
4547
- toProceedOrCancel: derivedT('toProceedOrCancel') || derivedT('common:toProceedOrCancel'),
4548
- typeHerePlaceholder: derivedT('typeHerePlaceholder') || derivedT('common:typeHerePlaceholder')
4541
+ confirmationRequired: commonTranslations.confirmationRequired,
4542
+ confirm: commonTranslations.confirm,
4543
+ lossOfData: commonTranslations.lossOfData,
4544
+ permanentlyDelete: commonTranslations.permanentlyDelete,
4545
+ pleaseType: commonTranslations.pleaseType,
4546
+ toProceedOrCancel: commonTranslations.toProceedOrCancel,
4547
+ typeHerePlaceholder: commonTranslations.typeHerePlaceholder
4549
4548
  }));
4550
4549
  };
4551
4550
  Page.Table = PageTable;
@@ -6057,7 +6056,6 @@ $$1({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {
6057
6056
 
6058
6057
  const WidgetContext = /*#__PURE__*/React.createContext(null);
6059
6058
  const WidgetContextProvider = ({
6060
- t: _t = () => '',
6061
6059
  // Form
6062
6060
  list: _list = [],
6063
6061
  languages: _languages = [],
@@ -6101,12 +6099,12 @@ const WidgetContextProvider = ({
6101
6099
  onPartialUpdateWidget: _onPartialUpdateWidget = () => Promise.resolve(),
6102
6100
  reactSelectStyles: _reactSelectStyles = {},
6103
6101
  imageMaxSize: _imageMaxSize = 10485760,
6102
+ widgetTranslations,
6104
6103
  // other
6105
6104
  children
6106
6105
  }) => {
6107
6106
  return /*#__PURE__*/React__default["default"].createElement(WidgetContext.Provider, {
6108
6107
  value: {
6109
- t: _t,
6110
6108
  // Form
6111
6109
  list: _list,
6112
6110
  languages: _languages,
@@ -6149,7 +6147,8 @@ const WidgetContextProvider = ({
6149
6147
  data: _data,
6150
6148
  canDelete: _canDelete,
6151
6149
  loader: _loader,
6152
- imageMaxSize: _imageMaxSize
6150
+ imageMaxSize: _imageMaxSize,
6151
+ widgetTranslations: Object.assign(Object.assign({}, TRANSLATION_PAIRS_WIDGET), widgetTranslations || {})
6153
6152
  }
6154
6153
  }, children);
6155
6154
  };
@@ -6183,6 +6182,7 @@ const WidgetTable = ({
6183
6182
  extraColumns
6184
6183
  }) => {
6185
6184
  const {
6185
+ commonTranslations,
6186
6186
  switchClass
6187
6187
  } = useProviderState();
6188
6188
  const {
@@ -6193,8 +6193,7 @@ const WidgetTable = ({
6193
6193
  onChangeFormState,
6194
6194
  onPartialUpdateWidget,
6195
6195
  loading,
6196
- loader,
6197
- t
6196
+ loader
6198
6197
  } = useWidgetState();
6199
6198
  const updateClosure = React.useCallback((item, key, value) => {
6200
6199
  onPartialUpdateWidget({
@@ -6204,15 +6203,15 @@ const WidgetTable = ({
6204
6203
  const onUpdateClick = item => onChangeFormState('UPDATE', item);
6205
6204
  const onDeleteClick = item => onChangeFormState('DELETE', item);
6206
6205
  const dataKeys = [{
6207
- label: t('widget.tableName'),
6206
+ label: commonTranslations.name,
6208
6207
  dataKey: 'name',
6209
6208
  highlight: true
6210
6209
  }, {
6211
- label: t('widget.tableCode'),
6210
+ label: commonTranslations.code,
6212
6211
  dataKey: 'code'
6213
6212
  }];
6214
6213
  if (canPartialUpdate) dataKeys.push({
6215
- label: t('widget.tableActive'),
6214
+ label: commonTranslations.active,
6216
6215
  dataKey: 'isActive',
6217
6216
  Cell: ({
6218
6217
  row
@@ -6227,7 +6226,7 @@ const WidgetTable = ({
6227
6226
  loader: loader,
6228
6227
  loading: loading,
6229
6228
  dataKeys: dataKeys,
6230
- actionsLabel: t('widget.actionsLabel'),
6229
+ actionsLabel: commonTranslations.actions,
6231
6230
  extraColumns: extraColumns,
6232
6231
  extraActions: extraActions,
6233
6232
  actions: {
@@ -6558,14 +6557,15 @@ const ItemsAccordian = ({
6558
6557
  deleteText: _deleteText = 'Delete'
6559
6558
  }) => {
6560
6559
  const {
6561
- baseUrl
6560
+ baseUrl,
6561
+ commonTranslations
6562
6562
  } = useProviderState();
6563
6563
  const {
6564
6564
  onImageUpload,
6565
6565
  onImageRemove,
6566
- t,
6567
6566
  imageBaseUrl,
6568
- imageMaxSize
6567
+ imageMaxSize,
6568
+ widgetTranslations
6569
6569
  } = useWidgetState();
6570
6570
  const [itemsShow, setItemsShow] = React.useState([]);
6571
6571
  const {
@@ -6626,9 +6626,9 @@ const ItemsAccordian = ({
6626
6626
  id: `${id}-item-${index}`,
6627
6627
  footerContent: /*#__PURE__*/React__default["default"].createElement(ConfirmPopOver, {
6628
6628
  onConfirm: () => removeItem(index),
6629
- title: t('item.deleteTitle'),
6630
- confirmText: t('yesButtonText') || t('common:yesButtonText'),
6631
- cancelText: t('cancelButtonText') || t('common:cancelButtonText')
6629
+ title: widgetTranslations.deleteTitle,
6630
+ confirmText: commonTranslations.yes,
6631
+ cancelText: commonTranslations.cancel
6632
6632
  }, /*#__PURE__*/React__default["default"].createElement(Button, {
6633
6633
  type: "danger",
6634
6634
  size: "sm",
@@ -6640,67 +6640,72 @@ const ItemsAccordian = ({
6640
6640
  var _a, _b, _c, _d, _e, _f, _g, _h;
6641
6641
  return /*#__PURE__*/React__default["default"].createElement(Input, {
6642
6642
  rest: register(`${name}.${index}.titles.${lang.code}`, {
6643
- required: t('item.titleRequired')
6643
+ required: commonTranslations.titleRequired
6644
6644
  }),
6645
- label: t('item.title') + ` (${lang.name})`,
6645
+ label: commonTranslations.title + ` (${lang.name})`,
6646
6646
  error: ((_c = (_b = (_a = errors[name]) === null || _a === void 0 ? void 0 : _a[index]) === null || _b === void 0 ? void 0 : _b['titles']) === null || _c === void 0 ? void 0 : _c[lang.code]) ? ((_h = (_g = (_f = (_e = (_d = errors[name]) === null || _d === void 0 ? void 0 : _d[index]) === null || _e === void 0 ? void 0 : _e['titles']) === null || _f === void 0 ? void 0 : _f[lang.code]) === null || _g === void 0 ? void 0 : _g.message) === null || _h === void 0 ? void 0 : _h.toString()) + ` (${lang.name})` : '',
6647
6647
  type: "text",
6648
6648
  className: "w-full p-2",
6649
- placeholder: t('item.titlePlaceholder') + ` (${lang.name})`,
6649
+ placeholder: commonTranslations.titlePlaceholder + ` (${lang.name})`,
6650
6650
  required: true
6651
6651
  });
6652
6652
  })) : /*#__PURE__*/React__default["default"].createElement(Input, {
6653
6653
  rest: register(`${name}.${index}.title`, {
6654
- required: t('item.titleRequired')
6654
+ required: commonTranslations.titleRequired
6655
6655
  }),
6656
- label: t('item.title'),
6656
+ label: commonTranslations.title,
6657
6657
  error: (_d = (_c = (_b = (_a = errors[name]) === null || _a === void 0 ? void 0 : _a[index]) === null || _b === void 0 ? void 0 : _b['title']) === null || _c === void 0 ? void 0 : _c.message) === null || _d === void 0 ? void 0 : _d.toString(),
6658
6658
  type: "text",
6659
6659
  className: "w-full p-2",
6660
- placeholder: t('item.titlePlaceholder'),
6660
+ placeholder: commonTranslations.titlePlaceholder,
6661
6661
  required: true
6662
6662
  }), Array.isArray(languages) && languages.length > 0 ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, languages.map(lang => /*#__PURE__*/React__default["default"].createElement(Input, {
6663
6663
  rest: register(`${name}.${index}.subtitles.${lang.code}`),
6664
- label: t('item.subtitle') + ` (${lang.name})`,
6664
+ label: widgetTranslations.subtitle + ` (${lang.name})`,
6665
6665
  type: "text",
6666
6666
  className: "w-full p-2",
6667
- placeholder: t('item.subTitlePlaceholder') + ` (${lang.name})`
6667
+ placeholder: widgetTranslations.subTitlePlaceholder + ` (${lang.name})`
6668
6668
  }))) : /*#__PURE__*/React__default["default"].createElement(Input, {
6669
6669
  rest: register(`${name}.${index}.subtitle`),
6670
- label: t('item.subtitle'),
6670
+ label: widgetTranslations.subtitle,
6671
6671
  type: "text",
6672
6672
  className: "w-full p-2",
6673
- placeholder: t('item.subTitlePlaceholder')
6673
+ placeholder: widgetTranslations.subTitlePlaceholder
6674
6674
  }), Array.isArray(languages) && languages.length > 0 ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, languages.map(lang => /*#__PURE__*/React__default["default"].createElement(Input, {
6675
6675
  rest: register(`${name}.${index}.altTexts.${lang.code}`),
6676
- label: t('item.altText') + ` (${lang.name})`,
6677
- type: 'text',
6676
+ label: widgetTranslations.altText + ` (${lang.name})`,
6677
+ type: "text",
6678
6678
  className: "w-full p-2",
6679
- placeholder: t('item.altTextPlaceholder') + ` (${lang.name})`
6679
+ placeholder: widgetTranslations.altTextPlaceholder + ` (${lang.name})`
6680
6680
  }))) : /*#__PURE__*/React__default["default"].createElement(Input, {
6681
6681
  rest: register(`${name}.${index}.altText`),
6682
- label: t('item.altText'),
6683
- type: 'text',
6682
+ label: widgetTranslations.altText,
6683
+ type: "text",
6684
6684
  className: "w-full p-2",
6685
- placeholder: t('item.altTextPlaceholder')
6685
+ placeholder: widgetTranslations.altTextPlaceholder
6686
6686
  }), /*#__PURE__*/React__default["default"].createElement(Input, {
6687
6687
  rest: register(`${name}.${index}.link`),
6688
- label: t('item.link'),
6689
- type: 'url',
6688
+ label: widgetTranslations.link,
6689
+ type: "url",
6690
6690
  className: "w-full p-2",
6691
- placeholder: t('item.linkPlaceholder')
6691
+ placeholder: widgetTranslations.linkPlaceholder
6692
6692
  }), /*#__PURE__*/React__default["default"].createElement(Input.SrcSet, {
6693
6693
  control: control,
6694
6694
  register: register,
6695
- label: t(`item.srcset`),
6695
+ label: widgetTranslations.srcset,
6696
6696
  name: `${name}.${index}.srcset`,
6697
6697
  errors: (_f = (_e = errors[name]) === null || _e === void 0 ? void 0 : _e[index]) === null || _f === void 0 ? void 0 : _f['srcset'],
6698
- t: t
6698
+ screenSizeRequired: widgetTranslations.screenSizeRequired,
6699
+ heightRequired: widgetTranslations.heightRequired,
6700
+ minHeight: widgetTranslations.minHeight,
6701
+ minScreenSize: widgetTranslations.minScreenSize,
6702
+ minWidth: widgetTranslations.minWidth,
6703
+ widthRequired: widgetTranslations.widthRequired
6699
6704
  }), Array.isArray(languages) && languages.length > 0 ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, languages.map(lang => {
6700
6705
  var _a, _b, _c, _d, _e;
6701
6706
  return /*#__PURE__*/React__default["default"].createElement(ImageInput, {
6702
6707
  key: lang.code,
6703
- label: t('item.image') + ` (${lang.name})`,
6708
+ label: widgetTranslations.image + ` (${lang.name})`,
6704
6709
  control: control,
6705
6710
  name: `${name}.${index}.imgs.${lang.code}`,
6706
6711
  error: (_e = (_d = (_c = (_b = (_a = errors[name]) === null || _a === void 0 ? void 0 : _a[index]) === null || _b === void 0 ? void 0 : _b['imgs']) === null || _c === void 0 ? void 0 : _c[lang.code]) === null || _d === void 0 ? void 0 : _d.message) === null || _e === void 0 ? void 0 : _e.toString(),
@@ -6714,14 +6719,14 @@ const ItemsAccordian = ({
6714
6719
  className: "khb_img-text-wrapper"
6715
6720
  }, /*#__PURE__*/React__default["default"].createElement("div", {
6716
6721
  className: "khb_img-text-label"
6717
- }, /*#__PURE__*/React__default["default"].createElement("span", null, t('item.uploadFile'))), /*#__PURE__*/React__default["default"].createElement("p", {
6722
+ }, /*#__PURE__*/React__default["default"].createElement("span", null, widgetTranslations.uploadFile)), /*#__PURE__*/React__default["default"].createElement("p", {
6718
6723
  className: "khb_img-text-1"
6719
- }, t('item.dragDrop'))), /*#__PURE__*/React__default["default"].createElement("p", {
6724
+ }, widgetTranslations.dragDrop)), /*#__PURE__*/React__default["default"].createElement("p", {
6720
6725
  className: "khb_img-text-2"
6721
- }, t('item.allowedFormat')))
6726
+ }, widgetTranslations.allowedFormat))
6722
6727
  });
6723
6728
  })) : /*#__PURE__*/React__default["default"].createElement(ImageInput, {
6724
- label: t('item.image'),
6729
+ label: widgetTranslations.image,
6725
6730
  control: control,
6726
6731
  name: `${name}.${index}.img`,
6727
6732
  error: (_k = (_j = (_h = (_g = errors[name]) === null || _g === void 0 ? void 0 : _g[index]) === null || _h === void 0 ? void 0 : _h['img']) === null || _j === void 0 ? void 0 : _j.message) === null || _k === void 0 ? void 0 : _k.toString(),
@@ -6735,11 +6740,11 @@ const ItemsAccordian = ({
6735
6740
  className: "khb_img-text-wrapper"
6736
6741
  }, /*#__PURE__*/React__default["default"].createElement("div", {
6737
6742
  className: "khb_img-text-label"
6738
- }, /*#__PURE__*/React__default["default"].createElement("span", null, t('item.uploadFile'))), /*#__PURE__*/React__default["default"].createElement("p", {
6743
+ }, /*#__PURE__*/React__default["default"].createElement("span", null, widgetTranslations.uploadFile)), /*#__PURE__*/React__default["default"].createElement("p", {
6739
6744
  className: "khb_img-text-1"
6740
- }, t('item.dragDrop'))), /*#__PURE__*/React__default["default"].createElement("p", {
6745
+ }, widgetTranslations.dragDrop)), /*#__PURE__*/React__default["default"].createElement("p", {
6741
6746
  className: "khb_img-text-2"
6742
- }, t('item.allowedFormat')))
6747
+ }, widgetTranslations.allowedFormat))
6743
6748
  })));
6744
6749
  })));
6745
6750
  };
@@ -6950,10 +6955,10 @@ const WidgetForm = ({
6950
6955
  shouldUnregister: false
6951
6956
  });
6952
6957
  const {
6953
- switchClass
6958
+ switchClass,
6959
+ commonTranslations
6954
6960
  } = useProviderState();
6955
6961
  const {
6956
- t,
6957
6962
  data,
6958
6963
  canAdd,
6959
6964
  canUpdate,
@@ -6962,6 +6967,7 @@ const WidgetForm = ({
6962
6967
  widgetTypes,
6963
6968
  loading,
6964
6969
  languages,
6970
+ widgetTranslations,
6965
6971
  onWidgetFormSubmit,
6966
6972
  getCollectionData,
6967
6973
  collectionData,
@@ -7106,7 +7112,7 @@ const WidgetForm = ({
7106
7112
  if (!tabItem.names[lang.code]) {
7107
7113
  setError(`tabs.${index}.names.${lang.code}`, {
7108
7114
  type: 'manual',
7109
- message: `${t('widget.tabNameRequired')} (${lang.name})`
7115
+ message: `${widgetTranslations.tabNameRequired} (${lang.name})`
7110
7116
  });
7111
7117
  isTabsValid = false;
7112
7118
  }
@@ -7114,7 +7120,7 @@ const WidgetForm = ({
7114
7120
  } else if (!tabItem.name) {
7115
7121
  setError(`tabs.${index}.name`, {
7116
7122
  type: 'manual',
7117
- message: t('widget.tabNameRequired')
7123
+ message: widgetTranslations.tabNameRequired
7118
7124
  });
7119
7125
  isTabsValid = false;
7120
7126
  }
@@ -7158,15 +7164,13 @@ const WidgetForm = ({
7158
7164
  items = items.map(_a => {
7159
7165
  var item = __rest(_a, ["_id", "__v", "widgetId"]);
7160
7166
  if (typeof item['imgs'] === 'object' && item['imgs']) {
7161
- const obj = {};
7162
- languages.forEach(lng => {
7163
- if (typeof item['imgs'][lng.code] === 'object') {
7164
- obj[lng.code] = item['imgs'][lng.code]['_id'];
7165
- } else {
7166
- obj[lng.code] = item['imgs'][lng.code];
7167
+ Object.keys(item['imgs']).forEach(key => {
7168
+ if (item['imgs'][key] && item['imgs'][key]['_id']) {
7169
+ item['imgs'][key] = item['imgs'][key]['_id'];
7170
+ } else if (typeof item['imgs'][key] !== 'string' || !item['imgs'][key]) {
7171
+ delete item['imgs'][key];
7167
7172
  }
7168
7173
  });
7169
- item['imgs'] = obj;
7170
7174
  }
7171
7175
  if (item['img'] && item['img']['_id']) {
7172
7176
  item['img'] = item['img']['_id'];
@@ -7214,123 +7218,139 @@ const WidgetForm = ({
7214
7218
  }, [watch, onWidgetFormInputChange]);
7215
7219
  // Schemas
7216
7220
  const widgetFormSchema = [{
7217
- label: `${t('widget.name')}`,
7221
+ label: commonTranslations.name,
7218
7222
  required: true,
7219
7223
  accessor: 'name',
7220
7224
  type: 'text',
7221
- placeholder: t('widget.namePlaceholder'),
7225
+ placeholder: commonTranslations.namePlaceholder,
7222
7226
  onInput: handleCapitalize,
7223
7227
  validations: {
7224
- required: t('widget.nameRequired')
7228
+ required: commonTranslations.nameRequired
7225
7229
  },
7226
7230
  wrapperClassName: 'khb_grid-item-1of2 khb_padding-right-1 khb_align-top'
7227
7231
  }, {
7228
- label: `${t('widget.code')}`,
7232
+ label: commonTranslations.code,
7229
7233
  accessor: 'code',
7230
7234
  required: true,
7231
7235
  type: 'text',
7232
7236
  onInput: handleCode,
7233
7237
  editable: false,
7234
- placeholder: t('widget.codePlaceholder'),
7238
+ placeholder: commonTranslations.codePlaceholder,
7235
7239
  validations: {
7236
- required: t('widget.codeRequired')
7240
+ required: commonTranslations.codeRequired
7237
7241
  },
7238
7242
  wrapperClassName: 'khb_grid-item-1of2 khb_padding-left-1 khb_align-top khb_margin-top-0'
7239
7243
  }, Array.isArray(languages) && languages.length > 0 ? {
7240
- label: `${t('widget.widgetTitle')}`,
7244
+ label: commonTranslations.title,
7241
7245
  accessor: 'widgetTitles',
7242
7246
  required: true,
7243
7247
  type: customInputs && customInputs['widgetTitles'] ? undefined : 'text',
7244
7248
  validations: {
7245
- required: t('widget.widgetTitleRequired')
7249
+ required: commonTranslations.titleRequired
7246
7250
  },
7247
- info: t('widget.widgetTitleInfo'),
7248
- placeholder: t('widget.widgetTitlePlaceholder'),
7251
+ info: widgetTranslations.widgetTitleInfo,
7252
+ placeholder: commonTranslations.titlePlaceholder,
7249
7253
  onInput: handleCapitalize,
7250
7254
  Input: customInputs && customInputs['widgetTitles'] ? customInputs['widgetTitles'] : undefined
7251
7255
  } : {
7252
- label: `${t('widget.widgetTitle')}`,
7256
+ label: commonTranslations.title,
7253
7257
  accessor: 'widgetTitle',
7254
7258
  required: true,
7255
7259
  type: customInputs && customInputs['widgetTitle'] ? undefined : 'text',
7256
7260
  onInput: handleCapitalize,
7257
- placeholder: t('widget.widgetTitlePlaceholder'),
7261
+ placeholder: commonTranslations.titlePlaceholder,
7258
7262
  validations: {
7259
- required: t('widget.widgetTitleRequired')
7263
+ required: commonTranslations.titleRequired
7260
7264
  },
7261
- info: t('widget.widgetTitleInfo'),
7265
+ info: widgetTranslations.widgetTitleInfo,
7262
7266
  Input: customInputs && customInputs['widgetTitle'] ? customInputs['widgetTitle'] : undefined
7263
7267
  }, {
7264
- label: `${t('widget.widgetType')}`,
7268
+ label: widgetTranslations.widgetType,
7265
7269
  required: true,
7266
7270
  editable: false,
7267
7271
  accessor: 'widgetType',
7268
7272
  type: 'select',
7269
7273
  validations: {
7270
- required: t('widget.widgetTypeRequired')
7274
+ required: widgetTranslations.widgetTypeRequired
7271
7275
  },
7272
7276
  options: widgetTypes
7273
7277
  }, {
7274
- label: t('widget.autoPlay'),
7278
+ label: widgetTranslations.autoPlay,
7275
7279
  accessor: 'autoPlay',
7276
7280
  type: 'checkbox',
7277
7281
  show: (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) === 'Carousel',
7278
7282
  switchClass: switchClass
7279
7283
  }, {
7280
- label: `${t('widget.itemsType')}`,
7284
+ label: widgetTranslations.textContent,
7285
+ accessor: 'textContent',
7286
+ required: (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) === 'Text',
7287
+ type: customInputs && customInputs['textContent'] ? undefined : 'text',
7288
+ placeholder: widgetTranslations.textContentPlaceholder,
7289
+ validations: {
7290
+ required: widgetTranslations.textContentRequired
7291
+ },
7292
+ info: widgetTranslations.textContentInfo,
7293
+ show: (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) === 'Text',
7294
+ Input: customInputs && customInputs['textContent'] ? customInputs['textContent'] : undefined
7295
+ }, {
7296
+ label: widgetTranslations.itemsType,
7281
7297
  required: true,
7282
7298
  editable: false,
7299
+ show: (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) !== 'Text',
7283
7300
  accessor: 'itemsType',
7284
7301
  type: 'select',
7285
7302
  validations: {
7286
- required: t('widget.itemsTypePlaceholder')
7303
+ required: widgetTranslations.itemsTypePlaceholder
7287
7304
  },
7288
7305
  options: (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) === 'Tabs' || (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.collectionsOnly) ? itemsTypes.filter(item => item.label !== 'Image') : (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.imageOnly) ? itemsTypes.filter(item => item.label === 'Image') : itemsTypes
7289
7306
  }, {
7290
- label: t('widget.color'),
7307
+ label: widgetTranslations.color,
7291
7308
  accessor: 'backgroundColor',
7292
7309
  type: 'color',
7293
7310
  className: 'khb_input-color'
7294
7311
  }, {
7295
- label: t('widget.webPerRow'),
7312
+ label: widgetTranslations.webPerRow,
7296
7313
  accessor: 'webPerRow',
7297
7314
  type: 'number',
7315
+ show: (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) !== 'Text',
7298
7316
  required: true,
7299
- placeholder: t('widget.webPerRowPlaceholder'),
7317
+ placeholder: widgetTranslations.webPerRowPlaceholder,
7300
7318
  wrapperClassName: 'khb_grid-item-1of3 khb_padding-right-1',
7301
7319
  validations: {
7302
- required: t('widget.webPerRowRequired'),
7320
+ required: widgetTranslations.webPerRowRequired,
7303
7321
  min: {
7304
7322
  value: 1,
7305
- message: t('widget.minPerRow')
7323
+ message: widgetTranslations.minPerRow
7306
7324
  }
7307
7325
  }
7308
7326
  }, {
7309
- label: t('widget.tabletPerRow'),
7327
+ label: widgetTranslations.tabletPerRow,
7310
7328
  accessor: 'tabletPerRow',
7311
7329
  type: 'number',
7330
+ show: (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) !== 'Text',
7312
7331
  required: true,
7313
- placeholder: t('widget.tabletPerRowPlaceholder'),
7332
+ placeholder: widgetTranslations.tabletPerRowPlaceholder,
7314
7333
  wrapperClassName: 'khb_grid-item-1of3 khb_padding-left-1',
7315
7334
  validations: {
7316
- required: t('widget.tabletPerRowRequired'),
7335
+ required: widgetTranslations.tabletPerRowRequired,
7317
7336
  min: {
7318
7337
  value: 1,
7319
- message: t('widget.minPerRow')
7338
+ message: widgetTranslations.minPerRow
7320
7339
  }
7321
7340
  }
7322
7341
  }, {
7323
- label: t('widget.mobilePerRow'),
7342
+ label: widgetTranslations.mobilePerRow,
7324
7343
  accessor: 'mobilePerRow',
7325
7344
  type: 'number',
7345
+ show: (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) !== 'Text',
7326
7346
  required: true,
7327
- placeholder: t('widget.mobilePerRowPlaceholder'),
7347
+ placeholder: widgetTranslations.mobilePerRowPlaceholder,
7328
7348
  wrapperClassName: 'khb_grid-item-1of3 khb_padding-right-1 khb_padding-left-1',
7329
7349
  validations: {
7330
- required: t('widget.mobilePerRowRequired'),
7350
+ required: widgetTranslations.mobilePerRowRequired,
7331
7351
  min: {
7332
7352
  value: 1,
7333
- message: t('widget.minPerRow')
7353
+ message: widgetTranslations.minPerRow
7334
7354
  }
7335
7355
  }
7336
7356
  }, {
@@ -7345,7 +7365,7 @@ const WidgetForm = ({
7345
7365
  onChange: setSelectedCollectionItems,
7346
7366
  loadOptions: onChangeSearch,
7347
7367
  isLoading: collectionDataLoading,
7348
- show: !itemsEnabled && (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) !== 'Tabs',
7368
+ show: !itemsEnabled && ((selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) !== 'Tabs' || (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) !== 'Text'),
7349
7369
  formatOptionLabel: formatOptionLabel,
7350
7370
  listCode: selectedCollectionType === null || selectedCollectionType === void 0 ? void 0 : selectedCollectionType.value,
7351
7371
  customStyles: reactSelectStyles || {},
@@ -7372,9 +7392,9 @@ const WidgetForm = ({
7372
7392
  setValue: setValue,
7373
7393
  control: control,
7374
7394
  languages: languages,
7375
- deleteTitle: t('widget.tabDeleteTitle'),
7376
- yesButtonText: t('yesButtonText') || t('common:yesButtonText'),
7377
- noButtonText: t('cancelButtonText') || t('common:cancelButtonText'),
7395
+ deleteTitle: widgetTranslations.tabDeleteTitle,
7396
+ yesButtonText: commonTranslations.yes,
7397
+ noButtonText: commonTranslations.cancel,
7378
7398
  errors: errors,
7379
7399
  itemsPlaceholder: `Select ${selectedCollectionType === null || selectedCollectionType === void 0 ? void 0 : selectedCollectionType.label}...`,
7380
7400
  loadOptions: onChangeSearch,
@@ -7392,11 +7412,11 @@ const WidgetForm = ({
7392
7412
  onDragEnd: onCollectionIndexChange,
7393
7413
  formatItem: formatListItem,
7394
7414
  listCode: selectedCollectionType === null || selectedCollectionType === void 0 ? void 0 : selectedCollectionType.value
7395
- }), itemsEnabled && (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) !== 'Tabs' && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(ItemsAccordian, {
7415
+ }), !itemsEnabled && ((selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) !== 'Tabs' || (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) !== 'Text') && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(ItemsAccordian, {
7396
7416
  languages: languages,
7397
7417
  clearError: clearErrors,
7398
7418
  collapseId: constants.webItems,
7399
- title: t('widget.webItems'),
7419
+ title: widgetTranslations.webItems,
7400
7420
  id: constants.webItems,
7401
7421
  setError: setError,
7402
7422
  show: webItemsVisible || !!(errors && (errors === null || errors === void 0 ? void 0 : errors[constants.webItems])),
@@ -7407,13 +7427,13 @@ const WidgetForm = ({
7407
7427
  control: control,
7408
7428
  register: register,
7409
7429
  loading: loading,
7410
- addText: t('addButtonText'),
7411
- deleteText: t('deleteButtonText') || t('common:deleteButtonText')
7430
+ addText: commonTranslations.add,
7431
+ deleteText: commonTranslations.delete
7412
7432
  }), /*#__PURE__*/React__default["default"].createElement(ItemsAccordian, {
7413
7433
  languages: languages,
7414
7434
  clearError: clearErrors,
7415
7435
  collapseId: constants.mobileItems,
7416
- title: t('widget.mobileItems'),
7436
+ title: widgetTranslations.mobileItems,
7417
7437
  id: constants.mobileItems,
7418
7438
  name: constants.mobileItems,
7419
7439
  setError: setError,
@@ -7424,26 +7444,30 @@ const WidgetForm = ({
7424
7444
  errors: errors,
7425
7445
  control: control,
7426
7446
  register: register,
7427
- addText: t('addButtonText'),
7428
- deleteText: t('deleteButtonText') || t('common:deleteButtonText')
7447
+ addText: commonTranslations.add,
7448
+ deleteText: commonTranslations.delete
7429
7449
  })));
7430
7450
  };
7431
7451
 
7432
7452
  const AddButton = () => {
7453
+ const {
7454
+ commonTranslations
7455
+ } = useProviderState();
7433
7456
  const {
7434
7457
  onChangeFormState,
7435
- t,
7436
7458
  canAdd
7437
7459
  } = useWidgetState();
7438
7460
  return /*#__PURE__*/React__default["default"].createElement(Button, {
7439
7461
  disabled: !canAdd,
7440
7462
  onClick: () => onChangeFormState('ADD')
7441
- }, t('addButtonText') || t('common:addButtonText'));
7463
+ }, commonTranslations.add);
7442
7464
  };
7443
7465
 
7444
7466
  const WidgetPagination = () => {
7445
7467
  const {
7446
- t,
7468
+ commonTranslations
7469
+ } = useProviderState();
7470
+ const {
7447
7471
  totalPages,
7448
7472
  totalRecords,
7449
7473
  currentPage,
@@ -7451,11 +7475,11 @@ const WidgetPagination = () => {
7451
7475
  setCurrentPage
7452
7476
  } = useWidgetState();
7453
7477
  return /*#__PURE__*/React__default["default"].createElement(Pagination, {
7454
- ofText: t('of') || t('common:of'),
7455
- pageText: t('confirm') || t('common:confirm'),
7456
- showingText: t('showing') || t('common:showing'),
7457
- nextContent: t('nextContent') || t('common:nextContent'),
7458
- previousContent: t('previousContent') || t('common:previousContent'),
7478
+ ofText: commonTranslations.of,
7479
+ pageText: commonTranslations.page,
7480
+ showingText: commonTranslations.showing,
7481
+ nextContent: commonTranslations.next,
7482
+ previousContent: commonTranslations.previous,
7459
7483
  totalPages: totalPages,
7460
7484
  totalRecords: totalRecords,
7461
7485
  currentPage: currentPage,
@@ -7467,7 +7491,7 @@ const WidgetPagination = () => {
7467
7491
  const WidgetSearch = () => {
7468
7492
  const {
7469
7493
  changeSearch,
7470
- t,
7494
+ widgetTranslations,
7471
7495
  canList,
7472
7496
  setCurrentPage
7473
7497
  } = useWidgetState();
@@ -7486,7 +7510,7 @@ const WidgetSearch = () => {
7486
7510
  value: searchVal,
7487
7511
  disabled: !canList,
7488
7512
  onChange: e => onChangeSearch(e.target.value),
7489
- placeholder: t('widget.searchPlaceholder')
7513
+ placeholder: widgetTranslations.searchPlaceholder
7490
7514
  });
7491
7515
  };
7492
7516
 
@@ -7494,14 +7518,14 @@ const WidgetFormActions = ({
7494
7518
  formRef
7495
7519
  }) => {
7496
7520
  const {
7497
- onError
7521
+ onError,
7522
+ commonTranslations
7498
7523
  } = useProviderState();
7499
7524
  const {
7500
7525
  closeForm,
7501
7526
  loading,
7502
7527
  canAdd,
7503
7528
  canUpdate,
7504
- t,
7505
7529
  formState
7506
7530
  } = useWidgetState();
7507
7531
  const onSubmitClick = e => {
@@ -7521,10 +7545,10 @@ const WidgetFormActions = ({
7521
7545
  if (!canAdd && !canUpdate) return null;
7522
7546
  return /*#__PURE__*/React__default["default"].createElement(FormActions, {
7523
7547
  loading: loading,
7524
- primaryLabel: formState === 'ADD' ? t('createButtonText') || t('common:createButtonText') : t('updateButtonText') || t('common:updateButtonText'),
7548
+ primaryLabel: formState === 'ADD' ? commonTranslations.create : commonTranslations.update,
7525
7549
  onPrimaryButtonClick: onSubmitClick,
7526
7550
  onSecondaryButtonClick: closeForm,
7527
- secondaryLabel: t('cancelButtonText') || t('common:cancelButtonText')
7551
+ secondaryLabel: commonTranslations.cancel
7528
7552
  });
7529
7553
  };
7530
7554
 
@@ -7543,7 +7567,6 @@ const WiddgetFormWrapper = ({
7543
7567
  };
7544
7568
 
7545
7569
  const Widget = ({
7546
- t,
7547
7570
  routes,
7548
7571
  loader,
7549
7572
  explicitForm: _explicitForm = false,
@@ -7555,11 +7578,15 @@ const Widget = ({
7555
7578
  formatListItem,
7556
7579
  formatOptionLabel,
7557
7580
  imageMaxSize,
7581
+ translations,
7558
7582
  children
7559
7583
  }) => {
7584
+ const {
7585
+ commonTranslations
7586
+ } = useProviderState();
7560
7587
  const derivedPermissions = Object.assign(DEFAULT_PERMISSIONS, _permissions);
7561
7588
  const widgetFormRef = React.useRef(null);
7562
- const derivedT = createTranslation(t, Object.assign(Object.assign(Object.assign({}, TRANSLATION_PAIRS_COMMON), TRANSLATION_PAIRS_WIDGET), TRANSLATION_PAIRS_ITEM));
7589
+ const derivedT = Object.assign(Object.assign({}, TRANSLATION_PAIRS_WIDGET), translations || {});
7563
7590
  const {
7564
7591
  list,
7565
7592
  loading,
@@ -7600,7 +7627,6 @@ const Widget = ({
7600
7627
  languages: languages,
7601
7628
  imageBaseUrl: imageBaseUrl,
7602
7629
  onChangeFormState: onChangeFormState,
7603
- t: derivedT,
7604
7630
  searchText: searchText,
7605
7631
  changeSearch: changeSearch,
7606
7632
  loader: loader,
@@ -7631,13 +7657,14 @@ const Widget = ({
7631
7657
  canPartialUpdate: derivedPermissions.partialUpdate,
7632
7658
  formState: formState,
7633
7659
  closeForm: onCloseForm,
7634
- imageMaxSize: imageMaxSize
7660
+ imageMaxSize: imageMaxSize,
7661
+ widgetTranslations: translations
7635
7662
  }, children ? children : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(AddButton, null), /*#__PURE__*/React__default["default"].createElement(WidgetSearch, null), /*#__PURE__*/React__default["default"].createElement("div", {
7636
7663
  className: "khb_table-wrapper"
7637
7664
  }, /*#__PURE__*/React__default["default"].createElement(WidgetTable, null), /*#__PURE__*/React__default["default"].createElement(WidgetPagination, null))), !_explicitForm && /*#__PURE__*/React__default["default"].createElement(Drawer, {
7638
7665
  open: formState === 'ADD' || formState === 'UPDATE',
7639
7666
  onClose: onCloseForm,
7640
- title: formState === 'ADD' ? derivedT('widget.addWidgetTitle') : formState === 'UPDATE' ? derivedT('widget.updateWidgetTitle') : '',
7667
+ title: formState === 'ADD' ? derivedT.addWidgetTitle : formState === 'UPDATE' ? derivedT.updateWidgetTitle : '',
7641
7668
  footerContent: /*#__PURE__*/React__default["default"].createElement(WidgetFormActions, {
7642
7669
  formRef: widgetFormRef
7643
7670
  })
@@ -7648,13 +7675,13 @@ const Widget = ({
7648
7675
  itemData: itemData,
7649
7676
  onClose: onCloseForm,
7650
7677
  onConfirmDelete: onCofirmDeleteWidget,
7651
- confirmationRequired: derivedT('confirmationRequired') || derivedT('common:confirmationRequired'),
7652
- confirm: derivedT('confirm') || derivedT('common:confirm'),
7653
- lossOfData: derivedT('lossOfData') || derivedT('common:lossOfData'),
7654
- permanentlyDelete: derivedT('permanentlyDelete') || derivedT('common:permanentlyDelete'),
7655
- pleaseType: derivedT('pleaseType') || derivedT('common:pleaseType'),
7656
- toProceedOrCancel: derivedT('toProceedOrCancel') || derivedT('common:toProceedOrCancel'),
7657
- typeHerePlaceholder: derivedT('typeHerePlaceholder') || derivedT('common:typeHerePlaceholder')
7678
+ confirmationRequired: commonTranslations.confirmationRequired,
7679
+ confirm: commonTranslations.confirm,
7680
+ lossOfData: commonTranslations.lossOfData,
7681
+ permanentlyDelete: commonTranslations.permanentlyDelete,
7682
+ pleaseType: commonTranslations.pleaseType,
7683
+ toProceedOrCancel: commonTranslations.toProceedOrCancel,
7684
+ typeHerePlaceholder: commonTranslations.typeHerePlaceholder
7658
7685
  }));
7659
7686
  };
7660
7687
  Widget.Table = WidgetTable;