@knovator/pagecreator-admin 0.9.5 → 1.0.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,92 @@ 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?'
1784
1777
  };
1785
1778
  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 */
1779
+ widgets: 'Widgets',
1780
+ slug: 'Slug',
1781
+ slugPlaceholder: 'Enter Slug',
1782
+ slugRequired: 'Slug is required',
1783
+ addPage: 'Add Page',
1784
+ updatePage: 'Update Page',
1785
+ searchPages: 'Search Pages...'
1786
+ };
1787
+
1805
1788
  const ProviderContext = /*#__PURE__*/React.createContext(null);
1806
1789
  const Provider = ({
1807
1790
  children,
1808
1791
  baseUrl,
1809
1792
  token,
1793
+ translations,
1810
1794
  onError: _onError = () => {},
1811
1795
  onSuccess: _onSuccess = () => {},
1812
1796
  onLogout: _onLogout = () => {},
@@ -1823,7 +1807,8 @@ const Provider = ({
1823
1807
  onLogout: _onLogout,
1824
1808
  switchClass: _switchClass,
1825
1809
  widgetRoutesPrefix: _widgetRoutesPrefix,
1826
- pageRoutesPrefix: _pageRoutesPrefix
1810
+ pageRoutesPrefix: _pageRoutesPrefix,
1811
+ commonTranslations: Object.assign(Object.assign({}, TRANSLATION_PAIRS_COMMON), translations || {})
1827
1812
  }
1828
1813
  }, children);
1829
1814
  };
@@ -2545,12 +2530,6 @@ const isEmpty = data => {
2545
2530
  if ([undefined, null, ''].includes(data)) return true;
2546
2531
  return false;
2547
2532
  };
