@topconsultnpm/sdkui-react 6.19.0-dev2.46 → 6.19.0-dev2.48
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.
|
@@ -28,7 +28,7 @@ const StyledTextAreaEditorButton = styled.div `
|
|
|
28
28
|
// Define the TMTextArea component
|
|
29
29
|
const TMTextArea = (props) => {
|
|
30
30
|
// Extract properties from the props object
|
|
31
|
-
const { label = '', value = '', width = '100%', height = 'auto', autoFocus = false, showClearButton, validationItems = [], disabled = false, isModifiedWhen = false, fontSize = FontSize.defaultFontSize, elementStyle = {}, icon = null, labelPosition = 'left', readOnly = false, onValueChanged, onBlur, placeHolder, formulaItems = [], buttons = [], maxHeight = 'auto', rows, maxLength, resize = true } = props;
|
|
31
|
+
const { label = '', value = '', width = '100%', height = 'auto', autoFocus = false, showClearButton, validationItems = [], disabled = false, isModifiedWhen = false, fontSize = FontSize.defaultFontSize, elementStyle = {}, icon = null, labelPosition = 'left', readOnly = false, onValueChanged, onBlur, placeHolder, formulaItems = [], buttons = [], maxHeight = 'auto', rows, maxLength, resize = true, autoCalculateRows = true } = props;
|
|
32
32
|
// Reference to the textarea DOM element
|
|
33
33
|
const inputRef = useRef(null);
|
|
34
34
|
// Stores the textarea is focused
|
|
@@ -46,6 +46,8 @@ const TMTextArea = (props) => {
|
|
|
46
46
|
const deviceType = useDeviceType();
|
|
47
47
|
// Attach a `ResizeObserver` to the textarea to monitor changes in width: dynamically updates rows based on textarea content and width
|
|
48
48
|
useEffect(() => {
|
|
49
|
+
if (!autoCalculateRows)
|
|
50
|
+
return;
|
|
49
51
|
const observer = new ResizeObserver(() => { if (currentValue) {
|
|
50
52
|
updateRows();
|
|
51
53
|
} });
|
|
@@ -55,18 +57,18 @@ const TMTextArea = (props) => {
|
|
|
55
57
|
return () => { if (inputRef.current) {
|
|
56
58
|
observer.unobserve(inputRef.current);
|
|
57
59
|
} };
|
|
58
|
-
}, [currentValue]);
|
|
60
|
+
}, [currentValue, autoCalculateRows]);
|
|
59
61
|
// Update current value whenever the `value` prop changes, synchronize the internal state with the `value` prop
|
|
60
62
|
useEffect(() => {
|
|
61
63
|
setCurrentValue(value);
|
|
62
64
|
}, [value]);
|
|
63
65
|
// Recalculate the number of rows whenever the `currentValue` changes
|
|
64
66
|
useEffect(() => {
|
|
65
|
-
if (currentValue) {
|
|
67
|
+
if (autoCalculateRows && currentValue) {
|
|
66
68
|
const newRowCount = calculateRows(currentValue);
|
|
67
69
|
setCalculatedRows(newRowCount);
|
|
68
70
|
}
|
|
69
|
-
}, [currentValue]);
|
|
71
|
+
}, [currentValue, autoCalculateRows]);
|
|
70
72
|
// Populate the formula menu items whenever the `formulaItems` prop changes
|
|
71
73
|
useEffect(() => {
|
|
72
74
|
if (formulaItems && formulaItems.length > 0) {
|
|
@@ -171,7 +173,8 @@ const TMTextArea = (props) => {
|
|
|
171
173
|
_jsx(StyledTextAreaEditorButton, { onClick: () => {
|
|
172
174
|
onValueChanged?.({ target: { value: undefined } });
|
|
173
175
|
setCurrentValue('');
|
|
174
|
-
|
|
176
|
+
if (autoCalculateRows)
|
|
177
|
+
setCalculatedRows(1);
|
|
175
178
|
onBlur?.(undefined);
|
|
176
179
|
}, children: _jsx(IconClearButton, {}) }), buttons.map((buttonItem, index) => {
|
|
177
180
|
return (_jsx(StyledTextAreaEditorButton, { onClick: buttonItem.onClick, children: _jsx(TMTooltip, { content: buttonItem.text, children: buttonItem.icon }) }, buttonItem.text));
|
|
@@ -168,11 +168,12 @@ const ToppyDraggableHelpCenter = ({ content, deviceType, align = 'right', onTopp
|
|
|
168
168
|
maxX = Math.min(maxX, parentRect.width - extraWidth);
|
|
169
169
|
}
|
|
170
170
|
}
|
|
171
|
-
const
|
|
171
|
+
const bubbleBuffer = 5; // Buffer per evitare che la bubble esca leggermente dai bordi
|
|
172
|
+
const maxY = parentRect.height - rect.height + 20; // +20px per permettere bottom: -20px
|
|
172
173
|
// Verifica se la posizione corrente è fuori dai limiti
|
|
173
174
|
const isOutOfBounds = position.x < minX ||
|
|
174
175
|
position.x > maxX ||
|
|
175
|
-
position.y < extraHeight ||
|
|
176
|
+
position.y < extraHeight + bubbleBuffer ||
|
|
176
177
|
position.y > maxY;
|
|
177
178
|
// Se è fuori dai limiti, resetta alla posizione default
|
|
178
179
|
if (isOutOfBounds) {
|
|
@@ -260,8 +261,11 @@ const ToppyDraggableHelpCenter = ({ content, deviceType, align = 'right', onTopp
|
|
|
260
261
|
// Calcola la nuova posizione X rispettando i limiti
|
|
261
262
|
const newX = Math.max(minX, Math.min(e.clientX - parentRect.left - dragOffset.current.x, maxX));
|
|
262
263
|
// Calcola la nuova posizione Y rispettando i limiti
|
|
263
|
-
// Il limite superiore tiene conto dell'altezza della bubble
|
|
264
|
-
|
|
264
|
+
// Il limite superiore tiene conto dell'altezza della bubble + buffer di sicurezza
|
|
265
|
+
// Il limite inferiore include 20px extra per permettere bottom: -20px
|
|
266
|
+
const bubbleBuffer = 5; // Buffer per evitare che la bubble esca leggermente dai bordi
|
|
267
|
+
const maxY = parentRect.height - rect.height + 20;
|
|
268
|
+
const newY = Math.max(extraHeight + bubbleBuffer, Math.min(e.clientY - parentRect.top - dragOffset.current.y, maxY));
|
|
265
269
|
setPosition({ x: newX, y: newY });
|
|
266
270
|
};
|
|
267
271
|
/**
|
|
@@ -299,7 +303,6 @@ const ToppyDraggableHelpCenter = ({ content, deviceType, align = 'right', onTopp
|
|
|
299
303
|
}
|
|
300
304
|
return undefined;
|
|
301
305
|
}, [isDragging]);
|
|
302
|
-
return (_jsxs(ToppyButton, { ref: buttonRef, "$align": align, "$isDragging": isDragging, "$x": position?.x, "$y": position?.y, "$isVisible": isVisible, "$isCollapsed": isCollapsed, "$isMobile": isMobile, onMouseDown: handleMouseDown, onContextMenu: (e) => e.preventDefault(),
|
|
303
|
-
toggleCollapse(e); }, onDoubleClick: toggleCollapse, children: [(content && !isCollapsed) && (_jsx(ToppySpeechBubble, { ref: bubbleRef, align: align, children: content })), _jsx("img", { src: Toppy, alt: "Toppy Help", draggable: false })] }));
|
|
306
|
+
return (_jsxs(ToppyButton, { ref: buttonRef, "$align": align, "$isDragging": isDragging, "$x": position?.x, "$y": position?.y, "$isVisible": isVisible, "$isCollapsed": isCollapsed, "$isMobile": isMobile, onMouseDown: handleMouseDown, onContextMenu: (e) => e.preventDefault(), onDoubleClick: toggleCollapse, children: [(content && !isCollapsed) && (_jsx(ToppySpeechBubble, { ref: bubbleRef, align: align, children: content })), _jsx("img", { src: Toppy, alt: "Toppy Help", draggable: false })] }));
|
|
304
307
|
};
|
|
305
308
|
export default ToppyDraggableHelpCenter;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { JobTypes, ObjectClasses, ProcessDescriptor, DcmtTypeDescriptor } from "@topconsultnpm/sdk-ts";
|
|
2
2
|
export declare class PlatformObjectService {
|
|
3
|
-
static readonly retrieveAllAsync: (objClass: ObjectClasses, refreshCache?: boolean) => Promise<import("@topconsultnpm/sdk-ts").
|
|
4
|
-
static readonly retrieveAsync: (objClass: ObjectClasses, id: number) => Promise<import("@topconsultnpm/sdk-ts").
|
|
3
|
+
static readonly retrieveAllAsync: (objClass: ObjectClasses, refreshCache?: boolean) => Promise<import("@topconsultnpm/sdk-ts").TaskDescriptor[] | import("@topconsultnpm/sdk-ts").AreaDescriptor[] | import("@topconsultnpm/sdk-ts").NotificationDescriptor[] | import("@topconsultnpm/sdk-ts").RelationDescriptor[] | import("@topconsultnpm/sdk-ts").WorkingGroupDescriptor[] | undefined>;
|
|
4
|
+
static readonly retrieveAsync: (objClass: ObjectClasses, id: number) => Promise<import("@topconsultnpm/sdk-ts").TaskDescriptor | import("@topconsultnpm/sdk-ts").AreaDescriptor | import("@topconsultnpm/sdk-ts").BasketTypeDescriptor | import("@topconsultnpm/sdk-ts").NotificationDescriptor | import("@topconsultnpm/sdk-ts").RelationDescriptor | import("@topconsultnpm/sdk-ts").WorkingGroupDescriptor | undefined>;
|
|
5
5
|
private static readonly retrieveAllAdminJobsAsync;
|
|
6
6
|
static readonly retrieveAllAdminAsync: (objClass: ObjectClasses, jobType?: JobTypes) => Promise<import("@topconsultnpm/sdk-ts").UserDescriptor[] | DcmtTypeDescriptor[] | import("@topconsultnpm/sdk-ts").AreaDescriptor[] | import("@topconsultnpm/sdk-ts").RelationDescriptor[] | import("@topconsultnpm/sdk-ts").FEDistillerJobDescriptor[] | import("@topconsultnpm/sdk-ts").DataListDescriptor[] | import("@topconsultnpm/sdk-ts").DiskDescriptor[] | import("@topconsultnpm/sdk-ts").GroupDescriptor[] | import("@topconsultnpm/sdk-ts").LDAPDescriptor[] | import("@topconsultnpm/sdk-ts").NumeratorDescriptor[] | ProcessDescriptor[] | import("@topconsultnpm/sdk-ts").SAPLoginDescriptor[] | import("@topconsultnpm/sdk-ts").SignCertDescriptor[] | import("@topconsultnpm/sdk-ts").SignServerDescriptor[] | import("@topconsultnpm/sdk-ts").TreeDescriptor[] | import("@topconsultnpm/sdk-ts").TSADescriptor[] | import("@topconsultnpm/sdk-ts").WFDescriptor[] | undefined>;
|
|
7
7
|
private static readonly loadCacheForJobAsync;
|
|
8
8
|
private static readonly retrieveAdminJobAsync;
|
|
9
|
-
static readonly retrieveAdminAsync: (objClass: ObjectClasses, jobType: JobTypes, id: number) => Promise<import("@topconsultnpm/sdk-ts").
|
|
9
|
+
static readonly retrieveAdminAsync: (objClass: ObjectClasses, jobType: JobTypes, id: number) => Promise<import("@topconsultnpm/sdk-ts").TaskDescriptor | import("@topconsultnpm/sdk-ts").UserDescriptor | import("@topconsultnpm/sdk-ts").MailSenderJobDescriptor | DcmtTypeDescriptor | import("@topconsultnpm/sdk-ts").WFDescriptor | import("@topconsultnpm/sdk-ts").DataListDescriptor | import("@topconsultnpm/sdk-ts").AreaDescriptor | import("@topconsultnpm/sdk-ts").BasketTypeDescriptor | import("@topconsultnpm/sdk-ts").RelationDescriptor | import("@topconsultnpm/sdk-ts").WorkingGroupDescriptor | import("@topconsultnpm/sdk-ts").BarcodeArchiverJobDescriptor | import("@topconsultnpm/sdk-ts").BatchUpdaterJobDescriptor | import("@topconsultnpm/sdk-ts").CassettoDoganaleJobDescriptor | import("@topconsultnpm/sdk-ts").CassettoDoganalePlusJobDescriptor | import("@topconsultnpm/sdk-ts").CassettoFiscaleQueryJobDescriptor | import("@topconsultnpm/sdk-ts").CassettoFiscaleSenderJobDescriptor | import("@topconsultnpm/sdk-ts").CheckSequenceJobDescriptor | import("@topconsultnpm/sdk-ts").COSCheckerJobDescriptor | import("@topconsultnpm/sdk-ts").DcmtConverterJobDescriptor | import("@topconsultnpm/sdk-ts").DcmtDeleterJobDescriptor | import("@topconsultnpm/sdk-ts").DcmtNoteJobDescriptor | import("@topconsultnpm/sdk-ts").DcmtPrinterJobDescriptor | import("@topconsultnpm/sdk-ts").FEAttacherJobDescriptor | import("@topconsultnpm/sdk-ts").FECreatorTxtJobDescriptor | import("@topconsultnpm/sdk-ts").FEDetacherJobDescriptor | import("@topconsultnpm/sdk-ts").FEDistillerJobDescriptor | import("@topconsultnpm/sdk-ts").FESenderWsJobDescriptor | import("@topconsultnpm/sdk-ts").FESplitterJobDescriptor | import("@topconsultnpm/sdk-ts").FEValidatorJobDescriptor | import("@topconsultnpm/sdk-ts").FileArchiverJobDescriptor | import("@topconsultnpm/sdk-ts").FileCheckerJobDescriptor | import("@topconsultnpm/sdk-ts").FileExecJobDescriptor | import("@topconsultnpm/sdk-ts").FileExportJobDescriptor | import("@topconsultnpm/sdk-ts").FileMoverJobDescriptor | import("@topconsultnpm/sdk-ts").LexJobDescriptor | import("@topconsultnpm/sdk-ts").LinkerJobDescriptor | import("@topconsultnpm/sdk-ts").MailArchiverJobDescriptor | import("@topconsultnpm/sdk-ts").MailQueryJobDescriptor | import("@topconsultnpm/sdk-ts").MigrationJobDescriptor | import("@topconsultnpm/sdk-ts").PdDCreatorJobDescriptor | import("@topconsultnpm/sdk-ts").PDFArchiverJobDescriptor | import("@topconsultnpm/sdk-ts").PdVArchiverJobDescriptor | import("@topconsultnpm/sdk-ts").PdVQueryJobDescriptor | import("@topconsultnpm/sdk-ts").PdVSenderJobDescriptor | import("@topconsultnpm/sdk-ts").PeppolQueryJobDescriptor | import("@topconsultnpm/sdk-ts").PeppolSenderJobDescriptor | import("@topconsultnpm/sdk-ts").PostelQueryJobDescriptor | import("@topconsultnpm/sdk-ts").PostelSenderJobDescriptor | import("@topconsultnpm/sdk-ts").ReplicatorJobDescriptor | import("@topconsultnpm/sdk-ts").SAPAlignerJobDescriptor | import("@topconsultnpm/sdk-ts").SAPBarcodeJobDescriptor | import("@topconsultnpm/sdk-ts").SAPDataReaderJobDescriptor | import("@topconsultnpm/sdk-ts").SAPDataWriterJobDescriptor | import("@topconsultnpm/sdk-ts").SignerJobDescriptor | import("@topconsultnpm/sdk-ts").SpoolArchiverJobDescriptor | import("@topconsultnpm/sdk-ts").UpdaterJobDescriptor | import("@topconsultnpm/sdk-ts").DiskDescriptor | import("@topconsultnpm/sdk-ts").GroupDescriptor | import("@topconsultnpm/sdk-ts").LDAPDescriptor | import("@topconsultnpm/sdk-ts").NumeratorDescriptor | ProcessDescriptor | import("@topconsultnpm/sdk-ts").SAPLoginDescriptor | import("@topconsultnpm/sdk-ts").SignCertDescriptor | import("@topconsultnpm/sdk-ts").SignServerDescriptor | import("@topconsultnpm/sdk-ts").TreeDescriptor | import("@topconsultnpm/sdk-ts").TSADescriptor | import("@topconsultnpm/sdk-ts").SavedQueryDescriptor | undefined>;
|
|
10
10
|
private static readonly updateJobAsync;
|
|
11
11
|
static readonly updateAsync: (objClass: ObjectClasses, jobType: JobTypes, d: any, ...args: any[]) => Promise<number | undefined>;
|
|
12
12
|
private static readonly createJobAsync;
|