@topconsultnpm/sdkui-react-beta 6.14.62 → 6.14.63
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/lib/components/features/documents/TMDcmtForm.d.ts +1 -0
- package/lib/components/features/documents/TMDcmtForm.js +6 -5
- package/lib/components/features/search/TMSearchResult.js +1 -1
- package/lib/components/features/search/TMTreeSelector.js +32 -7
- package/lib/components/features/workflow/TMWorkflowPopup.js +1 -1
- package/lib/components/grids/TMBlogs.js +1 -1
- package/lib/helper/SDKUI_Localizator.d.ts +1 -0
- package/lib/helper/SDKUI_Localizator.js +10 -0
- package/package.json +1 -1
|
@@ -34,7 +34,7 @@ import TMPanelManagerContainer from '../../layout/panelManager/TMPanelManagerCon
|
|
|
34
34
|
import { TMPanelManagerWithPersistenceProvider } from '../../layout/panelManager/TMPanelManagerWithPersistenceProvider';
|
|
35
35
|
let abortControllerLocal = new AbortController();
|
|
36
36
|
//#endregion
|
|
37
|
-
const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes.Update, onClose, onSavedAsyncCallback, TID, DID, formMode = FormModes.Update, canNext, canPrev, count, itemIndex, onNext, onPrev, allowNavigation = true, allowRelations = true, isClosable = false, isExpertMode = SDKUI_Globals.userSettings.advancedSettings.expertMode === 1, showDcmtFormSidebar = true, invokedByTodo = false, titleModal, isModal = false, widthModal = "100%", heightModal = "100%", groupId, onWFOperationCompleted, onTaskCreateRequest, fileFromConnector = null, }) => {
|
|
37
|
+
const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes.Update, onClose, onSavedAsyncCallback, TID, DID, formMode = FormModes.Update, canNext, canPrev, count, itemIndex, onNext, onPrev, allowNavigation = true, allowRelations = true, isClosable = false, isExpertMode = SDKUI_Globals.userSettings.advancedSettings.expertMode === 1, showDcmtFormSidebar = true, invokedByTodo = false, titleModal, isModal = false, widthModal = "100%", heightModal = "100%", groupId, onWFOperationCompleted, onTaskCreateRequest, fileFromConnector = null, taskFormDialogComponent }) => {
|
|
38
38
|
const [id, setID] = useState('');
|
|
39
39
|
const [showWaitPanelLocal, setShowWaitPanelLocal] = useState(false);
|
|
40
40
|
const [waitPanelTitleLocal, setWaitPanelTitleLocal] = useState('');
|
|
@@ -571,6 +571,8 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
|
|
|
571
571
|
gap: SDKUI_Globals.userSettings.themeSettings.gutters,
|
|
572
572
|
width: '100%',
|
|
573
573
|
height: '100%',
|
|
574
|
+
position: 'relative',
|
|
575
|
+
overflow: 'hidden'
|
|
574
576
|
}, children: [_jsxs(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: [(groupId && groupId.length > 0)
|
|
575
577
|
? _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", parentId: groupId, showToolbar: showDcmtFormSidebar })
|
|
576
578
|
: _jsx(TMPanelManagerWithPersistenceProvider, { panels: initialPanels, initialVisibility: allInitialPanelVisibility, defaultDimensions: defaultPanelDimensions, initialDimensions: defaultPanelDimensions, initialMobilePanelId: 'tmDcmtForm', isPersistenceEnabled: !isMobile ? hasSavedLayout() : false, persistPanelStates: !isMobile ? (state) => persistPanelStates(state) : undefined, persistedPanelStates: getPersistedPanelStates(), children: _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", parentId: groupId, showToolbar: showDcmtFormSidebar }) }), isOpenDistinctValues &&
|
|
@@ -588,8 +590,7 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
|
|
|
588
590
|
value: FormulaHelper.addFormulaTag(newFormula.expression)
|
|
589
591
|
}));
|
|
590
592
|
} }), showApprovePopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, onCompleted: handleWFOperationCompleted, TID: TID, DID: DID, isReject: 0, onClose: () => setShowApprovePopup(false) }), showRejectPopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, onCompleted: handleWFOperationCompleted, TID: TID, DID: DID, isReject: 1, onClose: () => setShowRejectPopup(false) }), showReAssignPopup && _jsx(WorkFlowReAssignPopUp, { deviceType: deviceType, onCompleted: handleWFOperationCompleted, TID: TID, DID: DID, onClose: () => setShowReAssignPopup(false) }), (isModal && onClose) && _jsx("div", { id: "TMDcmtFormShowConfirmForClose-" + id })] }), (fromDTD?.templateTID === TemplateTIDs.WF_WIApprView && !isOpenDetails && !isOpenMaster && layoutMode === LayoutModes.Update) &&
|
|
591
|
-
_jsx(ToppyHelpCenter, { deviceType: deviceType, content: _jsx("div", { style: { display: 'flex', flexDirection: 'column', gap: '10px' }, children: _jsx(WorkFlowOperationButtons, { deviceType: deviceType, onApprove: () => setShowApprovePopup(true), onSignApprove: () => ShowAlert({ message: 'TODO', mode: 'info', title:
|
|
592
|
-
console.log('onMoreInfo');
|
|
593
|
+
_jsx(ToppyHelpCenter, { deviceType: deviceType, content: _jsx("div", { style: { display: 'flex', flexDirection: 'column', gap: '10px' }, children: _jsx(WorkFlowOperationButtons, { deviceType: deviceType, onApprove: () => setShowApprovePopup(true), onSignApprove: () => ShowAlert({ message: 'TODO', mode: 'info', title: SDKUI_Localizator.SignatureAndApprove, duration: 3000 }), onReject: () => { setShowRejectPopup(true); }, onReAssign: () => { setShowReAssignPopup(true); }, onMoreInfo: () => {
|
|
593
594
|
const vid = Number(TID);
|
|
594
595
|
const did = Number(DID);
|
|
595
596
|
openTaskFormHandler((task) => {
|
|
@@ -600,10 +601,10 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
|
|
|
600
601
|
_jsx(StyledModalContainer, { style: { backgroundColor: 'white' }, children: _jsx(TMMasterDetailDcmts, { deviceType: deviceType, isForMaster: false, inputDcmts: getSelectionDcmtInfo(), allowNavigation: allowNavigation, canNext: canNext, canPrev: canPrev, onNext: onNext, onPrev: onPrev, onBack: () => setIsOpenDetails(false) }) }), isOpenMaster &&
|
|
601
602
|
_jsxs(StyledModalContainer, { style: { backgroundColor: 'white' }, children: [_jsx(TMMasterDetailDcmts, { deviceType: deviceType, inputDcmts: getSelectionDcmtInfo(), isForMaster: true, allowNavigation: allowNavigation, canNext: canNext, canPrev: canPrev, onNext: onNext, onPrev: onPrev, onBack: () => setIsOpenMaster(false), appendMasterDcmts: handleAddItem }), secondaryMasterDcmts.length > 0 && secondaryMasterDcmts.map((dcmt, index) => {
|
|
602
603
|
return (_jsx(StyledModalContainer, { style: { backgroundColor: 'white' }, children: _jsx(TMMasterDetailDcmts, { deviceType: deviceType, inputDcmts: [dcmt], isForMaster: true, allowNavigation: false, onBack: () => handleRemoveItem(dcmt.TID, dcmt.DID), appendMasterDcmts: handleAddItem }) }, `${index}-${dcmt.DID}`));
|
|
603
|
-
})] })] }));
|
|
604
|
+
})] }), taskFormDialogComponent] }));
|
|
604
605
|
};
|
|
605
606
|
return (_jsx(_Fragment, { children: (isModal && onClose)
|
|
606
|
-
? _jsx(TMModal, { title: titleModal, onClose: handleClose, width: widthModal ?? '100%', height: heightModal ?? '100%', hidePopup: false, askClosingConfirm: true, children: _jsx("div", { style: { width: "100%", height: "100%", display: 'block', padding: "4px" }, children: renderDcmtForm() }) })
|
|
607
|
+
? _jsx(TMModal, { title: titleModal, onClose: handleClose, width: widthModal ?? '100%', height: heightModal ?? '100%', hidePopup: false, askClosingConfirm: true, children: _jsx("div", { style: { width: "100%", height: "100%", display: 'block', padding: "4px", position: 'relative' }, children: renderDcmtForm() }) })
|
|
607
608
|
: renderDcmtForm() }));
|
|
608
609
|
};
|
|
609
610
|
export default TMDcmtForm;
|
|
@@ -358,7 +358,7 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
|
|
|
358
358
|
}, onStatusChanged: (isModified) => { setIsModifiedBatchUpdate(isModified); } }), (isVisible && fromDTD?.templateTID === TemplateTIDs.WF_WIApprView && !isOpenDcmtForm && !isOpenDetails && !isOpenMaster) &&
|
|
359
359
|
_jsx(ToppyHelpCenter, { deviceType: deviceType,
|
|
360
360
|
// onClick={() => isMobile ? openConfigureMode?.() : undefined}
|
|
361
|
-
content: _jsx("div", { style: { display: 'flex', flexDirection: 'column', gap: '10px' }, children: _jsx(WorkFlowOperationButtons, { deviceType: deviceType, onApprove: () => setShowApprovePopup(true), onSignApprove: () => ShowAlert({ message: 'TODO', mode: 'info', title:
|
|
361
|
+
content: _jsx("div", { style: { display: 'flex', flexDirection: 'column', gap: '10px' }, children: _jsx(WorkFlowOperationButtons, { deviceType: deviceType, onApprove: () => setShowApprovePopup(true), onSignApprove: () => ShowAlert({ message: 'TODO', mode: 'info', title: SDKUI_Localizator.SignatureAndApprove, duration: 3000 }), onReject: () => setShowRejectPopup(true), onReAssign: () => setShowReAssignPopup(true), onMoreInfo: () => {
|
|
362
362
|
const vid = focusedItem ? focusedItem?.TID : selectedItems[0]?.TID;
|
|
363
363
|
const did = focusedItem ? focusedItem?.DID : selectedItems[0]?.DID;
|
|
364
364
|
openTaskFormHandler((task) => {
|
|
@@ -11,6 +11,7 @@ import TMLayoutContainer, { TMLayoutItem } from '../../base/TMLayout';
|
|
|
11
11
|
import TMPanel from '../../base/TMPanel';
|
|
12
12
|
import TMTidViewer from '../../viewers/TMTidViewer';
|
|
13
13
|
import { TMColors } from '../../../utils/theme';
|
|
14
|
+
import styled from 'styled-components';
|
|
14
15
|
const TMTreeSelector = ({ layoutMode = LayoutModes.Update, isVisible, onSelectedTIDChanged, onClosePanel, allowMaximize = true, onMaximizePanel }) => {
|
|
15
16
|
const [trees, setTrees] = useState([]);
|
|
16
17
|
const [treeItems, setTreeItems] = useState([]);
|
|
@@ -61,8 +62,7 @@ const TMTreeSelector = ({ layoutMode = LayoutModes.Update, isVisible, onSelected
|
|
|
61
62
|
let treeItem = data.data;
|
|
62
63
|
if (treeItem.type == TreeItemTypes.DcmtType)
|
|
63
64
|
return (_jsx(TMTidViewer, { tid: treeItem.tid, color: TMColors.primaryColor, showIcon: false }));
|
|
64
|
-
|
|
65
|
-
return (_jsxs(StyledDivHorizontal, { style: { gap: 5 }, children: [_jsx(IconFolder, { fontSize: 24, color: TMColors.iconLight }), _jsx("p", { style: { color: TMColors.primaryColor }, children: treeItem.nameLoc })] }));
|
|
65
|
+
return (_jsxs(StyledDivHorizontal, { style: { gap: 5 }, children: [_jsx(IconFolder, { fontSize: 24, color: TMColors.iconLight }), _jsx("p", { style: { color: TMColors.primaryColor }, children: treeItem.nameLoc })] }));
|
|
66
66
|
};
|
|
67
67
|
// Handles selection change in the data grid
|
|
68
68
|
const onSelectionChanged = useCallback((e) => {
|
|
@@ -110,11 +110,36 @@ const TMTreeSelector = ({ layoutMode = LayoutModes.Update, isVisible, onSelected
|
|
|
110
110
|
}, value: selectedTreeId, opened: isGridBoxOpened, valueExpr: "id", displayExpr: "nameLoc", deferRendering: false, dataSource: trees, onValueChanged: syncDataGridSelection, onOptionChanged: onGridBoxOpened, children: _jsx(TMDataGrid, { height: "100%", width: "100%", dataSource: trees, dataColumns: [
|
|
111
111
|
{ dataField: 'nameLoc', caption: SDKUI_Localizator.Name, width: 'auto' },
|
|
112
112
|
{ dataField: 'description', caption: SDKUI_Localizator.Description, width: 'auto' },
|
|
113
|
-
], selection: { mode: 'single', showCheckBoxesMode: "none" }, showHeaderFilter: false, selectedRowKeys: selectedRowKeys, onSelectionChanged: onSelectionChanged, focusedRowKey: focusedRowKey, onFocusedRowChanged: onFocusedRowChanged }) }) }), _jsx(TMLayoutItem, { height: 'calc(100% - 50px)', children:
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
113
|
+
], selection: { mode: 'single', showCheckBoxesMode: "none" }, showHeaderFilter: false, selectedRowKeys: selectedRowKeys, onSelectionChanged: onSelectionChanged, focusedRowKey: focusedRowKey, onFocusedRowChanged: onFocusedRowChanged }) }) }), _jsx(TMLayoutItem, { height: 'calc(100% - 50px)', children: _jsx(StyledTreeListWrapper, { style: { width: "100%", height: "100%" }, children: _jsxs(TreeList, { height: "100%", dataSource: treeItems, showRowLines: false, showColumnLines: false, showBorders: false, columnAutoWidth: false, keyExpr: "id", parentIdExpr: "parentID", dataStructure: "plain", showColumnHeaders: false, onContentReady: (e) => e.component.clearSelection(), onSelectionChanged: (e) => {
|
|
114
|
+
if (e.selectedRowsData[0] && e.selectedRowsData[0].type == TreeItemTypes.DcmtType) {
|
|
115
|
+
onSelectedTIDChanged?.(e.selectedRowsData[0].tid, selectedTreeId);
|
|
116
|
+
}
|
|
117
|
+
}, children: [_jsx(Column, { dataField: "nameLoc", caption: SDKUI_Localizator.Name, cellRender: renderCell, width: "100%" }), _jsx(Scrolling, { mode: "virtual", useNative: Number(SDKUI_Globals.userSettings?.themeSettings.gridSettings.useNativeScrollbar) === 1 }), _jsx(Selection, { mode: "single" })] }) }) })] })
|
|
118
118
|
: _jsx("div", { style: { display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', height: '100%', width: '100%', fontSize: '1.5rem' }, children: SDKUI_Localizator.TreesNoAvailable }) }));
|
|
119
119
|
};
|
|
120
120
|
export default TMTreeSelector;
|
|
121
|
+
const StyledTreeListWrapper = styled.div `
|
|
122
|
+
.dx-treelist-container>.dx-treelist-headers,
|
|
123
|
+
.dx-treelist-container>.dx-treelist-rowsview {
|
|
124
|
+
background-color: transparent;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.dx-treelist-rowsview .dx-treelist-empty-space {
|
|
128
|
+
position: relative;
|
|
129
|
+
top: 4px;
|
|
130
|
+
display: inline-block;
|
|
131
|
+
width: 24px;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.dx-row > td {
|
|
135
|
+
padding: 10px 15px;
|
|
136
|
+
font-size: 1rem;
|
|
137
|
+
white-space: nowrap;
|
|
138
|
+
overflow: hidden;
|
|
139
|
+
text-overflow: ellipsis;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.dx-selection td {
|
|
143
|
+
background: oklch(from var(--dx-color-primary) l c h / .2) !important;
|
|
144
|
+
}
|
|
145
|
+
`;
|
|
@@ -30,7 +30,7 @@ const StyledTextArea = styled.textarea `
|
|
|
30
30
|
`;
|
|
31
31
|
export const WorkFlowOperationButtons = ({ deviceType = DeviceType.DESKTOP, approveDisable = false, signApproveDisable = false, reassignDisable = false, rejectDisable = false, infoDisable = false, onApprove, onSignApprove, onReAssign, onReject, onMoreInfo }) => {
|
|
32
32
|
const isMobile = deviceType === DeviceType.MOBILE;
|
|
33
|
-
return (_jsxs(StyledWorkFlowOperationButtonsContainer, { "$isMobile": isMobile, children: [_jsx(TMButton, { btnStyle: isMobile ? 'toolbar' : 'advanced', showTooltip: isMobile, icon: _jsx(IconApply, {}), caption: SDKUI_Localizator.Approve, disabled: approveDisable, onClick: () => !approveDisable && onApprove?.(), advancedColor: TMColors.success, color: 'success' }), _jsx(TMButton, { btnStyle: isMobile ? 'toolbar' : 'advanced', showTooltip: isMobile, icon: _jsx(IconSignature, {}), caption:
|
|
33
|
+
return (_jsxs(StyledWorkFlowOperationButtonsContainer, { "$isMobile": isMobile, children: [_jsx(TMButton, { btnStyle: isMobile ? 'toolbar' : 'advanced', showTooltip: isMobile, icon: _jsx(IconApply, {}), caption: SDKUI_Localizator.Approve, disabled: approveDisable, onClick: () => !approveDisable && onApprove?.(), advancedColor: TMColors.success, color: 'success' }), _jsx(TMButton, { btnStyle: isMobile ? 'toolbar' : 'advanced', showTooltip: isMobile, icon: _jsx(IconSignature, {}), caption: SDKUI_Localizator.SignatureAndApprove, width: '160px', disabled: approveDisable, onClick: () => !signApproveDisable && onSignApprove?.(), advancedColor: TMColors.success, color: 'success' }), _jsx(TMButton, { btnStyle: isMobile ? 'toolbar' : 'advanced', showTooltip: isMobile, icon: _jsx(IconCloseOutline, {}), caption: SDKUI_Localizator.Reject, disabled: rejectDisable, onClick: () => !rejectDisable && onReject?.(), advancedColor: TMColors.error, color: 'error' }), _jsx(TMButton, { btnStyle: isMobile ? 'toolbar' : 'advanced', showTooltip: isMobile, icon: _jsx(IconUser, { fontSize: 16 }), caption: SDKUI_Localizator.Reassign, disabled: reassignDisable, onClick: () => !reassignDisable && onReAssign?.(), advancedColor: TMColors.tertiary, color: 'tertiary' }), _jsx(TMButton, { btnStyle: isMobile ? 'toolbar' : 'advanced', showTooltip: isMobile, icon: _jsx(IconInfo, { fontSize: 16 }), caption: SDKUI_Localizator.MoreInformation, width: '180px', disabled: infoDisable, onClick: () => !infoDisable && onMoreInfo?.(), advancedColor: TMColors.info, color: 'info' })] }));
|
|
34
34
|
};
|
|
35
35
|
export const WorkFlowApproveRejectPopUp = ({ TID = 0, DID = 0, deviceType = DeviceType.DESKTOP, isReject, selectedItems = [], onClose, onCompleted }) => {
|
|
36
36
|
const [commentValue, setCommentValue] = useState('');
|
|
@@ -316,7 +316,7 @@ const TMBlogs = (props) => {
|
|
|
316
316
|
if (blogPost.attachments) {
|
|
317
317
|
for (const attachment of blogPost.attachments) {
|
|
318
318
|
const dcmtTypeDescriptor = await DcmtTypeListCacheService.GetAsync(attachment.tid, true);
|
|
319
|
-
console.log('TMBlogs - getDcmtTypeDescriptor', dcmtTypeDescriptor);
|
|
319
|
+
// console.log('TMBlogs - getDcmtTypeDescriptor', dcmtTypeDescriptor);
|
|
320
320
|
if (dcmtTypeDescriptor && attachment.tid) {
|
|
321
321
|
dcmtTypeMap.set(attachment.tid, dcmtTypeDescriptor);
|
|
322
322
|
}
|
|
@@ -400,6 +400,7 @@ export declare class SDKUI_Localizator {
|
|
|
400
400
|
static get ShowLeftPanel(): "Linkes Panel anzeigen" | "Show left panel" | "Mostrar panel izquierdo" | "Afficher le panneau de gauche" | "Mostrar painel esquerdo" | "Mostra il pannello sinistro";
|
|
401
401
|
static get ShowSearch(): "Suche anzeigen" | "Show search" | "Mostrar búsqueda" | "Afficher la recherche" | "Mostrar pesquisa" | "Mostra ricerca";
|
|
402
402
|
static get Signature(): string;
|
|
403
|
+
static get SignatureAndApprove(): string;
|
|
403
404
|
static get SignatureAndTimestamp(): string;
|
|
404
405
|
static get SignatureInformation(): string;
|
|
405
406
|
static get Size(): "Größe" | "Size" | "Dimensión" | "Dimension" | "Tamanho" | "Dimensione";
|
|
@@ -3958,6 +3958,16 @@ export class SDKUI_Localizator {
|
|
|
3958
3958
|
default: return "Firma";
|
|
3959
3959
|
}
|
|
3960
3960
|
}
|
|
3961
|
+
static get SignatureAndApprove() {
|
|
3962
|
+
switch (this._cultureID) {
|
|
3963
|
+
case CultureIDs.De_DE: return "Unterschreiben und genehmigen";
|
|
3964
|
+
case CultureIDs.En_US: return "Sign and approve";
|
|
3965
|
+
case CultureIDs.Es_ES: return "Firmar y aprobar";
|
|
3966
|
+
case CultureIDs.Fr_FR: return "Signer et approuver";
|
|
3967
|
+
case CultureIDs.Pt_PT: return "Assinar e aprovar";
|
|
3968
|
+
default: return "Firma e approva";
|
|
3969
|
+
}
|
|
3970
|
+
}
|
|
3961
3971
|
static get SignatureAndTimestamp() {
|
|
3962
3972
|
switch (this._cultureID) {
|
|
3963
3973
|
case CultureIDs.De_DE: return "Signatur und Zeitstempel";
|