2548
- function createTranslation(t, obj) {
2549
- return function (key) {
2550
- if (typeof t === 'function') return t(key);
2551
- return obj[key] || '';
2552
- };
2553
- }
2554
2533
  const build_path = (...args) => {
2555
2534
  return args.map((part, i) => {
2556
2535
  if (i === 0) {
@@ -3027,8 +3006,6 @@ const usePage = ({
3027
3006
 
3028
3007
  const PageContext = /*#__PURE__*/React.createContext(null);
3029
3008
  const PageContextProvider = ({
3030
- t: _t = key => Object.assign({}, TRANSLATION_PAIRS_COMMON)[key],
3031
- // Form
3032
3009
  searchText: _searchText = '',
3033
3010
  changeSearch: _changeSearch = () => {},
3034
3011
  list: _list = [],
@@ -3059,12 +3036,12 @@ const PageContextProvider = ({
3059
3036
  data: _data = [],
3060
3037
  canDelete: _canDelete = false,
3061
3038
  loader: _loader = undefined,
3039
+ pageTranslations,
3062
3040
  // other
3063
3041
  children
3064
3042
  }) => {
3065
3043
  return /*#__PURE__*/React__default["default"].createElement(PageContext.Provider, {
3066
3044
  value: {
3067
- t: _t,
3068
3045
  // Form
3069
3046
  list: _list,
3070
3047
  searchText: _searchText,
@@ -3095,7 +3072,8 @@ const PageContextProvider = ({
3095
3072
  columns: _columns,
3096
3073
  data: _data,
3097
3074
  canDelete: _canDelete,
3098
- loader: _loader
3075
+ loader: _loader,
3076
+ pageTranslations: Object.assign(Object.assign({}, TRANSLATION_PAIRS_PAGE), pageTranslations || {})
3099
3077
  }
3100
3078
  }, children);
3101
3079
  };
@@ -3216,10 +3194,12 @@ const PageTable = ({
3216
3194
  extraActions,
3217
3195
  extraColumns
3218
3196
  }) => {
3197
+ const {
3198
+ commonTranslations
3199
+ } = useProviderState();
3219
3200
  const {
3220
3201
  list,
3221
3202
  onChangeFormState,
3222
- t,
3223
3203
  loading,
3224
3204
  loader,
3225
3205
  canUpdate,
@@ -3232,14 +3212,14 @@ const PageTable = ({
3232
3212
  loader: loader,
3233
3213
  loading: loading,
3234
3214
  dataKeys: [{
3235
- label: t('page.tableName'),
3215
+ label: commonTranslations.name,
3236
3216
  dataKey: 'name',
3237
3217
  highlight: true
3238
3218
  }, {
3239
- label: t('page.tableCode'),
3219
+ label: commonTranslations.code,
3240
3220
  dataKey: 'code'
3241
3221
  }],
3242
- actionsLabel: t('page.actionsLabel'),
3222
+ actionsLabel: commonTranslations.actions,
3243
3223
  actions: {
3244
3224
  edit: canUpdate ? onUpdateClick : undefined,
3245
3225
  delete: canDelete ? onDeleteClick : undefined
@@ -3501,7 +3481,12 @@ const SrcSet = ({
3501
3481
  errors,
3502
3482
  name,
3503
3483
  disabled: _disabled2 = false,
3504
- t
3484
+ screenSizeRequired,
3485
+ heightRequired,
3486
+ minHeight,
3487
+ minScreenSize,
3488
+ minWidth,
3489
+ widthRequired
3505
3490
  }) => {
3506
3491
  const {
3507
3492
  fields,
@@ -3531,8 +3516,8 @@ const SrcSet = ({
3531
3516
  size: _size,
3532
3517
  placeholder: "Screen Size",
3533
3518
  rest: register(`${name}.${index}.screenSize`, {
3534
- required: t('item.screenSizeRequired'),
3535
- validate: value => Number(value) <= 0 ? t('item.minScreenSize') : true
3519
+ required: screenSizeRequired,
3520
+ validate: value => Number(value) <= 0 ? minScreenSize : true
3536
3521
  }),
3537
3522
  disabled: _disabled2
3538
3523
  }), /*#__PURE__*/React__default["default"].createElement("span", {
@@ -3541,8 +3526,8 @@ const SrcSet = ({
3541
3526
  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
3527
  index: index,
3543
3528
  rest: register(`${name}.${index}.width`, {
3544
- required: t('item.widthRequired'),
3545
- validate: value => Number(value) <= 0 ? t('item.minWidth') : true
3529
+ required: widthRequired,
3530
+ validate: value => Number(value) <= 0 ? minWidth : true
3546
3531
  }),
3547
3532
  className: className,
3548
3533
  size: _size,
@@ -3554,8 +3539,8 @@ const SrcSet = ({
3554
3539
  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
3540
  index: index,
3556
3541
  rest: register(`${name}.${index}.height`, {
3557
- required: t('item.heightRequired'),
3558
- validate: value => Number(value) <= 0 ? t('item.minHeight') : true
3542
+ required: heightRequired,
3543
+ validate: value => Number(value) <= 0 ? minHeight : true
3559
3544
  }),
3560
3545
  className: className,
3561
3546
  size: _size,
@@ -3592,7 +3577,7 @@ var Input = Object.assign(Input$1, {
3592
3577
 
3593
3578
  const PageSearch = () => {
3594
3579
  const {
3595
- t,
3580
+ pageTranslations,
3596
3581
  canList,
3597
3582
  changeSearch,
3598
3583
  setCurrentPage
@@ -3612,7 +3597,7 @@ const PageSearch = () => {
3612
3597
  value: search,
3613
3598
  disabled: !canList,
3614
3599
  onChange: e => onChangeSearch(e.target.value),
3615
- placeholder: t('page.searchPages')
3600
+ placeholder: pageTranslations.searchPages
3616
3601
  });
3617
3602
  };
3618
3603
 
@@ -3930,7 +3915,9 @@ const PageForm = ({
3930
3915
  formRef
3931
3916
  }) => {
3932
3917
  const {
3933
- t,
3918
+ commonTranslations
3919
+ } = useProviderState();
3920
+ const {
3934
3921
  data,
3935
3922
  formState,
3936
3923
  onPageFormSubmit,
@@ -3940,7 +3927,8 @@ const PageForm = ({
3940
3927
  getWidgets,
3941
3928
  onChangeWidgetSequence,
3942
3929
  canAdd,
3943
- canUpdate
3930
+ canUpdate,
3931
+ pageTranslations
3944
3932
  } = usePageState();
3945
3933
  const {
3946
3934
  register,
@@ -4011,39 +3999,39 @@ const PageForm = ({
4011
3999
  };
4012
4000
  // Schemas
4013
4001
  const pageFormSchema = [{
4014
- label: `${t('page.name')}`,
4002
+ label: commonTranslations.name,
4015
4003
  required: true,
4016
4004
  accessor: 'name',
4017
4005
  type: 'text',
4018
- placeholder: t('page.namePlaceholder'),
4006
+ placeholder: commonTranslations.namePlaceholder,
4019
4007
  onInput: handleCapitalize,
4020
4008
  validations: {
4021
- required: t('page.nameRequired')
4009
+ required: commonTranslations.nameRequired
4022
4010
  }
4023
4011
  }, {
4024
- label: `${t('page.code')}`,
4012
+ label: commonTranslations.code,
4025
4013
  accessor: 'code',
4026
4014
  required: true,
4027
4015
  type: 'text',
4028
4016
  onInput: handleCode,
4029
4017
  editable: false,
4030
- placeholder: t('page.codePlaceholder'),
4018
+ placeholder: commonTranslations.codePlaceholder,
4031
4019
  validations: {
4032
- required: t('page.codeRequired')
4020
+ required: commonTranslations.codeRequired
4033
4021
  }
4034
4022
  }, {
4035
- label: `${t('page.slug')}`,
4023
+ label: pageTranslations.slug,
4036
4024
  accessor: 'slug',
4037
4025
  required: true,
4038
4026
  type: 'text',
4039
4027
  onInput: handleSlug,
4040
4028
  editable: false,
4041
- placeholder: t('page.slugPlaceholder'),
4029
+ placeholder: pageTranslations.slugPlaceholder,
4042
4030
  validations: {
4043
- required: t('page.slugRequired')
4031
+ required: pageTranslations.slugRequired
4044
4032
  }
4045
4033
  }, {
4046
- label: t('page.widgets'),
4034
+ label: pageTranslations.widgets,
4047
4035
  accessor: 'widgets',
4048
4036
  type: 'ReactSelect',
4049
4037
  options: widgets,
@@ -4098,15 +4086,17 @@ const Button = ({
4098
4086
  };
4099
4087
 
4100
4088
  const AddButton$1 = () => {
4089
+ const {
4090
+ commonTranslations
4091
+ } = useProviderState();
4101
4092
  const {
4102
4093
  onChangeFormState,
4103
- t,
4104
4094
  canAdd
4105
4095
  } = usePageState();
4106
4096
  return /*#__PURE__*/React__default["default"].createElement(Button, {
4107
4097
  disabled: !canAdd,
4108
4098
  onClick: () => onChangeFormState('ADD')
4109
- }, t('addButtonText') || t('common:addButtonText'));
4099
+ }, commonTranslations.add);
4110
4100
  };
4111
4101
 
4112
4102
  const ChevronLeft = ({
@@ -4210,7 +4200,9 @@ const Pagination = ({
4210
4200
 
4211
4201
  const PagePagination = () => {
4212
4202
  const {
4213
- t,
4203
+ commonTranslations
4204
+ } = useProviderState();
4205
+ const {
4214
4206
  totalPages,
4215
4207
  totalRecords,
4216
4208
  currentPage,
@@ -4218,11 +4210,11 @@ const PagePagination = () => {
4218
4210
  setCurrentPage
4219
4211
  } = usePageState();
4220
4212
  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'),
4213
+ ofText: commonTranslations.of,
4214
+ pageText: commonTranslations.confirm,
4215
+ showingText: commonTranslations.showing,
4216
+ nextContent: commonTranslations.next,
4217
+ previousContent: commonTranslations.previous,
4226
4218
  totalPages: totalPages,
4227
4219
  totalRecords: totalRecords,
4228
4220
  currentPage: currentPage,
@@ -4231,6 +4223,65 @@ const PagePagination = () => {
4231
4223
  });
4232
4224
  };
4233
4225
 
4226
+ const Drawer = ({
4227
+ children,
4228
+ open,
4229
+ onClose,
4230
+ title,
4231
+ footerContent
4232
+ }) => {
4233
+ const nodeRef = React.useRef(null);
4234
+ return /*#__PURE__*/React__default["default"].createElement(CSSTransition__default["default"], {
4235
+ ref: nodeRef,
4236
+ in: open,
4237
+ timeout: {
4238
+ enter: 250,
4239
+ exit: 350
4240
+ },
4241
+ classNames: "khb_drawer",
4242
+ mountOnEnter: true,
4243
+ unmountOnExit: true
4244
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
4245
+ className: "khb_drawer-wrapper-1",
4246
+ "aria-labelledby": "modal",
4247
+ role: "dialog",
4248
+ "aria-modal": "true",
4249
+ ref: nodeRef,
4250
+ "data-testid": "drawer"
4251
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
4252
+ className: "khb_drawer-wrapper-2"
4253
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
4254
+ className: "khb_drawer-backdrop",
4255
+ role: "button",
4256
+ onClick: onClose,
4257
+ onKeyDown: onClose,
4258
+ tabIndex: 0
4259
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
4260
+ className: "khb_drawer-container-1"
4261
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
4262
+ className: "khb_drawer-container-2"
4263
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
4264
+ className: "khb_drawer-close-section"
4265
+ }, /*#__PURE__*/React__default["default"].createElement("button", {
4266
+ type: "button",
4267
+ className: "khb_drawer-close-btn",
4268
+ onClick: onClose,
4269
+ "data-testid": "drawer-close"
4270
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
4271
+ className: "khb_sr-only"
4272
+ }, "Close panel"), /*#__PURE__*/React__default["default"].createElement(Close, null))), /*#__PURE__*/React__default["default"].createElement("div", {
4273
+ className: "khb_drawer-main"
4274
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
4275
+ className: "khb_drawer-header"
4276
+ }, /*#__PURE__*/React__default["default"].createElement("p", {
4277
+ className: "khb_drawer-header-title"
4278
+ }, title)), /*#__PURE__*/React__default["default"].createElement("div", {
4279
+ className: "khb_darwer-content"
4280
+ }, children), footerContent && /*#__PURE__*/React__default["default"].createElement("div", {
4281
+ className: "khb_drawer-footer"
4282
+ }, footerContent)))))));
4283
+ };
4284
+
4234
4285
  const Modal = ({
4235
4286
  open,
4236
4287
  onClose,
@@ -4327,65 +4378,6 @@ const DeleteModal = ({
4327
4378
  }, confirm || TRANSLATION_PAIRS_COMMON.confirm)))) : null;
4328
4379
  };
4329
4380
 
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
4381
  const FormActions = ({
4390
4382
  loading: _loading = false,
4391
4383
  primaryLabel: _primaryLabel = 'Submit',
@@ -4407,14 +4399,14 @@ const PageFormActions = ({
4407
4399
  formRef
4408
4400
  }) => {
4409
4401
  const {
4410
- onError
4402
+ onError,
4403
+ commonTranslations
4411
4404
  } = useProviderState();
4412
4405
  const {
4413
4406
  closeForm,
4414
4407
  loading,
4415
4408
  canAdd,
4416
4409
  canUpdate,
4417
- t,
4418
4410
  formState
4419
4411
  } = usePageState();
4420
4412
  const onSubmitClick = e => {
@@ -4434,10 +4426,10 @@ const PageFormActions = ({
4434
4426
  if (!canAdd && !canUpdate) return null;
4435
4427
  return /*#__PURE__*/React__default["default"].createElement(FormActions, {
4436
4428
  loading: loading,
4437
- primaryLabel: formState === 'ADD' ? t('createButtonText') || t('common:createButtonText') : t('updateButtonText') || t('common:updateButtonText'),
4429
+ primaryLabel: formState === 'ADD' ? commonTranslations.create : commonTranslations.update,
4438
4430
  onPrimaryButtonClick: onSubmitClick,
4439
4431
  onSecondaryButtonClick: closeForm,
4440
- secondaryLabel: t('cancelButtonText') || t('common:cancelButtonText')
4432
+ secondaryLabel: commonTranslations.cancel
4441
4433
  });
4442
4434
  };
4443
4435
 
@@ -4456,8 +4448,8 @@ const PageFormWrapper = ({
4456
4448
  };
4457
4449
 
4458
4450
  const Page = ({
4459
- t,
4460
4451
  loader,
4452
+ translations,
4461
4453
  explicitForm: _explicitForm = false,
4462
4454
  children,
4463
4455
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -4465,9 +4457,12 @@ const Page = ({
4465
4457
  permissions: _permissions = {},
4466
4458
  preConfirmDelete
4467
4459
  }) => {
4460
+ const {
4461
+ commonTranslations
4462
+ } = useProviderState();
4468
4463
  const derivedPermissions = Object.assign(DEFAULT_PERMISSIONS, _permissions);
4469
4464
  const formRef = React.useRef(null);
4470
- const derivedT = createTranslation(t, Object.assign(Object.assign({}, TRANSLATION_PAIRS_COMMON), TRANSLATION_PAIRS_PAGE));
4465
+ const combinedTranslations = Object.assign(Object.assign({}, TRANSLATION_PAIRS_PAGE), translations);
4471
4466
  const {
4472
4467
  list,
4473
4468
  widgets,
@@ -4496,7 +4491,6 @@ const Page = ({
4496
4491
  canList: derivedPermissions.list
4497
4492
  });
4498
4493
  return /*#__PURE__*/React__default["default"].createElement(PageContextProvider, {
4499
- t: derivedT,
4500
4494
  loader: loader,
4501
4495
  list: list,
4502
4496
  searchText: searchText,
@@ -4522,13 +4516,14 @@ const Page = ({
4522
4516
  canAdd: derivedPermissions.add,
4523
4517
  canDelete: derivedPermissions.delete,
4524
4518
  canUpdate: derivedPermissions.update,
4525
- canList: derivedPermissions.list
4519
+ canList: derivedPermissions.list,
4520
+ pageTranslations: translations
4526
4521
  }, 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
4522
  className: "khb_table-wrapper"
4528
4523
  }, /*#__PURE__*/React__default["default"].createElement(PageTable, null), /*#__PURE__*/React__default["default"].createElement(PagePagination, null))), !_explicitForm && /*#__PURE__*/React__default["default"].createElement(Drawer, {
4529
4524
  open: formState === 'ADD' || formState === 'UPDATE',
4530
4525
  onClose: onCloseForm,
4531
- title: formState === 'ADD' ? derivedT('page.addPageTitle') : formState === 'UPDATE' ? derivedT('page.updatePageTitle') : '',
4526
+ title: formState === 'ADD' ? combinedTranslations.addPage : formState === 'UPDATE' ? combinedTranslations.updatePage : '',
4532
4527
  footerContent: /*#__PURE__*/React__default["default"].createElement(PageFormActions, {
4533
4528
  formRef: formRef
4534
4529
  })
@@ -4539,13 +4534,13 @@ const Page = ({
4539
4534
  itemData: itemData,
4540
4535
  onClose: onCloseForm,
4541
4536
  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')
4537
+ confirmationRequired: commonTranslations.confirmationRequired,
4538
+ confirm: commonTranslations.confirm,
4539
+ lossOfData: commonTranslations.lossOfData,
4540
+ permanentlyDelete: commonTranslations.permanentlyDelete,
4541
+ pleaseType: commonTranslations.pleaseType,
4542
+ toProceedOrCancel: commonTranslations.toProceedOrCancel,
4543
+ typeHerePlaceholder: commonTranslations.typeHerePlaceholder
4549
4544
  }));
4550
4545
  };
4551
4546
  Page.Table = PageTable;
@@ -6057,7 +6052,6 @@ $$1({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {
6057
6052
 
6058
6053
  const WidgetContext = /*#__PURE__*/React.createContext(null);
6059
6054
  const WidgetContextProvider = ({
6060
- t: _t = () => '',
6061
6055
  // Form
6062
6056
  list: _list = [],
6063
6057
  languages: _languages = [],
@@ -6101,12 +6095,12 @@ const WidgetContextProvider = ({
6101
6095
  onPartialUpdateWidget: _onPartialUpdateWidget = () => Promise.resolve(),
6102
6096
  reactSelectStyles: _reactSelectStyles = {},
6103
6097
  imageMaxSize: _imageMaxSize = 10485760,
6098
+ widgetTranslations,
6104
6099
  // other
6105
6100
  children
6106
6101
  }) => {
6107
6102
  return /*#__PURE__*/React__default["default"].createElement(WidgetContext.Provider, {
6108
6103
  value: {
6109
- t: _t,
6110
6104
  // Form
6111
6105
  list: _list,
6112
6106
  languages: _languages,
@@ -6149,7 +6143,8 @@ const WidgetContextProvider = ({
6149
6143
  data: _data,
6150
6144
  canDelete: _canDelete,
6151
6145
  loader: _loader,
6152
- imageMaxSize: _imageMaxSize
6146
+ imageMaxSize: _imageMaxSize,
6147
+ widgetTranslations: Object.assign(Object.assign({}, TRANSLATION_PAIRS_WIDGET), widgetTranslations || {})
6153
6148
  }
6154
6149
  }, children);
6155
6150
  };
@@ -6183,6 +6178,7 @@ const WidgetTable = ({
6183
6178
  extraColumns
6184
6179
  }) => {
6185
6180
  const {
6181
+ commonTranslations,
6186
6182
  switchClass
6187
6183
  } = useProviderState();
6188
6184
  const {
@@ -6193,8 +6189,7 @@ const WidgetTable = ({
6193
6189
  onChangeFormState,
6194
6190
  onPartialUpdateWidget,
6195
6191
  loading,
6196
- loader,
6197
- t
6192
+ loader
6198
6193
  } = useWidgetState();
6199
6194
  const updateClosure = React.useCallback((item, key, value) => {
6200
6195
  onPartialUpdateWidget({
@@ -6204,15 +6199,15 @@ const WidgetTable = ({
6204
6199
  const onUpdateClick = item => onChangeFormState('UPDATE', item);
6205
6200
  const onDeleteClick = item => onChangeFormState('DELETE', item);
6206
6201
  const dataKeys = [{
6207
- label: t('widget.tableName'),
6202
+ label: commonTranslations.name,
6208
6203
  dataKey: 'name',
6209
6204
  highlight: true
6210
6205
  }, {
6211
- label: t('widget.tableCode'),
6206
+ label: commonTranslations.code,
6212
6207
  dataKey: 'code'
6213
6208
  }];
6214
6209
  if (canPartialUpdate) dataKeys.push({
6215
- label: t('widget.tableActive'),
6210
+ label: commonTranslations.active,
6216
6211
  dataKey: 'isActive',
6217
6212
  Cell: ({
6218
6213
  row
@@ -6227,7 +6222,7 @@ const WidgetTable = ({
6227
6222
  loader: loader,
6228
6223
  loading: loading,
6229
6224
  dataKeys: dataKeys,
6230
- actionsLabel: t('widget.actionsLabel'),
6225
+ actionsLabel: commonTranslations.actions,
6231
6226
  extraColumns: extraColumns,
6232
6227
  extraActions: extraActions,
6233
6228
  actions: {
@@ -6558,14 +6553,15 @@ const ItemsAccordian = ({
6558
6553
  deleteText: _deleteText = 'Delete'
6559
6554
  }) => {
6560
6555
  const {
6561
- baseUrl
6556
+ baseUrl,
6557
+ commonTranslations
6562
6558
  } = useProviderState();
6563
6559
  const {
6564
6560
  onImageUpload,
6565
6561
  onImageRemove,
6566
- t,
6567
6562
  imageBaseUrl,
6568
- imageMaxSize
6563
+ imageMaxSize,
6564
+ widgetTranslations
6569
6565
  } = useWidgetState();
6570
6566
  const [itemsShow, setItemsShow] = React.useState([]);
6571
6567
  const {
@@ -6626,9 +6622,9 @@ const ItemsAccordian = ({
6626
6622
  id: `${id}-item-${index}`,
6627
6623
  footerContent: /*#__PURE__*/React__default["default"].createElement(ConfirmPopOver, {
6628
6624
  onConfirm: () => removeItem(index),
6629
- title: t('item.deleteTitle'),
6630
- confirmText: t('yesButtonText') || t('common:yesButtonText'),
6631
- cancelText: t('cancelButtonText') || t('common:cancelButtonText')
6625
+ title: widgetTranslations.deleteTitle,
6626
+ confirmText: commonTranslations.yes,
6627
+ cancelText: commonTranslations.cancel
6632
6628
  }, /*#__PURE__*/React__default["default"].createElement(Button, {
6633
6629
  type: "danger",
6634
6630
  size: "sm",
@@ -6640,67 +6636,72 @@ const ItemsAccordian = ({
6640
6636
  var _a, _b, _c, _d, _e, _f, _g, _h;
6641
6637
  return /*#__PURE__*/React__default["default"].createElement(Input, {
6642
6638
  rest: register(`${name}.${index}.titles.${lang.code}`, {
6643
- required: t('item.titleRequired')
6639
+ required: commonTranslations.titleRequired
6644
6640
  }),
6645
- label: t('item.title') + ` (${lang.name})`,
6641
+ label: commonTranslations.title + ` (${lang.name})`,
6646
6642
  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
6643
  type: "text",
6648
6644
  className: "w-full p-2",
6649
- placeholder: t('item.titlePlaceholder') + ` (${lang.name})`,
6645
+ placeholder: commonTranslations.titlePlaceholder + ` (${lang.name})`,
6650
6646
  required: true
6651
6647
  });
6652
6648
  })) : /*#__PURE__*/React__default["default"].createElement(Input, {
6653
6649
  rest: register(`${name}.${index}.title`, {
6654
- required: t('item.titleRequired')
6650
+ required: commonTranslations.titleRequired
6655
6651
  }),
6656
- label: t('item.title'),
6652
+ label: commonTranslations.title,
6657
6653
  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
6654
  type: "text",
6659
6655
  className: "w-full p-2",
6660
- placeholder: t('item.titlePlaceholder'),
6656
+ placeholder: commonTranslations.titlePlaceholder,
6661
6657
  required: true
6662
6658
  }), 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
6659
  rest: register(`${name}.${index}.subtitles.${lang.code}`),
6664
- label: t('item.subtitle') + ` (${lang.name})`,
6660
+ label: widgetTranslations.subtitle + ` (${lang.name})`,
6665
6661
  type: "text",
6666
6662
  className: "w-full p-2",
6667
- placeholder: t('item.subTitlePlaceholder') + ` (${lang.name})`
6663
+ placeholder: widgetTranslations.subTitlePlaceholder + ` (${lang.name})`
6668
6664
  }))) : /*#__PURE__*/React__default["default"].createElement(Input, {
6669
6665
  rest: register(`${name}.${index}.subtitle`),
6670
- label: t('item.subtitle'),
6666
+ label: widgetTranslations.subtitle,
6671
6667
  type: "text",
6672
6668
  className: "w-full p-2",
6673
- placeholder: t('item.subTitlePlaceholder')
6669
+ placeholder: widgetTranslations.subTitlePlaceholder
6674
6670
  }), 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
6671
  rest: register(`${name}.${index}.altTexts.${lang.code}`),
6676
- label: t('item.altText') + ` (${lang.name})`,
6677
- type: 'text',
6672
+ label: widgetTranslations.altText + ` (${lang.name})`,
6673
+ type: "text",
6678
6674
  className: "w-full p-2",
6679
- placeholder: t('item.altTextPlaceholder') + ` (${lang.name})`
6675
+ placeholder: widgetTranslations.altTextPlaceholder + ` (${lang.name})`
6680
6676
  }))) : /*#__PURE__*/React__default["default"].createElement(Input, {
6681
6677
  rest: register(`${name}.${index}.altText`),
6682
- label: t('item.altText'),
6683
- type: 'text',
6678
+ label: widgetTranslations.altText,
6679
+ type: "text",
6684
6680
  className: "w-full p-2",
6685
- placeholder: t('item.altTextPlaceholder')
6681
+ placeholder: widgetTranslations.altTextPlaceholder
6686
6682
  }), /*#__PURE__*/React__default["default"].createElement(Input, {
6687
6683
  rest: register(`${name}.${index}.link`),
6688
- label: t('item.link'),
6689
- type: 'url',
6684
+ label: widgetTranslations.link,
6685
+ type: "url",
6690
6686
  className: "w-full p-2",
6691
- placeholder: t('item.linkPlaceholder')
6687
+ placeholder: widgetTranslations.linkPlaceholder
6692
6688
  }), /*#__PURE__*/React__default["default"].createElement(Input.SrcSet, {
6693
6689
  control: control,
6694
6690
  register: register,
6695
- label: t(`item.srcset`),
6691
+ label: widgetTranslations.srcset,
6696
6692
  name: `${name}.${index}.srcset`,
6697
6693
  errors: (_f = (_e = errors[name]) === null || _e === void 0 ? void 0 : _e[index]) === null || _f === void 0 ? void 0 : _f['srcset'],
6698
- t: t
6694
+ screenSizeRequired: widgetTranslations.screenSizeRequired,
6695
+ heightRequired: widgetTranslations.heightRequired,
6696
+ minHeight: widgetTranslations.minHeight,
6697
+ minScreenSize: widgetTranslations.minScreenSize,
6698
+ minWidth: widgetTranslations.minWidth,
6699
+ widthRequired: widgetTranslations.widthRequired
6699
6700
  }), Array.isArray(languages) && languages.length > 0 ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, languages.map(lang => {
6700
6701
  var _a, _b, _c, _d, _e;
6701
6702
  return /*#__PURE__*/React__default["default"].createElement(ImageInput, {
6702
6703
  key: lang.code,
6703
- label: t('item.image') + ` (${lang.name})`,
6704
+ label: widgetTranslations.image + ` (${lang.name})`,
6704
6705
  control: control,
6705
6706
  name: `${name}.${index}.imgs.${lang.code}`,
6706
6707
  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 +6715,14 @@ const ItemsAccordian = ({
6714
6715
  className: "khb_img-text-wrapper"
6715
6716
  }, /*#__PURE__*/React__default["default"].createElement("div", {
6716
6717
  className: "khb_img-text-label"
6717
- }, /*#__PURE__*/React__default["default"].createElement("span", null, t('item.uploadFile'))), /*#__PURE__*/React__default["default"].createElement("p", {
6718
+ }, /*#__PURE__*/React__default["default"].createElement("span", null, widgetTranslations.uploadFile)), /*#__PURE__*/React__default["default"].createElement("p", {
6718
6719
  className: "khb_img-text-1"
6719
- }, t('item.dragDrop'))), /*#__PURE__*/React__default["default"].createElement("p", {
6720
+ }, widgetTranslations.dragDrop)), /*#__PURE__*/React__default["default"].createElement("p", {
6720
6721
  className: "khb_img-text-2"
6721
- }, t('item.allowedFormat')))
6722
+ }, widgetTranslations.allowedFormat))
6722
6723
  });
6723
6724
  })) : /*#__PURE__*/React__default["default"].createElement(ImageInput, {
6724
- label: t('item.image'),
6725
+ label: widgetTranslations.image,
6725
6726
  control: control,
6726
6727
  name: `${name}.${index}.img`,
6727
6728
  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 +6736,11 @@ const ItemsAccordian = ({
6735
6736
  className: "khb_img-text-wrapper"
6736
6737
  }, /*#__PURE__*/React__default["default"].createElement("div", {
6737
6738
  className: "khb_img-text-label"
6738
- }, /*#__PURE__*/React__default["default"].createElement("span", null, t('item.uploadFile'))), /*#__PURE__*/React__default["default"].createElement("p", {
6739
+ }, /*#__PURE__*/React__default["default"].createElement("span", null, widgetTranslations.uploadFile)), /*#__PURE__*/React__default["default"].createElement("p", {
6739
6740
  className: "khb_img-text-1"
6740
- }, t('item.dragDrop'))), /*#__PURE__*/React__default["default"].createElement("p", {
6741
+ }, widgetTranslations.dragDrop)), /*#__PURE__*/React__default["default"].createElement("p", {
6741
6742
  className: "khb_img-text-2"
6742
- }, t('item.allowedFormat')))
6743
+ }, widgetTranslations.allowedFormat))
6743
6744
  })));
6744
6745
  })));
6745
6746
  };
@@ -6950,10 +6951,10 @@ const WidgetForm = ({
6950
6951
  shouldUnregister: false
6951
6952
  });
6952
6953
  const {
6953
- switchClass
6954
+ switchClass,
6955
+ commonTranslations
6954
6956
  } = useProviderState();
6955
6957
  const {
6956
- t,
6957
6958
  data,
6958
6959
  canAdd,
6959
6960
  canUpdate,
@@ -6962,6 +6963,7 @@ const WidgetForm = ({
6962
6963
  widgetTypes,
6963
6964
  loading,
6964
6965
  languages,
6966
+ widgetTranslations,
6965
6967
  onWidgetFormSubmit,
6966
6968
  getCollectionData,
6967
6969
  collectionData,
@@ -7106,7 +7108,7 @@ const WidgetForm = ({
7106
7108
  if (!tabItem.names[lang.code]) {
7107
7109
  setError(`tabs.${index}.names.${lang.code}`, {
7108
7110
  type: 'manual',
7109
- message: `${t('widget.tabNameRequired')} (${lang.name})`
7111
+ message: `${widgetTranslations.tabNameRequired} (${lang.name})`
7110
7112
  });
7111
7113
  isTabsValid = false;
7112
7114
  }
@@ -7114,7 +7116,7 @@ const WidgetForm = ({
7114
7116
  } else if (!tabItem.name) {
7115
7117
  setError(`tabs.${index}.name`, {
7116
7118
  type: 'manual',
7117
- message: t('widget.tabNameRequired')
7119
+ message: widgetTranslations.tabNameRequired
7118
7120
  });
7119
7121
  isTabsValid = false;
7120
7122
  }
@@ -7158,15 +7160,13 @@ const WidgetForm = ({
7158
7160
  items = items.map(_a => {
7159
7161
  var item = __rest(_a, ["_id", "__v", "widgetId"]);
7160
7162
  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];
7163
+ Object.keys(item['imgs']).forEach(key => {
7164
+ if (item['imgs'][key] && item['imgs'][key]['_id']) {
7165
+ item['imgs'][key] = item['imgs'][key]['_id'];
7166
+ } else if (typeof item['imgs'][key] !== 'string' || !item['imgs'][key]) {
7167
+ delete item['imgs'][key];
7167
7168
  }
7168
7169
  });
7169
- item['imgs'] = obj;
7170
7170
  }
7171
7171
  if (item['img'] && item['img']['_id']) {
7172
7172
  item['img'] = item['img']['_id'];
@@ -7214,123 +7214,123 @@ const WidgetForm = ({
7214
7214
  }, [watch, onWidgetFormInputChange]);
7215
7215
  // Schemas
7216
7216
  const widgetFormSchema = [{
7217
- label: `${t('widget.name')}`,
7217
+ label: commonTranslations.name,
7218
7218
  required: true,
7219
7219
  accessor: 'name',
7220
7220
  type: 'text',
7221
- placeholder: t('widget.namePlaceholder'),
7221
+ placeholder: commonTranslations.namePlaceholder,
7222
7222
  onInput: handleCapitalize,
7223
7223
  validations: {
7224
- required: t('widget.nameRequired')
7224
+ required: commonTranslations.nameRequired
7225
7225
  },
7226
7226
  wrapperClassName: 'khb_grid-item-1of2 khb_padding-right-1 khb_align-top'
7227
7227
  }, {
7228
- label: `${t('widget.code')}`,
7228
+ label: commonTranslations.code,
7229
7229
  accessor: 'code',
7230
7230
  required: true,
7231
7231
  type: 'text',
7232
7232
  onInput: handleCode,
7233
7233
  editable: false,
7234
- placeholder: t('widget.codePlaceholder'),
7234
+ placeholder: commonTranslations.codePlaceholder,
7235
7235
  validations: {
7236
- required: t('widget.codeRequired')
7236
+ required: commonTranslations.codeRequired
7237
7237
  },
7238
7238
  wrapperClassName: 'khb_grid-item-1of2 khb_padding-left-1 khb_align-top khb_margin-top-0'
7239
7239
  }, Array.isArray(languages) && languages.length > 0 ? {
7240
- label: `${t('widget.widgetTitle')}`,
7240
+ label: commonTranslations.title,
7241
7241
  accessor: 'widgetTitles',
7242
7242
  required: true,
7243
7243
  type: customInputs && customInputs['widgetTitles'] ? undefined : 'text',
7244
7244
  validations: {
7245
- required: t('widget.widgetTitleRequired')
7245
+ required: commonTranslations.titleRequired
7246
7246
  },
7247
- info: t('widget.widgetTitleInfo'),
7248
- placeholder: t('widget.widgetTitlePlaceholder'),
7247
+ info: widgetTranslations.widgetTitleInfo,
7248
+ placeholder: commonTranslations.titlePlaceholder,
7249
7249
  onInput: handleCapitalize,
7250
7250
  Input: customInputs && customInputs['widgetTitles'] ? customInputs['widgetTitles'] : undefined
7251
7251
  } : {
7252
- label: `${t('widget.widgetTitle')}`,
7252
+ label: commonTranslations.title,
7253
7253
  accessor: 'widgetTitle',
7254
7254
  required: true,
7255
7255
  type: customInputs && customInputs['widgetTitle'] ? undefined : 'text',
7256
7256
  onInput: handleCapitalize,
7257
- placeholder: t('widget.widgetTitlePlaceholder'),
7257
+ placeholder: commonTranslations.titlePlaceholder,
7258
7258
  validations: {
7259
- required: t('widget.widgetTitleRequired')
7259
+ required: commonTranslations.titleRequired
7260
7260
  },
7261
- info: t('widget.widgetTitleInfo'),
7261
+ info: widgetTranslations.widgetTitleInfo,
7262
7262
  Input: customInputs && customInputs['widgetTitle'] ? customInputs['widgetTitle'] : undefined
7263
7263
  }, {
7264
- label: `${t('widget.widgetType')}`,
7264
+ label: widgetTranslations.widgetType,
7265
7265
  required: true,
7266
7266
  editable: false,
7267
7267
  accessor: 'widgetType',
7268
7268
  type: 'select',
7269
7269
  validations: {
7270
- required: t('widget.widgetTypeRequired')
7270
+ required: widgetTranslations.widgetTypeRequired
7271
7271
  },
7272
7272
  options: widgetTypes
7273
7273
  }, {
7274
- label: t('widget.autoPlay'),
7274
+ label: widgetTranslations.autoPlay,
7275
7275
  accessor: 'autoPlay',
7276
7276
  type: 'checkbox',
7277
7277
  show: (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) === 'Carousel',
7278
7278
  switchClass: switchClass
7279
7279
  }, {
7280
- label: `${t('widget.itemsType')}`,
7280
+ label: widgetTranslations.itemsType,
7281
7281
  required: true,
7282
7282
  editable: false,
7283
7283
  accessor: 'itemsType',
7284
7284
  type: 'select',
7285
7285
  validations: {
7286
- required: t('widget.itemsTypePlaceholder')
7286
+ required: widgetTranslations.itemsTypePlaceholder
7287
7287
  },
7288
7288
  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
7289
  }, {
7290
- label: t('widget.color'),
7290
+ label: widgetTranslations.color,
7291
7291
  accessor: 'backgroundColor',
7292
7292
  type: 'color',
7293
7293
  className: 'khb_input-color'
7294
7294
  }, {
7295
- label: t('widget.webPerRow'),
7295
+ label: widgetTranslations.webPerRow,
7296
7296
  accessor: 'webPerRow',
7297
7297
  type: 'number',
7298
7298
  required: true,
7299
- placeholder: t('widget.webPerRowPlaceholder'),
7299
+ placeholder: widgetTranslations.webPerRowPlaceholder,
7300
7300
  wrapperClassName: 'khb_grid-item-1of3 khb_padding-right-1',
7301
7301
  validations: {
7302
- required: t('widget.webPerRowRequired'),
7302
+ required: widgetTranslations.webPerRowRequired,
7303
7303
  min: {
7304
7304
  value: 1,
7305
- message: t('widget.minPerRow')
7305
+ message: widgetTranslations.minPerRow
7306
7306
  }
7307
7307
  }
7308
7308
  }, {
7309
- label: t('widget.tabletPerRow'),
7309
+ label: widgetTranslations.tabletPerRow,
7310
7310
  accessor: 'tabletPerRow',
7311
7311
  type: 'number',
7312
7312
  required: true,
7313
- placeholder: t('widget.tabletPerRowPlaceholder'),
7313
+ placeholder: widgetTranslations.tabletPerRowPlaceholder,
7314
7314
  wrapperClassName: 'khb_grid-item-1of3 khb_padding-left-1',
7315
7315
  validations: {
7316
- required: t('widget.tabletPerRowRequired'),
7316
+ required: widgetTranslations.tabletPerRowRequired,
7317
7317
  min: {
7318
7318
  value: 1,
7319
- message: t('widget.minPerRow')
7319
+ message: widgetTranslations.minPerRow
7320
7320
  }
7321
7321
  }
7322
7322
  }, {
7323
- label: t('widget.mobilePerRow'),
7323
+ label: widgetTranslations.mobilePerRow,
7324
7324
  accessor: 'mobilePerRow',
7325
7325
  type: 'number',
7326
7326
  required: true,
7327
- placeholder: t('widget.mobilePerRowPlaceholder'),
7327
+ placeholder: widgetTranslations.mobilePerRowPlaceholder,
7328
7328
  wrapperClassName: 'khb_grid-item-1of3 khb_padding-right-1 khb_padding-left-1',
7329
7329
  validations: {
7330
- required: t('widget.mobilePerRowRequired'),
7330
+ required: widgetTranslations.mobilePerRowRequired,
7331
7331
  min: {
7332
7332
  value: 1,
7333
- message: t('widget.minPerRow')
7333
+ message: widgetTranslations.minPerRow
7334
7334
  }
7335
7335
  }
7336
7336
  }, {
@@ -7372,9 +7372,9 @@ const WidgetForm = ({
7372
7372
  setValue: setValue,
7373
7373
  control: control,
7374
7374
  languages: languages,
7375
- deleteTitle: t('widget.tabDeleteTitle'),
7376
- yesButtonText: t('yesButtonText') || t('common:yesButtonText'),
7377
- noButtonText: t('cancelButtonText') || t('common:cancelButtonText'),
7375
+ deleteTitle: widgetTranslations.tabDeleteTitle,
7376
+ yesButtonText: commonTranslations.yes,
7377
+ noButtonText: commonTranslations.cancel,
7378
7378
  errors: errors,
7379
7379
  itemsPlaceholder: `Select ${selectedCollectionType === null || selectedCollectionType === void 0 ? void 0 : selectedCollectionType.label}...`,
7380
7380
  loadOptions: onChangeSearch,
@@ -7396,7 +7396,7 @@ const WidgetForm = ({
7396
7396
  languages: languages,
7397
7397
  clearError: clearErrors,
7398
7398
  collapseId: constants.webItems,
7399
- title: t('widget.webItems'),
7399
+ title: widgetTranslations.webItems,
7400
7400
  id: constants.webItems,
7401
7401
  setError: setError,
7402
7402
  show: webItemsVisible || !!(errors && (errors === null || errors === void 0 ? void 0 : errors[constants.webItems])),
@@ -7407,13 +7407,13 @@ const WidgetForm = ({
7407
7407
  control: control,
7408
7408
  register: register,
7409
7409
  loading: loading,
7410
- addText: t('addButtonText'),
7411
- deleteText: t('deleteButtonText') || t('common:deleteButtonText')
7410
+ addText: commonTranslations.add,
7411
+ deleteText: commonTranslations.delete
7412
7412
  }), /*#__PURE__*/React__default["default"].createElement(ItemsAccordian, {
7413
7413
  languages: languages,
7414
7414
  clearError: clearErrors,
7415
7415
  collapseId: constants.mobileItems,
7416
- title: t('widget.mobileItems'),
7416
+ title: widgetTranslations.mobileItems,
7417
7417
  id: constants.mobileItems,
7418
7418
  name: constants.mobileItems,
7419
7419
  setError: setError,
@@ -7424,26 +7424,30 @@ const WidgetForm = ({
7424
7424
  errors: errors,
7425
7425
  control: control,
7426
7426
  register: register,
7427
- addText: t('addButtonText'),
7428
- deleteText: t('deleteButtonText') || t('common:deleteButtonText')
7427
+ addText: commonTranslations.add,
7428
+ deleteText: commonTranslations.delete
7429
7429
  })));
7430
7430
  };
7431
7431
 
7432
7432
  const AddButton = () => {
7433
+ const {
7434
+ commonTranslations
7435
+ } = useProviderState();
7433
7436
  const {
7434
7437
  onChangeFormState,
7435
- t,
7436
7438
  canAdd
7437
7439
  } = useWidgetState();
7438
7440
  return /*#__PURE__*/React__default["default"].createElement(Button, {
7439
7441
  disabled: !canAdd,
7440
7442
  onClick: () => onChangeFormState('ADD')
7441
- }, t('addButtonText') || t('common:addButtonText'));
7443
+ }, commonTranslations.add);
7442
7444
  };
7443
7445
 
7444
7446
  const WidgetPagination = () => {
7445
7447
  const {
7446
- t,
7448
+ commonTranslations
7449
+ } = useProviderState();
7450
+ const {
7447
7451
  totalPages,
7448
7452
  totalRecords,
7449
7453
  currentPage,
@@ -7451,11 +7455,11 @@ const WidgetPagination = () => {
7451
7455
  setCurrentPage
7452
7456
  } = useWidgetState();
7453
7457
  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'),
7458
+ ofText: commonTranslations.of,
7459
+ pageText: commonTranslations.page,
7460
+ showingText: commonTranslations.showing,
7461
+ nextContent: commonTranslations.next,
7462
+ previousContent: commonTranslations.previous,
7459
7463
  totalPages: totalPages,
7460
7464
  totalRecords: totalRecords,
7461
7465
  currentPage: currentPage,
@@ -7467,7 +7471,7 @@ const WidgetPagination = () => {
7467
7471
  const WidgetSearch = () => {
7468
7472
  const {
7469
7473
  changeSearch,
7470
- t,
7474
+ widgetTranslations,
7471
7475
  canList,
7472
7476
  setCurrentPage
7473
7477
  } = useWidgetState();
@@ -7486,7 +7490,7 @@ const WidgetSearch = () => {
7486
7490
  value: searchVal,
7487
7491
  disabled: !canList,
7488
7492
  onChange: e => onChangeSearch(e.target.value),
7489
- placeholder: t('widget.searchPlaceholder')
7493
+ placeholder: widgetTranslations.searchPlaceholder
7490
7494
  });
7491
7495
  };
7492
7496
 
@@ -7494,14 +7498,14 @@ const WidgetFormActions = ({
7494
7498
  formRef
7495
7499
  }) => {
7496
7500
  const {
7497
- onError
7501
+ onError,
7502
+ commonTranslations
7498
7503
  } = useProviderState();
7499
7504
  const {
7500
7505
  closeForm,
7501
7506
  loading,
7502
7507
  canAdd,
7503
7508
  canUpdate,
7504
- t,
7505
7509
  formState
7506
7510
  } = useWidgetState();
7507
7511
  const onSubmitClick = e => {
@@ -7521,10 +7525,10 @@ const WidgetFormActions = ({
7521
7525
  if (!canAdd && !canUpdate) return null;
7522
7526
  return /*#__PURE__*/React__default["default"].createElement(FormActions, {
7523
7527
  loading: loading,
7524
- primaryLabel: formState === 'ADD' ? t('createButtonText') || t('common:createButtonText') : t('updateButtonText') || t('common:updateButtonText'),
7528
+ primaryLabel: formState === 'ADD' ? commonTranslations.create : commonTranslations.update,
7525
7529
  onPrimaryButtonClick: onSubmitClick,
7526
7530
  onSecondaryButtonClick: closeForm,
7527
- secondaryLabel: t('cancelButtonText') || t('common:cancelButtonText')
7531
+ secondaryLabel: commonTranslations.cancel
7528
7532
  });
7529
7533
  };
7530
7534
 
@@ -7543,7 +7547,6 @@ const WiddgetFormWrapper = ({
7543
7547
  };
7544
7548
 
7545
7549
  const Widget = ({
7546
- t,
7547
7550
  routes,
7548
7551
  loader,
7549
7552
  explicitForm: _explicitForm = false,
@@ -7555,11 +7558,15 @@ const Widget = ({
7555
7558
  formatListItem,
7556
7559
  formatOptionLabel,
7557
7560
  imageMaxSize,
7561
+ translations,
7558
7562
  children
7559
7563
  }) => {
7564
+ const {
7565
+ commonTranslations
7566
+ } = useProviderState();
7560
7567
  const derivedPermissions = Object.assign(DEFAULT_PERMISSIONS, _permissions);
7561
7568
  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));
7569
+ const derivedT = Object.assign(Object.assign({}, TRANSLATION_PAIRS_WIDGET), translations || {});
7563
7570
  const {
7564
7571
  list,
7565
7572
  loading,
@@ -7600,7 +7607,6 @@ const Widget = ({
7600
7607
  languages: languages,
7601
7608
  imageBaseUrl: imageBaseUrl,
7602
7609
  onChangeFormState: onChangeFormState,
7603
- t: derivedT,
7604
7610
  searchText: searchText,
7605
7611
  changeSearch: changeSearch,
7606
7612
  loader: loader,
@@ -7631,13 +7637,14 @@ const Widget = ({
7631
7637
  canPartialUpdate: derivedPermissions.partialUpdate,
7632
7638
  formState: formState,
7633
7639
  closeForm: onCloseForm,
7634
- imageMaxSize: imageMaxSize
7640
+ imageMaxSize: imageMaxSize,
7641
+ widgetTranslations: translations
7635
7642
  }, 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
7643
  className: "khb_table-wrapper"
7637
7644
  }, /*#__PURE__*/React__default["default"].createElement(WidgetTable, null), /*#__PURE__*/React__default["default"].createElement(WidgetPagination, null))), !_explicitForm && /*#__PURE__*/React__default["default"].createElement(Drawer, {
7638
7645
  open: formState === 'ADD' || formState === 'UPDATE',
7639
7646
  onClose: onCloseForm,
7640
- title: formState === 'ADD' ? derivedT('widget.addWidgetTitle') : formState === 'UPDATE' ? derivedT('widget.updateWidgetTitle') : '',
7647
+ title: formState === 'ADD' ? derivedT.addWidgetTitle : formState === 'UPDATE' ? derivedT.updateWidgetTitle : '',
7641
7648
  footerContent: /*#__PURE__*/React__default["default"].createElement(WidgetFormActions, {
7642
7649
  formRef: widgetFormRef
7643
7650
  })
@@ -7648,13 +7655,13 @@ const Widget = ({
7648
7655
  itemData: itemData,
7649
7656
  onClose: onCloseForm,
7650
7657
  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')
7658
+ confirmationRequired: commonTranslations.confirmationRequired,
7659
+ confirm: commonTranslations.confirm,
7660
+ lossOfData: commonTranslations.lossOfData,
7661
+ permanentlyDelete: commonTranslations.permanentlyDelete,
7662
+ pleaseType: commonTranslations.pleaseType,
7663
+ toProceedOrCancel: commonTranslations.toProceedOrCancel,
7664
+ typeHerePlaceholder: commonTranslations.typeHerePlaceholder
7658
7665
  }));
7659
7666
  };
7660
7667
  Widget.Table = WidgetTable;