@topconsultnpm/sdkui-react 6.22.0-dev1.10 → 6.22.0-dev1.11

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.
@@ -1425,7 +1425,49 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
1425
1425
  return undefined;
1426
1426
  const settings = getCurrentDcmtFormSetting()?.setting;
1427
1427
  // Return the appropriate layout based on context
1428
- return invocationContext === InvocationContext.Todo ? settings?.layoutToDo : settings?.layout;
1428
+ const persistedState = invocationContext === InvocationContext.Todo ? settings?.layoutToDo : settings?.layout;
1429
+ // tmWF must always start hidden - PanelDisabledStateHandler will restore it
1430
+ // when workflow data becomes available and isWFDisabled becomes false
1431
+ if (persistedState && persistedState['tmWF']?.visible) {
1432
+ // Get tmWF width to redistribute
1433
+ const tmWFWidth = parseFloat(persistedState['tmWF'].width) || 0;
1434
+ // Find other visible panels to redistribute width
1435
+ const otherVisiblePanels = Object.keys(persistedState).filter(key => key !== 'tmWF' && persistedState[key]?.visible);
1436
+ // Calculate extra width per visible panel
1437
+ const extraWidthPerPanel = otherVisiblePanels.length > 0
1438
+ ? tmWFWidth / otherVisiblePanels.length
1439
+ : 0;
1440
+ // Build new state with redistributed widths
1441
+ const newState = {};
1442
+ for (const key of Object.keys(persistedState)) {
1443
+ if (key === 'tmWF') {
1444
+ // Hide tmWF
1445
+ newState[key] = { ...persistedState[key], visible: false };
1446
+ }
1447
+ else if (otherVisiblePanels.includes(key)) {
1448
+ // Add extra width to visible panels
1449
+ const currentWidth = parseFloat(persistedState[key].width) || 0;
1450
+ newState[key] = {
1451
+ ...persistedState[key],
1452
+ width: `${currentWidth + extraWidthPerPanel}%`
1453
+ };
1454
+ }
1455
+ else {
1456
+ // Keep other panels as-is
1457
+ newState[key] = persistedState[key];
1458
+ }
1459
+ }
1460
+ return newState;
1461
+ }
1462
+ return persistedState;
1463
+ };
1464
+ // Returns whether tmWF was visible in persisted state (for restoring after WF data loads)
1465
+ const getPersistedWFVisible = () => {
1466
+ if (isMobile)
1467
+ return false;
1468
+ const settings = getCurrentDcmtFormSetting()?.setting;
1469
+ const persistedState = invocationContext === InvocationContext.Todo ? settings?.layoutToDo : settings?.layout;
1470
+ return persistedState?.['tmWF']?.visible ?? false;
1429
1471
  };
