@next2d/text 1.18.12 → 2.0.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.
Files changed (181) hide show
  1. package/package.json +14 -18
  2. package/src/TextArea/service/TextAreaMovePositionService.d.ts +11 -0
  3. package/src/TextArea/service/TextAreaMovePositionService.js +42 -0
  4. package/src/TextArea/usecase/TextAreaCompositionEndUseCase.d.ts +9 -0
  5. package/src/TextArea/usecase/TextAreaCompositionEndUseCase.js +17 -0
  6. package/src/TextArea/usecase/TextAreaCompositionStartUseCase.d.ts +9 -0
  7. package/src/TextArea/usecase/TextAreaCompositionStartUseCase.js +17 -0
  8. package/src/TextArea/usecase/TextAreaCompositionUpdateUseCase.d.ts +10 -0
  9. package/src/TextArea/usecase/TextAreaCompositionUpdateUseCase.js +18 -0
  10. package/src/TextArea/usecase/TextAreaInputUseCase.d.ts +10 -0
  11. package/src/TextArea/usecase/TextAreaInputUseCase.js +25 -0
  12. package/src/TextArea/usecase/TextAreaRegisterEventUseCase.d.ts +10 -0
  13. package/src/TextArea/usecase/TextAreaRegisterEventUseCase.js +21 -0
  14. package/src/TextData.d.ts +103 -0
  15. package/src/TextData.js +183 -0
  16. package/src/TextField/service/TextFieldApplyChangesService.d.ts +11 -0
  17. package/src/TextField/service/TextFieldApplyChangesService.js +16 -0
  18. package/src/TextField/service/TextFieldBlinkingClearTimeoutService.d.ts +9 -0
  19. package/src/TextField/service/TextFieldBlinkingClearTimeoutService.js +16 -0
  20. package/src/TextField/service/TextFieldCompositionStartService.d.ts +11 -0
  21. package/src/TextField/service/TextFieldCompositionStartService.js +12 -0
  22. package/src/TextField/service/TextFieldPasteService.d.ts +11 -0
  23. package/src/TextField/service/TextFieldPasteService.js +16 -0
  24. package/src/TextField/usecase/TextFieldArrowDownUseCase.d.ts +12 -0
  25. package/src/TextField/usecase/TextFieldArrowDownUseCase.js +191 -0
  26. package/src/TextField/usecase/TextFieldArrowLeftUseCase.d.ts +12 -0
  27. package/src/TextField/usecase/TextFieldArrowLeftUseCase.js +98 -0
  28. package/src/TextField/usecase/TextFieldArrowRightUseCase.d.ts +12 -0
  29. package/src/TextField/usecase/TextFieldArrowRightUseCase.js +92 -0
  30. package/src/TextField/usecase/TextFieldArrowUpUseCase.d.ts +12 -0
  31. package/src/TextField/usecase/TextFieldArrowUpUseCase.js +156 -0
  32. package/src/TextField/usecase/TextFieldBlinkingUseCase.d.ts +11 -0
  33. package/src/TextField/usecase/TextFieldBlinkingUseCase.js +21 -0
  34. package/src/TextField/usecase/TextFieldBuildFromCharacterUseCase.d.ts +13 -0
  35. package/src/TextField/usecase/TextFieldBuildFromCharacterUseCase.js +58 -0
  36. package/src/TextField/usecase/TextFieldCompositionEndUseCase.d.ts +11 -0
  37. package/src/TextField/usecase/TextFieldCompositionEndUseCase.js +32 -0
  38. package/src/TextField/usecase/TextFieldCompositionUpdateUseCase.d.ts +12 -0
  39. package/src/TextField/usecase/TextFieldCompositionUpdateUseCase.js +109 -0
  40. package/src/TextField/usecase/TextFieldCopyUseCase.d.ts +11 -0
  41. package/src/TextField/usecase/TextFieldCopyUseCase.js +38 -0
  42. package/src/TextField/usecase/TextFieldDeleteTextUseCase.d.ts +11 -0
  43. package/src/TextField/usecase/TextFieldDeleteTextUseCase.js +108 -0
  44. package/src/TextField/usecase/TextFieldGetLineTextUseCase.d.ts +12 -0
  45. package/src/TextField/usecase/TextFieldGetLineTextUseCase.js +32 -0
  46. package/src/TextField/usecase/TextFieldGetTextDataUseCase.d.ts +15 -0
  47. package/src/TextField/usecase/TextFieldGetTextDataUseCase.js +26 -0
  48. package/src/TextField/usecase/TextFieldHtmlTextToRawTextUseCase.d.ts +11 -0
  49. package/src/TextField/usecase/TextFieldHtmlTextToRawTextUseCase.js +31 -0
  50. package/src/TextField/usecase/TextFieldInsertTextUseCase.d.ts +12 -0
  51. package/src/TextField/usecase/TextFieldInsertTextUseCase.js +79 -0
  52. package/src/TextField/usecase/TextFieldKeyDownEventUseCase.d.ts +12 -0
  53. package/src/TextField/usecase/TextFieldKeyDownEventUseCase.js +60 -0
  54. package/src/TextField/usecase/TextFieldReloadUseCase.d.ts +11 -0
  55. package/src/TextField/usecase/TextFieldReloadUseCase.js +25 -0
  56. package/src/TextField/usecase/TextFieldReplaceTextUseCase.d.ts +14 -0
  57. package/src/TextField/usecase/TextFieldReplaceTextUseCase.js +24 -0
  58. package/src/TextField/usecase/TextFieldResetUseCase.d.ts +11 -0
  59. package/src/TextField/usecase/TextFieldResetUseCase.js +20 -0
  60. package/src/TextField/usecase/TextFieldResizeAutoFontSizeUseCase.d.ts +11 -0
  61. package/src/TextField/usecase/TextFieldResizeAutoFontSizeUseCase.js +37 -0
  62. package/src/TextField/usecase/TextFieldResizeUseCase.d.ts +11 -0
  63. package/src/TextField/usecase/TextFieldResizeUseCase.js +49 -0
  64. package/src/TextField/usecase/TextFieldSelectAllUseCase.d.ts +11 -0
  65. package/src/TextField/usecase/TextFieldSelectAllUseCase.js +20 -0
  66. package/src/TextField/usecase/TextFieldSelectedFocusMoveUseCase.d.ts +11 -0
  67. package/src/TextField/usecase/TextFieldSelectedFocusMoveUseCase.js +90 -0
  68. package/src/TextField/usecase/TextFieldSetFocusIndexUseCase.d.ts +14 -0
  69. package/src/TextField/usecase/TextFieldSetFocusIndexUseCase.js +197 -0
  70. package/src/TextField/usecase/TextFieldSetFocusUseCase.d.ts +11 -0
  71. package/src/TextField/usecase/TextFieldSetFocusUseCase.js +43 -0
  72. package/src/TextField/usecase/TextFieldSetScrollXUseCase.d.ts +12 -0
  73. package/src/TextField/usecase/TextFieldSetScrollXUseCase.js +66 -0
  74. package/src/TextField/usecase/TextFieldSetScrollYUseCase.d.ts +12 -0
  75. package/src/TextField/usecase/TextFieldSetScrollYUseCase.js +66 -0
  76. package/src/TextField/usecase/TextFieldUpdateStopIndexUseCase.d.ts +12 -0
  77. package/src/TextField/usecase/TextFieldUpdateStopIndexUseCase.js +82 -0
  78. package/src/TextField.d.ts +602 -0
  79. package/src/TextField.js +1292 -0
  80. package/src/TextFormat/service/TextFormatGenerateFontStyleService.d.ts +11 -0
  81. package/src/TextFormat/service/TextFormatGenerateFontStyleService.js +19 -0
  82. package/src/TextFormat/service/TextFormatGetWidthMarginService.d.ts +11 -0
  83. package/src/TextFormat/service/TextFormatGetWidthMarginService.js +19 -0
  84. package/src/TextFormat/service/TextFormatHtmlTextGenerateStyleService.d.ts +11 -0
  85. package/src/TextFormat/service/TextFormatHtmlTextGenerateStyleService.js +51 -0
  86. package/src/TextFormat/service/TextFormatIsSameService.d.ts +12 -0
  87. package/src/TextFormat/service/TextFormatIsSameService.js +28 -0
  88. package/src/TextFormat/service/TextFormatSetDefaultService.d.ts +11 -0
  89. package/src/TextFormat/service/TextFormatSetDefaultService.js +22 -0
  90. package/{dist → src}/TextFormat.d.ts +42 -128
  91. package/src/TextFormat.js +233 -0
  92. package/src/TextParser/service/TextParserAdjustmentHeightService.d.ts +11 -0
  93. package/src/TextParser/service/TextParserAdjustmentHeightService.js +24 -0
  94. package/src/TextParser/service/TextParserParseStyleService.d.ts +11 -0
  95. package/src/TextParser/service/TextParserParseStyleService.js +80 -0
  96. package/src/TextParser/usecase/TextParserCreateNewLineUseCase.d.ts +13 -0
  97. package/src/TextParser/usecase/TextParserCreateNewLineUseCase.js +35 -0
  98. package/src/TextParser/usecase/TextParserParseHtmlTextUseCase.d.ts +15 -0
  99. package/src/TextParser/usecase/TextParserParseHtmlTextUseCase.js +37 -0
  100. package/src/TextParser/usecase/TextParserParseTagUseCase.d.ts +17 -0
  101. package/src/TextParser/usecase/TextParserParseTagUseCase.js +57 -0
  102. package/src/TextParser/usecase/TextParserParseTextUseCase.d.ts +16 -0
  103. package/src/TextParser/usecase/TextParserParseTextUseCase.js +140 -0
  104. package/src/TextParser/usecase/TextParserSetAttributesUseCase.d.ts +14 -0
  105. package/src/TextParser/usecase/TextParserSetAttributesUseCase.js +63 -0
  106. package/src/TextUtil.d.ts +114 -0
  107. package/src/TextUtil.js +186 -0
  108. package/src/index.d.ts +3 -0
  109. package/src/index.js +3 -0
  110. package/src/interface/IAttributeObject.d.ts +4 -0
  111. package/src/interface/IBlendMode.d.ts +1 -0
  112. package/src/interface/IBounds.d.ts +6 -0
  113. package/src/interface/ICharacter.d.ts +5 -0
  114. package/src/interface/ICharacter.js +1 -0
  115. package/src/interface/IDictionaryTag.d.ts +8 -0
  116. package/src/interface/IDictionaryTag.js +1 -0
  117. package/src/interface/IElementPosition.d.ts +4 -0
  118. package/src/interface/IElementPosition.js +1 -0
  119. package/src/interface/IFilterArray.d.ts +2 -0
  120. package/src/interface/IFilterArray.js +1 -0
  121. package/src/interface/IGrid.d.ts +6 -0
  122. package/src/interface/IGrid.js +1 -0
  123. package/src/interface/ILoopConfig.d.ts +8 -0
  124. package/src/interface/ILoopConfig.js +1 -0
  125. package/src/interface/ILoopType.d.ts +1 -0
  126. package/src/interface/ILoopType.js +1 -0
  127. package/src/interface/IMovieClipActionObject.d.ts +5 -0
  128. package/src/interface/IMovieClipActionObject.js +1 -0
  129. package/src/interface/IMovieClipCharacter.d.ts +17 -0
  130. package/src/interface/IMovieClipCharacter.js +1 -0
  131. package/src/interface/IMovieClipLabelObject.d.ts +4 -0
  132. package/src/interface/IMovieClipLabelObject.js +1 -0
  133. package/src/interface/IMovieClipSoundObject.d.ts +5 -0
  134. package/src/interface/IMovieClipSoundObject.js +1 -0
  135. package/src/interface/IOptions.d.ts +8 -0
  136. package/src/interface/IOptions.js +1 -0
  137. package/src/interface/IPlaceObject.d.ts +14 -0
  138. package/src/interface/IPlaceObject.js +1 -0
  139. package/src/interface/IRGBA.d.ts +6 -0
  140. package/src/interface/IRGBA.js +1 -0
  141. package/src/interface/IShapeCharacter.d.ts +14 -0
  142. package/src/interface/IShapeCharacter.js +1 -0
  143. package/src/interface/ISoundTag.d.ts +6 -0
  144. package/src/interface/ISoundTag.js +1 -0
  145. package/src/interface/ISurfaceFilter.d.ts +6 -0
  146. package/src/interface/ISurfaceFilter.js +1 -0
  147. package/src/interface/ITextFieldAutoSize.d.ts +1 -0
  148. package/src/interface/ITextFieldAutoSize.js +1 -0
  149. package/src/interface/ITextFieldCharacter copy.d.ts +26 -0
  150. package/src/interface/ITextFieldCharacter copy.js +1 -0
  151. package/src/interface/ITextFieldCharacter.d.ts +26 -0
  152. package/src/interface/ITextFieldCharacter.js +1 -0
  153. package/src/interface/ITextFieldType copy.d.ts +1 -0
  154. package/src/interface/ITextFieldType copy.js +1 -0
  155. package/src/interface/ITextFieldType.d.ts +1 -0
  156. package/src/interface/ITextFieldType.js +1 -0
  157. package/src/interface/ITextFormatAlign copy.d.ts +1 -0
  158. package/src/interface/ITextFormatAlign copy.js +1 -0
  159. package/src/interface/ITextFormatAlign.d.ts +1 -0
  160. package/src/interface/ITextFormatAlign.js +1 -0
  161. package/src/interface/ITextFormatObject.d.ts +14 -0
  162. package/src/interface/ITextFormatObject.js +1 -0
  163. package/src/interface/ITextObject.d.ts +12 -0
  164. package/src/interface/ITextObject.js +1 -0
  165. package/src/interface/ITextObjectMode.d.ts +1 -0
  166. package/src/interface/ITextObjectMode.js +1 -0
  167. package/src/interface/IVideoCharacter.d.ts +11 -0
  168. package/src/interface/IVideoCharacter.js +1 -0
  169. package/dist/TextData.d.ts +0 -74
  170. package/dist/TextData.js +0 -132
  171. package/dist/TextFormat.js +0 -493
  172. package/dist/TextParser.d.ts +0 -23
  173. package/dist/TextParser.js +0 -459
  174. package/dist/index.d.ts +0 -3
  175. package/dist/index.js +0 -3
  176. package/dist/interface/OptionsImpl.d.ts +0 -8
  177. package/dist/interface/TextObjectImpl.d.ts +0 -12
  178. package/dist/interface/TextObjectModeImpl.d.ts +0 -1
  179. /package/{dist/interface/OptionsImpl.js → src/interface/IAttributeObject.js} +0 -0
  180. /package/{dist/interface/TextObjectImpl.js → src/interface/IBlendMode.js} +0 -0
  181. /package/{dist/interface/TextObjectModeImpl.js → src/interface/IBounds.js} +0 -0
