@topconsultnpm/sdkui-react-beta 6.12.22 → 6.12.24

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.
@@ -17,29 +17,35 @@ const Wrapper = styled.div `
17
17
  color: ${(props) => (props.$isSelected ? '#fff' : 'rgb(26, 13, 171)')};
18
18
  }
19
19
  `;
20
- const highlightSearchText = (markup, searchText) => {
21
- if (!searchText.trim())
22
- return markup;
23
- // Escape special characters for use in regex
24
- const escapedText = searchText.trim().replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
25
- const regex = new RegExp(`(${escapedText})`, 'gi');
26
- // Replace only text content, not inside tags
27
- return markup.replace(/(?<=>)([^<]+)(?=<)/g, (text) => {
28
- return text.replace(regex, '<span class="highlight">$1</span>');
29
- });
30
- };
31
20
  const convertLinksToAnchors = (markup) => {
32
21
  const urlRegex = /(?<!["'>])(https?:\/\/[^\s<]+)/g;
33
22
  return markup.replace(urlRegex, (url) => {
34
23
  return `<a href="${url}" target="_blank" rel="noopener noreferrer">${url}</a>`;
35
24
  });
36
25
  };
26
+ const highlightText = (input, searchText) => {
27
+ if (!searchText)
28
+ return input;
29
+ const escapedSearch = searchText.trim().replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // Escape regex
30
+ const regex = new RegExp(escapedSearch, 'gi');
31
+ // Regex to split text into HTML tags and text nodes
32
+ const parts = input.split(/(<[^>]+>)/g); // Captures tags as separate elements
33
+ const highlighted = parts
34
+ .map(part => {
35
+ // Skip HTML tags
36
+ if (part.startsWith('<') && part.endsWith('>')) {
37
+ return part;
38
+ }
39
+ // Highlight search term in text
40
+ return part.replace(regex, match => `<span class="highlight">${match}</span>`);
41
+ })
42
+ .join('');
43
+ return highlighted;
44
+ };
37
45
  const TMHtmlContentDisplay = (props) => {
38
46
  const { markup, searchText, isSelected } = props;
39
47
  let updatedMarkup = convertLinksToAnchors(markup);
40
- if (searchText) {
41
- updatedMarkup = highlightSearchText(updatedMarkup, searchText);
42
- }
48
+ updatedMarkup = highlightText(updatedMarkup, searchText);
43
49
  return (_jsx(Wrapper, { "$isSelected": isSelected, children: _jsx("div", { dangerouslySetInnerHTML: { __html: updatedMarkup } }) }));
44
50
  };
45
51
  export default TMHtmlContentDisplay;
@@ -2,7 +2,7 @@ import { ArchiveConstraints, JobTypes, JoinTypes, MetadataFormats, OwnershipLeve
2
2
  import { FormModes } from "../ts";
3
3
  export declare function LocalizeArchiveConstraints(value: ArchiveConstraints | undefined): "Archivierung nur mit Dateien erlauben" | "Allow file only archiving" | "Permitir solo almacenamientos con archivo" | "Autorise uniquement l'archivage de fichiers" | "Permitir somente depósitos com arquivos" | "Consenti solo archiviazioni con file" | "Alles zulassen" | "Allow everything" | "Permitir todo" | "Autorise tout" | "Permitir que todos" | "Consenti tutto" | "Nur Methadatenarchivierung erlauben" | "Allow metadata only archiving" | "Permitir solo almacenamiento de metadatos" | "Autorise uniquement l'archivage de métadonnées" | "Permitir somente os metadados de arquivamento" | "Consenti solo archiviazioni di metadati";
4
4
  export declare function LocalizeFormModes(value: FormModes | undefined): "Erstellen" | "Create" | "Crear" | "Créer" | "Criar" | "Crea" | "Duplikat" | "Duplicate" | "Duplicar" | "Dupliquer" | "Duplicado" | "Duplica" | "Nur Lesen" | "Read only" | "Solo lectura" | "En lecture seule" | "Somente leitura" | "Solo lettura" | "Bearbeiten" | "Update" | "Modificar" | "Modifie" | "Modificação" | "Modifica" | "None" | "Niemand" | "Ninguno" | "Aucun" | "Nenhum" | "Nessuno";
5
- export declare function LocalizeJobTypes(value: JobTypes | undefined): string | undefined;
5
+ export declare function LocalizeJobTypes(value: JobTypes | undefined): string;
6
6
  export declare function LocalizeMetadataFormats(value: MetadataFormats): string;
7
7
  export declare function LocalizeOwnershipLevels(value: OwnershipLevels | undefined): string | undefined;
8
8
  export declare function LocalizeParametricFilterTypes(value: ParametricFilterTypes | undefined): "Personalisierter Ausdruck" | "Custom expression" | "Expresión personalizada" | "Expression personnalisée" | "Expressão personalizado" | "Espressione personalizzata" | "Filtern nach {@UserID}" | "Filter on {@UserID}" | "Filtro en {@UserID}" | "Filtre sur {@UserID}" | "Filtre on {@UserID}" | "Filtro su {@UserID}" | "Filtern nach {@Benutzername} (=)" | "Filter on {@UserName} (=)" | "Filtro en {@UserName} (=)" | "Filtre sur {@UserName} (=)" | "Filtre on {@UserName} (=)" | "Filtro su {@UserName} (=)" | "Filter nach {@Benutzername} (Enthält)" | "Filter on {@UserName} (Contains)" | "Filtro en {@UserName} (Contiene)" | "Filtre sur {@UserName} (Contient)" | "Filtre on {@UserName} (Contém)" | "Filtro su {@UserName} (Contiene)" | "None" | "Niemand" | "Ninguno" | "Aucun" | "Nenhum" | "Nessuno";
@@ -20,30 +20,31 @@ export function LocalizeFormModes(value) {
20
20
  }
21
21
  }
22
22
  export function LocalizeJobTypes(value) {
23
+ let cultureID = SDK_Globals.tmSession?.SessionDescr?.cultureID ?? CultureIDs.It_IT;
23
24
  switch (value) {
24
25
  case JobTypes.FileExec: return "CustomExec";
25
26
  case JobTypes.Signer: return "DcmtSigner";
26
27
  case JobTypes.CassettoFiscaleQuery:
27
- switch (SDK_Globals.tmSession?.SessionDescr?.cultureID) {
28
+ switch (cultureID) {
28
29
  case CultureIDs.It_IT: return value?.toString();
29
30
  default: return "TaxDrawerQuery";
30
31
  }
31
32
  case JobTypes.CassettoFiscaleSender:
32
- switch (SDK_Globals.tmSession?.SessionDescr?.cultureID) {
33
+ switch (cultureID) {
33
34
  case CultureIDs.It_IT: return value?.toString();
34
35
  default: return "TaxDrawerSender";
35
36
  }
36
37
  case JobTypes.CassettoDoganale:
37
- switch (SDK_Globals.tmSession?.SessionDescr?.cultureID) {
38
+ switch (cultureID) {
38
39
  case CultureIDs.It_IT: return value?.toString();
39
40
  default: return "CustomsDrawer";
40
41
  }
41
42
  case JobTypes.CassettoDoganalePlus:
42
- switch (SDK_Globals.tmSession?.SessionDescr?.cultureID) {
43
+ switch (cultureID) {
43
44
  case CultureIDs.It_IT: return value?.toString();
44
45
  default: return "CustomsDrawerPlus";
45
46
  }
46
- default: return value?.toString();
47
+ default: return value?.toString() ?? '';
47
48
  }
48
49
  }
49
50
  export function LocalizeMetadataFormats(value) {
@@ -10,7 +10,7 @@ export declare class PlatformObjectService {
10
10
  private static readonly createJobAsync;
11
11
  static readonly createAsync: (objClass: ObjectClasses, jobType: JobTypes, d: any) => Promise<number | undefined>;
12
12
  static readonly deleteAsync: (objClass: ObjectClasses, id: number) => Promise<number | undefined>;
13
- static readonly getName: (objClass: ObjectClasses, jobType?: JobTypes, isPlural?: boolean) => string | undefined;
13
+ static readonly getName: (objClass: ObjectClasses, jobType?: JobTypes, isPlural?: boolean) => string;
14
14
  static readonly getIcon: (objClass: ObjectClasses, d: any) => import("react/jsx-runtime").JSX.Element;
15
15
  static readonly getTooltip: (objClass: ObjectClasses, d: any) => import("react/jsx-runtime").JSX.Element | null;
16
16
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topconsultnpm/sdkui-react-beta",
3
- "version": "6.12.22",
3
+ "version": "6.12.24",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1",