@nativescript-community/text 1.6.18 → 1.6.20
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/index.android.js +13 -4
- package/index.android.js.map +1 -1
- package/index.ios.js +6 -2
- package/index.ios.js.map +1 -1
- package/package.json +2 -2
- package/platforms/android/java/com/nativescript/text/Font.java +17 -9
- package/platforms/android/java/com/nativescript/text/HeightSpan.java +54 -26
- package/platforms/ios/src/NSTextUtils.swift +18 -1
package/index.android.js
CHANGED
|
@@ -28,7 +28,8 @@ function formattedStringToNativeString(formattedString, parent, parentView = for
|
|
|
28
28
|
let FONT_SIZE_FACTOR;
|
|
29
29
|
function spanToNativeString(span, parent, parentView, maxFontSize, index = -1, density) {
|
|
30
30
|
let text = span.text;
|
|
31
|
-
|
|
31
|
+
const html = span.html;
|
|
32
|
+
if ((!text && !html) || (span.visibility && span.visibility !== 'visible')) {
|
|
32
33
|
return null;
|
|
33
34
|
}
|
|
34
35
|
const textTransform = span.textTransform || parentView?.textTransform;
|
|
@@ -51,6 +52,7 @@ function spanToNativeString(span, parent, parentView, maxFontSize, index = -1, d
|
|
|
51
52
|
if (text && textTransform != null && textTransform !== 'none') {
|
|
52
53
|
text = getTransformedText(text, textTransform);
|
|
53
54
|
}
|
|
55
|
+
let lineHeightFactor = density;
|
|
54
56
|
if (!density) {
|
|
55
57
|
// if (!FONT_SIZE_FACTOR) {
|
|
56
58
|
// FONT_SIZE_FACTOR = com.nativescript.text.Font.getFontSizeFactor(Utils.android.getApplicationContext()) / Screen.mainScreen.scale;
|
|
@@ -61,6 +63,9 @@ function spanToNativeString(span, parent, parentView, maxFontSize, index = -1, d
|
|
|
61
63
|
// console.log('text FONT_SIZE_FACTOR', FONT_SIZE_FACTOR, Screen.mainScreen.scale)
|
|
62
64
|
verticalTextAlignment = span.verticalAlignment || parent?.verticalAlignment;
|
|
63
65
|
}
|
|
66
|
+
if (density === 1) {
|
|
67
|
+
lineHeightFactor = com.nativescript.text.Font.getFontSizeFactor(Utils.android.getApplicationContext());
|
|
68
|
+
}
|
|
64
69
|
let backgroundColor = span.backgroundColor || parent?.backgroundColor;
|
|
65
70
|
if (backgroundColor && !(backgroundColor instanceof Color)) {
|
|
66
71
|
backgroundColor = new Color(backgroundColor);
|
|
@@ -72,8 +77,11 @@ function spanToNativeString(span, parent, parentView, maxFontSize, index = -1, d
|
|
|
72
77
|
const lineHeight = span.lineHeight || parent?.lineHeight;
|
|
73
78
|
const fontSize = span.fontSize || parent?.fontSize;
|
|
74
79
|
const letterSpacing = span.letterSpacing || parent?.letterSpacing;
|
|
80
|
+
const linkColor = span.linkColor || parentView?.['linkColor'];
|
|
81
|
+
const aLinkColor = linkColor ? (linkColor instanceof Color ? linkColor : new Color(linkColor)).android : undefined;
|
|
75
82
|
return JSON.stringify({
|
|
76
83
|
text,
|
|
84
|
+
html,
|
|
77
85
|
fontFamily,
|
|
78
86
|
fontSize: fontSize ? fontSize * density : undefined,
|
|
79
87
|
fontSizeDip: true,
|
|
@@ -85,13 +93,14 @@ function spanToNativeString(span, parent, parentView, maxFontSize, index = -1, d
|
|
|
85
93
|
maxFontSize: maxFontSize ? maxFontSize * density : undefined,
|
|
86
94
|
relativeSize: span.relativeSize,
|
|
87
95
|
verticalTextAlignment,
|
|
88
|
-
|
|
96
|
+
linkColor: aLinkColor,
|
|
97
|
+
lineHeight: lineHeight !== undefined ? lineHeight * lineHeightFactor : undefined,
|
|
89
98
|
letterSpacing: letterSpacing !== undefined ? letterSpacing * density : undefined,
|
|
90
99
|
color: color ? color.android : undefined,
|
|
100
|
+
disableLinkDecoration: (span.linkDecoration && span.linkDecoration !== 'underline') || parentView?.['linkUnderline'] === false,
|
|
91
101
|
backgroundColor: backgroundColor ? backgroundColor.android : undefined
|
|
92
102
|
});
|
|
93
103
|
}
|
|
94
|
-
// eslint-disable-next-line no-redeclare
|
|
95
104
|
let ClickableSpan;
|
|
96
105
|
function initializeClickableSpan() {
|
|
97
106
|
if (ClickableSpan) {
|
|
@@ -182,7 +191,7 @@ density // used only on Android
|
|
|
182
191
|
const theData = data;
|
|
183
192
|
const linkColor = theData.linkColor || parentView?.['linkColor'];
|
|
184
193
|
const aLinkColor = linkColor ? (linkColor instanceof Color ? linkColor : new Color(linkColor)).android : null;
|
|
185
|
-
const result = com.nativescript.text.Font.stringBuilderFromHtmlString(context, fontPath, theData.familyName || parentView?.['fontFamily'] || null, theData.text, (theData.linkDecoration && theData.linkDecoration
|
|
194
|
+
const result = com.nativescript.text.Font.stringBuilderFromHtmlString(context, fontPath, theData.familyName || parentView?.['fontFamily'] || null, theData.text, (theData.linkDecoration && theData.linkDecoration !== 'underline') || parentView?.['linkUnderline'] === false, aLinkColor);
|
|
186
195
|
return result;
|
|
187
196
|
}
|
|
188
197
|
export function createSpannable(span, parentView, parent, maxFontSize) {
|
package/index.android.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../src/text/index.android.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAa,eAAe,EAAU,IAAI,EAAE,KAAK,EAAY,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACnI,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAkB,MAAM,oCAAoC,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAA0B,MAAM,iCAAiC,CAAC;AAE7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,cAAc,gBAAgB,CAAC;AAI/B,MAAM,UAAU,qBAAqB,CAAC,KAAK,EAAE,IAAI;IAC7C,eAAe;AACnB,CAAC;AACD,SAAS,6BAA6B,CAAC,eAAe,EAAE,MAAO,EAAE,UAAU,GAAG,eAAe,CAAC,MAAM,EAAE,OAAQ;IAC1G,IAAI,WAAW,GAAG,eAAe,EAAE,QAAQ,IAAI,UAAU,EAAE,QAAQ,IAAI,CAAC,CAAC;IACzE,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAChC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YACb,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,GAAG,eAAe,CAAC;IAC7B,CAAC;IACD,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QACvC,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACvH,IAAI,WAAW,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACpC,CAAC;AAED,IAAI,gBAAgB,CAAC;AACrB,SAAS,kBAAkB,CAAC,IAAI,EAAE,MAAW,EAAE,UAAe,EAAE,WAAY,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,OAAQ;IAC9F,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACrB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../src/text/index.android.ts"],"names":[],"mappings":"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"}
|
package/index.ios.js
CHANGED
|
@@ -12,7 +12,7 @@ export function usingIOSDTCoreText() {
|
|
|
12
12
|
}
|
|
13
13
|
DTCoreTextFontDescriptor.asyncPreloadFontLookupTable();
|
|
14
14
|
export function init() { }
|
|
15
|
-
function _createNativeAttributedString({
|
|
15
|
+
function _createNativeAttributedString({ autoFontSizeEnabled = false, color, familyName, fontSize, fontSizeRatio = 1, fontWeight, letterSpacing, lineBreak, lineHeight, linkColor, linkDecoration, text, textAlignment, useCustomLinkTag }) {
|
|
16
16
|
let trueFontFamily = familyName
|
|
17
17
|
? familyName
|
|
18
18
|
.replace(/'/g, '')
|
|
@@ -120,6 +120,10 @@ export function adjustMinMaxFontScale(value, view) {
|
|
|
120
120
|
}
|
|
121
121
|
export function createSpannableDetails(span, index, parentView, parent, maxFontSize, autoFontSizeEnabled = false, fontSizeRatio = 1) {
|
|
122
122
|
let text = span.text;
|
|
123
|
+
const html = span.html;
|
|
124
|
+
if (html) {
|
|
125
|
+
text = _createNativeAttributedString({ ...span, text: html, autoFontSizeEnabled, fontSizeRatio });
|
|
126
|
+
}
|
|
123
127
|
if (!text || (span.visibility && span.visibility !== 'visible')) {
|
|
124
128
|
return null;
|
|
125
129
|
}
|
|
@@ -184,7 +188,7 @@ export function createSpannableDetails(span, index, parentView, parent, maxFontS
|
|
|
184
188
|
autoFontSizeEnabled,
|
|
185
189
|
iosFont,
|
|
186
190
|
realFontSize,
|
|
187
|
-
fontSize
|
|
191
|
+
fontSize /* || iosFont?.pointSize */, // testing for fontSize undefined to be defined by canvas
|
|
188
192
|
realMaxFontSize,
|
|
189
193
|
backgroundColor: backgroundcolor ? (backgroundcolor instanceof Color ? backgroundcolor.ios : new Color(backgroundcolor).ios) : null,
|
|
190
194
|
color: textColor ? (textColor instanceof Color ? textColor.ios : new Color(textColor).ios) : null,
|
package/index.ios.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../src/text/index.ios.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAa,IAAI,EAAE,eAAe,EAAY,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC/H,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAe,cAAc,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,cAAc,gBAAgB,CAAC;AAE/B,IAAI,gBAAgB,GAAG,IAAI,CAAC;AAC5B,MAAM,UAAU,oBAAoB;IAChC,gBAAgB,GAAG,KAAK,CAAC;AAC7B,CAAC;AACD,MAAM,UAAU,kBAAkB;IAC9B,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AACD,wBAAwB,CAAC,2BAA2B,EAAE,CAAC;AACvD,MAAM,UAAU,IAAI,KAAI,CAAC;AAEzB,SAAS,6BAA6B,CAAC,EACnC,
|
|
1
|
+
{"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../src/text/index.ios.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAa,IAAI,EAAE,eAAe,EAAY,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC/H,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAe,cAAc,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,cAAc,gBAAgB,CAAC;AAE/B,IAAI,gBAAgB,GAAG,IAAI,CAAC;AAC5B,MAAM,UAAU,oBAAoB;IAChC,gBAAgB,GAAG,KAAK,CAAC;AAC7B,CAAC;AACD,MAAM,UAAU,kBAAkB;IAC9B,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AACD,wBAAwB,CAAC,2BAA2B,EAAE,CAAC;AACvD,MAAM,UAAU,IAAI,KAAI,CAAC;AAEzB,SAAS,6BAA6B,CAAC,EACnC,mBAAmB,GAAG,KAAK,EAC3B,KAAK,EACL,UAAU,EACV,QAAQ,EACR,aAAa,GAAG,CAAC,EACjB,UAAU,EACV,aAAa,EACb,SAAS,EACT,UAAU,EACV,SAAS,EACT,cAAc,EACd,IAAI,EACJ,aAAa,EACb,gBAAgB,EAgBnB;IACG,IAAI,cAAc,GAAG,UAAU;QAC3B,CAAC,CAAC,UAAU;aACL,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;aACjB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;aACpB,IAAI,CAAC,GAAG,CAAC;QAChB,CAAC,CAAC,IAAI,CAAC;IACX,IAAI,CAAC,cAAc,EAAE,CAAC;QAClB,IAAI,gBAAgB,EAAE,CAAC;QACvB,CAAC;aAAM,CAAC;YACJ,cAAc,GAAG,eAAe,CAAC;QACrC,CAAC;IACL,CAAC;IACD,0BAA0B;IAC1B,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,SAAS,IAAI,cAAc,EAAE,CAAC;QAC9B,KAAK;YACD,SAAS;gBACT,0BAA0B,SAAS,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,GAAG,sCAAsC,SAAS,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,qBAAqB,cAAc,IAAI,MAAM,KAAK;gBACpL,UAAU,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GACZ,KAAK;QACL,CAAC,KAAK,IAAI,UAAU,IAAI,QAAQ,IAAI,UAAU;YAC1C,CAAC,CAAC,iBAAiB,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC,eAAe,cAAc,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,QAAQ,GAAG,aAAa,KAAK,CAAC,CAAC,CAAC,EAAE,GACrK,UAAU,CAAC,CAAC,CAAC,gBAAgB,UAAU,GAAG,CAAC,CAAC,CAAC,EACjD,KAAK,IAAI,SAAS;YACpB,CAAC,CAAC,IAAI,CAAC,CAAC;IAEhB,OAAO,WAAW,CAAC,gCAAgC,CAC/C;QACI,UAAU;QACV,QAAQ;QACR,UAAU;QACV,aAAa;QACb,UAAU;QACV,SAAS;QACT,SAAS;QACT,cAAc;QACd,KAAK;QACL,aAAa;QACb,mBAAmB;QACnB,aAAa;QACb,gBAAgB;KACnB,EACD,gBAAgB,CACnB,CAAC;AACN,CAAC;AAID,MAAM,UAAU,4BAA4B,CACxC,IAWiB,EACjB,MAAY,EACZ,UAAqB,EACrB,mBAAmB,GAAG,KAAK,EAC3B,aAAa,GAAG,CAAC;IAEjB,IAAI,IAAI,YAAY,eAAe,IAAI,IAAI,YAAY,oBAAoB,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3F,+CAA+C;QAC/C,MAAM,WAAW,GAAG,cAAc,CAAC,IAAW,CAAC,CAAC;QAChD,0BAA0B;QAC1B,qBAAqB;QACrB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;YAC/B,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC;YACtJ,IAAI,WAAW,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1B,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;oBACd,OAAO,GAAG,IAAI,CAAC;gBACnB,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,UAAU,EAAE,CAAC;YACb,IAAI,UAAU,CAAC,yBAAyB,CAAC,EAAE,CAAC;gBACxC,UAAU,CAAC,yBAAyB,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC;YACpG,CAAC;YACD,IAAK,UAAkB,CAAC,iBAAiB,EAAE,CAAC;gBACvC,UAAkB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACnD,CAAC;YACD,uCAAuC;QAC3C,CAAC;QACD,OAAO,WAAW,CAAC,4BAA4B,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7D,cAAc;IAClB,CAAC;IACD,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;QAC/D,IAAI,CAAC,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpE,CAAC;IACD,sDAAsD;IACtD,iDAAiD;IACjD,IAAI;IACJ,IAAI,CAAC,qBAAqB,CAAC,GAAG,mBAAmB,CAAC;IAClD,IAAI,CAAC,eAAe,CAAC,GAAG,aAAa,CAAC;IACtC,OAAO,6BAA6B,CAAC,IAAW,CAAC,CAAC;AACtD,CAAC;AACD,MAAM,UAAU,eAAe,CAAC,IAAS,EAAE,KAAK,EAAE,UAAe,EAAE,MAAY,EAAE,WAAY,EAAE,mBAAmB,GAAG,KAAK,EAAE,aAAa,GAAG,CAAC;IACzI,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC;IACzH,OAAO,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,4BAA4B,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7F,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,qBAAqB,CAAC,KAAK,EAAE,IAAI;IAC7C,IAAI,UAAU,CAAC;IACf,IAAI,IAAI,CAAC,+BAA+B,EAAE,CAAC;QACvC,UAAU,GAAG,KAAK,CAAC;QAEnB,IAAI,IAAI,CAAC,4BAA4B,IAAI,IAAI,CAAC,4BAA4B,GAAG,KAAK,EAAE,CAAC;YACjF,UAAU,GAAG,IAAI,CAAC,4BAA4B,CAAC;QACnD,CAAC;QACD,IAAI,IAAI,CAAC,4BAA4B,IAAI,IAAI,CAAC,4BAA4B,GAAG,KAAK,EAAE,CAAC;YACjF,UAAU,GAAG,IAAI,CAAC,4BAA4B,CAAC;QACnD,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,UAAU,GAAG,GAAG,CAAC;IACrB,CAAC;IACD,OAAO,UAAU,CAAC;AACtB,CAAC;AACD,MAAM,UAAU,sBAAsB,CAAC,IAAS,EAAE,KAAK,EAAE,UAAe,EAAE,MAAY,EAAE,WAAY,EAAE,mBAAmB,GAAG,KAAK,EAAE,aAAa,GAAG,CAAC;IAChJ,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACrB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,IAAI,EAAE,CAAC;QACP,IAAI,GAAG,6BAA6B,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,mBAAmB,EAAE,aAAa,EAAE,CAAC,CAAC;IACtG,CAAC;IACD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,YAAY,kBAAkB,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;YAC9B,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC5B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,MAAM,EAAE,aAAa,CAAC;QAClE,IAAI,aAAa,EAAE,CAAC;YAChB,IAAI,GAAG,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,KAAK,EAAE,iBAAiB,EAAE,CAAC;YAChC,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QAC1E,CAAC;aAAM,IAAI,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;YAC1C,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAC9E,CAAC;aAAM,IAAI,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;YAC9C,SAAS,GAAG,qBAAqB,CAAC,UAAU,CAAC,KAAK,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;QACtF,CAAC;IACL,CAAC;IAED,IAAI,YAAY,GAAG,QAAQ,IAAI,MAAM,EAAE,QAAQ,IAAI,UAAU,EAAE,QAAQ,CAAC;IACxE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,YAAY,GAAG,CAAC,MAAM,EAAE,QAAQ,IAAI,UAAU,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;IAClF,CAAC;IACD,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACjC,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,IAAI,MAAM,EAAE,qBAAqB,IAAI,UAAU,EAAE,qBAAqB,CAAC;IAC/H,uIAAuI;IACvI,kEAAkE;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,EAAE,KAAK,CAAC;IAC9C,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,MAAM,EAAE,eAAe,CAAC;IACxE,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,MAAM,EAAE,cAAc,CAAC;IACrE,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,MAAM,EAAE,aAAa,CAAC;IAClE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,MAAM,EAAE,UAAU,CAAC;IACzD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,MAAM,EAAE,aAAa,IAAI,UAAU,EAAE,aAAa,CAAC;IAC/F,MAAM,qBAAqB,GAAG,IAAI,CAAC,iBAAiB,IAAI,MAAM,EAAE,iBAAiB,CAAC;IAClF,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,QAAQ,CAAC,IAAI,SAAS,IAAI,UAAU,IAAI,YAAY,IAAI,aAAa,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,IAAI,qBAAqB,EAAE,CAAC;QACxJ,MAAM,IAAI,GAAG,IAAI,IAAI,CACjB,UAAU,IAAI,MAAM,EAAE,UAAU,IAAI,UAAU,EAAE,UAAU,EAC1D,YAAY,CAAC,CAAC,CAAC,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,EACvD,SAAS,IAAI,MAAM,EAAE,SAAS,IAAI,UAAU,EAAE,SAAS,EACvD,UAAU,IAAI,MAAM,EAAE,UAAU,IAAI,UAAU,EAAE,UAAU,EAC1D,SAAS,EACT,qBAAqB,IAAI,MAAM,EAAE,qBAAqB,IAAI,UAAU,EAAE,qBAAqB,CAC9F,CAAC;QACF,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClJ,CAAC;SAAM,IAAI,UAAU,EAAE,CAAC;QACpB,OAAO,GAAG,UAAU,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;IAC5D,CAAC;SAAM,CAAC;QACJ,yEAAyE;QACzE,iEAAiE;IACrE,CAAC;IAED,OAAO;QACH,IAAI;QACJ,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QAC5C,mBAAmB;QACnB,OAAO;QACP,YAAY;QACZ,QAAQ,CAAC,2BAA2B,EAAE,yDAAyD;QAC/F,eAAe;QACf,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,YAAY,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;QACnI,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;QACjG,cAAc;QACd,aAAa;QACb,UAAU;QACV,qBAAqB;QACrB,aAAa,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI;KACpE,CAAC;AACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nativescript-community/text",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.20",
|
|
4
4
|
"description": "Expands the capabilities of NativeScript's text property.",
|
|
5
5
|
"main": "./index",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -37,5 +37,5 @@
|
|
|
37
37
|
},
|
|
38
38
|
"license": "Apache-2.0",
|
|
39
39
|
"readmeFilename": "README.md",
|
|
40
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "b181658dc1ad1df249c02d5be994b286be0c52ff"
|
|
41
41
|
}
|
|
@@ -443,12 +443,23 @@ public class Font {
|
|
|
443
443
|
}
|
|
444
444
|
for (int i = 0, spanStart = 0, spanLength = 0, length = arrayOptions.length(); i < length; i++) {
|
|
445
445
|
JSONObject span = (JSONObject)arrayOptions.get(i);
|
|
446
|
-
String
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
446
|
+
String html = span.optString("html", null);
|
|
447
|
+
if (html != null) {
|
|
448
|
+
SpannableStringBuilder htmlSsb = stringBuilderFromHtmlString( context, fontFolder, parentFontFamily,
|
|
449
|
+
html, span.optBoolean("disableLinkDecoration", false), span.optInt("linkColor", 0));
|
|
450
|
+
spanLength = htmlSsb.length();
|
|
451
|
+
|
|
452
|
+
ssb.insert(spanStart, htmlSsb);
|
|
450
453
|
setSpanModifiers(context, fontFolder, parentFontFamily, ssb, span, spanStart, spanStart + spanLength);
|
|
451
454
|
spanStart += spanLength;
|
|
455
|
+
} else {
|
|
456
|
+
String text = span.optString("text", "");
|
|
457
|
+
spanLength = text.length();
|
|
458
|
+
if (spanLength > 0) {
|
|
459
|
+
ssb.insert(spanStart, text);
|
|
460
|
+
setSpanModifiers(context, fontFolder, parentFontFamily, ssb, span, spanStart, spanStart + spanLength);
|
|
461
|
+
spanStart += spanLength;
|
|
462
|
+
}
|
|
452
463
|
}
|
|
453
464
|
}
|
|
454
465
|
return ssb;
|
|
@@ -497,7 +508,7 @@ public class Font {
|
|
|
497
508
|
// Log.d(TAG, "fromHtml: " + ((System.nanoTime() - startTime)/1000000) + "ms");
|
|
498
509
|
return converter.spannable();
|
|
499
510
|
} catch (Exception e) {
|
|
500
|
-
e
|
|
511
|
+
Log.e(TAG, "errro parsing html " + html, e);
|
|
501
512
|
}
|
|
502
513
|
return html;
|
|
503
514
|
}
|
|
@@ -507,10 +518,7 @@ public class Font {
|
|
|
507
518
|
}
|
|
508
519
|
private static float FONT_SIZE_FACTOR = -1;
|
|
509
520
|
public static float getFontSizeFactor(Context context) {
|
|
510
|
-
|
|
511
|
-
FONT_SIZE_FACTOR = android.util.TypedValue.applyDimension(
|
|
521
|
+
return android.util.TypedValue.applyDimension(
|
|
512
522
|
android.util.TypedValue.COMPLEX_UNIT_SP, 1, context.getResources().getDisplayMetrics());
|
|
513
|
-
}
|
|
514
|
-
return FONT_SIZE_FACTOR;
|
|
515
523
|
}
|
|
516
524
|
}
|
|
@@ -9,14 +9,18 @@ package com.nativescript.text;
|
|
|
9
9
|
|
|
10
10
|
import android.graphics.Paint;
|
|
11
11
|
import android.text.style.LineHeightSpan;
|
|
12
|
+
import android.util.Log;
|
|
12
13
|
|
|
13
14
|
public class HeightSpan implements LineHeightSpan {
|
|
14
15
|
private final int mHeight;
|
|
15
16
|
|
|
16
17
|
public HeightSpan(float height) {
|
|
18
|
+
Log.d("JS", "HeightSpan " + height);
|
|
17
19
|
this.mHeight = (int) Math.ceil(height);
|
|
18
20
|
}
|
|
19
|
-
|
|
21
|
+
public int getHeight() {
|
|
22
|
+
return mHeight;
|
|
23
|
+
}
|
|
20
24
|
@Override
|
|
21
25
|
public void chooseHeight(
|
|
22
26
|
CharSequence text, int start, int end, int spanstartv, int v, Paint.FontMetricsInt fm) {
|
|
@@ -25,31 +29,55 @@ public class HeightSpan implements LineHeightSpan {
|
|
|
25
29
|
// The general solution is that if there's not enough height to show the full line height, we
|
|
26
30
|
// will prioritize in this order: descent, ascent, bottom, top
|
|
27
31
|
|
|
28
|
-
if (fm.descent > mHeight) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
} else if (-fm.ascent + fm.descent > mHeight) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
} else if (-fm.ascent + fm.bottom > mHeight) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
} else if (-fm.top + fm.bottom > mHeight) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
} else {
|
|
44
|
-
|
|
45
|
-
|
|
32
|
+
// if (fm.descent > mHeight) {
|
|
33
|
+
// // Show as much descent as possible
|
|
34
|
+
// fm.bottom = fm.descent = Math.min(mHeight, fm.descent);
|
|
35
|
+
// fm.top = fm.ascent = 0;
|
|
36
|
+
// } else if (-fm.ascent + fm.descent > mHeight) {
|
|
37
|
+
// // Show all descent, and as much ascent as possible
|
|
38
|
+
// fm.bottom = fm.descent;
|
|
39
|
+
// fm.top = fm.ascent = -mHeight + fm.descent;
|
|
40
|
+
// } else if (-fm.ascent + fm.bottom > mHeight) {
|
|
41
|
+
// // Show all ascent, descent, as much bottom as possible
|
|
42
|
+
// fm.top = fm.ascent;
|
|
43
|
+
// fm.bottom = fm.ascent + mHeight;
|
|
44
|
+
// } else if (-fm.top + fm.bottom > mHeight) {
|
|
45
|
+
// // Show all ascent, descent, bottom, as much top as possible
|
|
46
|
+
// fm.top = fm.bottom - mHeight;
|
|
47
|
+
// } else {
|
|
48
|
+
// // Show proportionally additional ascent / top & descent / bottom
|
|
49
|
+
// final int additional = mHeight - (-fm.top + fm.bottom);
|
|
46
50
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
// // Round up for the negative values and down for the positive values (arbitrary choice)
|
|
52
|
+
// // So that bottom - top equals additional even if it's an odd number.
|
|
53
|
+
// fm.top -= Math.ceil(additional / 2.0f);
|
|
54
|
+
// fm.bottom += Math.floor(additional / 2.0f);
|
|
55
|
+
// fm.ascent = fm.top;
|
|
56
|
+
// fm.descent = fm.bottom;
|
|
57
|
+
// }
|
|
58
|
+
final int originHeight = fm.descent - fm.ascent;
|
|
59
|
+
// If original height is not positive, do nothing.
|
|
60
|
+
if (originHeight <= 0) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
final int diff = mHeight - originHeight;
|
|
64
|
+
if (diff == 0) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (diff > 0) {
|
|
69
|
+
// Expand line: keep glyphs at the top, add extra space below.
|
|
70
|
+
fm.bottom += diff;
|
|
71
|
+
fm.descent += diff;
|
|
72
|
+
} else {
|
|
73
|
+
// Shrink line: remove space proportionally from top and bottom (center content).
|
|
74
|
+
int reduce = -diff;
|
|
75
|
+
int reduceTop = (int) Math.ceil(reduce / 2.0f);
|
|
76
|
+
int reduceBottom = reduce - reduceTop;
|
|
77
|
+
fm.top += reduceTop;
|
|
78
|
+
fm.ascent += reduceTop;
|
|
79
|
+
fm.bottom -= reduceBottom;
|
|
80
|
+
fm.descent -= reduceBottom;
|
|
53
81
|
}
|
|
54
82
|
}
|
|
55
|
-
}
|
|
83
|
+
}
|
|
@@ -92,7 +92,7 @@ class NSTextUtils: NSObject {
|
|
|
92
92
|
class func computeBaseLineOffset(align:String!, fontAscent:Float, fontDescent:Float, fontBottom:Float, fontTop:Float, fontSize:Float, maxFontSize:Float) -> Float {
|
|
93
93
|
var result:Float = 0
|
|
94
94
|
if (align == "top") {
|
|
95
|
-
result = -maxFontSize - fontBottom - fontTop
|
|
95
|
+
result = -maxFontSize - fontBottom - fontTop - (fontAscent - fontDescent) / 2
|
|
96
96
|
} else if (align == "bottom") {
|
|
97
97
|
result = fontBottom
|
|
98
98
|
} else if (align == "text-top") {
|
|
@@ -249,7 +249,9 @@ class NSTextUtils: NSObject {
|
|
|
249
249
|
|
|
250
250
|
}
|
|
251
251
|
let verticalTextAlignment:String! = spanDetails.object(forKey: "verticalTextAlignment") as? String
|
|
252
|
+
var realVerticalTextAlignment:String! = nil
|
|
252
253
|
if (verticalTextAlignment != nil) && (iosFont != nil) && !(verticalTextAlignment == "initial") && !(verticalTextAlignment == "stretch") {
|
|
254
|
+
realVerticalTextAlignment = verticalTextAlignment
|
|
253
255
|
let fontSize:NSNumber! = fontSize != nil ? fontSize : NSNumber(value: Float(iosFont.pointSize))
|
|
254
256
|
let ctFont:CTFont = iosFont
|
|
255
257
|
let ascent:CGFloat = CTFontGetAscent(ctFont)
|
|
@@ -293,6 +295,21 @@ class NSTextUtils: NSObject {
|
|
|
293
295
|
}
|
|
294
296
|
paragraphStyle.maximumLineHeight = fLineHeight
|
|
295
297
|
paragraphStyle.minimumLineHeight = fLineHeight
|
|
298
|
+
if (iosFont != nil){
|
|
299
|
+
let ctFont: CTFont = iosFont
|
|
300
|
+
let ascent = CTFontGetAscent(ctFont)
|
|
301
|
+
let descent = CTFontGetDescent(ctFont)
|
|
302
|
+
let fontSize:NSNumber! = fontSize != nil ? fontSize : NSNumber(value: Float(iosFont.pointSize))
|
|
303
|
+
let baseOffset = -computeBaseLineOffset(align: realVerticalTextAlignment != nil ? realVerticalTextAlignment : "top",
|
|
304
|
+
fontAscent: -Float(ascent),
|
|
305
|
+
fontDescent: Float(descent),
|
|
306
|
+
fontBottom: -Float(iosFont.descender),
|
|
307
|
+
fontTop: -Float(iosFont.ascender),
|
|
308
|
+
fontSize: fontSize.floatValue,
|
|
309
|
+
maxFontSize: Float(fLineHeight))
|
|
310
|
+
attributes.setObject(baseOffset, forKey:NSAttributedString.Key.baselineOffset as NSCopying as NSCopying)
|
|
311
|
+
|
|
312
|
+
}
|
|
296
313
|
}
|
|
297
314
|
attributes.setObject(paragraphStyle, forKey:NSAttributedString.Key.paragraphStyle as NSCopying as NSCopying)
|
|
298
315
|
}
|