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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "jvs-ppt-ui",
3
3
  "private": false,
4
- "version": "0.0.20",
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.26",
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()