@next-shared/form 0.9.2 → 0.9.3
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/cjs/getContentRectsInTextarea.js +57 -0
- package/dist/cjs/getContentRectsInTextarea.js.map +1 -0
- package/dist/cjs/index.js +4 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/getContentRectsInTextarea.js +51 -0
- package/dist/esm/getContentRectsInTextarea.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/types/getContentRectsInTextarea.d.ts +1 -0
- package/dist/types/index.d.ts +1 -1
- package/package.json +2 -2
- package/dist/cjs/getContentRectInTextarea.js +0 -25
- package/dist/cjs/getContentRectInTextarea.js.map +0 -1
- package/dist/esm/getContentRectInTextarea.js +0 -19
- package/dist/esm/getContentRectInTextarea.js.map +0 -1
- package/dist/types/getContentRectInTextarea.d.ts +0 -1
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getContentRectsInTextarea = getContentRectsInTextarea;
|
|
7
|
+
var _getMirroredStyle = require("./utils/getMirroredStyle.js");
|
|
8
|
+
let hiddenElement;
|
|
9
|
+
function getContentRectsInTextarea(textarea, prefix, measureContent) {
|
|
10
|
+
if (!hiddenElement) {
|
|
11
|
+
hiddenElement = document.createElement("div");
|
|
12
|
+
hiddenElement.setAttribute("tab-index", "-1");
|
|
13
|
+
hiddenElement.setAttribute("aria-hidden", "true");
|
|
14
|
+
document.body.appendChild(hiddenElement);
|
|
15
|
+
}
|
|
16
|
+
hiddenElement.setAttribute("style", (0, _getMirroredStyle.getMirroredStyle)(textarea));
|
|
17
|
+
hiddenElement.textContent = prefix;
|
|
18
|
+
const span = document.createElement("span");
|
|
19
|
+
span.textContent = measureContent;
|
|
20
|
+
hiddenElement.appendChild(span);
|
|
21
|
+
const fullRect = span.getBoundingClientRect();
|
|
22
|
+
span.remove();
|
|
23
|
+
if (measureContent.length <= 1) {
|
|
24
|
+
return [fullRect];
|
|
25
|
+
}
|
|
26
|
+
const leadingChar = measureContent[0];
|
|
27
|
+
const leadingSpan = document.createElement("span");
|
|
28
|
+
leadingSpan.textContent = leadingChar;
|
|
29
|
+
hiddenElement.appendChild(leadingSpan);
|
|
30
|
+
const leadingRect = leadingSpan.getBoundingClientRect();
|
|
31
|
+
leadingSpan.remove();
|
|
32
|
+
hiddenElement.textContent = `${prefix}${measureContent.slice(0, -1)}`;
|
|
33
|
+
const trailingChar = measureContent[measureContent.length - 1];
|
|
34
|
+
const trailingSpan = document.createElement("span");
|
|
35
|
+
trailingSpan.textContent = trailingChar;
|
|
36
|
+
hiddenElement.appendChild(trailingSpan);
|
|
37
|
+
const trailingRect = trailingSpan.getBoundingClientRect();
|
|
38
|
+
trailingSpan.remove();
|
|
39
|
+
if (leadingRect.top === trailingRect.top) {
|
|
40
|
+
return [fullRect];
|
|
41
|
+
}
|
|
42
|
+
const rects = [];
|
|
43
|
+
|
|
44
|
+
// Leading rect
|
|
45
|
+
rects.push(new DOMRect(leadingRect.left, leadingRect.top, fullRect.right - leadingRect.left, leadingRect.bottom - leadingRect.top));
|
|
46
|
+
|
|
47
|
+
// Middle rect
|
|
48
|
+
const height = trailingRect.top - leadingRect.bottom;
|
|
49
|
+
if (height >= 10) {
|
|
50
|
+
rects.push(new DOMRect(fullRect.left, leadingRect.bottom, fullRect.width, height));
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Trailing rect
|
|
54
|
+
rects.push(new DOMRect(fullRect.left, trailingRect.top, trailingRect.right - fullRect.left, trailingRect.bottom - trailingRect.top));
|
|
55
|
+
return rects;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=getContentRectsInTextarea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getContentRectsInTextarea.js","names":["_getMirroredStyle","require","hiddenElement","getContentRectsInTextarea","textarea","prefix","measureContent","document","createElement","setAttribute","body","appendChild","getMirroredStyle","textContent","span","fullRect","getBoundingClientRect","remove","length","leadingChar","leadingSpan","leadingRect","slice","trailingChar","trailingSpan","trailingRect","top","rects","push","DOMRect","left","right","bottom","height","width"],"sources":["../../src/getContentRectsInTextarea.ts"],"sourcesContent":["import { getMirroredStyle } from \"./utils/getMirroredStyle.js\";\n\nlet hiddenElement: HTMLDivElement | undefined;\n\nexport function getContentRectsInTextarea(\n textarea: HTMLTextAreaElement,\n prefix: string,\n measureContent: string\n): DOMRect[] {\n if (!hiddenElement) {\n hiddenElement = document.createElement(\"div\");\n hiddenElement.setAttribute(\"tab-index\", \"-1\");\n hiddenElement.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenElement);\n }\n hiddenElement.setAttribute(\"style\", getMirroredStyle(textarea));\n\n hiddenElement.textContent = prefix;\n\n const span = document.createElement(\"span\");\n span.textContent = measureContent;\n hiddenElement.appendChild(span);\n\n const fullRect = span.getBoundingClientRect();\n span.remove();\n\n if (measureContent.length <= 1) {\n return [fullRect];\n }\n\n const leadingChar = measureContent[0];\n const leadingSpan = document.createElement(\"span\");\n leadingSpan.textContent = leadingChar;\n hiddenElement.appendChild(leadingSpan);\n const leadingRect = leadingSpan.getBoundingClientRect();\n leadingSpan.remove();\n\n hiddenElement.textContent = `${prefix}${measureContent.slice(0, -1)}`;\n const trailingChar = measureContent[measureContent.length - 1];\n const trailingSpan = document.createElement(\"span\");\n trailingSpan.textContent = trailingChar;\n hiddenElement.appendChild(trailingSpan);\n const trailingRect = trailingSpan.getBoundingClientRect();\n trailingSpan.remove();\n\n if (leadingRect.top === trailingRect.top) {\n return [fullRect];\n }\n\n const rects: DOMRect[] = [];\n\n // Leading rect\n rects.push(\n new DOMRect(\n leadingRect.left,\n leadingRect.top,\n fullRect.right - leadingRect.left,\n leadingRect.bottom - leadingRect.top\n )\n );\n\n // Middle rect\n const height = trailingRect.top - leadingRect.bottom;\n if (height >= 10) {\n rects.push(\n new DOMRect(fullRect.left, leadingRect.bottom, fullRect.width, height)\n );\n }\n\n // Trailing rect\n rects.push(\n new DOMRect(\n fullRect.left,\n trailingRect.top,\n trailingRect.right - fullRect.left,\n trailingRect.bottom - trailingRect.top\n )\n );\n\n return rects;\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/cjs/index.js
CHANGED
|
@@ -80,14 +80,14 @@ Object.keys(_getCaretPositionInTextarea).forEach(function (key) {
|
|
|
80
80
|
}
|
|
81
81
|
});
|
|
82
82
|
});
|
|
83
|
-
var
|
|
84
|
-
Object.keys(
|
|
83
|
+
var _getContentRectsInTextarea = require("./getContentRectsInTextarea.js");
|
|
84
|
+
Object.keys(_getContentRectsInTextarea).forEach(function (key) {
|
|
85
85
|
if (key === "default" || key === "__esModule") return;
|
|
86
|
-
if (key in exports && exports[key] ===
|
|
86
|
+
if (key in exports && exports[key] === _getContentRectsInTextarea[key]) return;
|
|
87
87
|
Object.defineProperty(exports, key, {
|
|
88
88
|
enumerable: true,
|
|
89
89
|
get: function () {
|
|
90
|
-
return
|
|
90
|
+
return _getContentRectsInTextarea[key];
|
|
91
91
|
}
|
|
92
92
|
});
|
|
93
93
|
});
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_Form","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_FormItemElement","_FormStore","_interfaces","_pickFormItemProps","_TextareaAutoResize","_getCaretPositionInTextarea","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_Form","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_FormItemElement","_FormStore","_interfaces","_pickFormItemProps","_TextareaAutoResize","_getCaretPositionInTextarea","_getContentRectsInTextarea"],"sources":["../../src/index.ts"],"sourcesContent":["export * from \"./Form.js\";\nexport * from \"./FormItemElement.js\";\nexport * from \"./FormStore.js\";\nexport * from \"./interfaces.js\";\nexport * from \"./pickFormItemProps.js\";\nexport * from \"./TextareaAutoResize.js\";\nexport * from \"./getCaretPositionInTextarea.js\";\nexport * from \"./getContentRectsInTextarea.js\";\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { getMirroredStyle } from "./utils/getMirroredStyle.js";
|
|
2
|
+
let hiddenElement;
|
|
3
|
+
export function getContentRectsInTextarea(textarea, prefix, measureContent) {
|
|
4
|
+
if (!hiddenElement) {
|
|
5
|
+
hiddenElement = document.createElement("div");
|
|
6
|
+
hiddenElement.setAttribute("tab-index", "-1");
|
|
7
|
+
hiddenElement.setAttribute("aria-hidden", "true");
|
|
8
|
+
document.body.appendChild(hiddenElement);
|
|
9
|
+
}
|
|
10
|
+
hiddenElement.setAttribute("style", getMirroredStyle(textarea));
|
|
11
|
+
hiddenElement.textContent = prefix;
|
|
12
|
+
const span = document.createElement("span");
|
|
13
|
+
span.textContent = measureContent;
|
|
14
|
+
hiddenElement.appendChild(span);
|
|
15
|
+
const fullRect = span.getBoundingClientRect();
|
|
16
|
+
span.remove();
|
|
17
|
+
if (measureContent.length <= 1) {
|
|
18
|
+
return [fullRect];
|
|
19
|
+
}
|
|
20
|
+
const leadingChar = measureContent[0];
|
|
21
|
+
const leadingSpan = document.createElement("span");
|
|
22
|
+
leadingSpan.textContent = leadingChar;
|
|
23
|
+
hiddenElement.appendChild(leadingSpan);
|
|
24
|
+
const leadingRect = leadingSpan.getBoundingClientRect();
|
|
25
|
+
leadingSpan.remove();
|
|
26
|
+
hiddenElement.textContent = `${prefix}${measureContent.slice(0, -1)}`;
|
|
27
|
+
const trailingChar = measureContent[measureContent.length - 1];
|
|
28
|
+
const trailingSpan = document.createElement("span");
|
|
29
|
+
trailingSpan.textContent = trailingChar;
|
|
30
|
+
hiddenElement.appendChild(trailingSpan);
|
|
31
|
+
const trailingRect = trailingSpan.getBoundingClientRect();
|
|
32
|
+
trailingSpan.remove();
|
|
33
|
+
if (leadingRect.top === trailingRect.top) {
|
|
34
|
+
return [fullRect];
|
|
35
|
+
}
|
|
36
|
+
const rects = [];
|
|
37
|
+
|
|
38
|
+
// Leading rect
|
|
39
|
+
rects.push(new DOMRect(leadingRect.left, leadingRect.top, fullRect.right - leadingRect.left, leadingRect.bottom - leadingRect.top));
|
|
40
|
+
|
|
41
|
+
// Middle rect
|
|
42
|
+
const height = trailingRect.top - leadingRect.bottom;
|
|
43
|
+
if (height >= 10) {
|
|
44
|
+
rects.push(new DOMRect(fullRect.left, leadingRect.bottom, fullRect.width, height));
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Trailing rect
|
|
48
|
+
rects.push(new DOMRect(fullRect.left, trailingRect.top, trailingRect.right - fullRect.left, trailingRect.bottom - trailingRect.top));
|
|
49
|
+
return rects;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=getContentRectsInTextarea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getContentRectsInTextarea.js","names":["getMirroredStyle","hiddenElement","getContentRectsInTextarea","textarea","prefix","measureContent","document","createElement","setAttribute","body","appendChild","textContent","span","fullRect","getBoundingClientRect","remove","length","leadingChar","leadingSpan","leadingRect","slice","trailingChar","trailingSpan","trailingRect","top","rects","push","DOMRect","left","right","bottom","height","width"],"sources":["../../src/getContentRectsInTextarea.ts"],"sourcesContent":["import { getMirroredStyle } from \"./utils/getMirroredStyle.js\";\n\nlet hiddenElement: HTMLDivElement | undefined;\n\nexport function getContentRectsInTextarea(\n textarea: HTMLTextAreaElement,\n prefix: string,\n measureContent: string\n): DOMRect[] {\n if (!hiddenElement) {\n hiddenElement = document.createElement(\"div\");\n hiddenElement.setAttribute(\"tab-index\", \"-1\");\n hiddenElement.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenElement);\n }\n hiddenElement.setAttribute(\"style\", getMirroredStyle(textarea));\n\n hiddenElement.textContent = prefix;\n\n const span = document.createElement(\"span\");\n span.textContent = measureContent;\n hiddenElement.appendChild(span);\n\n const fullRect = span.getBoundingClientRect();\n span.remove();\n\n if (measureContent.length <= 1) {\n return [fullRect];\n }\n\n const leadingChar = measureContent[0];\n const leadingSpan = document.createElement(\"span\");\n leadingSpan.textContent = leadingChar;\n hiddenElement.appendChild(leadingSpan);\n const leadingRect = leadingSpan.getBoundingClientRect();\n leadingSpan.remove();\n\n hiddenElement.textContent = `${prefix}${measureContent.slice(0, -1)}`;\n const trailingChar = measureContent[measureContent.length - 1];\n const trailingSpan = document.createElement(\"span\");\n trailingSpan.textContent = trailingChar;\n hiddenElement.appendChild(trailingSpan);\n const trailingRect = trailingSpan.getBoundingClientRect();\n trailingSpan.remove();\n\n if (leadingRect.top === trailingRect.top) {\n return [fullRect];\n }\n\n const rects: DOMRect[] = [];\n\n // Leading rect\n rects.push(\n new DOMRect(\n leadingRect.left,\n leadingRect.top,\n fullRect.right - leadingRect.left,\n leadingRect.bottom - leadingRect.top\n )\n );\n\n // Middle rect\n const height = trailingRect.top - leadingRect.bottom;\n if (height >= 10) {\n rects.push(\n new DOMRect(fullRect.left, leadingRect.bottom, fullRect.width, height)\n );\n }\n\n // Trailing rect\n rects.push(\n new DOMRect(\n fullRect.left,\n trailingRect.top,\n trailingRect.right - fullRect.left,\n trailingRect.bottom - trailingRect.top\n )\n );\n\n return rects;\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/esm/index.js
CHANGED
|
@@ -5,5 +5,5 @@ export * from "./interfaces.js";
|
|
|
5
5
|
export * from "./pickFormItemProps.js";
|
|
6
6
|
export * from "./TextareaAutoResize.js";
|
|
7
7
|
export * from "./getCaretPositionInTextarea.js";
|
|
8
|
-
export * from "./
|
|
8
|
+
export * from "./getContentRectsInTextarea.js";
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export * from \"./Form.js\";\nexport * from \"./FormItemElement.js\";\nexport * from \"./FormStore.js\";\nexport * from \"./interfaces.js\";\nexport * from \"./pickFormItemProps.js\";\nexport * from \"./TextareaAutoResize.js\";\nexport * from \"./getCaretPositionInTextarea.js\";\nexport * from \"./
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export * from \"./Form.js\";\nexport * from \"./FormItemElement.js\";\nexport * from \"./FormStore.js\";\nexport * from \"./interfaces.js\";\nexport * from \"./pickFormItemProps.js\";\nexport * from \"./TextareaAutoResize.js\";\nexport * from \"./getCaretPositionInTextarea.js\";\nexport * from \"./getContentRectsInTextarea.js\";\n"],"mappings":"AAAA,cAAc,WAAW;AACzB,cAAc,sBAAsB;AACpC,cAAc,gBAAgB;AAC9B,cAAc,iBAAiB;AAC/B,cAAc,wBAAwB;AACtC,cAAc,yBAAyB;AACvC,cAAc,iCAAiC;AAC/C,cAAc,gCAAgC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getContentRectsInTextarea(textarea: HTMLTextAreaElement, prefix: string, measureContent: string): DOMRect[];
|
package/dist/types/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-shared/form",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.3",
|
|
4
4
|
"homepage": "https://github.com/easyops-cn/next-advanced-bricks/tree/master/shared/form",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
"@next-core/test-next": "^2.0.1",
|
|
49
49
|
"concurrently": "^9.1.0"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "95eaa69743b3bda2fb3c2d9bf2f4c896f503ca03"
|
|
52
52
|
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getContentRectInTextarea = getContentRectInTextarea;
|
|
7
|
-
var _getMirroredStyle = require("./utils/getMirroredStyle.js");
|
|
8
|
-
let hiddenElement;
|
|
9
|
-
function getContentRectInTextarea(textarea, prefix, measureContent) {
|
|
10
|
-
if (!hiddenElement) {
|
|
11
|
-
hiddenElement = document.createElement("div");
|
|
12
|
-
hiddenElement.setAttribute("tab-index", "-1");
|
|
13
|
-
hiddenElement.setAttribute("aria-hidden", "true");
|
|
14
|
-
document.body.appendChild(hiddenElement);
|
|
15
|
-
}
|
|
16
|
-
hiddenElement.setAttribute("style", (0, _getMirroredStyle.getMirroredStyle)(textarea));
|
|
17
|
-
hiddenElement.textContent = prefix;
|
|
18
|
-
const span = document.createElement("span");
|
|
19
|
-
span.textContent = measureContent;
|
|
20
|
-
hiddenElement.appendChild(span);
|
|
21
|
-
const rect = span.getBoundingClientRect();
|
|
22
|
-
span.remove();
|
|
23
|
-
return rect;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=getContentRectInTextarea.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getContentRectInTextarea.js","names":["_getMirroredStyle","require","hiddenElement","getContentRectInTextarea","textarea","prefix","measureContent","document","createElement","setAttribute","body","appendChild","getMirroredStyle","textContent","span","rect","getBoundingClientRect","remove"],"sources":["../../src/getContentRectInTextarea.ts"],"sourcesContent":["import { getMirroredStyle } from \"./utils/getMirroredStyle.js\";\n\nlet hiddenElement: HTMLDivElement | undefined;\n\nexport function getContentRectInTextarea(\n textarea: HTMLTextAreaElement,\n prefix: string,\n measureContent: string\n) {\n if (!hiddenElement) {\n hiddenElement = document.createElement(\"div\");\n hiddenElement.setAttribute(\"tab-index\", \"-1\");\n hiddenElement.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenElement);\n }\n hiddenElement.setAttribute(\"style\", getMirroredStyle(textarea));\n\n hiddenElement.textContent = prefix;\n\n const span = document.createElement(\"span\");\n span.textContent = measureContent;\n hiddenElement.appendChild(span);\n\n const rect = span.getBoundingClientRect();\n span.remove();\n return rect;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAEA,IAAIC,aAAyC;AAEtC,SAASC,wBAAwBA,CACtCC,QAA6B,EAC7BC,MAAc,EACdC,cAAsB,EACtB;EACA,IAAI,CAACJ,aAAa,EAAE;IAClBA,aAAa,GAAGK,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;IAC7CN,aAAa,CAACO,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC;IAC7CP,aAAa,CAACO,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;IACjDF,QAAQ,CAACG,IAAI,CAACC,WAAW,CAACT,aAAa,CAAC;EAC1C;EACAA,aAAa,CAACO,YAAY,CAAC,OAAO,EAAE,IAAAG,kCAAgB,EAACR,QAAQ,CAAC,CAAC;EAE/DF,aAAa,CAACW,WAAW,GAAGR,MAAM;EAElC,MAAMS,IAAI,GAAGP,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC;EAC3CM,IAAI,CAACD,WAAW,GAAGP,cAAc;EACjCJ,aAAa,CAACS,WAAW,CAACG,IAAI,CAAC;EAE/B,MAAMC,IAAI,GAAGD,IAAI,CAACE,qBAAqB,CAAC,CAAC;EACzCF,IAAI,CAACG,MAAM,CAAC,CAAC;EACb,OAAOF,IAAI;AACb","ignoreList":[]}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { getMirroredStyle } from "./utils/getMirroredStyle.js";
|
|
2
|
-
let hiddenElement;
|
|
3
|
-
export function getContentRectInTextarea(textarea, prefix, measureContent) {
|
|
4
|
-
if (!hiddenElement) {
|
|
5
|
-
hiddenElement = document.createElement("div");
|
|
6
|
-
hiddenElement.setAttribute("tab-index", "-1");
|
|
7
|
-
hiddenElement.setAttribute("aria-hidden", "true");
|
|
8
|
-
document.body.appendChild(hiddenElement);
|
|
9
|
-
}
|
|
10
|
-
hiddenElement.setAttribute("style", getMirroredStyle(textarea));
|
|
11
|
-
hiddenElement.textContent = prefix;
|
|
12
|
-
const span = document.createElement("span");
|
|
13
|
-
span.textContent = measureContent;
|
|
14
|
-
hiddenElement.appendChild(span);
|
|
15
|
-
const rect = span.getBoundingClientRect();
|
|
16
|
-
span.remove();
|
|
17
|
-
return rect;
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=getContentRectInTextarea.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getContentRectInTextarea.js","names":["getMirroredStyle","hiddenElement","getContentRectInTextarea","textarea","prefix","measureContent","document","createElement","setAttribute","body","appendChild","textContent","span","rect","getBoundingClientRect","remove"],"sources":["../../src/getContentRectInTextarea.ts"],"sourcesContent":["import { getMirroredStyle } from \"./utils/getMirroredStyle.js\";\n\nlet hiddenElement: HTMLDivElement | undefined;\n\nexport function getContentRectInTextarea(\n textarea: HTMLTextAreaElement,\n prefix: string,\n measureContent: string\n) {\n if (!hiddenElement) {\n hiddenElement = document.createElement(\"div\");\n hiddenElement.setAttribute(\"tab-index\", \"-1\");\n hiddenElement.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenElement);\n }\n hiddenElement.setAttribute(\"style\", getMirroredStyle(textarea));\n\n hiddenElement.textContent = prefix;\n\n const span = document.createElement(\"span\");\n span.textContent = measureContent;\n hiddenElement.appendChild(span);\n\n const rect = span.getBoundingClientRect();\n span.remove();\n return rect;\n}\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,6BAA6B;AAE9D,IAAIC,aAAyC;AAE7C,OAAO,SAASC,wBAAwBA,CACtCC,QAA6B,EAC7BC,MAAc,EACdC,cAAsB,EACtB;EACA,IAAI,CAACJ,aAAa,EAAE;IAClBA,aAAa,GAAGK,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;IAC7CN,aAAa,CAACO,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC;IAC7CP,aAAa,CAACO,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;IACjDF,QAAQ,CAACG,IAAI,CAACC,WAAW,CAACT,aAAa,CAAC;EAC1C;EACAA,aAAa,CAACO,YAAY,CAAC,OAAO,EAAER,gBAAgB,CAACG,QAAQ,CAAC,CAAC;EAE/DF,aAAa,CAACU,WAAW,GAAGP,MAAM;EAElC,MAAMQ,IAAI,GAAGN,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC;EAC3CK,IAAI,CAACD,WAAW,GAAGN,cAAc;EACjCJ,aAAa,CAACS,WAAW,CAACE,IAAI,CAAC;EAE/B,MAAMC,IAAI,GAAGD,IAAI,CAACE,qBAAqB,CAAC,CAAC;EACzCF,IAAI,CAACG,MAAM,CAAC,CAAC;EACb,OAAOF,IAAI;AACb","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function getContentRectInTextarea(textarea: HTMLTextAreaElement, prefix: string, measureContent: string): DOMRect;
|