@crystaldesign/diva-backoffice 25.2.0-beta.14 → 25.2.0-beta.16

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.
@@ -33632,30 +33632,77 @@ function UploadButton (_ref) {
33632
33632
  title = _ref.title,
33633
33633
  disabled = _ref.disabled,
33634
33634
  contentType = _ref.contentType,
33635
- setProgress = _ref.setProgress;
33635
+ setProgress = _ref.setProgress,
33636
+ setFileList = _ref.setFileList,
33637
+ fileList = _ref.fileList,
33638
+ progress = _ref.progress;
33636
33639
  var _useTranslation = useTranslation(),
33637
33640
  t = _useTranslation.t;
33638
33641
  var root = useStore();
33639
- var _useState = useState([]),
33640
- _useState2 = _slicedToArray(_useState, 2),
33641
- fileList = _useState2[0],
33642
- setFileList = _useState2[1];
33642
+ var ref = useRef();
33643
33643
  var handleUploadChange = function handleUploadChange(info) {
33644
33644
  var status = info.file.status;
33645
33645
  if (status === 'done') {
33646
- message.success("".concat(info.file.name, " file uploaded successfully."));
33647
- setFileList([]); // Clear the file list
33648
- setProgress('SUCCESS'); // Mark upload as successful
33646
+ setFileList([]);
33647
+ setProgress('SUCCESS');
33648
+ if (ref.current) {
33649
+ clearInterval(ref.current.interval);
33650
+ ref.current = undefined;
33651
+ }
33652
+ if (info.fileList[0]) {
33653
+ info.fileList[0].percent = 100;
33654
+ }
33649
33655
  } else if (status === 'error') {
33650
- message.error("".concat(info.file.name, " file upload failed."));
33651
- setProgress('ERROR'); // Mark upload as failed
33656
+ setProgress('ERROR');
33657
+ if (ref.current) {
33658
+ clearInterval(ref.current.interval);
33659
+ ref.current = undefined;
33660
+ }
33661
+ if (info.fileList[0]) {
33662
+ info.fileList[0].percent = 100;
33663
+ }
33652
33664
  } else if (status === 'removed') {
33653
- setFileList([]); // Clear the file list
33654
- setProgress(undefined); // Reset the progress state
33665
+ setFileList([]);
33666
+ setProgress(undefined);
33667
+ if (ref.current) {
33668
+ clearInterval(ref.current.interval);
33669
+ ref.current = undefined;
33670
+ }
33655
33671
  } else {
33656
- setProgress('INPROGRESS'); // Mark upload as in progress
33657
- setFileList(info.fileList); // Update the file list during the upload
33672
+ setProgress('INPROGRESS');
33673
+ if (info.fileList[0]) {
33674
+ var file = info.fileList[0];
33675
+ if (status === 'uploading') {
33676
+ // First 50%, the file is still uploading to browser
33677
+ file.percent = (file.percent || 0) / 2;
33678
+ if (file.percent === 50) {
33679
+ // Calculate size-based progress for the second 50%
33680
+ if (file.size) {
33681
+ var _ref$current$startTim, _ref$current, _ref$current$interval, _ref$current2;
33682
+ var fileSize = file.size;
33683
+ var startTime = (_ref$current$startTim = (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.startTime) !== null && _ref$current$startTim !== void 0 ? _ref$current$startTim : Date.now();
33684
+ var interval = (_ref$current$interval = (_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : _ref$current2.interval) !== null && _ref$current$interval !== void 0 ? _ref$current$interval : setInterval(function () {
33685
+ // Assume 1MB takes about 4 seconds to upload
33686
+ var estimatedTimeInSeconds = fileSize / (1024 * 1024) * 4;
33687
+ var elapsedTime = (Date.now() - startTime) / 1000;
33688
+ // Calculate progress for the second 50%
33689
+ var sizeBasedProgress = Math.min(50 * (elapsedTime / estimatedTimeInSeconds), 49);
33690
+ // Combine both progress values, ensuring we don't exceed 99
33691
+ file.percent = Math.min(50 + sizeBasedProgress, 99);
33692
+ setFileList(_toConsumableArray(info.fileList));
33693
+ }, 10);
33694
+ ref.current = {
33695
+ startTime: startTime,
33696
+ interval: interval
33697
+ };
33698
+ }
33699
+ }
33700
+ } else {
33701
+ file.percent = 100; // Set to 100 if not uploading
33702
+ }
33703
+ }
33658
33704
  }
33705
+ setFileList(info.fileList);
33659
33706
  };
33660
33707
  var props = {
33661
33708
  name: 'file',
@@ -33670,7 +33717,7 @@ function UploadButton (_ref) {
33670
33717
  };
33671
33718
  return /*#__PURE__*/jsx(Fragment, {
33672
33719
  children: /*#__PURE__*/jsx(Upload$2, _objectSpread$9(_objectSpread$9({}, props), {}, {
33673
- children: /*#__PURE__*/jsx(Button$1, {
33720
+ children: progress !== 'SUCCESS' && /*#__PURE__*/jsx(Button$1, {
33674
33721
  icon: /*#__PURE__*/jsx(UploadOutlined$1, {}),
33675
33722
  disabled: disabled,
33676
33723
  children: title !== null && title !== void 0 ? title : t('backoffice.idmEnricher.import.upload')
@@ -33683,19 +33730,18 @@ function IDMImportForm (_ref) {
33683
33730
  var idmService = _ref.idmService,
33684
33731
  organizationId = _ref.organizationId,
33685
33732
  setProgress = _ref.setProgress,
33686
- progress = _ref.progress;
33733
+ progress = _ref.progress,
33734
+ name = _ref.name,
33735
+ setName = _ref.setName,
33736
+ setFileList = _ref.setFileList,
33737
+ fileList = _ref.fileList;
33687
33738
  var _useTranslation = useTranslation(),
33688
33739
  t = _useTranslation.t;
33689
- var _useState = useState(''),
33690
- _useState2 = _slicedToArray(_useState, 2),
33691
- name = _useState2[0],
33692
- setName = _useState2[1];
33693
33740
  var uploadAction = "".concat(idmService, "/v3.0/catalogs/upload?organizationId=").concat(organizationId, "&name=").concat(encodeURIComponent(name));
33694
33741
  return /*#__PURE__*/jsxs(Form$1, {
33695
33742
  name: "basic",
33696
33743
  children: [/*#__PURE__*/jsx(Form$1.Item, {
33697
33744
  label: "Name",
33698
- name: "name",
33699
33745
  rules: [{
33700
33746
  required: true,
33701
33747
  message: t('backoffice.idmEnricher.import.namerequired')
@@ -33704,14 +33750,18 @@ function IDMImportForm (_ref) {
33704
33750
  onChange: function onChange(e) {
33705
33751
  return setName(e.target.value);
33706
33752
  },
33707
- value: name
33753
+ value: name,
33754
+ disabled: progress === 'INPROGRESS' || progress === 'SUCCESS'
33708
33755
  })
33709
33756
  }), /*#__PURE__*/jsx(Form$1.Item, {
33710
33757
  children: /*#__PURE__*/jsx(UploadButton, {
33711
33758
  action: uploadAction,
33712
33759
  contentType: "multipart/form-data",
33713
33760
  setProgress: setProgress,
33714
- disabled: !name.trim()
33761
+ progress: progress,
33762
+ disabled: !name.trim() || progress === 'INPROGRESS',
33763
+ setFileList: setFileList,
33764
+ fileList: fileList
33715
33765
  })
33716
33766
  }), /*#__PURE__*/jsxs(Form$1.Item, {
33717
33767
  style: {
@@ -33746,17 +33796,28 @@ function OpenModalButton (_ref) {
33746
33796
  _useState4 = _slicedToArray(_useState3, 2),
33747
33797
  progress = _useState4[0],
33748
33798
  setProgress = _useState4[1];
33799
+ var _useState5 = useState(''),
33800
+ _useState6 = _slicedToArray(_useState5, 2),
33801
+ name = _useState6[0],
33802
+ setName = _useState6[1];
33803
+ var _useState7 = useState([]),
33804
+ _useState8 = _slicedToArray(_useState7, 2),
33805
+ fileList = _useState8[0],
33806
+ setFileList = _useState8[1];
33749
33807
  var showModal = function showModal() {
33750
33808
  setIsModalOpen(true);
33751
33809
  };
33752
- var handleOk = function handleOk() {
33753
- setIsModalOpen(false);
33754
- onClose();
33810
+ var resetProgress = function resetProgress() {
33811
+ setProgress(undefined);
33812
+ setName('');
33813
+ setFileList([]);
33755
33814
  };
33756
- var handleCancel = function handleCancel() {
33815
+ var handleOk = function handleOk() {
33757
33816
  setIsModalOpen(false);
33817
+ resetProgress();
33758
33818
  onClose();
33759
33819
  };
33820
+ var buttonText = progress == undefined || progress == 'ERROR' ? t('backoffice.idmEnricher.import.cancel') : progress === 'INPROGRESS' ? t('backoffice.idmEnricher.import.inprogress') : t('backoffice.idmEnricher.import.finish');
33760
33821
  return /*#__PURE__*/jsxs(Fragment, {
33761
33822
  children: [/*#__PURE__*/jsx(Button$1, {
33762
33823
  type: "primary",
@@ -33766,15 +33827,30 @@ function OpenModalButton (_ref) {
33766
33827
  title: title,
33767
33828
  open: isModalOpen,
33768
33829
  onOk: handleOk,
33769
- onCancel: handleCancel,
33770
- okText: progress === 'INPROGRESS' ? t('backoffice.idmEnricher.import.inprogress') : 'OK',
33830
+ onCancel: handleOk,
33831
+ cancelButtonProps: progress !== 'SUCCESS' ? {
33832
+ style: {
33833
+ display: 'none'
33834
+ }
33835
+ } : {
33836
+ onClick: resetProgress
33837
+ },
33838
+ closable: progress !== 'INPROGRESS',
33839
+ maskClosable: progress !== 'INPROGRESS',
33840
+ okText: buttonText,
33841
+ cancelText: progress === 'SUCCESS' ? t('backoffice.idmEnricher.import.new') : undefined,
33771
33842
  okButtonProps: {
33772
33843
  disabled: progress === 'INPROGRESS'
33773
33844
  } // Disable the button if progress is 'INPROGRESS'
33774
33845
  ,
33846
+ destroyOnClose: true,
33775
33847
  children: type === 'IDM_IMPORT' && /*#__PURE__*/jsx(IDMImportForm, {
33776
33848
  setProgress: setProgress,
33777
33849
  progress: progress,
33850
+ name: name,
33851
+ setName: setName,
33852
+ setFileList: setFileList,
33853
+ fileList: fileList,
33778
33854
  idmService: idmService,
33779
33855
  organizationId: organizationId
33780
33856
  })
@@ -1,11 +1,16 @@
1
1
  import React from 'react';
2
+ import { UploadFile } from 'antd';
2
3
  import { IDMIMportProgressState } from '../../types';
3
4
  interface Props {
4
5
  idmService: string;
5
6
  organizationId: string;
6
7
  setProgress: (state: IDMIMportProgressState) => void;
8
+ name: string;
9
+ setName: (name: string) => void;
7
10
  progress: IDMIMportProgressState;
11
+ setFileList: (fileList: UploadFile<any>[]) => void;
12
+ fileList: UploadFile<any>[];
8
13
  }
9
- export default function ({ idmService, organizationId, setProgress, progress }: Props): React.JSX.Element;
14
+ export default function ({ idmService, organizationId, setProgress, progress, name, setName, setFileList, fileList }: Props): React.JSX.Element;
10
15
  export {};
11
16
  //# sourceMappingURL=IDMImportForm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IDMImportForm.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/IDMCatalogEditor/components/OpenModalButton/Forms/IDMImportForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAIxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,UAAU,KAAK;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACrD,QAAQ,EAAE,sBAAsB,CAAC;CAClC;AAED,MAAM,CAAC,OAAO,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,KAAK,qBAmBpF"}
1
+ {"version":3,"file":"IDMImportForm.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/IDMCatalogEditor/components/OpenModalButton/Forms/IDMImportForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,EAAsB,UAAU,EAAE,MAAM,MAAM,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,UAAU,KAAK;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,WAAW,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC;IACnD,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;CAC7B;AAED,MAAM,CAAC,OAAO,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,KAAK,qBA0B1H"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/IDMCatalogEditor/components/OpenModalButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE,KAAK,qBAsCnF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/IDMCatalogEditor/components/OpenModalButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAMxC,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE,KAAK,qBA+DnF"}
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import type { UploadFile } from 'antd';
2
3
  import { IDMIMportProgressState } from '../types';
3
4
  interface Props {
4
5
  action: string;
@@ -6,7 +7,10 @@ interface Props {
6
7
  title?: string;
7
8
  disabled?: boolean;
8
9
  setProgress: (state: IDMIMportProgressState) => void;
10
+ progress: IDMIMportProgressState;
11
+ setFileList: (fileList: UploadFile<any>[]) => void;
12
+ fileList: UploadFile<any>[];
9
13
  }
10
- export default function ({ action, title, disabled, contentType, setProgress }: Props): React.JSX.Element;
14
+ export default function ({ action, title, disabled, contentType, setProgress, setFileList, fileList, progress }: Props): React.JSX.Element;
11
15
  export {};
12
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/IDMCatalogEditor/components/UploadButton/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAOxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,UAAU,KAAK;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,qBAAqB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAC;CACtD;AAED,MAAM,CAAC,OAAO,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,KAAK,qBA2CpF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/IDMCatalogEditor/components/UploadButton/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiB,MAAM,OAAO,CAAC;AAItC,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,MAAM,CAAC;AAGpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGlD,UAAU,KAAK;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,qBAAqB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACrD,QAAQ,EAAE,sBAAsB,CAAC;IACjC,WAAW,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC;IACnD,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;CAC7B;AAED,MAAM,CAAC,OAAO,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,qBA+FrH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crystaldesign/diva-backoffice",
3
- "version": "25.2.0-beta.14",
3
+ "version": "25.2.0-beta.16",
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": "5.4.0",
17
17
  "@babel/runtime": "7.24.7",
18
- "@crystaldesign/content-box": "25.2.0-beta.14",
19
- "@crystaldesign/content-item": "25.2.0-beta.14",
20
- "@crystaldesign/diva-core": "25.2.0-beta.14",
21
- "@crystaldesign/diva-utils": "25.2.0-beta.14",
22
- "@crystaldesign/media-upload": "25.2.0-beta.14",
23
- "@crystaldesign/rtf-editor": "25.2.0-beta.14",
24
- "@crystaldesign/spreadsheet": "25.2.0-beta.14",
18
+ "@crystaldesign/content-box": "25.2.0-beta.16",
19
+ "@crystaldesign/content-item": "25.2.0-beta.16",
20
+ "@crystaldesign/diva-core": "25.2.0-beta.16",
21
+ "@crystaldesign/diva-utils": "25.2.0-beta.16",
22
+ "@crystaldesign/media-upload": "25.2.0-beta.16",
23
+ "@crystaldesign/rtf-editor": "25.2.0-beta.16",
24
+ "@crystaldesign/spreadsheet": "25.2.0-beta.16",
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": "195c4f01745e99bc89940f859ba16b95f08c1747"
54
+ "gitHead": "dd3753d9cfabd03b196e161232ac2fe1920500bd"
55
55
  }