@topconsultnpm/sdkui-react 6.19.0-dev1.37 → 6.19.0-dev1.39
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/archive/TMArchive.d.ts +1 -0
- package/lib/components/features/archive/TMArchive.js +14 -5
- package/lib/components/features/documents/TMDcmtForm.d.ts +1 -0
- package/lib/components/features/documents/TMDcmtForm.js +9 -2
- package/lib/components/features/search/TMSearchResult.js +2 -2
- package/lib/css/tm-sdkui.css +1 -1
- package/package.json +1 -1
|
@@ -6,6 +6,7 @@ interface ITMArchiveProps {
|
|
|
6
6
|
value: string;
|
|
7
7
|
}>;
|
|
8
8
|
inputTID?: number;
|
|
9
|
+
inputDID?: number;
|
|
9
10
|
onDcmtTypeSelect?: (tid: number | undefined) => void;
|
|
10
11
|
connectorFileSave?: () => Promise<File>;
|
|
11
12
|
onSavedAsyncCallback?: (tid: number | undefined, did: number | undefined) => Promise<void>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect, useMemo, useState } from 'react';
|
|
2
|
+
import React, { useEffect, useMemo, useState } from 'react';
|
|
3
3
|
import Logo from '../../../assets/Toppy-generico.png';
|
|
4
4
|
import { DcmtTypeListCacheService, LayoutModes, SDK_Localizator } from '@topconsultnpm/sdk-ts';
|
|
5
5
|
import { IconTree, SDKUI_Globals, SDKUI_Localizator, IconRecentlyViewed, IconPreview, IconShow, IconBoard, IconDcmtTypeSys, removeMruTid } from '../../../helper';
|
|
@@ -12,11 +12,13 @@ import TMTreeSelector from '../search/TMTreeSelector';
|
|
|
12
12
|
import TMPanel from '../../base/TMPanel';
|
|
13
13
|
import { TMPanelManagerProvider, useTMPanelManagerContext } from '../../layout/panelManager/TMPanelManagerContext';
|
|
14
14
|
import TMPanelManagerContainer from '../../layout/panelManager/TMPanelManagerContainer';
|
|
15
|
-
const TMArchive = ({ onDcmtTypeSelect = undefined, inputTID, inputFile = null, connectorFileSave = undefined, onSavedAsyncCallback, inputMids = [], enableDragDropOverlay = false, passToSearch, isSharedArchive = false }) => {
|
|
15
|
+
const TMArchive = ({ onDcmtTypeSelect = undefined, inputTID, inputFile = null, connectorFileSave = undefined, onSavedAsyncCallback, inputMids = [], enableDragDropOverlay = false, passToSearch, isSharedArchive = false, inputDID = undefined }) => {
|
|
16
16
|
const [currentTID, setCurrentTID] = useState(inputTID ?? 0);
|
|
17
17
|
const [mruTIDs, setMruTIDs] = useState([]);
|
|
18
18
|
const [currentMruTID, setCurrentMruTID] = useState(0);
|
|
19
19
|
const [fromDTD, setFromDTD] = useState();
|
|
20
|
+
const [currentInputMids, setCurrentInputMids] = useState(inputMids);
|
|
21
|
+
const previousTIDRef = React.useRef(undefined);
|
|
20
22
|
const deviceType = useDeviceType();
|
|
21
23
|
useEffect(() => { setMruTIDs(SDKUI_Globals.userSettings.archivingSettings.mruTIDs); }, []);
|
|
22
24
|
useEffect(() => {
|
|
@@ -25,6 +27,9 @@ const TMArchive = ({ onDcmtTypeSelect = undefined, inputTID, inputFile = null, c
|
|
|
25
27
|
setCurrentTID(inputTID);
|
|
26
28
|
setCurrentMruTID(mruTIDs.includes(inputTID) ? inputTID : 0);
|
|
27
29
|
}, [inputTID]);
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
setCurrentInputMids(inputMids);
|
|
32
|
+
}, [inputMids]);
|
|
28
33
|
useEffect(() => {
|
|
29
34
|
if (!currentTID || currentTID <= 0) {
|
|
30
35
|
return;
|
|
@@ -34,6 +39,10 @@ const TMArchive = ({ onDcmtTypeSelect = undefined, inputTID, inputFile = null, c
|
|
|
34
39
|
DcmtTypeListCacheService.GetAsync(currentTID).then(async (dtd) => {
|
|
35
40
|
setFromDTD(dtd);
|
|
36
41
|
});
|
|
42
|
+
if (previousTIDRef.current !== undefined && previousTIDRef.current !== currentTID) {
|
|
43
|
+
setCurrentInputMids([]);
|
|
44
|
+
}
|
|
45
|
+
previousTIDRef.current = currentTID;
|
|
37
46
|
}, [currentTID, onDcmtTypeSelect]);
|
|
38
47
|
const isMobile = deviceType === DeviceType.MOBILE;
|
|
39
48
|
const tmTreeSelectorElement = useMemo(() => _jsx(TMTreeSelectorWrapper, { isMobile: isMobile, isSharedArchive: isSharedArchive, onSelectedTIDChanged: (tid) => {
|
|
@@ -52,13 +61,13 @@ const TMArchive = ({ onDcmtTypeSelect = undefined, inputTID, inputFile = null, c
|
|
|
52
61
|
setMruTIDs(newMruTIDS);
|
|
53
62
|
} }), [mruTIDs, currentMruTID, deviceType, isSharedArchive]);
|
|
54
63
|
const tmFormElement = useMemo(() => currentTID ?
|
|
55
|
-
_jsx(TMDcmtForm, { TID: currentTID, DID:
|
|
64
|
+
_jsx(TMDcmtForm, { TID: currentTID, DID: inputDID, groupId: 'tmForm', layoutMode: LayoutModes.Ark, onClose: deviceType === DeviceType.MOBILE ? () => setCurrentTID(undefined) : undefined, onSaveRecents: (TIDs) => setMruTIDs(TIDs), showDcmtFormSidebar: false, inputFile: inputFile, connectorFileSave: connectorFileSave, onSavedAsyncCallback: onSavedAsyncCallback, inputMids: currentInputMids, enableDragDropOverlay: enableDragDropOverlay, passToSearch: passToSearch ? (outputMids) => {
|
|
56
65
|
if (onDcmtTypeSelect)
|
|
57
66
|
onDcmtTypeSelect(currentTID);
|
|
58
67
|
passToSearch(currentTID, outputMids);
|
|
59
|
-
} : undefined })
|
|
68
|
+
} : undefined, isSharedDcmt: isSharedArchive }, currentTID)
|
|
60
69
|
:
|
|
61
|
-
_jsx(TMPanel, { title: 'Archiviazione', allowMaximize: false, children: _jsxs(TMLayoutContainer, { gap: 30, alignItems: 'center', justifyContent: 'center', children: [_jsx(StyledToppyTextContainer, { children: _jsx(StyledToppyText, { children: SDKUI_Localizator.DcmtTypeSelect }) }), _jsx(StyledToppyImage, { src: Logo, alt: 'Toppy' })] }) }), [currentTID, deviceType, mruTIDs, inputFile,
|
|
70
|
+
_jsx(TMPanel, { title: 'Archiviazione', allowMaximize: false, children: _jsxs(TMLayoutContainer, { gap: 30, alignItems: 'center', justifyContent: 'center', children: [_jsx(StyledToppyTextContainer, { children: _jsx(StyledToppyText, { children: SDKUI_Localizator.DcmtTypeSelect }) }), _jsx(StyledToppyImage, { src: Logo, alt: 'Toppy' })] }) }), [currentTID, deviceType, mruTIDs, inputFile, currentInputMids, enableDragDropOverlay, isSharedArchive]);
|
|
62
71
|
const allInitialPanelVisibility = {
|
|
63
72
|
'tmTreeSelector': true,
|
|
64
73
|
'tmRecentsManager': true,
|
|
@@ -37,7 +37,7 @@ import WFDiagram from '../workflow/diagram/WFDiagram';
|
|
|
37
37
|
import TMTooltip from '../../base/TMTooltip';
|
|
38
38
|
let abortControllerLocal = new AbortController();
|
|
39
39
|
//#endregion
|
|
40
|
-
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, onTaskCompleted, inputFile = null, taskFormDialogComponent, taskMoreInfo, connectorFileSave = undefined, inputMids = [], onOpenS4TViewerRequest, s4TViewerDialogComponent, enableDragDropOverlay = false, passToSearch }) => {
|
|
40
|
+
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, onTaskCompleted, inputFile = null, taskFormDialogComponent, taskMoreInfo, connectorFileSave = undefined, inputMids = [], onOpenS4TViewerRequest, s4TViewerDialogComponent, enableDragDropOverlay = false, passToSearch, isSharedDcmt = false }) => {
|
|
41
41
|
const [id, setID] = useState('');
|
|
42
42
|
const [showWaitPanelLocal, setShowWaitPanelLocal] = useState(false);
|
|
43
43
|
const [waitPanelTitleLocal, setWaitPanelTitleLocal] = useState('');
|
|
@@ -284,6 +284,8 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
|
|
|
284
284
|
return;
|
|
285
285
|
if (!formData || formData.length === 0)
|
|
286
286
|
return;
|
|
287
|
+
if (!formDataOrig || formDataOrig.length === 0)
|
|
288
|
+
return;
|
|
287
289
|
// Check if formData has actual user metadata (mid > 99), not just system metadata
|
|
288
290
|
if (!formData.some(md => md.mid && md.mid > 99))
|
|
289
291
|
return;
|
|
@@ -576,6 +578,11 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
|
|
|
576
578
|
else {
|
|
577
579
|
ae.ArchivingFile = dcmtFileRef.current;
|
|
578
580
|
}
|
|
581
|
+
// if (isSharedDcmt) {
|
|
582
|
+
// console.log(TID);
|
|
583
|
+
// console.log(DID);
|
|
584
|
+
// ae.SharedDcmt = { tid: TID, did: DID } as TID_DID;
|
|
585
|
+
// }
|
|
579
586
|
let newDID = await ae.ArchiveAsync(abortControllerLocal.signal, (pd) => {
|
|
580
587
|
if (firstBlock) {
|
|
581
588
|
maxFileSize = pd.ProgressBarMaximum ?? 0;
|
|
@@ -622,7 +629,7 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
|
|
|
622
629
|
setShowWaitPanelLocal(false);
|
|
623
630
|
setUseWaitPanelLocalState(false);
|
|
624
631
|
}
|
|
625
|
-
}, [TID, connectorFileSave, onSavedAsyncCallback, onSaveRecents, onClose, DID, setMetadataList, handleReset, layoutMode]);
|
|
632
|
+
}, [TID, connectorFileSave, onSavedAsyncCallback, onSaveRecents, onClose, DID, setMetadataList, handleReset, layoutMode, isSharedDcmt]);
|
|
626
633
|
const handleClearForm = useCallback(() => {
|
|
627
634
|
let data = structuredClone(formData);
|
|
628
635
|
if (!data || data.length === 0)
|
|
@@ -165,7 +165,7 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
|
|
|
165
165
|
setSharedDcmtFile(dcmtFile?.file);
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
|
-
catch
|
|
168
|
+
catch {
|
|
169
169
|
ShowAlert({ message: 'Il Documenti ha solo i metadati', mode: "warning", title: 'Archivio Condivisa', duration: 5000 });
|
|
170
170
|
}
|
|
171
171
|
setIsOpenSharedArchive(true);
|
|
@@ -621,7 +621,7 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
|
|
|
621
621
|
await onRefreshSearchAsync?.();
|
|
622
622
|
} }), isOpenSharedArchive && _jsx(TMModal, { title: "Archiviazione condivisa", onClose: () => {
|
|
623
623
|
setIsOpenSharedArchive(false);
|
|
624
|
-
}, width: isMobile ? '90%' : '80%', height: isMobile ? '90%' : '80%', children: _jsx(TMArchive, { inputTID: focusedItem?.TID, inputMids: currentMetadataValues.filter(md => md.mid && md.mid > 100).map(md => ({ mid: md.mid, value: md.value ?? '' })), isSharedArchive: true, inputFile: sharedDcmtFile, onSavedAsyncCallback: async (tid, did) => {
|
|
624
|
+
}, width: isMobile ? '90%' : '80%', height: isMobile ? '90%' : '80%', children: _jsx(TMArchive, { inputDID: focusedItem?.DID, inputTID: focusedItem?.TID, inputMids: currentMetadataValues.filter(md => md.mid && md.mid > 100).map(md => ({ mid: md.mid, value: md.value ?? '' })), isSharedArchive: true, inputFile: sharedDcmtFile, onSavedAsyncCallback: async (tid, did) => {
|
|
625
625
|
setIsOpenSharedArchive(false);
|
|
626
626
|
await onRefreshSearchAsync?.();
|
|
627
627
|
} }) })] }));
|
package/lib/css/tm-sdkui.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@import"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300;1,400;1,500;1,600;1,700;1,800&display=swap";@import"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300;1,400;1,500;1,600;1,700;1,800&display=swap";*{margin:0;padding:0;box-sizing:border-box;font-family:"Open Sans",sans-serif}.tm-tooltip-container-base,.tm-tooltip-container-base-right,.tm-tooltip-container-base-bottom,.tm-tooltip-container-base-left,.tm-tooltip-container-base-top{position:absolute;width:max-content;height:max-content;border-radius:5px;user-select:none;z-index:20000070}.tm-tooltip-container-base-top{top:-0.8rem;left:0;transform:translateY(-100%)}.tm-tooltip-container-base-left{left:-0.8rem;top:0;transform:translateX(-100%)}.tm-tooltip-container-base-bottom{bottom:-0.8rem;left:0;transform:translateY(100%)}.tm-tooltip-container-base-right{right:-0.8rem;top:0;transform:translateX(100%)}.tm-tooltip-arrow,.tm-tooltip-arrow-right,.tm-tooltip-arrow-left,.tm-tooltip-arrow-top,.tm-tooltip-arrow-bottom{position:absolute;width:0;height:0;z-index:50000}.tm-tooltip-arrow-bottom{top:-8px;left:8px;border-bottom:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-top{bottom:-8px;left:8px;border-top:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-left{top:8px;right:-8px;border-left:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-right{top:8px;left:-8px;border-right:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}#user-credentials-popup .dx-accordion-item-title::before{content:none !important}*{margin:0;padding:0;box-sizing:border-box;font-family:"Open Sans",sans-serif}.tm-tooltip-container-base,.tm-tooltip-container-base-top,.tm-tooltip-container-base-left,.tm-tooltip-container-base-bottom,.tm-tooltip-container-base-right{position:absolute;width:max-content;height:max-content;border-radius:5px;user-select:none;z-index:20000070}.tm-tooltip-container-base-top{top:-0.8rem;left:0;transform:translateY(-100%)}.tm-tooltip-container-base-left{left:-0.8rem;top:0;transform:translateX(-100%)}.tm-tooltip-container-base-bottom{bottom:-0.8rem;left:0;transform:translateY(100%)}.tm-tooltip-container-base-right{right:-0.8rem;top:0;transform:translateX(100%)}.tm-tooltip-arrow,.tm-tooltip-arrow-bottom,.tm-tooltip-arrow-top,.tm-tooltip-arrow-left,.tm-tooltip-arrow-right{position:absolute;width:0;height:0;z-index:50000}.tm-tooltip-arrow-bottom{top:-8px;left:8px;border-bottom:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-top{bottom:-8px;left:8px;border-top:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-left{top:8px;right:-8px;border-left:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-right{top:8px;left:-8px;border-right:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}#user-credentials-popup .dx-accordion-item-title::before{content:none !important}@keyframes show-error{0%{display:none;opacity:0;z-index:20000999}5%{display:block;opacity:1;z-index:20000999}95%{display:block;opacity:1;z-index:20000999}100%{opacity:0;display:none;z-index:20000999}}.tm-alert-animation-style{animation:show-error both;animation-timing-function:linear;animation-iteration-count:none;z-index:20000999}.tm-alert-container{position:absolute;width:100%;height:100%;z-index:20000999}@keyframes loading{from{width:0}to{width:100%}}.tm-alert-loading{width:100%;height:5px;position:absolute;bottom:0;left:0;animation:loading;animation-duration:5000ms}.tm-alert-icon{position:absolute;width:22px;height:22px;background-color:#fff;top:"20px";left:"20px";border-radius:50%;display:flex;align-items:center;justify-content:center}.dx-context-menu.dx-overlay-content{height:auto !important;max-height:none !important}.dx-context-menu .dx-menu-items-container{max-height:none !important}
|
|
1
|
+
@import"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300;1,400;1,500;1,600;1,700;1,800&display=swap";@import"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300;1,400;1,500;1,600;1,700;1,800&display=swap";*{margin:0;padding:0;box-sizing:border-box;font-family:"Open Sans",sans-serif}.tm-tooltip-container-base,.tm-tooltip-container-base-right,.tm-tooltip-container-base-bottom,.tm-tooltip-container-base-left,.tm-tooltip-container-base-top{position:absolute;width:max-content;height:max-content;border-radius:5px;user-select:none;z-index:20000070}.tm-tooltip-container-base-top{top:-0.8rem;left:0;transform:translateY(-100%)}.tm-tooltip-container-base-left{left:-0.8rem;top:0;transform:translateX(-100%)}.tm-tooltip-container-base-bottom{bottom:-0.8rem;left:0;transform:translateY(100%)}.tm-tooltip-container-base-right{right:-0.8rem;top:0;transform:translateX(100%)}.tm-tooltip-arrow,.tm-tooltip-arrow-right,.tm-tooltip-arrow-left,.tm-tooltip-arrow-top,.tm-tooltip-arrow-bottom{position:absolute;width:0;height:0;z-index:50000}.tm-tooltip-arrow-bottom{top:-8px;left:8px;border-bottom:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-top{bottom:-8px;left:8px;border-top:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-left{top:8px;right:-8px;border-left:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-right{top:8px;left:-8px;border-right:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}#user-credentials-popup .dx-accordion-item-title::before{content:none !important}*{margin:0;padding:0;box-sizing:border-box;font-family:"Open Sans",sans-serif}.tm-tooltip-container-base,.tm-tooltip-container-base-top,.tm-tooltip-container-base-left,.tm-tooltip-container-base-bottom,.tm-tooltip-container-base-right{position:absolute;width:max-content;height:max-content;border-radius:5px;user-select:none;z-index:20000070}.tm-tooltip-container-base-top{top:-0.8rem;left:0;transform:translateY(-100%)}.tm-tooltip-container-base-left{left:-0.8rem;top:0;transform:translateX(-100%)}.tm-tooltip-container-base-bottom{bottom:-0.8rem;left:0;transform:translateY(100%)}.tm-tooltip-container-base-right{right:-0.8rem;top:0;transform:translateX(100%)}.tm-tooltip-arrow,.tm-tooltip-arrow-bottom,.tm-tooltip-arrow-top,.tm-tooltip-arrow-left,.tm-tooltip-arrow-right{position:absolute;width:0;height:0;z-index:50000}.tm-tooltip-arrow-bottom{top:-8px;left:8px;border-bottom:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-top{bottom:-8px;left:8px;border-top:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-left{top:8px;right:-8px;border-left:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-right{top:8px;left:-8px;border-right:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}#user-credentials-popup .dx-accordion-item-title::before{content:none !important}@keyframes show-error{0%{display:none;opacity:0;z-index:20000999}5%{display:block;opacity:1;z-index:20000999}95%{display:block;opacity:1;z-index:20000999}100%{opacity:0;display:none;z-index:20000999}}.tm-alert-animation-style{animation:show-error both;animation-timing-function:linear;animation-iteration-count:none;z-index:20000999}.tm-alert-container{position:absolute;width:100%;height:100%;z-index:20000999}@keyframes loading{from{width:0}to{width:100%}}.tm-alert-loading{width:100%;height:5px;position:absolute;bottom:0;left:0;animation:loading;animation-duration:5000ms}.tm-alert-icon{position:absolute;width:22px;height:22px;background-color:#fff;top:"20px";left:"20px";border-radius:50%;display:flex;align-items:center;justify-content:center}.dx-context-menu.dx-overlay-content{height:auto !important;max-height:none !important}.dx-context-menu .dx-menu-items-container{max-height:none !important}.custom-mentions-wrapper span.dx-mention span[contenteditable=false]>span:first-child{font-size:0;width:0;display:inline-block;overflow:hidden}.custom-mentions-wrapper span.dx-mention{color:#2559a5;font-weight:bold;background-color:rgba(0,0,0,0)}
|