1430
1472
  const onBlogCommentFormCustomSave = useCallback(async (blogPost) => {
1431
1473
  try {
@@ -1514,7 +1556,7 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
1514
1556
  overflow: 'hidden'
1515
1557
  }, children: [_jsxs("div", { style: { width: '100%', height: '100%', display: isOpenDetails || isOpenMaster ? 'none' : 'flex' }, children: [isNavigating && _jsx(Spinner, { description: SDKUI_Localizator.Loading, flat: false }), (fromDTD) && _jsx(TMLayoutWaitingContainer, { direction: 'vertical', showWaitPanel: useWaitPanelLocalState ? showWaitPanelLocal : showWaitPanel, showWaitPanelPrimary: useWaitPanelLocalState ? showPrimaryLocal : showPrimary, showWaitPanelSecondary: useWaitPanelLocalState ? showSecondaryLocal : showSecondary, waitPanelTitle: useWaitPanelLocalState ? waitPanelTitleLocal : waitPanelTitle, waitPanelTextPrimary: useWaitPanelLocalState ? waitPanelTextPrimaryLocal : waitPanelTextPrimary, waitPanelValuePrimary: useWaitPanelLocalState ? waitPanelValuePrimaryLocal : waitPanelValuePrimary, waitPanelMaxValuePrimary: useWaitPanelLocalState ? waitPanelMaxValuePrimaryLocal : waitPanelMaxValuePrimary, waitPanelTextSecondary: useWaitPanelLocalState ? waitPanelTextSecondaryLocal : waitPanelTextSecondary, waitPanelValueSecondary: useWaitPanelLocalState ? waitPanelValueSecondaryLocal : waitPanelValueSecondary, waitPanelMaxValueSecondary: useWaitPanelLocalState ? waitPanelMaxValueSecondaryLocal : waitPanelMaxValueSecondary, isCancelable: useWaitPanelLocalState ? dcmtFile ? dcmtFile.size >= 1000000 : false : true, abortController: useWaitPanelLocalState ? abortControllerLocal : abortController, children: _jsxs(TMLayoutWaitingContainer, { direction: 'vertical', showWaitPanel: showCicoWaitPanel, showWaitPanelPrimary: showCicoPrimaryProgress, waitPanelTitle: cicoWaitPanelTitle, waitPanelTextPrimary: cicoPrimaryProgressText, waitPanelValuePrimary: cicoPrimaryProgressValue, waitPanelMaxValuePrimary: cicoPrimaryProgressMax, isCancelable: true, abortController: abortControllerLocal, children: [(groupId && groupId.length > 0)
1516
1558
  ? _jsxs(_Fragment, { children: [_jsx(PanelDisabledStateHandler, { isWFDisabled: isWFDisabled, isSysMetadataDisabled: isSysMetadataDisabled, isBoardDisabled: isBoardDisabled, isDcmtTasksDisabled: isDcmtTasksDisabled, isPreviewDisabled: isPreviewDisabled }), _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", parentId: groupId, showToolbar: showDcmtFormSidebar })] })
1517
- : _jsxs(TMPanelManagerWithPersistenceProvider, { panels: initialPanels, initialVisibility: allInitialPanelVisibility, defaultDimensions: defaultPanelDimensions, initialDimensions: defaultPanelDimensions, initialMobilePanelId: 'tmDcmtForm', isPersistenceEnabled: !isMobile && layoutMode !== LayoutModes.Ark ? hasSavedLayout() : false, persistPanelStates: !isMobile && layoutMode !== LayoutModes.Ark ? (state) => persistPanelStates(state) : undefined, persistedPanelStates: layoutMode !== LayoutModes.Ark ? getPersistedPanelStates() : undefined, children: [_jsx(PanelDisabledStateHandler, { isWFDisabled: isWFDisabled, isSysMetadataDisabled: isSysMetadataDisabled, isBoardDisabled: isBoardDisabled, isDcmtTasksDisabled: isDcmtTasksDisabled, isPreviewDisabled: isPreviewDisabled }), _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", parentId: groupId, showToolbar: showDcmtFormSidebar })] }), isOpenDistinctValues &&
1559
+ : _jsxs(TMPanelManagerWithPersistenceProvider, { panels: initialPanels, initialVisibility: allInitialPanelVisibility, defaultDimensions: defaultPanelDimensions, initialDimensions: defaultPanelDimensions, initialMobilePanelId: 'tmDcmtForm', isPersistenceEnabled: !isMobile && layoutMode !== LayoutModes.Ark ? hasSavedLayout() : false, persistPanelStates: !isMobile && layoutMode !== LayoutModes.Ark ? (state) => persistPanelStates(state) : undefined, persistedPanelStates: layoutMode !== LayoutModes.Ark ? getPersistedPanelStates() : undefined, children: [_jsx(PanelDisabledStateHandler, { isWFDisabled: isWFDisabled, isSysMetadataDisabled: isSysMetadataDisabled, isBoardDisabled: isBoardDisabled, isDcmtTasksDisabled: isDcmtTasksDisabled, isPreviewDisabled: isPreviewDisabled, persistedWFVisible: getPersistedWFVisible() }), _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", parentId: groupId, showToolbar: showDcmtFormSidebar })] }), isOpenDistinctValues &&
1518
1560
  _jsx(TMDistinctValues, { tid: TID, mid: focusedMetadataValue?.mid, isModal: true, showHeader: false, layoutMode: layoutMode, onClosePanelCallback: () => setIsOpenDistinctValues(false), onSelectionChanged: (e) => {
1519
1561
  if (!e)
1520
1562
  return;
@@ -1604,7 +1646,7 @@ const validateMaxLength = (mvd, value, validationItems) => {
1604
1646
  };
1605
1647
  //#endregion Validation
1606
1648
  // Synchronizes panel visibility and toolbar button disabled states when panels become disabled
1607
- const PanelDisabledStateHandler = ({ isWFDisabled, isSysMetadataDisabled, isBoardDisabled, isDcmtTasksDisabled, isPreviewDisabled }) => {
1649
+ const PanelDisabledStateHandler = ({ isWFDisabled, isSysMetadataDisabled, isBoardDisabled, isDcmtTasksDisabled, isPreviewDisabled, persistedWFVisible = false }) => {
1608
1650
  const { setPanelVisibilityById, setToolbarButtonDisabled } = useTMPanelManagerContext();
1609
1651
  useEffect(() => {
1610
1652
  if (isSysMetadataDisabled) {
@@ -1631,8 +1673,12 @@ const PanelDisabledStateHandler = ({ isWFDisabled, isSysMetadataDisabled, isBoar
1631
1673
  }
1632
1674
  else {
1633
1675
  setToolbarButtonDisabled('tmWF', false);
1676
+ // Restore persisted visibility when WF becomes enabled
1677
+ if (persistedWFVisible) {
1678
+ setPanelVisibilityById('tmWF', true);
1679
+ }
1634
1680
  }
1635
- }, [isWFDisabled]);
1681
+ }, [isWFDisabled, persistedWFVisible]);
1636
1682
  useEffect(() => {
1637
1683
  if (isDcmtTasksDisabled) {
1638
1684
  setToolbarButtonDisabled('tmDcmtTasks', true);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topconsultnpm/sdkui-react",
3
- "version": "6.22.0-dev1.10",
3
+ "version": "6.22.0-dev1.11",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1",