@pdfme/ui 3.1.2 → 3.1.3-dev.2
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/index.js +185 -184
- package/dist/types/class.d.ts +1 -0
- package/dist/types/components/Renderer.d.ts +1 -1
- package/dist/types/contexts.d.ts +2 -1
- package/dist/types/helper.d.ts +1 -0
- package/package.json +2 -1
- package/src/components/Designer/Sidebar/DetailView/index.tsx +64 -31
- package/src/components/Renderer.tsx +4 -1
- package/src/i18n.ts +6 -0
- package/vite.config.ts +3 -1
- package/dist/style.css +0 -1
package/dist/types/class.d.ts
CHANGED
@@ -34,6 +34,7 @@ export declare abstract class BaseUIClass {
|
|
34
34
|
width: import("zod").ZodNumber;
|
35
35
|
height: import("zod").ZodNumber;
|
36
36
|
rotate: import("zod").ZodOptional<import("zod").ZodNumber>;
|
37
|
+
opacity: import("zod").ZodOptional<import("zod").ZodNumber>;
|
37
38
|
}, import("zod").ZodTypeAny, "passthrough">>[];
|
38
39
|
basePdf: (string | Uint8Array | ArrayBuffer) & (string | Uint8Array | ArrayBuffer | undefined);
|
39
40
|
sampledata?: Record<string, string>[] | undefined;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { UIRenderProps, SchemaForUI, Schema } from '@pdfme/common';
|
3
|
-
type RendererProps = Omit<UIRenderProps<Schema>, 'value' | 'schema' | 'onChange' | 'rootElement' | 'options' | 'theme' | 'i18n'> & {
|
3
|
+
type RendererProps = Omit<UIRenderProps<Schema>, 'value' | 'schema' | 'onChange' | 'rootElement' | 'options' | 'theme' | 'i18n' | '_cache'> & {
|
4
4
|
schema: SchemaForUI;
|
5
5
|
onChange: (value: string) => void;
|
6
6
|
outline: string;
|
package/dist/types/contexts.d.ts
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
/// <reference types="react" />
|
2
2
|
import { Plugins, UIOptions } from '@pdfme/common';
|
3
|
-
export declare const I18nContext: import("react").Context<(key: "height" | "width" | "type" | "rotate" | "cancel" | "field" | "fieldName" | "align" | "edit" | "plsInputName" | "fieldMustUniq" | "notUniq" | "noKeyName" | "fieldsList" | "addNewField" | "editField" | "errorOccurred" | "errorBulkUpdateFieldName" | "commitBulkUpdateFieldName" | "bulkUpdateFieldName" | "schemas.textColor" | "schemas.bgColor" | "schemas.horizontal" | "schemas.vertical" | "schemas.left" | "schemas.center" | "schemas.right" | "schemas.top" | "schemas.middle" | "schemas.bottom" | "schemas.text.fontName" | "schemas.text.size" | "schemas.text.spacing" | "schemas.text.textAlign" | "schemas.text.verticalAlign" | "schemas.text.lineHeight" | "schemas.text.min" | "schemas.text.max" | "schemas.text.fit" | "schemas.text.dynamicFontSize" | "schemas.barcodes.barColor", dict?: {
|
3
|
+
export declare const I18nContext: import("react").Context<(key: "height" | "width" | "type" | "rotate" | "opacity" | "cancel" | "field" | "fieldName" | "align" | "edit" | "plsInputName" | "fieldMustUniq" | "notUniq" | "noKeyName" | "fieldsList" | "addNewField" | "editField" | "errorOccurred" | "errorBulkUpdateFieldName" | "commitBulkUpdateFieldName" | "bulkUpdateFieldName" | "schemas.textColor" | "schemas.bgColor" | "schemas.horizontal" | "schemas.vertical" | "schemas.left" | "schemas.center" | "schemas.right" | "schemas.top" | "schemas.middle" | "schemas.bottom" | "schemas.text.fontName" | "schemas.text.size" | "schemas.text.spacing" | "schemas.text.textAlign" | "schemas.text.verticalAlign" | "schemas.text.lineHeight" | "schemas.text.min" | "schemas.text.max" | "schemas.text.fit" | "schemas.text.dynamicFontSize" | "schemas.barcodes.barColor", dict?: {
|
4
4
|
cancel: string;
|
5
5
|
field: string;
|
6
6
|
fieldName: string;
|
7
7
|
align: string;
|
8
8
|
width: string;
|
9
|
+
opacity: string;
|
9
10
|
height: string;
|
10
11
|
rotate: string;
|
11
12
|
edit: string;
|
package/dist/types/helper.d.ts
CHANGED
@@ -35,6 +35,7 @@ export declare const templateSchemas2SchemasList: (_template: Template) => Promi
|
|
35
35
|
data: string;
|
36
36
|
id: string;
|
37
37
|
key: string;
|
38
|
+
opacity?: number | undefined;
|
38
39
|
rotate?: number | undefined;
|
39
40
|
}[][]>;
|
40
41
|
export declare const fmtTemplate: (template: Template, schemasList: SchemaForUI[][]) => Template;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@pdfme/ui",
|
3
|
-
"version": "3.1.2",
|
3
|
+
"version": "3.1.3-dev.2",
|
4
4
|
"sideEffects": false,
|
5
5
|
"author": "hand-dot",
|
6
6
|
"license": "MIT",
|
@@ -66,6 +66,7 @@
|
|
66
66
|
"jest-canvas-mock": "^2.3.1",
|
67
67
|
"process": "^0.11.10",
|
68
68
|
"vite": "^5.0.0",
|
69
|
+
"vite-plugin-css-injected-by-js": "^3.3.0",
|
69
70
|
"vite-plugin-top-level-await": "^1.3.1",
|
70
71
|
"vite-tsconfig-paths": "^4.2.1"
|
71
72
|
},
|
@@ -58,15 +58,31 @@ const DetailView = (
|
|
58
58
|
}, [activeSchema, activeElements, pluginsRegistry, JSON.stringify(options)]);
|
59
59
|
|
60
60
|
useEffect(() => {
|
61
|
-
|
62
|
-
|
61
|
+
const values: any = { ...activeSchema };
|
62
|
+
|
63
|
+
// [position] Change the nested position object into a flat, as a three-column layout is difficult to implement
|
64
|
+
values.x = values.position.x;
|
65
|
+
values.y = values.position.y;
|
66
|
+
delete values.position;
|
67
|
+
|
68
|
+
if (values.key !== (form.getValues() || {}).key) {
|
69
|
+
form.resetFields();
|
70
|
+
}
|
71
|
+
|
72
|
+
form.setValues(values);
|
73
|
+
}, [form, activeSchema]);
|
63
74
|
|
64
75
|
const handleWatch = (newSchema: any) => {
|
65
76
|
const changes = [];
|
66
|
-
for (
|
77
|
+
for (let key in newSchema) {
|
67
78
|
if (['id', 'data'].includes(key)) continue;
|
68
79
|
if (newSchema[key] !== (activeSchema as any)[key]) {
|
69
|
-
|
80
|
+
const value = newSchema[key] || undefined;
|
81
|
+
|
82
|
+
// [position] Return the flattened position to its original form.
|
83
|
+
if (key === 'x') key = 'position.x';
|
84
|
+
if (key === 'y') key = 'position.y';
|
85
|
+
changes.push({ key, value, schemaId: activeSchema.id });
|
70
86
|
}
|
71
87
|
}
|
72
88
|
if (changes.length) {
|
@@ -84,6 +100,12 @@ const DetailView = (
|
|
84
100
|
Check this document: https://pdfme.com/docs/custom-schemas`);
|
85
101
|
}
|
86
102
|
|
103
|
+
const typeOptions = Object.entries(pluginsRegistry).map(([label, value]) => ({
|
104
|
+
label,
|
105
|
+
value: value?.propPanel.defaultSchema.type,
|
106
|
+
}));
|
107
|
+
const defaultSchema = activePlugin.propPanel.defaultSchema;
|
108
|
+
|
87
109
|
const propPanelSchema: PropPanelSchema = {
|
88
110
|
type: 'object',
|
89
111
|
column: 2,
|
@@ -92,34 +114,49 @@ Check this document: https://pdfme.com/docs/custom-schemas`);
|
|
92
114
|
title: i18n('type'),
|
93
115
|
type: 'string',
|
94
116
|
widget: 'select',
|
95
|
-
props: {
|
96
|
-
|
97
|
-
|
98
|
-
value: value?.propPanel.defaultSchema.type,
|
99
|
-
})),
|
100
|
-
},
|
101
|
-
},
|
102
|
-
key: { title: i18n('fieldName'), type: 'string', widget: 'input' },
|
103
|
-
'-': { type: 'void', widget: 'Divider', cellSpan: 2 },
|
104
|
-
align: { title: i18n('align'), type: 'void', widget: 'AlignWidget', cellSpan: 2 },
|
105
|
-
position: {
|
106
|
-
type: 'object',
|
107
|
-
widget: 'card',
|
108
|
-
properties: {
|
109
|
-
x: { title: 'X', type: 'number', widget: 'inputNumber' },
|
110
|
-
y: { title: 'Y', type: 'number', widget: 'inputNumber' },
|
111
|
-
},
|
117
|
+
props: { options: typeOptions },
|
118
|
+
required: true,
|
119
|
+
span: 10,
|
112
120
|
},
|
113
|
-
|
114
|
-
|
121
|
+
key: { title: i18n('fieldName'), type: 'string', required: true, span: 14 },
|
122
|
+
'-': { type: 'void', widget: 'Divider' },
|
123
|
+
align: { title: i18n('align'), type: 'void', widget: 'AlignWidget' },
|
124
|
+
x: { title: 'X', type: 'number', widget: 'inputNumber', required: true, span: 8 },
|
125
|
+
y: { title: 'Y', type: 'number', widget: 'inputNumber', required: true, span: 8 },
|
115
126
|
rotate: {
|
116
127
|
title: i18n('rotate'),
|
117
128
|
type: 'number',
|
118
129
|
widget: 'inputNumber',
|
119
|
-
|
120
|
-
disabled: activePlugin.propPanel.defaultSchema?.rotate === undefined,
|
130
|
+
disabled: defaultSchema?.rotate === undefined,
|
121
131
|
max: 360,
|
122
132
|
min: 0,
|
133
|
+
span: 8,
|
134
|
+
},
|
135
|
+
width: {
|
136
|
+
title: i18n('width'),
|
137
|
+
type: 'number',
|
138
|
+
widget: 'inputNumber',
|
139
|
+
required: true,
|
140
|
+
span: 8,
|
141
|
+
},
|
142
|
+
height: {
|
143
|
+
title: i18n('height'),
|
144
|
+
type: 'number',
|
145
|
+
widget: 'inputNumber',
|
146
|
+
required: true,
|
147
|
+
span: 8,
|
148
|
+
},
|
149
|
+
opacity: {
|
150
|
+
title: i18n('opacity'),
|
151
|
+
type: 'number',
|
152
|
+
widget: 'inputNumber',
|
153
|
+
disabled: defaultSchema?.opacity === undefined,
|
154
|
+
props: {
|
155
|
+
step: 0.1,
|
156
|
+
},
|
157
|
+
max: 1,
|
158
|
+
min: 0,
|
159
|
+
span: 8,
|
123
160
|
},
|
124
161
|
},
|
125
162
|
};
|
@@ -134,18 +171,14 @@ Check this document: https://pdfme.com/docs/custom-schemas`);
|
|
134
171
|
}) || {};
|
135
172
|
propPanelSchema.properties = {
|
136
173
|
...propPanelSchema.properties,
|
137
|
-
...(Object.keys(apps).length === 0
|
138
|
-
? {}
|
139
|
-
: { '--': { type: 'void', widget: 'Divider', cellSpan: 2 } }),
|
174
|
+
...(Object.keys(apps).length === 0 ? {} : { '--': { type: 'void', widget: 'Divider' } }),
|
140
175
|
...apps,
|
141
176
|
};
|
142
177
|
} else {
|
143
178
|
const apps = activePropPanelSchema || {};
|
144
179
|
propPanelSchema.properties = {
|
145
180
|
...propPanelSchema.properties,
|
146
|
-
...(Object.keys(apps).length === 0
|
147
|
-
? {}
|
148
|
-
: { '--': { type: 'void', widget: 'Divider', cellSpan: 2 } }),
|
181
|
+
...(Object.keys(apps).length === 0 ? {} : { '--': { type: 'void', widget: 'Divider' } }),
|
149
182
|
...apps,
|
150
183
|
};
|
151
184
|
}
|
@@ -6,7 +6,7 @@ import { PluginsRegistry, OptionsContext, I18nContext } from '../contexts';
|
|
6
6
|
|
7
7
|
type RendererProps = Omit<
|
8
8
|
UIRenderProps<Schema>,
|
9
|
-
'value' | 'schema' | 'onChange' | 'rootElement' | 'options' | 'theme' | 'i18n'
|
9
|
+
'value' | 'schema' | 'onChange' | 'rootElement' | 'options' | 'theme' | 'i18n' | '_cache'
|
10
10
|
> & {
|
11
11
|
schema: SchemaForUI;
|
12
12
|
onChange: (value: string) => void;
|
@@ -51,6 +51,7 @@ const Renderer = (props: RendererProps) => {
|
|
51
51
|
const { schema, mode, onChange, stopEditing, tabIndex, placeholder, scale } = props;
|
52
52
|
|
53
53
|
const ref = useRef<HTMLDivElement>(null);
|
54
|
+
const _cache = useRef<Map<any, any>>(new Map());
|
54
55
|
|
55
56
|
useEffect(() => {
|
56
57
|
if (ref.current && schema.type) {
|
@@ -69,6 +70,7 @@ Check this document: https://pdfme.com/docs/custom-schemas`);
|
|
69
70
|
const editable = mode === 'form' || mode === 'designer';
|
70
71
|
|
71
72
|
render({
|
73
|
+
key: schema.key,
|
72
74
|
value: schema.data,
|
73
75
|
schema,
|
74
76
|
rootElement: ref.current,
|
@@ -80,6 +82,7 @@ Check this document: https://pdfme.com/docs/custom-schemas`);
|
|
80
82
|
options,
|
81
83
|
theme,
|
82
84
|
i18n,
|
85
|
+
_cache: _cache.current,
|
83
86
|
});
|
84
87
|
}
|
85
88
|
return () => {
|
package/src/i18n.ts
CHANGED
@@ -8,6 +8,7 @@ const dictEn: { [key in keyof Dict]: string } = {
|
|
8
8
|
align: 'Align',
|
9
9
|
width: 'Width',
|
10
10
|
height: 'Height',
|
11
|
+
opacity: 'Opacity',
|
11
12
|
rotate: 'Rotate',
|
12
13
|
edit: 'Edit',
|
13
14
|
plsInputName: 'Please input name',
|
@@ -53,6 +54,7 @@ const dictJa: { [key in keyof Dict]: string } = {
|
|
53
54
|
align: '整列',
|
54
55
|
width: '幅',
|
55
56
|
height: '高さ',
|
57
|
+
opacity: '不透明度',
|
56
58
|
rotate: '回転',
|
57
59
|
edit: '編集する',
|
58
60
|
plsInputName: '項目名を入力してください',
|
@@ -97,6 +99,7 @@ const dictAr: { [key in keyof Dict]: string } = {
|
|
97
99
|
align: 'محاذاة',
|
98
100
|
width: 'العرض',
|
99
101
|
height: 'الارتفاع',
|
102
|
+
opacity: 'الشفافية',
|
100
103
|
rotate: 'تدوير',
|
101
104
|
edit: 'تعديل',
|
102
105
|
plsInputName: 'الرجاء إدخال الاسم',
|
@@ -141,6 +144,7 @@ const dictTh: { [key in keyof Dict]: string } = {
|
|
141
144
|
align: 'จัดเรียง',
|
142
145
|
width: 'ความกว้าง',
|
143
146
|
height: 'ความสูง',
|
147
|
+
opacity: 'ความทึบ',
|
144
148
|
rotate: 'หมุน',
|
145
149
|
edit: 'แก้ไข',
|
146
150
|
plsInputName: 'กรุณาใส่ชื่อ',
|
@@ -185,6 +189,7 @@ const dictIt: { [key in keyof Dict]: string } = {
|
|
185
189
|
align: 'Allinea',
|
186
190
|
width: 'Larghezza',
|
187
191
|
height: 'Altezza',
|
192
|
+
opacity: 'Opacità',
|
188
193
|
rotate: 'Ruota',
|
189
194
|
edit: 'Modifica',
|
190
195
|
plsInputName: 'Inserisci il nome per favore',
|
@@ -230,6 +235,7 @@ const dictPl: { [key in keyof Dict]: string } = {
|
|
230
235
|
align: 'Wyrównanie',
|
231
236
|
width: 'Szerokość',
|
232
237
|
height: 'Wysokość',
|
238
|
+
opacity: 'przezroczystość',
|
233
239
|
rotate: 'Obrót',
|
234
240
|
edit: 'Edytuj',
|
235
241
|
plsInputName: 'Wymagane wprowadzenie klucza pola',
|
package/vite.config.ts
CHANGED
@@ -2,15 +2,17 @@ import { defineConfig } from 'vite';
|
|
2
2
|
import react from '@vitejs/plugin-react';
|
3
3
|
import tsconfigPaths from 'vite-tsconfig-paths';
|
4
4
|
import topLevelAwait from 'vite-plugin-top-level-await';
|
5
|
+
import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js'
|
5
6
|
|
6
7
|
export default defineConfig({
|
7
8
|
plugins: [
|
8
9
|
react(),
|
9
|
-
tsconfigPaths(),
|
10
|
+
tsconfigPaths({root: '.'}),
|
10
11
|
topLevelAwait({
|
11
12
|
promiseExportName: '__tla',
|
12
13
|
promiseImportName: (i) => `__tla_${i}`,
|
13
14
|
}),
|
15
|
+
cssInjectedByJsPlugin(),
|
14
16
|
],
|
15
17
|
build: {
|
16
18
|
lib: {
|
package/dist/style.css
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
.fr-inline-field{display:inline-block;margin-right:16px}.fr-inline-container{display:inline-flex;flex-wrap:wrap}.ant-form-item-optional-hide{padding:0 8px}.ant-form-item-optional-hide .ant-form-item-label>label{font-size:16px;font-weight:#000000d9;font-weight:600}.fr-desc{word-break:break-all;color:#00000073;line-height:22px;margin-left:5px;font-weight:400;font-size:14px}.fr-hide-label>.ant-form-item-row>.ant-form-item-label{visibility:hidden}.fr-field .ant-form-item-row{flex-wrap:nowrap}.fr-field .ant-form-item-control-input-content{display:flex}.fr-field-visibility{width:0;height:0;visibility:hidden;position:absolute;opacity:0}.fr-form .ant-form-item-control{width:0}.fr-form .fr-inline-field .ant-form-item-control{width:auto}.rc-color-picker-panel-inner{position:relative;border-radius:4px;box-shadow:0 1px 5px #ccc;border:1px solid #ccc;padding-bottom:8px}.rc-color-picker-panel-wrap{margin:5px 0 0;height:30px;width:100%;position:relative}.rc-color-picker-panel-wrap-preview{position:absolute;right:8px}.rc-color-picker-panel-wrap-ribbon{position:absolute;left:8px;top:0;right:43px;height:30px}.rc-color-picker-panel-wrap-alpha{position:absolute;left:8px;right:43px;bottom:0;height:12.5px}.rc-color-picker-panel-wrap-has-alpha .rc-color-picker-panel-wrap-ribbon{height:12.5px}.rc-color-picker-trigger{border:1px solid #999;display:inline-block;padding:2px;border-radius:2px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:20px;height:20px;cursor:pointer;box-shadow:0 0 0 2px #fff inset}.rc-color-picker-trigger-open{box-shadow:0 0 3px #999}.rc-color-picker-panel{width:218px;background-color:#fff;box-sizing:border-box;outline:none;z-index:9;border-radius:4px;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.rc-color-picker-panel *{box-sizing:border-box}.rc-color-picker-panel-open{display:block}.rc-color-picker-panel-close{display:none}.rc-color-picker-panel-preview{height:30px;width:30px;overflow:hidden;border-radius:2px;background-image:url(data:image/png;base64,R0lGODdhCgAKAPAAAOXl5f///ywAAAAACgAKAEACEIQdqXt9GxyETrI279OIgwIAOw==)}.rc-color-picker-panel-preview span{box-shadow:0 0 2px gray inset}.rc-color-picker-panel-preview span,.rc-color-picker-panel-preview input[type=color]{position:absolute;display:block;height:100%;width:30px;border-radius:2px}.rc-color-picker-panel-preview input[type=color]{opacity:0}.rc-color-picker-panel-board{position:relative;font-size:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin:8px 8px 0}.rc-color-picker-panel-board span{position:absolute;border-radius:10px;border:1px solid #fff;width:9px;height:9px;margin:-4px 0 0 -4px;left:-999px;top:-999px;box-shadow:0 0 1px #787878b3;z-index:2}.rc-color-picker-panel-board-hsv{width:200px;height:150px;position:relative;z-index:1;border-radius:2px}.rc-color-picker-panel-board-value{border-radius:2px;position:absolute;width:100%;height:100%;left:0;top:0;z-index:2;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB2aWV3Qm94PSIwIDAgMSAxIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIj48bGluZWFyR3JhZGllbnQgaWQ9Imxlc3NoYXQtZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9InJnYigwLDAsMCkiIHN0b3Atb3BhY2l0eT0iMCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIxIi8+PC9saW5lYXJHcmFkaWVudD48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2xlc3NoYXQtZ2VuZXJhdGVkKSIgLz48L3N2Zz4=);background-image:-webkit-linear-gradient(top,transparent 0%,#000000 100%);background-image:-moz-linear-gradient(top,transparent 0%,#000000 100%);background-image:-o-linear-gradient(top,transparent 0%,#000000 100%);background-image:linear-gradient(to bottom,transparent 0%,#000000 100%)}.rc-color-picker-panel-board-saturation{border-radius:2px;position:absolute;width:100%;height:100%;left:0;top:0;z-index:1;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB2aWV3Qm94PSIwIDAgMSAxIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIj48bGluZWFyR3JhZGllbnQgaWQ9Imxlc3NoYXQtZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNmZmZmZmYiIHN0b3Atb3BhY2l0eT0iMSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0icmdiKDAsMCwwKSIgc3RvcC1vcGFjaXR5PSIwIi8+PC9saW5lYXJHcmFkaWVudD48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2xlc3NoYXQtZ2VuZXJhdGVkKSIgLz48L3N2Zz4=);background-image:-webkit-linear-gradient(left,#ffffff 0%,transparent 100%);background-image:-moz-linear-gradient(left,#ffffff 0%,transparent 100%);background-image:-o-linear-gradient(left,#ffffff 0%,transparent 100%);background-image:linear-gradient(to right,#ffffff 0%,transparent 100%)}.rc-color-picker-panel-board-handler{box-shadow:0 0 2px gray inset;border-radius:2px;cursor:crosshair;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:3}.rc-color-picker-panel-ribbon{position:relative;height:100%;border-radius:2px;box-shadow:0 0 2px gray inset;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB2aWV3Qm94PSIwIDAgMSAxIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIj48bGluZWFyR3JhZGllbnQgaWQ9Imxlc3NoYXQtZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNmZjAwMDAiIHN0b3Atb3BhY2l0eT0iMSIvPjxzdG9wIG9mZnNldD0iMTAlIiBzdG9wLWNvbG9yPSIjZmY5OTAwIiBzdG9wLW9wYWNpdHk9IjEiLz48c3RvcCBvZmZzZXQ9IjIwJSIgc3RvcC1jb2xvcj0iI2NkZmYwMCIgc3RvcC1vcGFjaXR5PSIxIi8+PHN0b3Agb2Zmc2V0PSIzMCUiIHN0b3AtY29sb3I9IiMzNWZmMDAiIHN0b3Atb3BhY2l0eT0iMSIvPjxzdG9wIG9mZnNldD0iNDAlIiBzdG9wLWNvbG9yPSIjMDBmZjY2IiBzdG9wLW9wYWNpdHk9IjEiLz48c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iIzAwZmZmZCIgc3RvcC1vcGFjaXR5PSIxIi8+PHN0b3Agb2Zmc2V0PSI2MCUiIHN0b3AtY29sb3I9IiMwMDY2ZmYiIHN0b3Atb3BhY2l0eT0iMSIvPjxzdG9wIG9mZnNldD0iNzAlIiBzdG9wLWNvbG9yPSIjMzIwMGZmIiBzdG9wLW9wYWNpdHk9IjEiLz48c3RvcCBvZmZzZXQ9IjgwJSIgc3RvcC1jb2xvcj0iI2NkMDBmZiIgc3RvcC1vcGFjaXR5PSIxIi8+PHN0b3Agb2Zmc2V0PSI5MCUiIHN0b3AtY29sb3I9IiNmZjAwOTkiIHN0b3Atb3BhY2l0eT0iMSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2ZmMDAwMCIgc3RvcC1vcGFjaXR5PSIxIi8+PC9saW5lYXJHcmFkaWVudD48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2xlc3NoYXQtZ2VuZXJhdGVkKSIgLz48L3N2Zz4=);background-image:-webkit-linear-gradient(left,#ff0000 0%,#ff9900 10%,#cdff00 20%,#35ff00 30%,#00ff66 40%,#00fffd 50%,#0066ff 60%,#3200ff 70%,#cd00ff 80%,#ff0099 90%,#ff0000 100%);background-image:-moz-linear-gradient(left,#ff0000 0%,#ff9900 10%,#cdff00 20%,#35ff00 30%,#00ff66 40%,#00fffd 50%,#0066ff 60%,#3200ff 70%,#cd00ff 80%,#ff0099 90%,#ff0000 100%);background-image:-o-linear-gradient(left,#ff0000 0%,#ff9900 10%,#cdff00 20%,#35ff00 30%,#00ff66 40%,#00fffd 50%,#0066ff 60%,#3200ff 70%,#cd00ff 80%,#ff0099 90%,#ff0000 100%);background-image:linear-gradient(to right,#ff0000 0%,#ff9900 10%,#cdff00 20%,#35ff00 30%,#00ff66 40%,#00fffd 50%,#0066ff 60%,#3200ff 70%,#cd00ff 80%,#ff0099 90%,#ff0000 100%)}.rc-color-picker-panel-ribbon span{position:absolute;top:0;height:100%;width:4px;border:1px solid #000000;padding:1px 0;margin-left:-2px;background-color:#fff;border-radius:3px}.rc-color-picker-panel-ribbon-handler{position:absolute;width:104%;height:100%;left:-2%;cursor:pointer}.rc-color-picker-panel-alpha{position:relative;height:100%;width:100%;border-radius:2px;background-image:url(data:image/png;base64,R0lGODdhCgAKAPAAAOXl5f///ywAAAAACgAKAEACEIQdqXt9GxyETrI279OIgwIAOw==);background-repeat:repeat;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.rc-color-picker-panel-alpha-bg{position:absolute;width:100%;height:100%;border-radius:2px;box-shadow:0 0 2px gray inset}.rc-color-picker-panel-alpha span{position:absolute;top:0;height:100%;width:4px;border:1px solid #000000;padding:1px 0;margin-left:-2px;background-color:#fff;border-radius:3px}.rc-color-picker-panel-alpha-handler{position:absolute;width:104%;height:100%;left:-2%;cursor:pointer}.rc-color-picker-panel-params{font-size:12px}.rc-color-picker-panel-params-input{overflow:hidden;padding:2px 8px}.rc-color-picker-panel-params input{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;text-align:center;padding:1px;margin:0;float:left;border-radius:2px;border:1px solid #CACACA;font-family:Helvetica Neue,Helvetica,sans-serif}.rc-color-picker-panel-params-hex{width:52px}.rc-color-picker-panel-params input[type=number]{margin-left:5px;width:44px}.rc-color-picker-panel-params input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}.rc-color-picker-panel-params-lable{padding:2px 8px;height:22px;line-height:18px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.rc-color-picker-panel-params-lable label{float:left;text-align:center}.rc-color-picker-panel-params-lable-hex{width:52px}.rc-color-picker-panel-params-lable-number,.rc-color-picker-panel-params-lable-alpha{margin-left:5px;width:44px;text-transform:uppercase}.rc-color-picker-panel-params-lable-number:hover{border-radius:2px;background-color:#eee;box-shadow:0 0 0 1px #ccc inset;cursor:pointer}.rc-color-picker-panel-params-has-alpha input[type=number],.rc-color-picker-panel-params-has-alpha .rc-color-picker-panel-params-lable-number,.rc-color-picker-panel-params-has-alpha .rc-color-picker-panel-params-lable-alpha{width:32px}.rc-color-picker{position:absolute;left:-9999px;top:-9999px;z-index:1000}.rc-color-picker-wrap{display:inline-block}.rc-color-picker-slide-up-enter,.rc-color-picker-slide-up-appear{animation-duration:.3s;animation-fill-mode:both;transform-origin:0 0;display:block!important;opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-play-state:paused}.rc-color-picker-slide-up-leave{animation-duration:.3s;animation-fill-mode:both;transform-origin:0 0;display:block!important;opacity:1;animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-play-state:paused}.rc-color-picker-slide-up-enter.rc-color-picker-slide-up-enter-active.rc-color-picker-placement-bottomLeft,.rc-color-picker-slide-up-enter.rc-color-picker-slide-up-enter-active.rc-color-picker-placement-bottomRight,.rc-color-picker-slide-up-appear.rc-color-picker-slide-up-appear-active.rc-color-picker-placement-bottomLeft,.rc-color-picker-slide-up-appear.rc-color-picker-slide-up-appear-active.rc-color-picker-placement-bottomRight{animation-name:rcColorPickerSlideUpIn;animation-play-state:running}.rc-color-picker-slide-up-enter.rc-color-picker-slide-up-enter-active.rc-color-picker-placement-topLeft,.rc-color-picker-slide-up-enter.rc-color-picker-slide-up-enter-active.rc-color-picker-placement-topRight,.rc-color-picker-slide-up-appear.rc-color-picker-slide-up-appear-active.rc-color-picker-placement-topLeft,.rc-color-picker-slide-up-appear.rc-color-picker-slide-up-appear-active.rc-color-picker-placement-topRight{animation-name:rcColorPickerSlideDownIn;animation-play-state:running}.rc-color-picker-slide-up-leave.rc-color-picker-slide-up-leave-active.rc-color-picker-placement-bottomLeft,.rc-color-picker-slide-up-leave.rc-color-picker-slide-up-leave-active.rc-color-picker-placement-bottomRight{animation-name:rcColorPickerSlideUpOut;animation-play-state:running}.rc-color-picker-slide-up-leave.rc-color-picker-slide-up-leave-active.rc-color-picker-placement-topLeft,.rc-color-picker-slide-up-leave.rc-color-picker-slide-up-leave-active.rc-color-picker-placement-topRight{animation-name:rcColorPickerSlideDownOut;animation-play-state:running}@keyframes rcColorPickerSlideUpIn{0%{opacity:0;transform-origin:0% 0%;transform:scaleY(0)}to{opacity:1;transform-origin:0% 0%;transform:scaleY(1)}}@keyframes rcColorPickerSlideUpOut{0%{opacity:1;transform-origin:0% 0%;transform:scaleY(1)}to{opacity:0;transform-origin:0% 0%;transform:scaleY(0)}}@keyframes rcColorPickerSlideDownIn{0%{opacity:0;transform-origin:100% 100%;transform:scaleY(0)}to{opacity:1;transform-origin:100% 100%;transform:scaleY(1)}}@keyframes rcColorPickerSlideDownOut{0%{opacity:1;transform-origin:100% 100%;transform:scaleY(1)}to{opacity:0;transform-origin:100% 100%;transform:scaleY(0)}}.fr-color-picker{width:100%;display:flex;flex-direction:row;align-items:center;color:#666}.fr-color-picker .rc-color-picker-trigger{margin-right:12px;height:32px;width:60px;border:1px solid #e5e5e5}.fr-color-picker>p{margin:0;font-size:14px;line-height:28px}.fr-color-picker .rc-color-picker-wrap{display:flex}.fr-preview-image{width:160px}.fr-preview{position:relative;cursor:pointer}.fr-slider{display:flex;width:100%;align-items:center}.fr-upload-mod,.fr-upload-file{display:flex}.fr-upload-mod{align-items:center}.fr-upload-mod .fr-upload-preview{margin:0 12px}.fr-upload-file .ant-upload-list-item{margin:5px 0 0 8px}.fr-upload-file .ant-upload-list-item-name{margin-right:6px}.fr-upload-file .ant-upload-list-item-info{cursor:pointer}.fr-upload-file .next-upload-list-text .next-upload-list-item-done,.fr-upload-file .next-upload-list-text .next-upload-list-item .next-icon{height:28px;line-height:28px;margin-left:12px}.fr-upload-file .next-upload-list-item-name-wrap{margin-top:-4px}.fr-panel-bordered{border-radius:4px;border:1px solid #f4f4f4;padding:52px 24px 0;margin-bottom:24px}.fr-obj-card{border-radius:4px;border-color:#f4f4f4;margin-bottom:24px!important}.fr-obj-card .ant-card-head{border:none}.fr-obj-card .ant-card-body{padding:12px 24px!important}.fr-obj-card .fr-header-desc{word-break:break-all;color:#00000073;margin-left:6px;font-weight:400}.fr-obj-collapse{border-radius:4px;border:1px solid #f1f1f1;margin-bottom:24px}.fr-obj-collapse .collapse-title{height:24px;color:#000000e0;font-weight:600;font-size:16px;line-height:24px}.fr-obj-collapse .fr-header-desc{word-break:break-all;color:#00000073;margin-left:6px;font-weight:400}.fr-obj-collapse .header-item-label{height:14px;margin-left:30px;color:#000;font-weight:600;font-size:14px;line-height:14px}.fr-obj-collapse .header-item-label span{color:#141414}.fr-obj-collapse .expand-icon-desc{margin-left:4px}.fr-obj-collapse .ant-collapse-header{display:flex;align-items:center!important;padding:16px!important;background-color:#fff;border-radius:4px!important}.fr-obj-collapse .ant-collapse-header-text{display:flex;align-items:center}.fr-obj-collapse .tag-no-data{color:#000000a6}.fr-obj-collapse .ant-collapse-content-box{padding:12px 24px!important}.fr-obj-collapse .ant-collapse-content-box .ant-skeleton-title,.fr-obj-collapse .ant-collapse-content-box .ant-skeleton-paragraph>li{animation:none!important}.fr-obj-subinline-label-hidden>.ant-form-item-row>.ant-form-item-label{visibility:hidden}.fr-obj-subinline-background>.ant-form-item-row>.ant-form-item-control{background-color:#f6f6f6;padding:24px 24px 0;border-radius:4px}.fr-obj-subinline .ant-form-item-row{flex-wrap:nowrap}.fr-obj-line-title .fr-obj-header{line-height:36px;border-bottom:1px solid #e9e9e9}.fr-obj-line-title .fr-header-title{color:#000000e0;font-size:16px;font-weight:600}.fr-obj-line-title .fr-header-desc{word-break:break-all;color:#00000073;margin-left:6px;font-weight:400}.fr-obj-line-title .fr-obj-content{padding:24px 0 0}.fr-list-simple{display:inline-block}.fr-list-simple .fr-inline-field{min-width:220px;margin-bottom:24px!important}.fr-list-simple .fr-list-item{display:flex;align-items:flex-start;position:relative}.fr-list-simple .fr-list-item-operate{height:32px;gap:0!important}.fr-list-simple-background{padding:24px 24px 0;background-color:#f6f6f6;border-radius:4px}.fr-list-simple-background .add-btn{margin-bottom:24px}.fr-list-simple-column .fr-list-item{align-items:center}.fr-list-card{margin-bottom:24px}.fr-list-card .fr-list-item{display:flex;align-items:flex-start;position:relative}.fr-list-card .fr-list-item-operate{padding:0 20px;height:32px;gap:0!important}.fr-list-card .fr-list-item-operate-fixed{position:absolute;right:8px}.fr-list-card .fr-list-add-btn{padding:0 8px}.fr-table-list{margin-bottom:24px}.fr-table-list .ant-form-item{margin-bottom:0}.fr-table-list .ant-form-item-label,.fr-table-list .ant-form-item-explain-error{display:none}.fr-table-list .fr-list-item-operate{gap:0!important}.fr-table-list-no-popover .ant-table-tbody .ant-table-cell{padding:24px 8px 0!important}.fr-table-list-no-popover .ant-form-item{margin-bottom:24px}.fr-table-list-no-popover .ant-form-item-explain-error{display:block;font-size:10px}.fr-list-drawer{margin-bottom:24px}.fr-list-drawer-table-header{width:100%;display:flex;justify-content:right;align-items:center;margin-bottom:10px}.fr-list-drawer .ant-form-item{margin-bottom:0}.fr-list-drawer .fr-list-item-operate{gap:0!important}.fr-virtual-list{margin-bottom:12px}.fr-virtual-list .ant-form-item{margin-bottom:0}.fr-virtual-list .ant-form-item-label,.fr-virtual-list .ant-form-item-explain-error{display:none}.fr-virtual-list .fr-list-item-operate{gap:0!important}.fr-popover-error .ant-popover-inner-content{color:#ff4d4f!important}.fr-virtual-list-no-popover .ant-table-tbody .ant-table-cell{padding:24px 8px 0!important}.fr-virtual-list-no-popover .ant-form-item{margin-bottom:24px}.fr-virtual-list-no-popover .ant-form-item-explain-error{display:block;font-size:10px}.fr-void-title{height:24px;color:#000000e0;font-weight:600;font-size:16px;line-height:24px}.fr-search{width:100%;background:#fff;padding:24px 24px 0 16px;margin-bottom:16px;box-sizing:border-box;position:relative}.fr-search .search-action-col{flex:1;display:flex;justify-content:flex-end;align-items:baseline;height:56px}.fr-search .search-action-fixed{position:absolute;right:0;bottom:0;background-color:#fff;padding-right:24px!important}.fr-search .search-action-column{height:auto}.fr-search .fr-form>.ant-row{align-items:center}.fr-column-search{padding-left:24px}
|