@@ -0,0 +1,140 @@
1
+ import { execute as textFormatGetWidthMarginService } from "../../TextFormat/service/TextFormatGetWidthMarginService";
2
+ import { execute as textFormatGenerateFontStyleService } from "../../TextFormat/service/TextFormatGenerateFontStyleService";
3
+ import { $context, $setCurrentWidth, $getCurrentWidth } from "../../TextUtil";
4
+ /**
5
+ * @description テキストを解析
6
+ * Analyze text
7
+ *
8
+ * @param {string} texts
9
+ * @param {TextFormat} text_format
10
+ * @param {TextData} text_data
11
+ * @param {IOptions} options
12
+ * @return {void}
13
+ * @method
14
+ * @protected
15
+ */
16
+ export const execute = (texts, text_format, text_data, options) => {
17
+ let line = text_data.lineTable.length - 1;
18
+ const maxWidth = options.width - textFormatGetWidthMarginService(text_format) - 4;
19
+ for (let idx = 0; idx < texts.length; ++idx) {
20
+ const textFormat = options.textFormats
21
+ ? options.textFormats.shift()
22
+ : text_format;
23
+ const text = texts[idx];
24
+ const object = {
25
+ "mode": "text",
26
+ "text": text,
27
+ "x": 0,
28
+ "y": 0,
29
+ "w": 0,
30
+ "h": 0,
31
+ "line": line,
32
+ "textFormat": textFormat.toObject()
33
+ };
34
+ $context.font = textFormatGenerateFontStyleService(textFormat);
35
+ const mesure = $context.measureText(text || "");
36
+ const width = textFormat.letterSpacing
37
+ ? mesure.width + textFormat.letterSpacing
38
+ : mesure.width;
39
+ const height = textFormat.leading
40
+ ? mesure.fontBoundingBoxAscent + mesure.fontBoundingBoxDescent + textFormat.leading
41
+ : mesure.fontBoundingBoxAscent + mesure.fontBoundingBoxDescent;
42
+ // setup
43
+ object.x = 0;
44
+ object.y = mesure.fontBoundingBoxAscent;
45
+ object.w = width;
46
+ object.h = height;
47
+ $setCurrentWidth($getCurrentWidth() + width);
48
+ if (options.wordWrap && $getCurrentWidth() > maxWidth) {
49
+ $setCurrentWidth(width);
50
+ // update
51
+ line++;
52
+ object.line = line;
53
+ // break object
54
+ const wrapObject = {
55
+ "mode": "wrap",
56
+ "text": "",
57
+ "x": 0,
58
+ "y": 0,
59
+ "w": 0,
60
+ "h": 0,
61
+ "line": line,
62
+ "textFormat": textFormat.toObject()
63
+ };
64
+ let chunkLength = 1;
65
+ let isSeparated = true;
66
+ const pattern = /[0-9a-zA-Z?!;:.,?!。、;:〜]/g;
67
+ for (;;) {
68
+ const index = text_data.textTable.length - chunkLength;
69
+ if (0 >= index) {
70
+ isSeparated = false;
71
+ chunkLength = 0;
72
+ break;
73
+ }
74
+ const prevObj = text_data.textTable[index];
75
+ if (!prevObj) {
76
+ isSeparated = false;
77
+ chunkLength = 0;
78
+ break;
79
+ }
80
+ if (prevObj.mode !== "text") {
81
+ isSeparated = false;
82
+ break;
83
+ }
84
+ if (prevObj.text === " ") {
85
+ chunkLength--;
86
+ break;
87
+ }
88
+ if (!prevObj.text.match(pattern)) {
89
+ chunkLength--;
90
+ break;
91
+ }
92
+ chunkLength++;
93
+ }
94
+ // new line
95
+ text_data.widthTable[line] = 0;
96
+ text_data.heightTable[line] = 0;
97
+ text_data.ascentTable[line] = 0;
98
+ if (chunkLength > 0 && isSeparated) {
99
+ const insertIdx = text_data.textTable.length - chunkLength;
100
+ text_data.textTable.splice(insertIdx, 0, wrapObject);
101
+ text_data.lineTable.push(wrapObject);
102
+ const prevLine = line - 1;
103
+ // reset
104
+ text_data.widthTable[prevLine] = 0;
105
+ text_data.heightTable[prevLine] = 0;
106
+ text_data.ascentTable[prevLine] = 0;
107
+ for (let idx = 0; idx < insertIdx; ++idx) {
108
+ const textObject = text_data.textTable[idx];
109
+ if (!textObject) {
110
+ continue;
111
+ }
112
+ if (textObject.line !== prevLine) {
113
+ continue;
114
+ }
115
+ if (textObject.mode !== "text") {
116
+ continue;
117
+ }
118
+ text_data.widthTable[prevLine] += textObject.w;
119
+ text_data.heightTable[prevLine] = Math.max(text_data.heightTable[prevLine], textObject.h);
120
+ text_data.ascentTable[prevLine] = Math.max(text_data.ascentTable[prevLine], textObject.y);
121
+ }
122
+ // reset
123
+ $setCurrentWidth(0);
124
+ for (let idx = insertIdx + 1; idx < text_data.textTable.length; ++idx) {
125
+ const textObject = text_data.textTable[idx];
126
+ textObject.line = line;
127
+ $setCurrentWidth($getCurrentWidth() + textObject.w);
128
+ }
129
+ }
130
+ else {
131
+ text_data.textTable.push(wrapObject);
132
+ text_data.lineTable.push(wrapObject);
133
+ }
134
+ }
135
+ text_data.widthTable[line] = $getCurrentWidth();
136
+ text_data.heightTable[line] = Math.max(text_data.heightTable[line], height);
137
+ text_data.ascentTable[line] = Math.max(text_data.ascentTable[line], object.y);
138
+ text_data.textTable.push(object);
139
+ }
140
+ };
@@ -0,0 +1,14 @@
1
+ import type { TextFormat } from "../../TextFormat";
2
+ import type { IOptions } from "../../interface/IOptions";
3
+ import type { IAttributeObject } from "../../interface/IAttributeObject";
4
+ /**
5
+ * @description 属性を TextFormat に設定
6
+ * Set attributes to TextFormat
7
+ *
8
+ * @param {IAttributeObject[]} attributes
9
+ * @param {TextFormat} text_format
10
+ * @param {IOptions} options
11
+ * @method
12
+ * @protected
13
+ */
14
+ export declare const execute: (attributes: IAttributeObject[], text_format: TextFormat, options: IOptions) => void;
@@ -0,0 +1,63 @@
1
+ import { $toColorInt } from "../../TextUtil";
2
+ import { execute as textParserParseStyleService } from "../service/TextParserParseStyleService";
3
+ /**
4
+ * @description 属性を TextFormat に設定
5
+ * Set attributes to TextFormat
6
+ *
7
+ * @param {IAttributeObject[]} attributes
8
+ * @param {TextFormat} text_format
9
+ * @param {IOptions} options
10
+ * @method
11
+ * @protected
12
+ */
13
+ export const execute = (attributes, text_format, options) => {
14
+ for (let idx = 0; idx < attributes.length; ++idx) {
15
+ const object = attributes[idx];
16
+ switch (object.name) {
17
+ case "style":
18
+ execute(textParserParseStyleService(object.value), text_format, options);
19
+ break;
20
+ case "align":
21
+ text_format.align = object.value;
22
+ break;
23
+ case "face":
24
+ text_format.font = object.value;
25
+ break;
26
+ case "size":
27
+ text_format.size = +object.value;
28
+ if (options.subFontSize) {
29
+ text_format.size -= options.subFontSize;
30
+ if (1 > text_format.size) {
31
+ text_format.size = 1;
32
+ }
33
+ }
34
+ break;
35
+ case "color":
36
+ text_format.color = $toColorInt(object.value);
37
+ break;
38
+ case "letterSpacing":
39
+ text_format.letterSpacing = parseInt(object.value);
40
+ break;
41
+ case "leading":
42
+ text_format.leading = parseInt(object.value);
43
+ break;
44
+ case "leftMargin":
45
+ text_format.leftMargin = parseInt(object.value);
46
+ break;
47
+ case "rightMargin":
48
+ text_format.rightMargin = parseInt(object.value);
49
+ break;
50
+ case "underline":
51
+ text_format.underline = true;
52
+ break;
53
+ case "bold":
54
+ text_format.bold = true;
55
+ break;
56
+ case "italic":
57
+ text_format.italic = true;
58
+ break;
59
+ default:
60
+ break;
61
+ }
62
+ }
63
+ };
@@ -0,0 +1,114 @@
1
+ import type { IRGBA } from "./interface/IRGBA";
2
+ import type { IElementPosition } from "./interface/IElementPosition";
3
+ import type { TextField } from "./TextField";
4
+ /**
5
+ * @description 選択したテキストフィールドをセット
6
+ * Set the selected text field
7
+ *
8
+ * @param {TextField | null} text_field
9
+ * @method
10
+ * @public
11
+ */
12
+ export declare const $setSelectedTextField: (text_field: TextField | null) => void;
13
+ /**
14
+ * @description 選択中のテキストフィールドを返却
15
+ * Returns the selected text field
16
+ *
17
+ * @return {TextField | null}
18
+ * @method
19
+ * @public
20
+ */
21
+ export declare const $getSelectedTextField: () => TextField | null;
22
+ /**
23
+ * @description テキスト変更用の TextArea Element(hidden)
24
+ * TextArea Element(hidden) for changing text
25
+ *
26
+ * @type {HTMLTextAreaElement}
27
+ * @protected
28
+ */
29
+ export declare const $textArea: HTMLTextAreaElement;
30
+ export declare const $context: CanvasRenderingContext2D;
31
+ /**
32
+ * @description 分解中のテキストの現在の幅を取得
33
+ * Get the current width of the text being decomposed
34
+ *
35
+ * @return {number}
36
+ * @method
37
+ * @protected
38
+ */
39
+ export declare const $getCurrentWidth: () => number;
40
+ /**
41
+ * @description 分解中のテキストの現在の幅をセット
42
+ * Set the current width of the text being decomposed
43
+ *
44
+ * @return {void}
45
+ * @method
46
+ * @protected
47
+ */
48
+ export declare const $setCurrentWidth: (width: number) => void;
49
+ /**
50
+ * @description カラー文字列を数値に変換
51
+ * Convert color string to number
52
+ *
53
+ * @param {string} value
54
+ * @return {number}
55
+ * @method
56
+ * @protected
57
+ */
58
+ export declare const $convertColorStringToNumber: (value: string) => number;
59
+ /**
60
+ * @description カラー文字列を数値に変換
61
+ * Convert color string to number
62
+ *
63
+ * @param {*} value
64
+ * @return {number}
65
+ * @method
66
+ * @static
67
+ */
68
+ export declare const $toColorInt: (value: any) => number;
69
+ /**
70
+ * @param {number} color
71
+ * @param {number} [alpha=1]
72
+ * @returns {IRGBA}
73
+ * @method
74
+ * @static
75
+ */
76
+ export declare const $intToRGBA: (color: number, alpha?: number) => IRGBA;
77
+ /**
78
+ * @description 値が最小値と最大値の間に収まるように調整します。
79
+ * Adjust the value so that it falls between the minimum and maximum values.
80
+ *
81
+ * @param {number} value
82
+ * @param {number} min
83
+ * @param {number} max
84
+ * @param {number} [default_value=null]
85
+ * @return {number}
86
+ * @method
87
+ * @protected
88
+ */
89
+ export declare const $clamp: (value: number, min: number, max: number, default_value?: number | null) => number;
90
+ /**
91
+ * @description テキスト点滅のタイマーIDを返却
92
+ * Returns the timer ID for text blinking
93
+ *
94
+ * @return {NodeJS.Timeout}
95
+ * @protected
96
+ */
97
+ export declare const $getBlinkingTimerId: () => NodeJS.Timeout | void;
98
+ /**
99
+ * @description テキスト点滅のタイマーIDをセット
100
+ * Set the timer ID for text blinking
101
+ *
102
+ * @param {NodeJS.Timeout} timer_id
103
+ * @return {void}
104
+ * @protected
105
+ */
106
+ export declare const $setBlinkingTimerId: (timer_id: NodeJS.Timeout | void) => void;
107
+ /**
108
+ * @description canvasの位置をセット
109
+ * Set the position of the canvas
110
+ *
111
+ * @type {IElementPosition}
112
+ * @public
113
+ */
114
+ export declare const $mainCanvasPosition: IElementPosition;
@@ -0,0 +1,186 @@
1
+ import { execute as textAreaRegisterEventUseCase } from "./TextArea/usecase/TextAreaRegisterEventUseCase";
2
+ /**
3
+ * @description 選択中のテキストフィールド
4
+ * Selected text field
5
+ *
6
+ * @type {TextField | null}
7
+ * @private
8
+ */
9
+ let $selectedTextField = null;
10
+ /**
11
+ * @description 選択したテキストフィールドをセット
12
+ * Set the selected text field
13
+ *
14
+ * @param {TextField | null} text_field
15
+ * @method
16
+ * @public
17
+ */
18
+ export const $setSelectedTextField = (text_field) => {
19
+ $selectedTextField = text_field;
20
+ };
21
+ /**
22
+ * @description 選択中のテキストフィールドを返却
23
+ * Returns the selected text field
24
+ *
25
+ * @return {TextField | null}
26
+ * @method
27
+ * @public
28
+ */
29
+ export const $getSelectedTextField = () => {
30
+ return $selectedTextField;
31
+ };
32
+ /**
33
+ * @description テキスト変更用の TextArea Element(hidden)
34
+ * TextArea Element(hidden) for changing text
35
+ *
36
+ * @type {HTMLTextAreaElement}
37
+ * @protected
38
+ */
39
+ export const $textArea = document.createElement("textarea");
40
+ textAreaRegisterEventUseCase($textArea);
41
+ $textArea.tabIndex = -1;
42
+ let style = "";
43
+ style += "position: fixed;";
44
+ style += "top: 0;";
45
+ style += "left: 0;";
46
+ style += "font-size: 16px;";
47
+ style += "border: 0;";
48
+ style += "resize: none;";
49
+ style += "opacity: 0;";
50
+ style += "z-index: -1;";
51
+ style += "pointer-events: none;";
52
+ $textArea.setAttribute("style", style);
53
+ /**
54
+ * @type {HTMLCanvasElement}
55
+ * @private
56
+ */
57
+ const canvas = document.createElement("canvas");
58
+ canvas.width = canvas.height = 1;
59
+ export const $context = canvas.getContext("2d");
60
+ /**
61
+ * @type {number}
62
+ * @private
63
+ */
64
+ let $currentWidth = 0;
65
+ /**
66
+ * @description 分解中のテキストの現在の幅を取得
67
+ * Get the current width of the text being decomposed
68
+ *
69
+ * @return {number}
70
+ * @method
71
+ * @protected
72
+ */
73
+ export const $getCurrentWidth = () => {
74
+ return $currentWidth;
75
+ };
76
+ /**
77
+ * @description 分解中のテキストの現在の幅をセット
78
+ * Set the current width of the text being decomposed
79
+ *
80
+ * @return {void}
81
+ * @method
82
+ * @protected
83
+ */
84
+ export const $setCurrentWidth = (width) => {
85
+ $currentWidth = width;
86
+ };
87
+ /**
88
+ * @description カラー文字列を数値に変換
89
+ * Convert color string to number
90
+ *
91
+ * @param {string} value
92
+ * @return {number}
93
+ * @method
94
+ * @protected
95
+ */
96
+ export const $convertColorStringToNumber = (value) => {
97
+ if (!$context) {
98
+ return 0;
99
+ }
100
+ $context.fillStyle = value;
101
+ return +`0x${$context.fillStyle.slice(1)}`;
102
+ };
103
+ /**
104
+ * @description カラー文字列を数値に変換
105
+ * Convert color string to number
106
+ *
107
+ * @param {*} value
108
+ * @return {number}
109
+ * @method
110
+ * @static
111
+ */
112
+ export const $toColorInt = (value) => {
113
+ return isNaN(+value)
114
+ ? $convertColorStringToNumber(`${value}`)
115
+ : +value;
116
+ };
117
+ /**
118
+ * @param {number} color
119
+ * @param {number} [alpha=1]
120
+ * @returns {IRGBA}
121
+ * @method
122
+ * @static
123
+ */
124
+ export const $intToRGBA = (color, alpha = 1) => {
125
+ return {
126
+ "R": (color & 0xff0000) >> 16,
127
+ "G": (color & 0x00ff00) >> 8,
128
+ "B": color & 0x0000ff,
129
+ "A": alpha * 255
130
+ };
131
+ };
132
+ /**
133
+ * @description 値が最小値と最大値の間に収まるように調整します。
134
+ * Adjust the value so that it falls between the minimum and maximum values.
135
+ *
136
+ * @param {number} value
137
+ * @param {number} min
138
+ * @param {number} max
139
+ * @param {number} [default_value=null]
140
+ * @return {number}
141
+ * @method
142
+ * @protected
143
+ */
144
+ export const $clamp = (value, min, max, default_value = null) => {
145
+ const number = +value;
146
+ return isNaN(number) && default_value !== null
147
+ ? default_value
148
+ : Math.min(Math.max(min, isNaN(number) ? 0 : number), max);
149
+ };
150
+ /**
151
+ * @type {NodeJS.Timeout}
152
+ * @private
153
+ */
154
+ let $timerId;
155
+ /**
156
+ * @description テキスト点滅のタイマーIDを返却
157
+ * Returns the timer ID for text blinking
158
+ *
159
+ * @return {NodeJS.Timeout}
160
+ * @protected
161
+ */
162
+ export const $getBlinkingTimerId = () => {
163
+ return $timerId;
164
+ };
165
+ /**
166
+ * @description テキスト点滅のタイマーIDをセット
167
+ * Set the timer ID for text blinking
168
+ *
169
+ * @param {NodeJS.Timeout} timer_id
170
+ * @return {void}
171
+ * @protected
172
+ */
173
+ export const $setBlinkingTimerId = (timer_id) => {
174
+ $timerId = timer_id;
175
+ };
176
+ /**
177
+ * @description canvasの位置をセット
178
+ * Set the position of the canvas
179
+ *
180
+ * @type {IElementPosition}
181
+ * @public
182
+ */
183
+ export const $mainCanvasPosition = {
184
+ "x": 0,
185
+ "y": 0
186
+ };
package/src/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from "./TextField";
2
+ export * from "./TextFormat";
3
+ export { $textArea, $getSelectedTextField, $setSelectedTextField, $mainCanvasPosition } from "./TextUtil";
package/src/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from "./TextField";
2
+ export * from "./TextFormat";
3
+ export { $textArea, $getSelectedTextField, $setSelectedTextField, $mainCanvasPosition } from "./TextUtil";
@@ -0,0 +1,4 @@
1
+ export type IAttributeObject = {
2
+ name: string;
3
+ value: string | number | boolean;
4
+ };
@@ -0,0 +1 @@
1
+ export type IBlendMode = "copy" | "add" | "alpha" | "darken" | "difference" | "erase" | "hardlight" | "invert" | "layer" | "lighten" | "multiply" | "normal" | "overlay" | "screen" | "subtract";
@@ -0,0 +1,6 @@
1
+ export interface IBounds {
2
+ xMin: number;
3
+ xMax: number;
4
+ yMin: number;
5
+ yMax: number;
6
+ }
@@ -0,0 +1,5 @@
1
+ import type { IMovieClipCharacter } from "./IMovieClipCharacter";
2
+ import type { IVideoCharacter } from "./IVideoCharacter";
3
+ import type { IShapeCharacter } from "./IShapeCharacter";
4
+ import type { ITextFieldCharacter } from "./ITextFieldCharacter";
5
+ export type ICharacter = IMovieClipCharacter | IVideoCharacter | IShapeCharacter | ITextFieldCharacter;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ export interface IDictionaryTag {
2
+ characterId: number;
3
+ name: string;
4
+ startFrame: number;
5
+ endFrame: number;
6
+ depth: number;
7
+ clipDepth: number;
8
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export interface IElementPosition {
2
+ x: number;
3
+ y: number;
4
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { BlurFilter, BevelFilter, ColorMatrixFilter, ConvolutionFilter, DisplacementMapFilter, DropShadowFilter, GlowFilter, GradientBevelFilter, GradientGlowFilter } from "@next2d/filters";
2
+ export type IFilterArray = Array<BlurFilter | BevelFilter | ColorMatrixFilter | ConvolutionFilter | DisplacementMapFilter | DropShadowFilter | GlowFilter | GradientBevelFilter | GradientGlowFilter>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ export interface IGrid {
2
+ x: number;
3
+ y: number;
4
+ w: number;
5
+ h: number;
6
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { ILoopType } from "./ILoopType";
2
+ export interface ILoopConfig {
3
+ type: ILoopType;
4
+ frame: number;
5
+ start: number;
6
+ end: number;
7
+ tweenFrame?: number;
8
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export type ILoopType = 0 | 1 | 2 | 3 | 4;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ export interface IMovieClipActionObject {
2
+ frame: number;
3
+ action: string;
4
+ script?: Function;
5
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,17 @@
1
+ import type { IMovieClipSoundObject } from "./IMovieClipSoundObject";
2
+ import type { IMovieClipActionObject } from "./IMovieClipActionObject";
3
+ import type { IMovieClipLabelObject } from "./IMovieClipLabelObject";
4
+ import type { IPlaceObject } from "./IPlaceObject";
5
+ import type { IDictionaryTag } from "./IDictionaryTag";
6
+ export interface IMovieClipCharacter {
7
+ symbol?: string;
8
+ extends: string;
9
+ totalFrame: number;
10
+ controller: Array<Array<number>>;
11
+ dictionary: IDictionaryTag[];
12
+ placeMap: Array<Array<number>>;
13
+ placeObjects: IPlaceObject[];
14
+ labels?: IMovieClipLabelObject[];
15
+ actions?: IMovieClipActionObject[];
16
+ sounds?: IMovieClipSoundObject[];
17
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export interface IMovieClipLabelObject {
2
+ name: string;
3
+ frame: number;
4
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ import type { ISoundTag } from "./ISoundTag";
2
+ export interface IMovieClipSoundObject {
3
+ frame: number;
4
+ sound: ISoundTag[];
5
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { TextFormat } from "../TextFormat";
2
+ export interface IOptions {
3
+ width: number;
4
+ multiline: boolean;
5
+ wordWrap: boolean;
6
+ textFormats?: TextFormat[] | null;
7
+ subFontSize?: number;
8
+ }