@crystaldesign/diva-backoffice 26.3.0-rc.2 → 26.3.0-rc.4

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.
@@ -9425,16 +9425,6 @@ function loadConfiguration(t, root, config, lang, apiConfig) {
9425
9425
  onSave: function onSave(data) {
9426
9426
  return data;
9427
9427
  }
9428
- }, {
9429
- name: ['settings', 'makeApiKey'],
9430
- label: t('backoffice.form.organizationdetails.items.settings.makeApiKey'),
9431
- permission: 'backoffice_admin_organizations',
9432
- type: 'input'
9433
- }, {
9434
- name: ['settings', 'leadTableApiKey'],
9435
- label: t('backoffice.form.organizationdetails.items.settings.leadTableApiKey'),
9436
- permission: 'backoffice_admin_organizations',
9437
- type: 'input'
9438
9428
  }, {
9439
9429
  name: ['settings', 'isCampaign'],
9440
9430
  label: t('backoffice.form.organizationdetails.items.isCampaign'),
@@ -9849,7 +9839,7 @@ function loadConfiguration(t, root, config, lang, apiConfig) {
9849
9839
  marginBottom: '20px'
9850
9840
  },
9851
9841
  hidden: function hidden(data) {
9852
- return (data === null || data === void 0 ? void 0 : data.parentType) === 'SUPPLIER' && (data === null || data === void 0 ? void 0 : data.type) === undefined;
9842
+ return !showCampaignFields(data);
9853
9843
  }
9854
9844
  }, {
9855
9845
  name: ['settings', 'campaignSettings', 'metaCampaignId'],
@@ -9857,7 +9847,7 @@ function loadConfiguration(t, root, config, lang, apiConfig) {
9857
9847
  tabgroup: t('backoffice.form.organizationdetails.campaignLandingPage'),
9858
9848
  type: 'input',
9859
9849
  hidden: function hidden(data) {
9860
- return (data === null || data === void 0 ? void 0 : data.parentType) === 'SUPPLIER' && (data === null || data === void 0 ? void 0 : data.type) === undefined;
9850
+ return !showCampaignFields(data);
9861
9851
  }
9862
9852
  }, {
9863
9853
  name: ['settings', 'campaignSettings', 'metaAdSetId'],
@@ -9865,7 +9855,7 @@ function loadConfiguration(t, root, config, lang, apiConfig) {
9865
9855
  tabgroup: t('backoffice.form.organizationdetails.campaignLandingPage'),
9866
9856
  type: 'input',
9867
9857
  hidden: function hidden(data) {
9868
- return (data === null || data === void 0 ? void 0 : data.parentType) === 'SUPPLIER' && (data === null || data === void 0 ? void 0 : data.type) === undefined;
9858
+ return !showCampaignFields(data);
9869
9859
  }
9870
9860
  }, {
9871
9861
  name: ['settings', 'campaignSettings', 'googleAnalyticsPropertyId'],
@@ -9873,7 +9863,25 @@ function loadConfiguration(t, root, config, lang, apiConfig) {
9873
9863
  tabgroup: t('backoffice.form.organizationdetails.campaignLandingPage'),
9874
9864
  type: 'input',
9875
9865
  hidden: function hidden(data) {
9876
- return (data === null || data === void 0 ? void 0 : data.parentType) === 'SUPPLIER' && (data === null || data === void 0 ? void 0 : data.type) === undefined;
9866
+ return !showCampaignFields(data);
9867
+ }
9868
+ }, {
9869
+ name: ['settings', 'makeApiKey'],
9870
+ label: t('backoffice.form.organizationdetails.items.settings.makeApiKey'),
9871
+ permission: 'backoffice_admin_organizations',
9872
+ tabgroup: t('backoffice.form.organizationdetails.campaignLandingPage'),
9873
+ type: 'input',
9874
+ hidden: function hidden(data) {
9875
+ return !showCampaignFields(data);
9876
+ }
9877
+ }, {
9878
+ name: ['settings', 'leadTableApiKey'],
9879
+ label: t('backoffice.form.organizationdetails.items.settings.leadTableApiKey'),
9880
+ permission: 'backoffice_admin_organizations',
9881
+ tabgroup: t('backoffice.form.organizationdetails.campaignLandingPage'),
9882
+ type: 'input',
9883
+ hidden: function hidden(data) {
9884
+ return (data === null || data === void 0 ? void 0 : data.type) !== 'CAMPAIGN' && (data === null || data === void 0 ? void 0 : data.type) !== 'RETAILERCHILD' && (data === null || data === void 0 ? void 0 : data.type) !== 'RETAILER' && (data === null || data === void 0 ? void 0 : data.parentType) !== 'RETAILER';
9877
9885
  }
9878
9886
  }, {
9879
9887
  name: ['settings', 'campaignSettings', 'leadTableCampaignId'],
@@ -9881,7 +9889,7 @@ function loadConfiguration(t, root, config, lang, apiConfig) {
9881
9889
  tabgroup: t('backoffice.form.organizationdetails.campaignLandingPage'),
9882
9890
  type: 'input',
9883
9891
  hidden: function hidden(data) {
9884
- return (data === null || data === void 0 ? void 0 : data.parentType) === 'SUPPLIER' && (data === null || data === void 0 ? void 0 : data.type) === undefined;
9892
+ return !showCampaignFields(data);
9885
9893
  }
9886
9894
  }, {
9887
9895
  name: ['settings', 'campaignSettings', 'theme', 'primaryColor'],
@@ -9889,7 +9897,7 @@ function loadConfiguration(t, root, config, lang, apiConfig) {
9889
9897
  tabgroup: t('backoffice.form.organizationdetails.campaignLandingPage'),
9890
9898
  type: 'colorPicker',
9891
9899
  hidden: function hidden(data) {
9892
- return (data === null || data === void 0 ? void 0 : data.parentType) === 'SUPPLIER' && (data === null || data === void 0 ? void 0 : data.type) === undefined;
9900
+ return (data === null || data === void 0 ? void 0 : data.type) !== 'CAMPAIGN' && (data === null || data === void 0 ? void 0 : data.type) !== 'RETAILERCHILD' && (data === null || data === void 0 ? void 0 : data.type) !== 'RETAILER' && (data === null || data === void 0 ? void 0 : data.parentType) !== 'RETAILER';
9893
9901
  }
9894
9902
  }, {
9895
9903
  name: ['settings', 'campaignSettings', 'theme', 'primaryColorLight'],
@@ -9897,7 +9905,7 @@ function loadConfiguration(t, root, config, lang, apiConfig) {
9897
9905
  tabgroup: t('backoffice.form.organizationdetails.campaignLandingPage'),
9898
9906
  type: 'colorPicker',
9899
9907
  hidden: function hidden(data) {
9900
- return (data === null || data === void 0 ? void 0 : data.parentType) === 'SUPPLIER' && (data === null || data === void 0 ? void 0 : data.type) === undefined;
9908
+ return !showCampaignFields(data);
9901
9909
  },
9902
9910
  mainColorField: ['settings', 'campaignSettings', 'theme', 'primaryColor']
9903
9911
  }, {
@@ -9906,7 +9914,7 @@ function loadConfiguration(t, root, config, lang, apiConfig) {
9906
9914
  tabgroup: t('backoffice.form.organizationdetails.campaignLandingPage'),
9907
9915
  type: 'colorPicker',
9908
9916
  hidden: function hidden(data) {
9909
- return (data === null || data === void 0 ? void 0 : data.parentType) === 'SUPPLIER' && (data === null || data === void 0 ? void 0 : data.type) === undefined;
9917
+ return !showCampaignFields(data);
9910
9918
  }
9911
9919
  }, {
9912
9920
  name: ['settings', 'campaignSettings', 'theme', 'secondaryColorLight'],
@@ -9914,7 +9922,7 @@ function loadConfiguration(t, root, config, lang, apiConfig) {
9914
9922
  tabgroup: t('backoffice.form.organizationdetails.campaignLandingPage'),
9915
9923
  type: 'colorPicker',
9916
9924
  hidden: function hidden(data) {
9917
- return (data === null || data === void 0 ? void 0 : data.parentType) === 'SUPPLIER' && (data === null || data === void 0 ? void 0 : data.type) === undefined;
9925
+ return !showCampaignFields(data);
9918
9926
  },
9919
9927
  mainColorField: ['settings', 'campaignSettings', 'theme', 'secondaryColor']
9920
9928
  }, {
@@ -9923,7 +9931,7 @@ function loadConfiguration(t, root, config, lang, apiConfig) {
9923
9931
  tabgroup: t('backoffice.form.organizationdetails.campaignLandingPage'),
9924
9932
  type: 'textarea',
9925
9933
  hidden: function hidden(data) {
9926
- return (data === null || data === void 0 ? void 0 : data.parentType) === 'SUPPLIER' && (data === null || data === void 0 ? void 0 : data.type) === undefined;
9934
+ return !showCampaignFields(data);
9927
9935
  }
9928
9936
  }, {
9929
9937
  name: ['settings', 'campaignSettings', 'testimonials'],
@@ -9931,7 +9939,7 @@ function loadConfiguration(t, root, config, lang, apiConfig) {
9931
9939
  tabgroup: t('backoffice.form.organizationdetails.campaignLandingPage'),
9932
9940
  type: 'array',
9933
9941
  hidden: function hidden(data) {
9934
- return (data === null || data === void 0 ? void 0 : data.parentType) === 'SUPPLIER' && (data === null || data === void 0 ? void 0 : data.type) === undefined;
9942
+ return !showCampaignFields(data);
9935
9943
  },
9936
9944
  items: [{
9937
9945
  name: 'quote',
@@ -14647,6 +14655,9 @@ function loadConfiguration(t, root, config, lang, apiConfig) {
14647
14655
  };
14648
14656
  }
14649
14657
  var functionTypeValues = ['PROD', 'PROD_MILIEU', 'PROD_DETAIL', 'SHO', 'AR_INFO', 'ART', 'LOG', 'BAN', 'INF', 'OTH'];
14658
+ var showCampaignFields = function showCampaignFields(data) {
14659
+ return (data === null || data === void 0 ? void 0 : data.type) === 'CAMPAIGN' || (data === null || data === void 0 ? void 0 : data.type) === 'RETAILERCHILD' || (data === null || data === void 0 ? void 0 : data.type) === 'RETAILER' || (data === null || data === void 0 ? void 0 : data.parentType) === 'RETAILER';
14660
+ };
14650
14661
 
14651
14662
  function styleInject(css, ref) {
14652
14663
  if ( ref === void 0 ) ref = {};
@@ -22144,6 +22155,11 @@ function ItemSelector(_ref) {
22144
22155
  }
22145
22156
 
22146
22157
  var LOG$8 = getLogger('Backoffice', 'Form');
22158
+ function isFormItemHidden(item, hiddenRequiredDisabled) {
22159
+ var _hiddenRequiredDisabl;
22160
+ var key = typeof item.name === 'string' ? item.name : item.name.join('.');
22161
+ return ((_hiddenRequiredDisabl = hiddenRequiredDisabled[key]) === null || _hiddenRequiredDisabl === void 0 ? void 0 : _hiddenRequiredDisabl.hidden) === true;
22162
+ }
22147
22163
  var FormWrapper$1 = function FormWrapper(_ref, ref) {
22148
22164
  var id = _ref.id,
22149
22165
  data = _ref.data,
@@ -22251,29 +22267,6 @@ var FormWrapper$1 = function FormWrapper(_ref, ref) {
22251
22267
  onError === null || onError === void 0 || onError(errorText !== null && errorText !== void 0 ? errorText : 'Es konnte nicht gespeichert werden, versuchen Sie es später nochmal.');
22252
22268
  }
22253
22269
  };
22254
- var handleSearchChange = function handleSearchChange(e) {
22255
- var searchValue = e.target.value.toLowerCase();
22256
- if (searchValue.length <= 2) {
22257
- return;
22258
- }
22259
- // Filter items based on search value
22260
- var filteredItems = tabGroups.filter(function (group) {
22261
- return group.items.some(function (item) {
22262
- return (item.label || item.name.toString()).toLowerCase().includes(searchValue);
22263
- });
22264
- });
22265
-
22266
- // If we find matches in a different tab, switch to that tab
22267
- if (filteredItems.length > 0) {
22268
- var targetTabIndex = tabGroups.findIndex(function (g) {
22269
- return g === filteredItems[0];
22270
- });
22271
- if (targetTabIndex >= 0) {
22272
- var targetTabKey = tabGroups[targetTabIndex].tabGroup === 'default' ? '99' : targetTabIndex.toString();
22273
- setActiveTabKey(targetTabKey);
22274
- }
22275
- }
22276
- };
22277
22270
  var onFinishFailed = function onFinishFailed(data) {
22278
22271
  if (data.errorFields.length) {
22279
22272
  onError === null || onError === void 0 || onError("Folgende Felder wurden nicht korrekt bef\xFCllt: ".concat(data.errorFields.map(function (f) {
@@ -22341,12 +22334,39 @@ var FormWrapper$1 = function FormWrapper(_ref, ref) {
22341
22334
  var tabGroups = useMemo(function () {
22342
22335
  return groupItemsByTabGroup();
22343
22336
  }, [state.selectedItems]);
22337
+ var visibleTabGroups = useMemo(function () {
22338
+ return tabGroups.filter(function (group) {
22339
+ return group.items.some(function (item) {
22340
+ return !isFormItemHidden(item, state.hiddenRequiredDisabled);
22341
+ });
22342
+ });
22343
+ }, [tabGroups, state.hiddenRequiredDisabled]);
22344
22344
  var generalItems = useMemo(function () {
22345
22345
  return getGeneralItems();
22346
22346
  }, [state.selectedItems]);
22347
+ var handleSearchChange = function handleSearchChange(e) {
22348
+ var searchValue = e.target.value.toLowerCase();
22349
+ if (searchValue.length <= 2) {
22350
+ return;
22351
+ }
22352
+ var filteredItems = visibleTabGroups.filter(function (group) {
22353
+ return group.items.some(function (item) {
22354
+ return (item.label || item.name.toString()).toLowerCase().includes(searchValue);
22355
+ });
22356
+ });
22357
+ if (filteredItems.length > 0) {
22358
+ var targetTabIndex = visibleTabGroups.findIndex(function (g) {
22359
+ return g === filteredItems[0];
22360
+ });
22361
+ if (targetTabIndex >= 0) {
22362
+ var targetTabKey = visibleTabGroups[targetTabIndex].tabGroup === 'default' ? '99' : targetTabIndex.toString();
22363
+ setActiveTabKey(targetTabKey);
22364
+ }
22365
+ }
22366
+ };
22347
22367
 
22348
22368
  // Create tab items dynamically
22349
- var tabItems = tabGroups.map(function (group, index) {
22369
+ var tabItems = visibleTabGroups.map(function (group, index) {
22350
22370
  return {
22351
22371
  key: group.tabGroup === 'default' ? '99' : index.toString(),
22352
22372
  label: group.tabGroup === 'default' ? t('backoffice.menu.items.label.systemOther') : group.tabGroup,
@@ -22361,7 +22381,7 @@ var FormWrapper$1 = function FormWrapper(_ref, ref) {
22361
22381
  });
22362
22382
 
22363
22383
  // If no tabgroups are defined, fall back to single form
22364
- var hasTabGroups = tabGroups.length > 1 || tabGroups.length === 1 && tabGroups[0].tabGroup !== 'default';
22384
+ var hasTabGroups = visibleTabGroups.length > 1 || visibleTabGroups.length === 1 && visibleTabGroups[0].tabGroup !== 'default';
22365
22385
  if (!hasTabGroups) {
22366
22386
  var singleForm = /*#__PURE__*/jsxs(Form$2, {
22367
22387
  autoComplete: "off",
@@ -32193,6 +32213,7 @@ function UIBuilder(_ref) {
32193
32213
  }
32194
32214
 
32195
32215
  var label = "label-rYNbb";
32216
+ var notClickable = "not-clickable-wHc5V";
32196
32217
  var selected$1 = "selected-34dYg";
32197
32218
  var description = "description-iFui2";
32198
32219
  var retailer = "retailer-YNzAh";
@@ -32239,12 +32260,12 @@ var OrgItem = function OrgItem(_ref) {
32239
32260
  id: data.id,
32240
32261
  className: classnames(label, itemChain.find(function (i) {
32241
32262
  return i.id === data.id;
32242
- }) ? selected$1 : undefined, undefined, getColorClass(data)),
32263
+ }) ? selected$1 : undefined, !data.readPermission ? notClickable : undefined, getColorClass(data)),
32243
32264
  onClick: function onClick() {
32244
32265
  if (data.onClick) {
32245
32266
  // navigation click
32246
32267
  data.onClick();
32247
- } else {
32268
+ } else if (data.readPermission) {
32248
32269
  var _root$dataStore;
32249
32270
  root === null || root === void 0 || (_root$dataStore = root.dataStore) === null || _root$dataStore === void 0 || _root$dataStore.setSelectedOrganizationId(data.id);
32250
32271
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/Form/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAKjF,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAQnD,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAmTD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,OAG1C;;YAlT0B,MAAM,IAAI;;YAAV,MAAM,IAAI;;AAoTrC,wBAAuD;AAEvD,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/Form/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAKjF,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAanD,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAqTD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,OAG1C;;YApT0B,MAAM,IAAI;;YAAV,MAAM,IAAI;;AAsTrC,wBAAuD;AAEvD,cAAc,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/TreeChart/OrgItem/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAMrD,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,GAAG,CAAC;IACV,aAAa,EAAE,oBAAoB,CAAC;IACpC,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9D,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;iHAqBsG,KAAK;;;AAmF7G,wBAAiC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/TreeChart/OrgItem/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAMrD,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,GAAG,CAAC;IACV,aAAa,EAAE,oBAAoB,CAAC;IACpC,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9D,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;iHAqBsG,KAAK;;;AAuF7G,wBAAiC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crystaldesign/diva-backoffice",
3
- "version": "26.3.0-rc.2",
3
+ "version": "26.3.0-rc.4",
4
4
  "license": "COMMERCIAL",
5
5
  "devDependencies": {
6
6
  "@testing-library/jest-dom": "^6.5.0",
@@ -15,13 +15,13 @@
15
15
  "dependencies": {
16
16
  "@ant-design/icons": "6.1.0",
17
17
  "@babel/runtime": "7.24.7",
18
- "@crystaldesign/content-box": "26.3.0-rc.2",
19
- "@crystaldesign/content-item": "26.3.0-rc.2",
20
- "@crystaldesign/diva-core": "26.3.0-rc.2",
21
- "@crystaldesign/diva-utils": "26.3.0-rc.2",
22
- "@crystaldesign/media-upload": "26.3.0-rc.2",
23
- "@crystaldesign/rtf-editor": "26.3.0-rc.2",
24
- "@crystaldesign/spreadsheet": "26.3.0-rc.2",
18
+ "@crystaldesign/content-box": "26.3.0-rc.4",
19
+ "@crystaldesign/content-item": "26.3.0-rc.4",
20
+ "@crystaldesign/diva-core": "26.3.0-rc.4",
21
+ "@crystaldesign/diva-utils": "26.3.0-rc.4",
22
+ "@crystaldesign/media-upload": "26.3.0-rc.4",
23
+ "@crystaldesign/rtf-editor": "26.3.0-rc.4",
24
+ "@crystaldesign/spreadsheet": "26.3.0-rc.4",
25
25
  "@google/model-viewer": "3.5.0",
26
26
  "ag-charts-community": "^10.1.0",
27
27
  "ag-charts-react": "^10.1.0",
@@ -51,5 +51,5 @@
51
51
  },
52
52
  "module": "build/esm/index.js",
53
53
  "types": "./build/types/backoffice/src/index.d.ts",
54
- "gitHead": "12c99e8ff4d49acb06797c3e4f8a45940bd9987d"
54
+ "gitHead": "e0dacf0c5aca48dfda112504f10deaa494aed251"
55
55
  }