jvs-ppt-ui 0.0.20 → 0.0.21
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/lib/jvs-ppt-ui.es.js +9099 -9069
- package/dist/lib/jvs-ppt-ui.umd.js +61 -61
- package/dist/lib/style.css +1 -1
- package/package.json +2 -2
- package/src/components/Header.vue +20 -4
- package/src/components/canvas/elements/CanvasShapeElement.vue +3 -3
- package/src/utils/canvas/elementStyles.ts +1 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jvs-ppt-ui",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.21",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/lib/jvs-ppt-ui.umd.js",
|
|
7
7
|
"module": "./dist/lib/jvs-ppt-ui.es.js",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"jszip": "^3.10.1",
|
|
42
42
|
"jvs-picker-color-v3": "^0.0.11",
|
|
43
43
|
"jvs-pptxgenjs": "^0.0.8",
|
|
44
|
-
"jvs-pptxtojson": "^0.0.
|
|
44
|
+
"jvs-pptxtojson": "^0.0.27",
|
|
45
45
|
"svg-pathdata": "^7.2.0",
|
|
46
46
|
"vue": "^3.5.34",
|
|
47
47
|
"vuedraggable": "^4.1.0",
|
|
@@ -3923,7 +3923,12 @@ const parsePPTXJSONData = (json: any, zipMeta?: any) => {
|
|
|
3923
3923
|
const metrics = getParagraphMetrics(el.content, fontScale, defaultFontSize)
|
|
3924
3924
|
const shapeEl: any = {
|
|
3925
3925
|
type: 'shape',
|
|
3926
|
-
id: generateAndRegisterId(el.id),
|
|
3926
|
+
id: generateAndRegisterId(el.id),
|
|
3927
|
+
name: el.name,
|
|
3928
|
+
phType: el.phType,
|
|
3929
|
+
isPlaceholder: el.isPlaceholder,
|
|
3930
|
+
placeholderType: el.placeholderType,
|
|
3931
|
+
placeholder: el.placeholder,
|
|
3927
3932
|
order: el.order !== undefined ? el.order : undefined,
|
|
3928
3933
|
width: el.width,
|
|
3929
3934
|
height: el.height,
|
|
@@ -4058,7 +4063,12 @@ const parsePPTXJSONData = (json: any, zipMeta?: any) => {
|
|
|
4058
4063
|
const metrics = getParagraphMetrics(el.content, ratio, defaultFontSize)
|
|
4059
4064
|
const textEl: any = {
|
|
4060
4065
|
type: 'text',
|
|
4061
|
-
id: generateAndRegisterId(el.id),
|
|
4066
|
+
id: generateAndRegisterId(el.id),
|
|
4067
|
+
name: el.name,
|
|
4068
|
+
phType: el.phType,
|
|
4069
|
+
isPlaceholder: el.isPlaceholder,
|
|
4070
|
+
placeholderType: el.placeholderType,
|
|
4071
|
+
placeholder: el.placeholder,
|
|
4062
4072
|
order: el.order !== undefined ? el.order : undefined,
|
|
4063
4073
|
width: el.width,
|
|
4064
4074
|
height: el.height,
|
|
@@ -4425,7 +4435,12 @@ const parsePPTXJSONData = (json: any, zipMeta?: any) => {
|
|
|
4425
4435
|
|
|
4426
4436
|
const element: any = {
|
|
4427
4437
|
type: 'shape',
|
|
4428
|
-
id: generateAndRegisterId(el.id),
|
|
4438
|
+
id: generateAndRegisterId(el.id),
|
|
4439
|
+
name: el.name,
|
|
4440
|
+
phType: el.phType,
|
|
4441
|
+
isPlaceholder: el.isPlaceholder,
|
|
4442
|
+
placeholderType: el.placeholderType,
|
|
4443
|
+
placeholder: el.placeholder,
|
|
4429
4444
|
order: el.order !== undefined ? el.order : undefined,
|
|
4430
4445
|
width: el.width,
|
|
4431
4446
|
height: el.height,
|
|
@@ -4471,7 +4486,8 @@ const parsePPTXJSONData = (json: any, zipMeta?: any) => {
|
|
|
4471
4486
|
}
|
|
4472
4487
|
element.style.borderColor = el.borderColor || (el.outline?.color || 'transparent')
|
|
4473
4488
|
element.style.borderWidth = el.borderWidth !== undefined ? `${+(el.borderWidth * ratio).toFixed(2)}px` : (el.outline?.width !== undefined ? `${el.outline.width}px` : '0px')
|
|
4474
|
-
element.style.borderStyle = el.borderType || (el.outline?.style || 'solid')
|
|
4489
|
+
element.style.borderStyle = el.borderType || (el.outline?.style || 'solid')
|
|
4490
|
+
if (el.placeholderType === 'pic' && el.borderWidth > 0) element.style.enableBorder = true
|
|
4475
4491
|
if (lineCap) {
|
|
4476
4492
|
element.style.borderLineCap = lineCap
|
|
4477
4493
|
element.style.strokeLinecap = lineCap === 'round' ? 'round' : (lineCap === 'square' ? 'square' : 'butt')
|
|
@@ -331,7 +331,7 @@ function getRawText(el: any): string {
|
|
|
331
331
|
|
|
332
332
|
function getImagePlaceholderFill(el: any): string {
|
|
333
333
|
const fill = getElementFill(el)
|
|
334
|
-
if (!fill || fill === '#f1f5f9' || fill === '#f8fafc') {
|
|
334
|
+
if (!fill || fill === 'none' || fill === 'transparent' || fill === '#f1f5f9' || fill === '#f8fafc') {
|
|
335
335
|
return '#d9dde3'
|
|
336
336
|
}
|
|
337
337
|
return fill
|
|
@@ -668,7 +668,7 @@ function formatShapeHtml(el: any): string {
|
|
|
668
668
|
:rx="getRectRadiusInVb(element).rx"
|
|
669
669
|
:ry="getRectRadiusInVb(element).ry"
|
|
670
670
|
vector-effect="non-scaling-stroke"
|
|
671
|
-
:fill="hasElementFill(element) ? (getElementPattern(element) ? `url(#shape-pattern-${svgIdKey})` : (getElementGradientConfig(element) ? `url(#shape-gradient-${svgIdKey})` : (getElementFill(element) !== undefined ? getElementFill(element) : '#3b82f6'))) : 'none'"
|
|
671
|
+
:fill="hasElementFill(element) ? (getElementPattern(element) ? `url(#shape-pattern-${svgIdKey})` : (getElementGradientConfig(element) ? `url(#shape-gradient-${svgIdKey})` : (getElementFill(element) !== undefined ? getElementFill(element) : '#3b82f6'))) : ((isImagePlaceholder && isImagePlaceholder(element)) ? getImagePlaceholderFill(element) : 'none')"
|
|
672
672
|
:stroke="(isImagePlaceholder && isImagePlaceholder(element) && element.style?.enableBorder !== true) ? 'none' : (element.style?.enableBorder === false ? 'none' : getEffectiveBorderColor(element, 'none'))"
|
|
673
673
|
:stroke-width="(isImagePlaceholder && isImagePlaceholder(element) && element.style?.enableBorder !== true) ? 0 : (element.style?.enableBorder === false ? 0 : getElementBorderWidth(element))"
|
|
674
674
|
:stroke-linecap="element.style?.strokeLinecap || element.borderLineCap || element.lineCap || (element.shapType === 'arc' ? 'round' : (isOpenLineShape(element) ? 'butt' : undefined))"
|
|
@@ -678,7 +678,7 @@ function formatShapeHtml(el: any): string {
|
|
|
678
678
|
v-else
|
|
679
679
|
vector-effect="non-scaling-stroke"
|
|
680
680
|
:d="element.path || element.content"
|
|
681
|
-
:fill="hasElementFill(element) ? (getElementPattern(element) ? `url(#shape-pattern-${svgIdKey})` : (getElementGradientConfig(element) ? `url(#shape-gradient-${svgIdKey})` : (getElementFill(element) !== undefined ? getElementFill(element) : '#3b82f6'))) : 'none'"
|
|
681
|
+
:fill="hasElementFill(element) ? (getElementPattern(element) ? `url(#shape-pattern-${svgIdKey})` : (getElementGradientConfig(element) ? `url(#shape-gradient-${svgIdKey})` : (getElementFill(element) !== undefined ? getElementFill(element) : '#3b82f6'))) : ((isImagePlaceholder && isImagePlaceholder(element)) ? getImagePlaceholderFill(element) : 'none')"
|
|
682
682
|
:stroke="(isImagePlaceholder && isImagePlaceholder(element) && element.style?.enableBorder !== true) ? 'none' : (element.style?.enableBorder === false ? 'none' : getEffectiveBorderColor(element, 'none'))"
|
|
683
683
|
:stroke-width="(isImagePlaceholder && isImagePlaceholder(element) && element.style?.enableBorder !== true) ? 0 : (element.style?.enableBorder === false ? 0 : getElementBorderWidth(element))"
|
|
684
684
|
:stroke-linecap="element.style?.strokeLinecap || element.borderLineCap || element.lineCap || (element.shapType === 'arc' ? 'round' : (isOpenLineShape(element) ? 'butt' : undefined))"
|
|
@@ -804,7 +804,7 @@ export function isImagePlaceholder(el: any): boolean {
|
|
|
804
804
|
|
|
805
805
|
if (el.id && typeof el.id === 'string' && (el.id.includes('ph-image') || el.id.includes('image-ph') || el.id.includes('placeholder-image'))) return true
|
|
806
806
|
if (el.name && typeof el.name === 'string' && (el.name.includes('图片占位符') || el.name.includes('图片框'))) return true
|
|
807
|
-
if (el.role === 'image' || el.placeholderType === 'image' || el.placeholderType === 'pic' || el.placeholder?.type === 'pic' || el.placeholder?.type === 'image') return true
|
|
807
|
+
if (el.phType === 'pic' || el.phType === 'picture' || el.phType === 'clipArt' || el.role === 'image' || el.placeholderType === 'image' || el.placeholderType === 'pic' || el.placeholder?.type === 'pic' || el.placeholder?.type === 'image') return true
|
|
808
808
|
|
|
809
809
|
const rawText = typeof el.text === 'string' ? el.text : (typeof el.content === 'string' ? el.content : '')
|
|
810
810
|
const textHtml = rawText.toLowerCase()
|