@pdfme/schemas 5.3.8-dev.4 → 5.3.8-dev.41
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/dist/cjs/__tests__/barcode.test.js +115 -113
- package/dist/cjs/__tests__/barcode.test.js.map +1 -1
- package/dist/cjs/__tests__/multiVariableText.test.js +15 -15
- package/dist/cjs/__tests__/multiVariableText.test.js.map +1 -1
- package/dist/cjs/__tests__/text.test.js +71 -71
- package/dist/cjs/__tests__/text.test.js.map +1 -1
- package/dist/cjs/__tests__/utils.test.js +76 -15
- package/dist/cjs/__tests__/utils.test.js.map +1 -1
- package/dist/cjs/src/checkbox/index.js +3 -3
- package/dist/cjs/src/checkbox/index.js.map +1 -1
- package/dist/cjs/src/date/date.js +2 -2
- package/dist/cjs/src/date/date.js.map +1 -1
- package/dist/cjs/src/date/dateTime.js +2 -2
- package/dist/cjs/src/date/dateTime.js.map +1 -1
- package/dist/cjs/src/date/helper.js +110 -78
- package/dist/cjs/src/date/helper.js.map +1 -1
- package/dist/cjs/src/date/time.js +2 -2
- package/dist/cjs/src/date/time.js.map +1 -1
- package/dist/cjs/src/graphics/svg.js +25 -2
- package/dist/cjs/src/graphics/svg.js.map +1 -1
- package/dist/cjs/src/index.js +30 -30
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/multiVariableText/helper.js +2 -2
- package/dist/cjs/src/multiVariableText/helper.js.map +1 -1
- package/dist/cjs/src/multiVariableText/pdfRender.js +5 -5
- package/dist/cjs/src/multiVariableText/pdfRender.js.map +1 -1
- package/dist/cjs/src/multiVariableText/propPanel.js +5 -5
- package/dist/cjs/src/multiVariableText/propPanel.js.map +1 -1
- package/dist/cjs/src/multiVariableText/uiRender.js +10 -10
- package/dist/cjs/src/multiVariableText/uiRender.js.map +1 -1
- package/dist/cjs/src/radioGroup/index.js +3 -3
- package/dist/cjs/src/radioGroup/index.js.map +1 -1
- package/dist/cjs/src/select/index.js +9 -9
- package/dist/cjs/src/select/index.js.map +1 -1
- package/dist/cjs/src/tables/classes.js +4 -4
- package/dist/cjs/src/tables/classes.js.map +1 -1
- package/dist/cjs/src/tables/dynamicTemplate.js +2 -2
- package/dist/cjs/src/tables/dynamicTemplate.js.map +1 -1
- package/dist/cjs/src/tables/helper.js +21 -21
- package/dist/cjs/src/tables/helper.js.map +1 -1
- package/dist/cjs/src/tables/pdfRender.js +8 -8
- package/dist/cjs/src/tables/pdfRender.js.map +1 -1
- package/dist/cjs/src/tables/tableHelper.js +5 -5
- package/dist/cjs/src/tables/tableHelper.js.map +1 -1
- package/dist/cjs/src/text/extraFormatter.js +14 -14
- package/dist/cjs/src/text/extraFormatter.js.map +1 -1
- package/dist/cjs/src/text/propPanel.js +2 -2
- package/dist/cjs/src/text/propPanel.js.map +1 -1
- package/dist/cjs/src/utils.js +53 -9
- package/dist/cjs/src/utils.js.map +1 -1
- package/dist/esm/__tests__/barcode.test.js +8 -6
- package/dist/esm/__tests__/barcode.test.js.map +1 -1
- package/dist/esm/__tests__/multiVariableText.test.js +1 -1
- package/dist/esm/__tests__/multiVariableText.test.js.map +1 -1
- package/dist/esm/__tests__/text.test.js +2 -2
- package/dist/esm/__tests__/text.test.js.map +1 -1
- package/dist/esm/__tests__/utils.test.js +65 -4
- package/dist/esm/__tests__/utils.test.js.map +1 -1
- package/dist/esm/src/checkbox/index.js +1 -1
- package/dist/esm/src/checkbox/index.js.map +1 -1
- package/dist/esm/src/date/date.js +1 -1
- package/dist/esm/src/date/date.js.map +1 -1
- package/dist/esm/src/date/dateTime.js +1 -1
- package/dist/esm/src/date/dateTime.js.map +1 -1
- package/dist/esm/src/date/helper.js +70 -38
- package/dist/esm/src/date/helper.js.map +1 -1
- package/dist/esm/src/date/time.js +1 -1
- package/dist/esm/src/date/time.js.map +1 -1
- package/dist/esm/src/graphics/svg.js +25 -2
- package/dist/esm/src/graphics/svg.js.map +1 -1
- package/dist/esm/src/index.js +14 -14
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/multiVariableText/helper.js +2 -2
- package/dist/esm/src/multiVariableText/helper.js.map +1 -1
- package/dist/esm/src/multiVariableText/pdfRender.js +2 -2
- package/dist/esm/src/multiVariableText/pdfRender.js.map +1 -1
- package/dist/esm/src/multiVariableText/propPanel.js +1 -1
- package/dist/esm/src/multiVariableText/propPanel.js.map +1 -1
- package/dist/esm/src/multiVariableText/uiRender.js +4 -4
- package/dist/esm/src/multiVariableText/uiRender.js.map +1 -1
- package/dist/esm/src/radioGroup/index.js +1 -1
- package/dist/esm/src/radioGroup/index.js.map +1 -1
- package/dist/esm/src/select/index.js +2 -2
- package/dist/esm/src/select/index.js.map +1 -1
- package/dist/esm/src/tables/classes.js +1 -1
- package/dist/esm/src/tables/classes.js.map +1 -1
- package/dist/esm/src/tables/dynamicTemplate.js +1 -1
- package/dist/esm/src/tables/dynamicTemplate.js.map +1 -1
- package/dist/esm/src/tables/helper.js +1 -1
- package/dist/esm/src/tables/helper.js.map +1 -1
- package/dist/esm/src/tables/pdfRender.js +4 -4
- package/dist/esm/src/tables/pdfRender.js.map +1 -1
- package/dist/esm/src/tables/tableHelper.js +1 -1
- package/dist/esm/src/tables/tableHelper.js.map +1 -1
- package/dist/esm/src/text/extraFormatter.js +2 -2
- package/dist/esm/src/text/extraFormatter.js.map +1 -1
- package/dist/esm/src/text/propPanel.js +1 -1
- package/dist/esm/src/text/propPanel.js.map +1 -1
- package/dist/esm/src/utils.js +53 -9
- package/dist/esm/src/utils.js.map +1 -1
- package/dist/node/__tests__/barcode.test.js +115 -113
- package/dist/node/__tests__/barcode.test.js.map +1 -1
- package/dist/node/__tests__/multiVariableText.test.js +15 -15
- package/dist/node/__tests__/multiVariableText.test.js.map +1 -1
- package/dist/node/__tests__/text.test.js +71 -71
- package/dist/node/__tests__/text.test.js.map +1 -1
- package/dist/node/__tests__/utils.test.js +76 -15
- package/dist/node/__tests__/utils.test.js.map +1 -1
- package/dist/node/src/checkbox/index.js +3 -3
- package/dist/node/src/checkbox/index.js.map +1 -1
- package/dist/node/src/date/date.js +2 -2
- package/dist/node/src/date/date.js.map +1 -1
- package/dist/node/src/date/dateTime.js +2 -2
- package/dist/node/src/date/dateTime.js.map +1 -1
- package/dist/node/src/date/helper.js +110 -78
- package/dist/node/src/date/helper.js.map +1 -1
- package/dist/node/src/date/time.js +2 -2
- package/dist/node/src/date/time.js.map +1 -1
- package/dist/node/src/graphics/svg.js +25 -2
- package/dist/node/src/graphics/svg.js.map +1 -1
- package/dist/node/src/index.js +30 -30
- package/dist/node/src/index.js.map +1 -1
- package/dist/node/src/multiVariableText/helper.js +2 -2
- package/dist/node/src/multiVariableText/helper.js.map +1 -1
- package/dist/node/src/multiVariableText/pdfRender.js +5 -5
- package/dist/node/src/multiVariableText/pdfRender.js.map +1 -1
- package/dist/node/src/multiVariableText/propPanel.js +5 -5
- package/dist/node/src/multiVariableText/propPanel.js.map +1 -1
- package/dist/node/src/multiVariableText/uiRender.js +10 -10
- package/dist/node/src/multiVariableText/uiRender.js.map +1 -1
- package/dist/node/src/radioGroup/index.js +3 -3
- package/dist/node/src/radioGroup/index.js.map +1 -1
- package/dist/node/src/select/index.js +9 -9
- package/dist/node/src/select/index.js.map +1 -1
- package/dist/node/src/tables/classes.js +4 -4
- package/dist/node/src/tables/classes.js.map +1 -1
- package/dist/node/src/tables/dynamicTemplate.js +2 -2
- package/dist/node/src/tables/dynamicTemplate.js.map +1 -1
- package/dist/node/src/tables/helper.js +21 -21
- package/dist/node/src/tables/helper.js.map +1 -1
- package/dist/node/src/tables/pdfRender.js +8 -8
- package/dist/node/src/tables/pdfRender.js.map +1 -1
- package/dist/node/src/tables/tableHelper.js +5 -5
- package/dist/node/src/tables/tableHelper.js.map +1 -1
- package/dist/node/src/text/extraFormatter.js +14 -14
- package/dist/node/src/text/extraFormatter.js.map +1 -1
- package/dist/node/src/text/propPanel.js +2 -2
- package/dist/node/src/text/propPanel.js.map +1 -1
- package/dist/node/src/utils.js +53 -9
- package/dist/node/src/utils.js.map +1 -1
- package/dist/types/src/barcodes/helper.d.ts +1 -1
- package/dist/types/src/barcodes/index.d.ts +1 -1
- package/dist/types/src/barcodes/pdfRender.d.ts +1 -1
- package/dist/types/src/barcodes/propPanel.d.ts +1 -1
- package/dist/types/src/barcodes/uiRender.d.ts +1 -1
- package/dist/types/src/date/date.d.ts +1 -1
- package/dist/types/src/date/dateTime.d.ts +1 -1
- package/dist/types/src/date/helper.d.ts +1 -1
- package/dist/types/src/date/time.d.ts +1 -1
- package/dist/types/src/date/types.d.ts +6 -1
- package/dist/types/src/index.d.ts +15 -15
- package/dist/types/src/multiVariableText/helper.d.ts +1 -1
- package/dist/types/src/multiVariableText/index.d.ts +1 -1
- package/dist/types/src/multiVariableText/pdfRender.d.ts +1 -1
- package/dist/types/src/multiVariableText/propPanel.d.ts +1 -1
- package/dist/types/src/multiVariableText/types.d.ts +1 -1
- package/dist/types/src/multiVariableText/uiRender.d.ts +1 -1
- package/dist/types/src/select/index.d.ts +1 -1
- package/dist/types/src/tables/cell.d.ts +1 -1
- package/dist/types/src/tables/classes.d.ts +1 -1
- package/dist/types/src/tables/helper.d.ts +4 -4
- package/dist/types/src/tables/pdfRender.d.ts +1 -1
- package/dist/types/src/tables/propPanel.d.ts +1 -1
- package/dist/types/src/tables/tableHelper.d.ts +1 -1
- package/dist/types/src/tables/types.d.ts +1 -1
- package/dist/types/src/text/constants.d.ts +1 -1
- package/dist/types/src/text/helper.d.ts +1 -1
- package/dist/types/src/text/index.d.ts +1 -1
- package/dist/types/src/text/pdfRender.d.ts +1 -1
- package/dist/types/src/text/propPanel.d.ts +1 -1
- package/dist/types/src/text/uiRender.d.ts +1 -1
- package/package.json +2 -3
- package/src/barcodes/helper.ts +1 -1
- package/src/barcodes/index.ts +1 -1
- package/src/barcodes/pdfRender.ts +1 -1
- package/src/barcodes/propPanel.ts +1 -1
- package/src/barcodes/uiRender.ts +1 -1
- package/src/checkbox/index.ts +1 -1
- package/src/date/date.ts +1 -1
- package/src/date/dateTime.ts +1 -1
- package/src/date/helper.ts +84 -43
- package/src/date/time.ts +1 -1
- package/src/date/types.ts +7 -1
- package/src/graphics/svg.ts +27 -2
- package/src/index.ts +14 -14
- package/src/multiVariableText/helper.ts +15 -7
- package/src/multiVariableText/index.ts +1 -1
- package/src/multiVariableText/pdfRender.ts +3 -3
- package/src/multiVariableText/propPanel.ts +2 -2
- package/src/multiVariableText/types.ts +1 -1
- package/src/multiVariableText/uiRender.ts +5 -5
- package/src/radioGroup/index.ts +1 -1
- package/src/select/index.ts +3 -3
- package/src/tables/cell.ts +1 -1
- package/src/tables/classes.ts +2 -2
- package/src/tables/dynamicTemplate.ts +2 -2
- package/src/tables/helper.ts +1 -1
- package/src/tables/pdfRender.ts +6 -6
- package/src/tables/propPanel.ts +1 -1
- package/src/tables/tableHelper.ts +2 -2
- package/src/tables/types.ts +1 -1
- package/src/tables/uiRender.ts +1 -1
- package/src/text/constants.ts +1 -1
- package/src/text/extraFormatter.ts +2 -2
- package/src/text/helper.ts +1 -1
- package/src/text/index.ts +1 -1
- package/src/text/pdfRender.ts +1 -1
- package/src/text/propPanel.ts +2 -2
- package/src/text/uiRender.ts +1 -1
- package/src/utils.ts +64 -15
- package/tsconfig.esm.json +2 -1
package/src/select/index.ts
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
import type * as CSS from 'csstype';
|
2
|
-
import { propPanel as parentPropPanel } from '../text/propPanel';
|
2
|
+
import { propPanel as parentPropPanel } from '../text/propPanel.js';
|
3
3
|
import { Plugin, PropPanelWidgetProps, SchemaForUI } from '@pdfme/common';
|
4
|
-
import text from '../text';
|
5
|
-
import { TextSchema } from '../text/types';
|
4
|
+
import text from '../text/index.js';
|
5
|
+
import { TextSchema } from '../text/types.js';
|
6
6
|
import { ChevronDown } from 'lucide';
|
7
7
|
import { createSvgStr } from '../utils.js';
|
8
8
|
|
package/src/tables/cell.ts
CHANGED
@@ -9,7 +9,7 @@ import { uiRender as textUiRender } from '../text/uiRender.js';
|
|
9
9
|
import { pdfRender as textPdfRender } from '../text/pdfRender.js';
|
10
10
|
import line from '../shapes/line.js';
|
11
11
|
import { rectangle } from '../shapes/rectAndEllipse.js';
|
12
|
-
import type { CellSchema } from './types';
|
12
|
+
import type { CellSchema } from './types.js';
|
13
13
|
import { getCellPropPanelSchema, getDefaultCellStyles } from './helper.js';
|
14
14
|
const linePdfRender = line.pdf;
|
15
15
|
const rectanglePdfRender = rectangle.pdf;
|
package/src/tables/classes.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import { Font, mm2pt, pt2mm } from '@pdfme/common';
|
2
2
|
import type { Font as FontKitFont } from 'fontkit';
|
3
|
-
import { splitTextToSize, getFontKitFont, widthOfTextAtSize } from '../text/helper';
|
4
|
-
import type { Styles, TableInput, Settings, Section, StylesProps } from './types';
|
3
|
+
import { splitTextToSize, getFontKitFont, widthOfTextAtSize } from '../text/helper.js';
|
4
|
+
import type { Styles, TableInput, Settings, Section, StylesProps } from './types.js';
|
5
5
|
|
6
6
|
type ContentSettings = { body: Row[]; head: Row[]; columns: Column[] };
|
7
7
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { Schema, BasePdf, CommonOptions } from '@pdfme/common';
|
2
|
-
import { createSingleTable } from './tableHelper';
|
2
|
+
import { createSingleTable } from './tableHelper.js';
|
3
3
|
import { getBodyWithRange, getBody } from './helper.js';
|
4
|
-
import { TableSchema } from './types';
|
4
|
+
import { TableSchema } from './types.js';
|
5
5
|
|
6
6
|
export const getDynamicHeightsForTable = async (
|
7
7
|
value: string,
|
package/src/tables/helper.ts
CHANGED
package/src/tables/pdfRender.ts
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
import type { TableSchema } from './types';
|
1
|
+
import type { TableSchema } from './types.js';
|
2
2
|
import type { PDFRenderProps } from '@pdfme/common';
|
3
|
-
import { Cell, Table, Row, Column } from './classes';
|
4
|
-
import { rectangle } from '../shapes/rectAndEllipse';
|
5
|
-
import cell from './cell';
|
6
|
-
import { getBodyWithRange } from './helper';
|
7
|
-
import { createSingleTable } from './tableHelper';
|
3
|
+
import { Cell, Table, Row, Column } from './classes.js';
|
4
|
+
import { rectangle } from '../shapes/rectAndEllipse.js';
|
5
|
+
import cell from './cell.js';
|
6
|
+
import { getBodyWithRange } from './helper.js';
|
7
|
+
import { createSingleTable } from './tableHelper.js';
|
8
8
|
|
9
9
|
type Pos = { x: number; y: number };
|
10
10
|
|
package/src/tables/propPanel.ts
CHANGED
@@ -15,8 +15,8 @@ import type {
|
|
15
15
|
TableInput,
|
16
16
|
StylesProps,
|
17
17
|
Section,
|
18
|
-
} from './types';
|
19
|
-
import { Cell, Column, Row, Table } from './classes';
|
18
|
+
} from './types.js';
|
19
|
+
import { Cell, Column, Row, Table } from './classes.js';
|
20
20
|
|
21
21
|
type StyleProp = 'styles' | 'headStyles' | 'bodyStyles' | 'alternateRowStyles' | 'columnStyles';
|
22
22
|
|
package/src/tables/types.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { ALIGNMENT, VERTICAL_ALIGNMENT } from '../text/types';
|
1
|
+
import type { ALIGNMENT, VERTICAL_ALIGNMENT } from '../text/types.js';
|
2
2
|
import type { Schema } from '@pdfme/common';
|
3
3
|
|
4
4
|
export type Spacing = { top: number; right: number; bottom: number; left: number };
|
package/src/tables/uiRender.ts
CHANGED
@@ -4,7 +4,7 @@ import { px2mm } from '@pdfme/common';
|
|
4
4
|
import { createSingleTable } from './tableHelper.js';
|
5
5
|
import { getBody, getBodyWithRange } from './helper.js';
|
6
6
|
import cell from './cell.js';
|
7
|
-
import { Row } from './classes';
|
7
|
+
import { Row } from './classes.js';
|
8
8
|
|
9
9
|
const buttonSize = 30;
|
10
10
|
|
package/src/text/constants.ts
CHANGED
@@ -9,7 +9,7 @@ import {
|
|
9
9
|
TextVerticalAlignBottomIcon,
|
10
10
|
TextVerticalAlignMiddleIcon,
|
11
11
|
TextVerticalAlignTopIcon,
|
12
|
-
} from './icons';
|
12
|
+
} from './icons/index.js';
|
13
13
|
import {
|
14
14
|
ALIGN_CENTER,
|
15
15
|
ALIGN_RIGHT,
|
@@ -18,7 +18,7 @@ import {
|
|
18
18
|
VERTICAL_ALIGN_BOTTOM,
|
19
19
|
VERTICAL_ALIGN_MIDDLE,
|
20
20
|
ALIGN_JUSTIFY,
|
21
|
-
} from './constants';
|
21
|
+
} from './constants.js';
|
22
22
|
|
23
23
|
export enum Formatter {
|
24
24
|
STRIKETHROUGH = 'strikethrough',
|
package/src/text/helper.ts
CHANGED
@@ -11,7 +11,7 @@ import {
|
|
11
11
|
DEFAULT_FONT_NAME,
|
12
12
|
} from '@pdfme/common';
|
13
13
|
import { Buffer } from 'buffer';
|
14
|
-
import type { TextSchema, FontWidthCalcValues } from './types';
|
14
|
+
import type { TextSchema, FontWidthCalcValues } from './types.js';
|
15
15
|
import {
|
16
16
|
DEFAULT_FONT_SIZE,
|
17
17
|
DEFAULT_CHARACTER_SPACING,
|
package/src/text/index.ts
CHANGED
@@ -2,7 +2,7 @@ import type { Plugin } from '@pdfme/common';
|
|
2
2
|
import { pdfRender } from './pdfRender.js';
|
3
3
|
import { propPanel } from './propPanel.js';
|
4
4
|
import { uiRender } from './uiRender.js';
|
5
|
-
import type { TextSchema } from './types';
|
5
|
+
import type { TextSchema } from './types.js';
|
6
6
|
import { TextCursorInput } from 'lucide';
|
7
7
|
import { createSvgStr } from '../utils.js';
|
8
8
|
|
package/src/text/pdfRender.ts
CHANGED
package/src/text/propPanel.ts
CHANGED
@@ -5,7 +5,7 @@ import {
|
|
5
5
|
PropPanelSchema,
|
6
6
|
getFallbackFontName,
|
7
7
|
} from '@pdfme/common';
|
8
|
-
import type { TextSchema } from './types';
|
8
|
+
import type { TextSchema } from './types.js';
|
9
9
|
import {
|
10
10
|
DEFAULT_FONT_SIZE,
|
11
11
|
DEFAULT_ALIGNMENT,
|
@@ -20,7 +20,7 @@ import {
|
|
20
20
|
DEFAULT_DYNAMIC_MAX_FONT_SIZE,
|
21
21
|
} from './constants.js';
|
22
22
|
import { DEFAULT_OPACITY, HEX_COLOR_PATTERN } from '../constants.js';
|
23
|
-
import { getExtraFormatterSchema } from './extraFormatter';
|
23
|
+
import { getExtraFormatterSchema } from './extraFormatter.js';
|
24
24
|
|
25
25
|
const UseDynamicFontSize = (props: PropPanelWidgetProps) => {
|
26
26
|
const { rootElement, changeSchemas, activeSchema, i18n } = props;
|
package/src/text/uiRender.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import type * as CSS from 'csstype';
|
2
2
|
import type { Font as FontKitFont } from 'fontkit';
|
3
3
|
import { UIRenderProps, getDefaultFont } from '@pdfme/common';
|
4
|
-
import type { TextSchema } from './types';
|
4
|
+
import type { TextSchema } from './types.js';
|
5
5
|
import {
|
6
6
|
DEFAULT_FONT_SIZE,
|
7
7
|
DEFAULT_ALIGNMENT,
|
package/src/utils.ts
CHANGED
@@ -212,21 +212,70 @@ export const createErrorElm = () => {
|
|
212
212
|
};
|
213
213
|
|
214
214
|
export const createSvgStr = (icon: IconNode, attrs?: Record<string, string>): string => {
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
215
|
+
// In lucide 0.475.0, the icon is an array of elements, not a single SVG element
|
216
|
+
// We need to create an SVG wrapper and add the elements as children
|
217
|
+
|
218
|
+
// Handle non-array input
|
219
|
+
if (!Array.isArray(icon)) {
|
220
|
+
return String(icon);
|
221
|
+
}
|
222
|
+
|
223
|
+
// Create default SVG attributes
|
224
|
+
const svgAttrs = {
|
225
|
+
xmlns: "http://www.w3.org/2000/svg",
|
226
|
+
width: "24",
|
227
|
+
height: "24",
|
228
|
+
viewBox: "0 0 24 24",
|
229
|
+
fill: "none",
|
230
|
+
stroke: "currentColor",
|
231
|
+
"stroke-width": "2",
|
232
|
+
"stroke-linecap": "round",
|
233
|
+
"stroke-linejoin": "round",
|
234
|
+
...(attrs || {})
|
235
|
+
};
|
236
|
+
|
237
|
+
// Format SVG attributes string
|
238
|
+
const svgAttrString = Object.entries(svgAttrs)
|
239
|
+
.map(([key, value]) => `${key}="${value}"`)
|
240
|
+
.join(' ');
|
241
|
+
|
242
|
+
// Helper function to process a single element
|
243
|
+
const processElement = (element: any): string => {
|
244
|
+
if (!Array.isArray(element)) {
|
245
|
+
return String(element);
|
246
|
+
}
|
247
|
+
|
248
|
+
const [tag, attributes = {}, children = []] = element;
|
249
|
+
const tagName = String(tag);
|
250
|
+
|
251
|
+
// Format attributes string
|
252
|
+
const attrString = Object.entries(attributes)
|
221
253
|
.map(([key, value]) => `${key}="${value}"`)
|
222
254
|
.join(' ');
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
255
|
+
|
256
|
+
// Process children recursively
|
257
|
+
let childrenString = '';
|
258
|
+
|
259
|
+
if (Array.isArray(children) && children.length > 0) {
|
260
|
+
childrenString = children
|
261
|
+
.map(child => processElement(child))
|
262
|
+
.join('');
|
263
|
+
}
|
264
|
+
|
265
|
+
// Return properly formatted element string
|
266
|
+
if (childrenString) {
|
267
|
+
return `<${tagName}${attrString ? ' ' + attrString : ''}>${childrenString}</${tagName}>`;
|
268
|
+
} else {
|
269
|
+
// Self-closing tag for empty children
|
270
|
+
return `<${tagName}${attrString ? ' ' + attrString : ''}/>`;
|
271
|
+
}
|
229
272
|
};
|
230
|
-
|
231
|
-
|
232
|
-
|
273
|
+
|
274
|
+
// Process all elements and join them
|
275
|
+
const elementsString = Array.isArray(icon)
|
276
|
+
? icon.map(element => processElement(element)).join('')
|
277
|
+
: processElement(icon);
|
278
|
+
|
279
|
+
// Return the complete SVG string
|
280
|
+
return `<svg ${svgAttrString}>${elementsString}</svg>`;
|
281
|
+
};
|
package/tsconfig.esm.json
CHANGED