react-native-enriched-html 1.1.0-nightly-20260729-c60ddba87 → 1.1.0
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/README.md +3 -8
- package/lib/module/web/EnrichedText.css +30 -10
- package/lib/module/web/EnrichedText.js +17 -2
- package/lib/module/web/EnrichedText.js.map +1 -1
- package/lib/module/web/EnrichedTextInput.js +4 -3
- package/lib/module/web/EnrichedTextInput.js.map +1 -1
- package/lib/module/web/ellipsizeMode/clip.js +42 -0
- package/lib/module/web/ellipsizeMode/clip.js.map +1 -0
- package/lib/module/web/ellipsizeMode/headEllipsize.js +141 -0
- package/lib/module/web/ellipsizeMode/headEllipsize.js.map +1 -0
- package/lib/module/web/ellipsizeMode/middleEllipsize.js +166 -0
- package/lib/module/web/ellipsizeMode/middleEllipsize.js.map +1 -0
- package/lib/module/web/ellipsizeMode/tailEllipsize.js +43 -0
- package/lib/module/web/ellipsizeMode/tailEllipsize.js.map +1 -0
- package/lib/module/web/ellipsizeMode/useEllipsizeMode.js +40 -0
- package/lib/module/web/ellipsizeMode/useEllipsizeMode.js.map +1 -0
- package/lib/module/web/ellipsizeMode/utils.js +480 -0
- package/lib/module/web/ellipsizeMode/utils.js.map +1 -0
- package/lib/module/web/normalization/tiptapHtmlNormalizer.js +2 -1
- package/lib/module/web/normalization/tiptapHtmlNormalizer.js.map +1 -1
- package/lib/module/web/pmPlugins/OrderedListMarkerWidthPlugin.js +35 -0
- package/lib/module/web/pmPlugins/OrderedListMarkerWidthPlugin.js.map +1 -0
- package/lib/module/web/sanitization/htmlSanitizer.js +1 -0
- package/lib/module/web/sanitization/htmlSanitizer.js.map +1 -1
- package/lib/module/web/useOnChangeHtml.js +2 -2
- package/lib/module/web/useOnChangeHtml.js.map +1 -1
- package/lib/module/web/useOrderedListMarkerWidth.js +19 -0
- package/lib/module/web/useOrderedListMarkerWidth.js.map +1 -0
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/web/EnrichedText.d.ts +1 -1
- package/lib/typescript/src/web/EnrichedText.d.ts.map +1 -1
- package/lib/typescript/src/web/EnrichedTextInput.d.ts.map +1 -1
- package/lib/typescript/src/web/ellipsizeMode/clip.d.ts +2 -0
- package/lib/typescript/src/web/ellipsizeMode/clip.d.ts.map +1 -0
- package/lib/typescript/src/web/ellipsizeMode/headEllipsize.d.ts +2 -0
- package/lib/typescript/src/web/ellipsizeMode/headEllipsize.d.ts.map +1 -0
- package/lib/typescript/src/web/ellipsizeMode/middleEllipsize.d.ts +2 -0
- package/lib/typescript/src/web/ellipsizeMode/middleEllipsize.d.ts.map +1 -0
- package/lib/typescript/src/web/ellipsizeMode/tailEllipsize.d.ts +2 -0
- package/lib/typescript/src/web/ellipsizeMode/tailEllipsize.d.ts.map +1 -0
- package/lib/typescript/src/web/ellipsizeMode/useEllipsizeMode.d.ts +16 -0
- package/lib/typescript/src/web/ellipsizeMode/useEllipsizeMode.d.ts.map +1 -0
- package/lib/typescript/src/web/ellipsizeMode/utils.d.ts +36 -0
- package/lib/typescript/src/web/ellipsizeMode/utils.d.ts.map +1 -0
- package/lib/typescript/src/web/normalization/tiptapHtmlNormalizer.d.ts +1 -1
- package/lib/typescript/src/web/normalization/tiptapHtmlNormalizer.d.ts.map +1 -1
- package/lib/typescript/src/web/pmPlugins/OrderedListMarkerWidthPlugin.d.ts +3 -0
- package/lib/typescript/src/web/pmPlugins/OrderedListMarkerWidthPlugin.d.ts.map +1 -0
- package/lib/typescript/src/web/sanitization/htmlSanitizer.d.ts.map +1 -1
- package/lib/typescript/src/web/useOnChangeHtml.d.ts +1 -1
- package/lib/typescript/src/web/useOnChangeHtml.d.ts.map +1 -1
- package/lib/typescript/src/web/useOrderedListMarkerWidth.d.ts +3 -0
- package/lib/typescript/src/web/useOrderedListMarkerWidth.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/index.tsx +1 -0
- package/src/web/EnrichedText.css +30 -10
- package/src/web/EnrichedText.tsx +22 -1
- package/src/web/EnrichedTextInput.tsx +4 -2
- package/src/web/ellipsizeMode/clip.ts +53 -0
- package/src/web/ellipsizeMode/headEllipsize.ts +190 -0
- package/src/web/ellipsizeMode/middleEllipsize.ts +214 -0
- package/src/web/ellipsizeMode/tailEllipsize.ts +54 -0
- package/src/web/ellipsizeMode/useEllipsizeMode.ts +62 -0
- package/src/web/ellipsizeMode/utils.ts +598 -0
- package/src/web/normalization/tiptapHtmlNormalizer.ts +2 -1
- package/src/web/pmPlugins/OrderedListMarkerWidthPlugin.ts +43 -0
- package/src/web/sanitization/htmlSanitizer.ts +1 -0
- package/src/web/useOnChangeHtml.ts +3 -3
- package/src/web/useOrderedListMarkerWidth.ts +20 -0
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
- ⚡ Fully native input and display components (Supports New Architecture only)
|
|
12
12
|
- 💻 HTML-based parsing with live, synchronous text styling
|
|
13
13
|
- 🎨 Fully customizable styles for seamless UI integration
|
|
14
|
-
- 🌐 Solid mobile
|
|
14
|
+
- 🌐 Solid mobile and web support
|
|
15
15
|
|
|
16
16
|
`EnrichedTextInput`, the rich text input component is an uncontrolled input. This means that it doesn't use any state or props to store its value, but instead directly interacts with the underlying platform-specific components. Thanks to this, the component is really performant and simple to use while offering complex and advanced features no other solution has.
|
|
17
17
|
|
|
@@ -40,13 +40,12 @@ We can help you build your next dream product –
|
|
|
40
40
|
- [EnrichedText component](#enrichedtext-component)
|
|
41
41
|
- [API Reference](#api-reference)
|
|
42
42
|
- [Known limitations](#known-limitations)
|
|
43
|
-
- [Future Plans](#future-plans)
|
|
44
43
|
- [Contributing](#contributing)
|
|
45
44
|
- [License](#license)
|
|
46
45
|
|
|
47
46
|
## Prerequisites
|
|
48
47
|
|
|
49
|
-
- `react-native-enriched-html` currently supports Android and
|
|
48
|
+
- `react-native-enriched-html` currently supports Android, iOS and Web.
|
|
50
49
|
- It works only with [the React Native New Architecture (Fabric)](https://reactnative.dev/architecture/landing-page) and supports following React Native releases: `0.81`, `0.82`, `0.83`, `0.84`, `0.85` and `0.86`.
|
|
51
50
|
|
|
52
51
|
## Installation
|
|
@@ -290,7 +289,7 @@ You can find some examples in the [usage section](#usage) or in the example app.
|
|
|
290
289
|
- [onFocus](docs/INPUT_API_REFERENCE.md#onfocus) - emits whenever input focuses.
|
|
291
290
|
- [onBlur](docs/INPUT_API_REFERENCE.md) - emits whenever input blurs.
|
|
292
291
|
- [onChangeText](docs/INPUT_API_REFERENCE.md#onchangetext) - returns the input's text anytime it changes.
|
|
293
|
-
- [onChangeHtml](docs/INPUT_API_REFERENCE.md#onchangehtml) - returns HTML string parsed from current input text and styles anytime it would change. As parsing the HTML on each input change is a pretty expensive operation, not assigning the event's callback will speed up iOS input a bit.
|
|
292
|
+
- [onChangeHtml](docs/INPUT_API_REFERENCE.md#onchangehtml) - returns HTML string parsed from current input text and styles anytime it would change. As parsing the HTML on each input change is a pretty expensive operation, not assigning the event's callback will speed up iOS input a bit.
|
|
294
293
|
- [onChangeSelection](docs/INPUT_API_REFERENCE.md#onchangeselection) - returns all the data needed for working with selections (as of now it's mainly useful for [links](#links)).
|
|
295
294
|
- [onLinkDetected](docs/INPUT_API_REFERENCE.md#onlinkdetected) - returns link's detailed info whenever user selection is near one.
|
|
296
295
|
- [onMentionDetected](docs/INPUT_API_REFERENCE.md#onmentiondetected) - returns mention's detailed info whenever user selection is near one.
|
|
@@ -379,10 +378,6 @@ See the [EnrichedText API Reference](docs/TEXT_API_REFERENCE.md) for the `Enrich
|
|
|
379
378
|
|
|
380
379
|
- Only one level of lists is supported. We currently do not support nested lists.
|
|
381
380
|
|
|
382
|
-
## Future Plans
|
|
383
|
-
|
|
384
|
-
- Web support: currently in the experimental stage. Details in [docs/WEB.md](docs/WEB.md).
|
|
385
|
-
|
|
386
381
|
## Contributing
|
|
387
382
|
|
|
388
383
|
See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
|
|
@@ -17,6 +17,10 @@
|
|
|
17
17
|
margin-bottom: 0;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
.et-view p:empty::before {
|
|
21
|
+
content: '\200B';
|
|
22
|
+
}
|
|
23
|
+
|
|
20
24
|
.eti-editor p.is-editor-empty:first-child::before {
|
|
21
25
|
color: var(--et-placeholder-text-color, #adb5bd);
|
|
22
26
|
content: attr(data-placeholder);
|
|
@@ -156,7 +160,11 @@
|
|
|
156
160
|
.et-view ul:not([data-type]) {
|
|
157
161
|
margin: 0;
|
|
158
162
|
list-style: none;
|
|
159
|
-
padding-left: calc(
|
|
163
|
+
padding-left: calc(
|
|
164
|
+
var(--et-ul-margin-left, 16px) +
|
|
165
|
+
var(--et-ul-bullet-size, 8px) +
|
|
166
|
+
var(--et-ul-gap-width, 16px)
|
|
167
|
+
);
|
|
160
168
|
}
|
|
161
169
|
|
|
162
170
|
.eti-editor ul:not([data-type]) > li,
|
|
@@ -179,14 +187,20 @@
|
|
|
179
187
|
margin-right: var(--et-ul-gap-width, 16px);
|
|
180
188
|
|
|
181
189
|
position: relative;
|
|
182
|
-
top: -0.
|
|
190
|
+
top: calc(var(--et-ul-bullet-size, 8px) * 0.5 - 0.35em);
|
|
183
191
|
}
|
|
184
192
|
|
|
185
193
|
.eti-editor ol,
|
|
186
194
|
.et-view ol {
|
|
187
195
|
margin: 0;
|
|
188
196
|
list-style: none;
|
|
189
|
-
|
|
197
|
+
/* marker column grows to fit the widest counter ("N."), floored at the
|
|
198
|
+
configured margin. */
|
|
199
|
+
--et-ol-marker-col: max(
|
|
200
|
+
var(--et-ol-margin-left, 16px),
|
|
201
|
+
calc((var(--et-ol-digits, 1) + 1) * 1ch)
|
|
202
|
+
);
|
|
203
|
+
padding-left: calc(var(--et-ol-marker-col) + var(--et-ol-gap-width, 16px));
|
|
190
204
|
counter-reset: et-ol;
|
|
191
205
|
}
|
|
192
206
|
|
|
@@ -202,10 +216,10 @@
|
|
|
202
216
|
.et-view ol > li::before {
|
|
203
217
|
content: counter(et-ol) '.';
|
|
204
218
|
flex-shrink: 0;
|
|
205
|
-
width: var(--et-ol-margin-left, 16px);
|
|
219
|
+
width: var(--et-ol-marker-col, var(--et-ol-margin-left, 16px));
|
|
206
220
|
text-align: right;
|
|
207
|
-
margin-right: calc(var(--et-ol-gap-width, 16px)
|
|
208
|
-
margin-left: calc(-1 * (var(--et-ol-margin-left, 16px) +
|
|
221
|
+
margin-right: calc(var(--et-ol-gap-width, 16px));
|
|
222
|
+
margin-left: calc(-1 * (var(--et-ol-marker-col, var(--et-ol-margin-left, 16px)) + var(--et-ol-gap-width, 16px)));
|
|
209
223
|
|
|
210
224
|
color: var(--et-ol-marker-color, currentColor);
|
|
211
225
|
font-weight: var(--et-ol-marker-font-weight, inherit);
|
|
@@ -258,7 +272,11 @@
|
|
|
258
272
|
.eti-editor ul[data-type='checkboxList'] {
|
|
259
273
|
margin: 0;
|
|
260
274
|
list-style: none;
|
|
261
|
-
padding-left: calc(
|
|
275
|
+
padding-left: calc(
|
|
276
|
+
var(--et-checkbox-margin-left, 16px) +
|
|
277
|
+
var(--et-checkbox-box-size, 24px) +
|
|
278
|
+
var(--et-checkbox-gap-width, 16px)
|
|
279
|
+
);
|
|
262
280
|
}
|
|
263
281
|
|
|
264
282
|
.eti-editor ul[data-type='checkboxList'] > li {
|
|
@@ -279,7 +297,7 @@
|
|
|
279
297
|
|
|
280
298
|
margin-top: 0;
|
|
281
299
|
position: relative;
|
|
282
|
-
top: 0.
|
|
300
|
+
top: calc(var(--et-checkbox-box-size, 24px) * 0.5 - 0.35em);
|
|
283
301
|
}
|
|
284
302
|
|
|
285
303
|
.eti-editor ul[data-type='checkboxList'] > li > label input[type='checkbox'] {
|
|
@@ -301,7 +319,9 @@
|
|
|
301
319
|
margin: 0;
|
|
302
320
|
list-style: none;
|
|
303
321
|
padding-left: calc(
|
|
304
|
-
var(--et-checkbox-margin-left, 16px) +
|
|
322
|
+
var(--et-checkbox-margin-left, 16px) +
|
|
323
|
+
var(--et-checkbox-box-size, 24px) +
|
|
324
|
+
var(--et-checkbox-gap-width, 16px)
|
|
305
325
|
);
|
|
306
326
|
}
|
|
307
327
|
|
|
@@ -328,7 +348,7 @@
|
|
|
328
348
|
|
|
329
349
|
margin-top: 0;
|
|
330
350
|
position: relative;
|
|
331
|
-
top: 0.
|
|
351
|
+
top: calc(var(--et-checkbox-box-size, 24px) * 0.5 - 0.35em);
|
|
332
352
|
}
|
|
333
353
|
|
|
334
354
|
.et-view ul[data-type="checkbox"] > li > label {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { memo, useImperativeHandle, useMemo, useRef } from 'react';
|
|
3
|
+
import { memo, useImperativeHandle, useMemo, useRef, useState } from 'react';
|
|
4
4
|
import './EnrichedText.css';
|
|
5
5
|
import { enrichedTextStyleToCSSProperties } from "./styleConversion/enrichedTextStyleToCSSProperties.js";
|
|
6
6
|
import { mergeWithDefaultEnrichedTextHtmlStyle } from "./styleConversion/htmlStyleToCSSVariables.js";
|
|
@@ -13,9 +13,11 @@ import { prepareHtmlForWeb } from "./normalization/prepareHtmlForWeb.js";
|
|
|
13
13
|
import { INLINE_IMAGE_CSS_VARIABLES } from "./styleConversion/inlineImageCSSVariables.js";
|
|
14
14
|
import { useImageErrorFallback } from "./useImageErrorFallback.js";
|
|
15
15
|
import { usePressInteractions } from "./usePressInteractions.js";
|
|
16
|
+
import { useEllipsizeMode } from "./ellipsizeMode/useEllipsizeMode.js";
|
|
16
17
|
import { adaptWebToNativeEvent } from "./adaptWebToNativeEvent.js";
|
|
17
18
|
import { useStableRef } from "./useStableRef.js";
|
|
18
19
|
import { assertBrowserEnvironment } from "./assertBrowserEnvironment.js";
|
|
20
|
+
import { useOrderedListMarkerWidth } from "./useOrderedListMarkerWidth.js";
|
|
19
21
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
20
22
|
export const EnrichedText = /*#__PURE__*/memo(({
|
|
21
23
|
ref,
|
|
@@ -23,6 +25,8 @@ export const EnrichedText = /*#__PURE__*/memo(({
|
|
|
23
25
|
htmlStyle,
|
|
24
26
|
style,
|
|
25
27
|
selectionColor,
|
|
28
|
+
ellipsizeMode = 'tail',
|
|
29
|
+
numberOfLines = 0,
|
|
26
30
|
selectable = false,
|
|
27
31
|
useHtmlNormalizer = true,
|
|
28
32
|
sanitizationConfig,
|
|
@@ -47,6 +51,7 @@ export const EnrichedText = /*#__PURE__*/memo(({
|
|
|
47
51
|
}));
|
|
48
52
|
const sanitizedHtml = useMemo(() => sanitizeHtml(children, sanitizationConfig), [children, sanitizationConfig]);
|
|
49
53
|
const finalHtml = useMemo(() => prepareHtmlForWeb(sanitizedHtml, useHtmlNormalizer), [sanitizedHtml, useHtmlNormalizer]);
|
|
54
|
+
const [clampedHtml, setClampedHtml] = useState(numberOfLines <= 0 ? finalHtml : null);
|
|
50
55
|
const resolvedHtmlStyle = useMemo(() => mergeWithDefaultEnrichedTextHtmlStyle(htmlStyle), [htmlStyle]);
|
|
51
56
|
const textStyle = useMemo(() => enrichedTextStyleToCSSProperties(style ?? {}), [style]);
|
|
52
57
|
const cssVars = useMemo(() => ({
|
|
@@ -63,8 +68,18 @@ export const EnrichedText = /*#__PURE__*/memo(({
|
|
|
63
68
|
...themingStyle,
|
|
64
69
|
...cssVars
|
|
65
70
|
}), [textStyle, themingStyle, cssVars]);
|
|
71
|
+
useEllipsizeMode({
|
|
72
|
+
containerRef,
|
|
73
|
+
finalHtml,
|
|
74
|
+
ellipsizeMode,
|
|
75
|
+
numberOfLines,
|
|
76
|
+
setClampedHtml,
|
|
77
|
+
style,
|
|
78
|
+
htmlStyle
|
|
79
|
+
});
|
|
66
80
|
const onLinkPressRef = useStableRef(onLinkPress);
|
|
67
81
|
const onMentionPressRef = useStableRef(onMentionPress);
|
|
82
|
+
useOrderedListMarkerWidth(containerRef, finalHtml);
|
|
68
83
|
useImageErrorFallback(containerRef);
|
|
69
84
|
usePressInteractions(containerRef, onLinkPressRef, onMentionPressRef);
|
|
70
85
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
@@ -82,7 +97,7 @@ export const EnrichedText = /*#__PURE__*/memo(({
|
|
|
82
97
|
target: -1
|
|
83
98
|
})),
|
|
84
99
|
dangerouslySetInnerHTML: {
|
|
85
|
-
__html:
|
|
100
|
+
__html: clampedHtml ?? ''
|
|
86
101
|
}
|
|
87
102
|
})]
|
|
88
103
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","useImperativeHandle","useMemo","useRef","enrichedTextStyleToCSSProperties","mergeWithDefaultEnrichedTextHtmlStyle","enrichedTextHtmlStyleToCSSVariables","ENRICHED_TEXT_CLASSNAME","enrichedTextThemingToCSSProperties","buildMentionRulesCSS","sanitizeHtml","prepareHtmlForWeb","INLINE_IMAGE_CSS_VARIABLES","useImageErrorFallback","usePressInteractions","adaptWebToNativeEvent","useStableRef","assertBrowserEnvironment","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","EnrichedText","ref","children","htmlStyle","style","selectionColor","selectable","useHtmlNormalizer","sanitizationConfig","onFocus","onBlur","onLinkPress","onMentionPress","containerRef","measureInWindow","measure","measureLayout","setNativeProps","focus","current","blur","sanitizedHtml","finalHtml","resolvedHtmlStyle","textStyle","cssVars","themingStyle","mentionRulesCSS","finalStyle","onLinkPressRef","onMentionPressRef","tabIndex","className","event","target","dangerouslySetInnerHTML","__html"],"sourceRoot":"../../../src","sources":["web/EnrichedText.tsx"],"mappings":";;AAAA,SACEA,IAAI,EACJC,mBAAmB,EACnBC,OAAO,EACPC,MAAM,
|
|
1
|
+
{"version":3,"names":["memo","useImperativeHandle","useMemo","useRef","useState","enrichedTextStyleToCSSProperties","mergeWithDefaultEnrichedTextHtmlStyle","enrichedTextHtmlStyleToCSSVariables","ENRICHED_TEXT_CLASSNAME","enrichedTextThemingToCSSProperties","buildMentionRulesCSS","sanitizeHtml","prepareHtmlForWeb","INLINE_IMAGE_CSS_VARIABLES","useImageErrorFallback","usePressInteractions","useEllipsizeMode","adaptWebToNativeEvent","useStableRef","assertBrowserEnvironment","useOrderedListMarkerWidth","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","EnrichedText","ref","children","htmlStyle","style","selectionColor","ellipsizeMode","numberOfLines","selectable","useHtmlNormalizer","sanitizationConfig","onFocus","onBlur","onLinkPress","onMentionPress","containerRef","measureInWindow","measure","measureLayout","setNativeProps","focus","current","blur","sanitizedHtml","finalHtml","clampedHtml","setClampedHtml","resolvedHtmlStyle","textStyle","cssVars","themingStyle","mentionRulesCSS","finalStyle","onLinkPressRef","onMentionPressRef","tabIndex","className","event","target","dangerouslySetInnerHTML","__html"],"sourceRoot":"../../../src","sources":["web/EnrichedText.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -40,6 +40,7 @@ import { EnrichedTextAlign } from "./formats/EnrichedTextAlign.js";
|
|
|
40
40
|
import { StripBoldInStyledHeadingsPlugin } from "./pmPlugins/StripBoldInStyledHeadingsPlugin.js";
|
|
41
41
|
import { StrictMarksPlugin } from "./pmPlugins/StrictMarksPlugin.js";
|
|
42
42
|
import { MergeAdjacentSameKindBlocksPlugin } from "./pmPlugins/MergeAdjacentSameKindBlocksPlugin.js";
|
|
43
|
+
import { OrderedListMarkerWidthPlugin } from "./pmPlugins/OrderedListMarkerWidthPlugin.js";
|
|
43
44
|
import { StripMarksInCodeBlockPlugin } from "./pmPlugins/StripMarksInCodeBlockPlugin.js";
|
|
44
45
|
import { handleClipboardPasteImages } from "./pasteImages.js";
|
|
45
46
|
import { MentionPlugin, setMention, startMention, useMentionEvents } from "./pmPlugins/MentionPlugin/index.js";
|
|
@@ -145,7 +146,7 @@ export const EnrichedTextInput = ({
|
|
|
145
146
|
getLinkRegex: () => linkEmitterRef.current.linkRegex
|
|
146
147
|
}), EnrichedImage, EnrichedMention, EnrichedHeading, EnrichedBlockquote, EnrichedCodeBlock, EnrichedListItem, EnrichedCheckboxItem, EnrichedUnorderedList, EnrichedOrderedList, EnrichedCheckboxList, EnrichedTextAlign, StripMarksInCodeBlockPlugin, StripMarksOnImagePlugin, StripBoldInStyledHeadingsPlugin.configure({
|
|
147
148
|
getHtmlStyle: () => htmlStyleRef.current
|
|
148
|
-
}), MergeAdjacentSameKindBlocksPlugin, StrictMarksPlugin, MentionPlugin.configure({
|
|
149
|
+
}), MergeAdjacentSameKindBlocksPlugin, OrderedListMarkerWidthPlugin, StrictMarksPlugin, MentionPlugin.configure({
|
|
149
150
|
getIndicators: () => mentionIndicatorsRef.current
|
|
150
151
|
}), ShortcutPlugin.configure({
|
|
151
152
|
getHtmlStyle: () => htmlStyleRef.current
|
|
@@ -231,7 +232,7 @@ export const EnrichedTextInput = ({
|
|
|
231
232
|
}, [editor, resolvedHtmlStyle]);
|
|
232
233
|
const getMentionCallbacks = useCallback(() => mentionCallbacksRef.current, [mentionCallbacksRef]);
|
|
233
234
|
useMentionEvents(editor, getMentionCallbacks);
|
|
234
|
-
useOnChangeHtml(editor,
|
|
235
|
+
useOnChangeHtml(editor, () => sanitizationConfigRef.current, onChangeHtml);
|
|
235
236
|
useOnChangeText(editor, onChangeText);
|
|
236
237
|
useOnChangeState(editor, resolvedHtmlStyle, onChangeState);
|
|
237
238
|
useOnLinkDetected(editor, linkEmitterRef);
|
|
@@ -246,7 +247,7 @@ export const EnrichedTextInput = ({
|
|
|
246
247
|
to: nativePosToTiptapPos(doc, end)
|
|
247
248
|
}));
|
|
248
249
|
},
|
|
249
|
-
getHTML: () => Promise.resolve(normalizeHtmlFromTiptap(editor.getHTML(), sanitizationConfigRef.current)),
|
|
250
|
+
getHTML: () => Promise.resolve(normalizeHtmlFromTiptap(editor.getHTML(), () => sanitizationConfigRef.current)),
|
|
250
251
|
toggleBold: () => runFocused(editor, c => c.toggleBold()),
|
|
251
252
|
toggleItalic: () => runFocused(editor, c => c.toggleItalic()),
|
|
252
253
|
toggleUnderline: () => runFocused(editor, c => c.toggleUnderline()),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useImperativeHandle","useMemo","useRef","adaptWebToNativeEvent","tiptapPosToNativePos","nativePosToTiptapPos","nativeLeafText","useEditor","EditorContent","Document","Paragraph","Text","History","Placeholder","useOnChangeHtml","useOnChangeText","useOnChangeState","useOnLinkDetected","prepareHtmlForTiptap","normalizeHtmlFromTiptap","ENRICHED_TEXT_INPUT_DEFAULT_PROPS","enrichedInputStyleToCSSProperties","enrichedInputThemingToCSSProperties","buildMentionRulesCSS","htmlStyleToCSSVariables","mergeWithDefaultHtmlStyle","EnrichedBold","EnrichedItalic","EnrichedStrike","EnrichedUnderline","EnrichedCode","EnrichedHeading","EnrichedBlockquote","EnrichedCodeBlock","EnrichedImage","EnrichedLink","setLink","removeLink","EnrichedMention","EnrichedListItem","EnrichedUnorderedList","EnrichedOrderedList","EnrichedCheckboxItem","EnrichedCheckboxList","EnrichedTextAlign","StripBoldInStyledHeadingsPlugin","StrictMarksPlugin","MergeAdjacentSameKindBlocksPlugin","StripMarksInCodeBlockPlugin","handleClipboardPasteImages","MentionPlugin","setMention","startMention","useMentionEvents","StripMarksOnImagePlugin","ShortcutPlugin","TextShortcutsPlugin","returnKeyTypeToEnterKeyHint","ENRICHED_TEXT_INPUT_CLASSNAME","AutolinkPlugin","useStableRef","checkMentionAttributes","sanitizeMentionAttributes","assertBrowserEnvironment","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","runFocused","editor","apply","chain","focus","run","EnrichedTextInput","ref","defaultValue","autoFocus","editable","placeholder","placeholderTextColor","cursorColor","selectionColor","autoCapitalize","scrollEnabled","mentionIndicators","slice","onFocus","style","onBlur","onChangeSelection","onKeyPress","onChangeText","onChangeHtml","onChangeState","onLinkDetected","onSubmitEditing","returnKeyType","submitBehavior","onPasteImages","onMentionDetected","onStartMention","onChangeMention","onEndMention","linkRegex","htmlStyle","useHtmlNormalizer","sanitizationConfig","textShortcuts","tiptapContent","resolvedHtmlStyle","mentionCallbacks","htmlStyleRef","onPasteImagesRef","mentionIndicatorsRef","submitBehaviorRef","onSubmitEditingRef","onKeyPressRef","useHtmlNormalizerRef","sanitizationConfigRef","mentionCallbacksRef","textShortcutsRef","editorInstanceRef","handleKeyDown","doc","event","current","key","sb","preventDefault","text","content","size","commands","blur","linkEmitterRef","lastEmitted","extensions","configure","getLinkRegex","getHtmlStyle","getIndicators","getTextShortcuts","getLinkEmitter","showOnlyWhenEditable","autofocus","onCreate","_editor","setContent","target","onSelectionUpdate","state","from","to","selection","start","end","editorProps","view","handlePaste","_view","attributes","enterkeyhint","transformPastedHTML","html","dom","setAttribute","normalizeBoldInStyledHeadings","getMentionCallbacks","setValue","value","setSelection","c","setTextSelection","getHTML","Promise","resolve","toggleBold","toggleItalic","toggleUnderline","toggleStrikeThrough","toggleStrike","toggleInlineCode","toggleCode","toggleH1","toggleHeading","level","toggleH2","toggleH3","toggleH4","toggleH5","toggleH6","toggleCodeBlock","toggleBlockQuote","toggleBlockquote","toggleOrderedList","toggleUnorderedList","toggleCheckboxList","checked","url","indicator","setImage","src","width","height","measure","measureInWindow","measureLayout","setNativeProps","setTextAlignment","alignment","unsetTextAlign","setTextAlign","editorStyle","cssVars","themingStyle","mentionRulesCSS","finalStyle","children","className"],"sourceRoot":"../../../src","sources":["web/EnrichedTextInput.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useImperativeHandle","useMemo","useRef","adaptWebToNativeEvent","tiptapPosToNativePos","nativePosToTiptapPos","nativeLeafText","useEditor","EditorContent","Document","Paragraph","Text","History","Placeholder","useOnChangeHtml","useOnChangeText","useOnChangeState","useOnLinkDetected","prepareHtmlForTiptap","normalizeHtmlFromTiptap","ENRICHED_TEXT_INPUT_DEFAULT_PROPS","enrichedInputStyleToCSSProperties","enrichedInputThemingToCSSProperties","buildMentionRulesCSS","htmlStyleToCSSVariables","mergeWithDefaultHtmlStyle","EnrichedBold","EnrichedItalic","EnrichedStrike","EnrichedUnderline","EnrichedCode","EnrichedHeading","EnrichedBlockquote","EnrichedCodeBlock","EnrichedImage","EnrichedLink","setLink","removeLink","EnrichedMention","EnrichedListItem","EnrichedUnorderedList","EnrichedOrderedList","EnrichedCheckboxItem","EnrichedCheckboxList","EnrichedTextAlign","StripBoldInStyledHeadingsPlugin","StrictMarksPlugin","MergeAdjacentSameKindBlocksPlugin","OrderedListMarkerWidthPlugin","StripMarksInCodeBlockPlugin","handleClipboardPasteImages","MentionPlugin","setMention","startMention","useMentionEvents","StripMarksOnImagePlugin","ShortcutPlugin","TextShortcutsPlugin","returnKeyTypeToEnterKeyHint","ENRICHED_TEXT_INPUT_CLASSNAME","AutolinkPlugin","useStableRef","checkMentionAttributes","sanitizeMentionAttributes","assertBrowserEnvironment","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","runFocused","editor","apply","chain","focus","run","EnrichedTextInput","ref","defaultValue","autoFocus","editable","placeholder","placeholderTextColor","cursorColor","selectionColor","autoCapitalize","scrollEnabled","mentionIndicators","slice","onFocus","style","onBlur","onChangeSelection","onKeyPress","onChangeText","onChangeHtml","onChangeState","onLinkDetected","onSubmitEditing","returnKeyType","submitBehavior","onPasteImages","onMentionDetected","onStartMention","onChangeMention","onEndMention","linkRegex","htmlStyle","useHtmlNormalizer","sanitizationConfig","textShortcuts","tiptapContent","resolvedHtmlStyle","mentionCallbacks","htmlStyleRef","onPasteImagesRef","mentionIndicatorsRef","submitBehaviorRef","onSubmitEditingRef","onKeyPressRef","useHtmlNormalizerRef","sanitizationConfigRef","mentionCallbacksRef","textShortcutsRef","editorInstanceRef","handleKeyDown","doc","event","current","key","sb","preventDefault","text","content","size","commands","blur","linkEmitterRef","lastEmitted","extensions","configure","getLinkRegex","getHtmlStyle","getIndicators","getTextShortcuts","getLinkEmitter","showOnlyWhenEditable","autofocus","onCreate","_editor","setContent","target","onSelectionUpdate","state","from","to","selection","start","end","editorProps","view","handlePaste","_view","attributes","enterkeyhint","transformPastedHTML","html","dom","setAttribute","normalizeBoldInStyledHeadings","getMentionCallbacks","setValue","value","setSelection","c","setTextSelection","getHTML","Promise","resolve","toggleBold","toggleItalic","toggleUnderline","toggleStrikeThrough","toggleStrike","toggleInlineCode","toggleCode","toggleH1","toggleHeading","level","toggleH2","toggleH3","toggleH4","toggleH5","toggleH6","toggleCodeBlock","toggleBlockQuote","toggleBlockquote","toggleOrderedList","toggleUnorderedList","toggleCheckboxList","checked","url","indicator","setImage","src","width","height","measure","measureInWindow","measureLayout","setNativeProps","setTextAlignment","alignment","unsetTextAlign","setTextAlign","editorStyle","cssVars","themingStyle","mentionRulesCSS","finalStyle","children","className"],"sourceRoot":"../../../src","sources":["web/EnrichedTextInput.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createSandbox, eatBackwardUntilFits, removeAfterTarget, scanLines } from "./utils.js";
|
|
4
|
+
|
|
5
|
+
// Truncate the content to `numberOfLines` by hard-cutting the overflow, with no
|
|
6
|
+
// ellipsis. We render the full HTML into a hidden sandbox and do a single
|
|
7
|
+
// forward line scan to learn where each rendered line begins. If the content
|
|
8
|
+
// fits, we keep it as it is. Otherwise we take the first node on the first
|
|
9
|
+
// forbidden line (line N+1) as the target, drop everything "to the right" of it
|
|
10
|
+
// in the document context, then we perform binary-search to find where to cut the
|
|
11
|
+
// content, so everything fits within line N. This works almost the same as tail,
|
|
12
|
+
// only without re-anchoring an ellipsis as we are truncating.
|
|
13
|
+
export function clip(container, finalHtml, numberOfLines, setClampedHtml) {
|
|
14
|
+
const {
|
|
15
|
+
sandbox,
|
|
16
|
+
lineTolerance
|
|
17
|
+
} = createSandbox(container, finalHtml);
|
|
18
|
+
|
|
19
|
+
// forward scan - we find the first element that overflows to the forbidden line
|
|
20
|
+
const {
|
|
21
|
+
lineStarts,
|
|
22
|
+
lineBottoms,
|
|
23
|
+
lastLine
|
|
24
|
+
} = scanLines(sandbox, lineTolerance);
|
|
25
|
+
|
|
26
|
+
// the node that starts the overflow
|
|
27
|
+
const targetNode = lastLine > numberOfLines ? lineStarts[numberOfLines + 1] : undefined;
|
|
28
|
+
|
|
29
|
+
// we remove content until everything fits within the given number of lines
|
|
30
|
+
if (targetNode) {
|
|
31
|
+
// remove all content on "the right" of the targetNode
|
|
32
|
+
removeAfterTarget(targetNode.node, sandbox);
|
|
33
|
+
|
|
34
|
+
// remove content backwards until it fits - unlike tail, clip adds no ellipsis
|
|
35
|
+
eatBackwardUntilFits(sandbox, lineBottoms[numberOfLines] ?? null, lineTolerance, false);
|
|
36
|
+
setClampedHtml(sandbox.innerHTML);
|
|
37
|
+
} else {
|
|
38
|
+
setClampedHtml(finalHtml);
|
|
39
|
+
}
|
|
40
|
+
container.removeChild(sandbox);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=clip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createSandbox","eatBackwardUntilFits","removeAfterTarget","scanLines","clip","container","finalHtml","numberOfLines","setClampedHtml","sandbox","lineTolerance","lineStarts","lineBottoms","lastLine","targetNode","undefined","node","innerHTML","removeChild"],"sourceRoot":"../../../../src","sources":["web/ellipsizeMode/clip.ts"],"mappings":";;AAAA,SACEA,aAAa,EACbC,oBAAoB,EACpBC,iBAAiB,EACjBC,SAAS,QACJ,YAAS;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,IAAIA,CAClBC,SAAyB,EACzBC,SAAiB,EACjBC,aAAqB,EACrBC,cAA6C,EAC7C;EACA,MAAM;IAAEC,OAAO;IAAEC;EAAc,CAAC,GAAGV,aAAa,CAACK,SAAS,EAAEC,SAAS,CAAC;;EAEtE;EACA,MAAM;IAAEK,UAAU;IAAEC,WAAW;IAAEC;EAAS,CAAC,GAAGV,SAAS,CACrDM,OAAO,EACPC,aACF,CAAC;;EAED;EACA,MAAMI,UAAU,GACdD,QAAQ,GAAGN,aAAa,GAAGI,UAAU,CAACJ,aAAa,GAAG,CAAC,CAAC,GAAGQ,SAAS;;EAEtE;EACA,IAAID,UAAU,EAAE;IACd;IACAZ,iBAAiB,CAACY,UAAU,CAACE,IAAI,EAAEP,OAAO,CAAC;;IAE3C;IACAR,oBAAoB,CAClBQ,OAAO,EACPG,WAAW,CAACL,aAAa,CAAC,IAAI,IAAI,EAClCG,aAAa,EACb,KACF,CAAC;IAEDF,cAAc,CAACC,OAAO,CAACQ,SAAS,CAAC;EACnC,CAAC,MAAM;IACLT,cAAc,CAACF,SAAS,CAAC;EAC3B;EAEAD,SAAS,CAACa,WAAW,CAACT,OAAO,CAAC;AAChC","ignoreList":[]}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { BLOCK_TAGS, createSandbox, eatForwardUntilFits, ELLIPSIS_CHAR, fitsWithin, getBlockParent, innermostEmptyBlock, markLastListOrdinal, removeAndCleanUp, restoreLastListOrdinal, scanLines, splitAtMark, walkerFilter } from "./utils.js";
|
|
4
|
+
|
|
5
|
+
// Keep the total of `numberOfLines` lines - the first original N-1 lines and
|
|
6
|
+
// the last one starting with a leading ellipsis, hiding the truncation between
|
|
7
|
+
// that last line and the first N-1 lines. We render the full HTML into a hidden
|
|
8
|
+
// sandbox and forward-scan to find where each line begins. If it fits, keep as it is.
|
|
9
|
+
// Otherwise:
|
|
10
|
+
// - If more than one line overflows (lastLine > N+1), there are whole middle
|
|
11
|
+
// lines we can delete outright. We split the DOM at the start of line N
|
|
12
|
+
// and at the second-to-last line, then walk between those two points
|
|
13
|
+
// removing every node in that range.
|
|
14
|
+
// - If exactly one line overflows, we proceed further.
|
|
15
|
+
//
|
|
16
|
+
// When the last two lines live in different blocks we can still safely drop
|
|
17
|
+
// that second-to-last line. We then insert the "..." at the start of the surviving tail
|
|
18
|
+
// (adding a <br> to make sure it sits at the absolute line start). We then perform
|
|
19
|
+
// binary-search to find the place to cut the content, so it fits together on that
|
|
20
|
+
// single ellipsis line.
|
|
21
|
+
export function headEllipsize(container, finalHtml, numberOfLines, setClampedHtml) {
|
|
22
|
+
const {
|
|
23
|
+
sandbox,
|
|
24
|
+
lineTolerance
|
|
25
|
+
} = createSandbox(container, finalHtml);
|
|
26
|
+
const range = document.createRange();
|
|
27
|
+
|
|
28
|
+
// forward scan - we gather data about nodes that start each new line
|
|
29
|
+
const {
|
|
30
|
+
lineStarts,
|
|
31
|
+
lastLine: originalLastLine
|
|
32
|
+
} = scanLines(sandbox, lineTolerance);
|
|
33
|
+
|
|
34
|
+
// we need to truncate as number of lines overflows the given maximum
|
|
35
|
+
if (originalLastLine > numberOfLines) {
|
|
36
|
+
// remember the ordinal of the <li> that owns the last line before we strip
|
|
37
|
+
// the items above it, so it keeps its original number
|
|
38
|
+
markLastListOrdinal(lineStarts[originalLastLine].node, sandbox);
|
|
39
|
+
let targetNode = null;
|
|
40
|
+
let overflowStartNode = null;
|
|
41
|
+
|
|
42
|
+
// if true, it means that there are lines that we can safely delete
|
|
43
|
+
// between the first N-1 valid ones that we leave untouched
|
|
44
|
+
// and the last two lines that will become the line with the ellipsis
|
|
45
|
+
if (originalLastLine > numberOfLines + 1) {
|
|
46
|
+
const lastMark = lineStarts[originalLastLine];
|
|
47
|
+
// the second last line
|
|
48
|
+
let safeMark = lineStarts[originalLastLine - 1];
|
|
49
|
+
|
|
50
|
+
// if they are in different blocks, it means we can safely
|
|
51
|
+
// delete also the second to last line
|
|
52
|
+
if (getBlockParent(safeMark.node, sandbox) !== getBlockParent(lastMark.node, sandbox)) {
|
|
53
|
+
safeMark = lastMark;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// we split so we only delete a part of the block's content
|
|
57
|
+
targetNode = splitAtMark(safeMark);
|
|
58
|
+
const startMark = lineStarts[numberOfLines];
|
|
59
|
+
overflowStartNode = splitAtMark(startMark);
|
|
60
|
+
|
|
61
|
+
// we delete the lines
|
|
62
|
+
const rmWalker = document.createTreeWalker(sandbox, NodeFilter.SHOW_ALL, walkerFilter);
|
|
63
|
+
let past = false;
|
|
64
|
+
const toRm = [];
|
|
65
|
+
while (rmWalker.nextNode()) {
|
|
66
|
+
if (rmWalker.currentNode === overflowStartNode) past = true;else if (rmWalker.currentNode === targetNode) break;
|
|
67
|
+
if (past) toRm.push(rmWalker.currentNode);
|
|
68
|
+
}
|
|
69
|
+
toRm.forEach(n => removeAndCleanUp(n, sandbox));
|
|
70
|
+
} else {
|
|
71
|
+
// this branch handles the case where exactly one line overflows,
|
|
72
|
+
// which means we have no lines to safely delete before those two last lines
|
|
73
|
+
|
|
74
|
+
const startMark = lineStarts[numberOfLines]; // the second to last line
|
|
75
|
+
const tailMark = lineStarts[originalLastLine];
|
|
76
|
+
|
|
77
|
+
// if the second to last line is in a different block than the last one,
|
|
78
|
+
// we can safely delete it
|
|
79
|
+
if (getBlockParent(startMark.node, sandbox) !== getBlockParent(tailMark.node, sandbox)) {
|
|
80
|
+
// we perform the same two splits we needed in the previous branch
|
|
81
|
+
overflowStartNode = splitAtMark(startMark);
|
|
82
|
+
targetNode = splitAtMark(tailMark);
|
|
83
|
+
|
|
84
|
+
// delete the line
|
|
85
|
+
const rmWalker = document.createTreeWalker(sandbox, NodeFilter.SHOW_ALL, walkerFilter);
|
|
86
|
+
let past = false;
|
|
87
|
+
const toRm = [];
|
|
88
|
+
while (rmWalker.nextNode()) {
|
|
89
|
+
if (rmWalker.currentNode === overflowStartNode) past = true;else if (rmWalker.currentNode === targetNode) break;
|
|
90
|
+
if (past) toRm.push(rmWalker.currentNode);
|
|
91
|
+
}
|
|
92
|
+
toRm.forEach(n => removeAndCleanUp(n, sandbox));
|
|
93
|
+
} else {
|
|
94
|
+
// the last two lines are in the same block - needs character by character truncation.
|
|
95
|
+
// The split is also needed here so we can insert a <br> if needed
|
|
96
|
+
targetNode = splitAtMark(startMark);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// now we append the ellipsis and start the truncation at the targetNode
|
|
101
|
+
const ellipsisNode = document.createTextNode(ELLIPSIS_CHAR);
|
|
102
|
+
if (targetNode) {
|
|
103
|
+
// if we have an empty block, eg. <li></li>, we append the ellipsis inside it
|
|
104
|
+
if (targetNode.nodeType === Node.ELEMENT_NODE && BLOCK_TAGS.has(targetNode.nodeName)) {
|
|
105
|
+
innermostEmptyBlock(targetNode).appendChild(ellipsisNode);
|
|
106
|
+
} else {
|
|
107
|
+
const prevWalker = document.createTreeWalker(sandbox, NodeFilter.SHOW_ALL, walkerFilter);
|
|
108
|
+
prevWalker.currentNode = targetNode;
|
|
109
|
+
const prevNode = prevWalker.previousNode();
|
|
110
|
+
|
|
111
|
+
// if the targetNode isn't starting a paragraph of its own,
|
|
112
|
+
// we need a <br> to make sure the ellipsis sits at the start of the line
|
|
113
|
+
if (prevNode && prevNode.nodeName !== 'BR' && getBlockParent(prevNode, sandbox) === getBlockParent(targetNode, sandbox)) {
|
|
114
|
+
const brNode = document.createElement('br');
|
|
115
|
+
targetNode.parentNode?.insertBefore(brNode, targetNode);
|
|
116
|
+
}
|
|
117
|
+
targetNode.parentNode?.insertBefore(ellipsisNode, targetNode);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// now we are left with at most two lines that we have to merge into one - the ellipsis line
|
|
122
|
+
|
|
123
|
+
// everything after the ellipsis has to fit on the ellipsis' own line
|
|
124
|
+
const checkFits = () => {
|
|
125
|
+
range.selectNodeContents(ellipsisNode);
|
|
126
|
+
const targetBottom = range.getBoundingClientRect().bottom;
|
|
127
|
+
return fitsWithin(sandbox, ellipsisNode, targetBottom, lineTolerance);
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
// truncating until those two last lines fit
|
|
131
|
+
eatForwardUntilFits(sandbox, ellipsisNode, checkFits);
|
|
132
|
+
|
|
133
|
+
// restore the saved ordinal onto the surviving tail <li>
|
|
134
|
+
restoreLastListOrdinal(sandbox);
|
|
135
|
+
setClampedHtml(sandbox.innerHTML);
|
|
136
|
+
} else {
|
|
137
|
+
setClampedHtml(finalHtml);
|
|
138
|
+
}
|
|
139
|
+
container.removeChild(sandbox);
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=headEllipsize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BLOCK_TAGS","createSandbox","eatForwardUntilFits","ELLIPSIS_CHAR","fitsWithin","getBlockParent","innermostEmptyBlock","markLastListOrdinal","removeAndCleanUp","restoreLastListOrdinal","scanLines","splitAtMark","walkerFilter","headEllipsize","container","finalHtml","numberOfLines","setClampedHtml","sandbox","lineTolerance","range","document","createRange","lineStarts","lastLine","originalLastLine","node","targetNode","overflowStartNode","lastMark","safeMark","startMark","rmWalker","createTreeWalker","NodeFilter","SHOW_ALL","past","toRm","nextNode","currentNode","push","forEach","n","tailMark","ellipsisNode","createTextNode","nodeType","Node","ELEMENT_NODE","has","nodeName","appendChild","prevWalker","prevNode","previousNode","brNode","createElement","parentNode","insertBefore","checkFits","selectNodeContents","targetBottom","getBoundingClientRect","bottom","innerHTML","removeChild"],"sourceRoot":"../../../../src","sources":["web/ellipsizeMode/headEllipsize.ts"],"mappings":"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","ignoreList":[]}
|