suneditor 3.0.0-beta.2 โ†’ 3.0.0-beta.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/CONTRIBUTING.md +186 -184
  2. package/LICENSE +21 -21
  3. package/README.md +157 -180
  4. package/dist/suneditor.min.css +1 -1
  5. package/dist/suneditor.min.js +1 -1
  6. package/package.json +126 -123
  7. package/src/assets/design/color.css +131 -121
  8. package/src/assets/design/index.css +3 -3
  9. package/src/assets/design/size.css +37 -35
  10. package/src/assets/design/typography.css +37 -37
  11. package/src/assets/icons/defaultIcons.js +247 -232
  12. package/src/assets/suneditor-contents.css +779 -778
  13. package/src/assets/suneditor.css +43 -35
  14. package/src/core/base/eventHandlers/handler_toolbar.js +135 -135
  15. package/src/core/base/eventHandlers/handler_ww_clipboard.js +56 -56
  16. package/src/core/base/eventHandlers/handler_ww_dragDrop.js +115 -113
  17. package/src/core/base/eventHandlers/handler_ww_key_input.js +1200 -1200
  18. package/src/core/base/eventHandlers/handler_ww_mouse.js +194 -194
  19. package/src/core/base/eventManager.js +1550 -1484
  20. package/src/core/base/history.js +355 -355
  21. package/src/core/class/char.js +163 -162
  22. package/src/core/class/component.js +856 -842
  23. package/src/core/class/format.js +3433 -3422
  24. package/src/core/class/html.js +1927 -1890
  25. package/src/core/class/menu.js +357 -346
  26. package/src/core/class/nodeTransform.js +424 -424
  27. package/src/core/class/offset.js +858 -891
  28. package/src/core/class/selection.js +710 -620
  29. package/src/core/class/shortcuts.js +98 -98
  30. package/src/core/class/toolbar.js +438 -430
  31. package/src/core/class/ui.js +424 -422
  32. package/src/core/class/viewer.js +750 -750
  33. package/src/core/editor.js +1810 -1708
  34. package/src/core/section/actives.js +268 -241
  35. package/src/core/section/constructor.js +1348 -1661
  36. package/src/core/section/context.js +102 -102
  37. package/src/core/section/documentType.js +582 -561
  38. package/src/core/section/options.js +367 -0
  39. package/src/core/util/instanceCheck.js +59 -0
  40. package/src/editorInjector/_classes.js +36 -36
  41. package/src/editorInjector/_core.js +92 -92
  42. package/src/editorInjector/index.js +75 -75
  43. package/src/events.js +634 -622
  44. package/src/helper/clipboard.js +59 -59
  45. package/src/helper/converter.js +586 -564
  46. package/src/helper/dom/domCheck.js +304 -304
  47. package/src/helper/dom/domQuery.js +677 -669
  48. package/src/helper/dom/domUtils.js +618 -557
  49. package/src/helper/dom/index.js +12 -12
  50. package/src/helper/env.js +249 -240
  51. package/src/helper/index.js +25 -25
  52. package/src/helper/keyCodeMap.js +183 -183
  53. package/src/helper/numbers.js +72 -72
  54. package/src/helper/unicode.js +47 -47
  55. package/src/langs/ckb.js +231 -231
  56. package/src/langs/cs.js +231 -231
  57. package/src/langs/da.js +231 -231
  58. package/src/langs/de.js +231 -231
  59. package/src/langs/en.js +230 -230
  60. package/src/langs/es.js +231 -231
  61. package/src/langs/fa.js +231 -231
  62. package/src/langs/fr.js +231 -231
  63. package/src/langs/he.js +231 -231
  64. package/src/langs/hu.js +230 -230
  65. package/src/langs/index.js +28 -28
  66. package/src/langs/it.js +231 -231
  67. package/src/langs/ja.js +230 -230
  68. package/src/langs/km.js +230 -230
  69. package/src/langs/ko.js +230 -230
  70. package/src/langs/lv.js +231 -231
  71. package/src/langs/nl.js +231 -231
  72. package/src/langs/pl.js +231 -231
  73. package/src/langs/pt_br.js +231 -231
  74. package/src/langs/ro.js +231 -231
  75. package/src/langs/ru.js +231 -231
  76. package/src/langs/se.js +231 -231
  77. package/src/langs/tr.js +231 -231
  78. package/src/langs/uk.js +231 -231
  79. package/src/langs/ur.js +231 -231
  80. package/src/langs/zh_cn.js +231 -231
  81. package/src/modules/ApiManager.js +191 -191
  82. package/src/modules/Browser.js +669 -667
  83. package/src/modules/ColorPicker.js +364 -362
  84. package/src/modules/Controller.js +474 -454
  85. package/src/modules/Figure.js +1620 -1617
  86. package/src/modules/FileManager.js +359 -359
  87. package/src/modules/HueSlider.js +577 -565
  88. package/src/modules/Modal.js +346 -346
  89. package/src/modules/ModalAnchorEditor.js +643 -643
  90. package/src/modules/SelectMenu.js +549 -549
  91. package/src/modules/_DragHandle.js +17 -17
  92. package/src/modules/index.js +14 -14
  93. package/src/plugins/browser/audioGallery.js +83 -83
  94. package/src/plugins/browser/fileBrowser.js +103 -103
  95. package/src/plugins/browser/fileGallery.js +83 -83
  96. package/src/plugins/browser/imageGallery.js +81 -81
  97. package/src/plugins/browser/videoGallery.js +103 -103
  98. package/src/plugins/command/blockquote.js +61 -60
  99. package/src/plugins/command/exportPDF.js +134 -134
  100. package/src/plugins/command/fileUpload.js +456 -456
  101. package/src/plugins/command/list_bulleted.js +149 -148
  102. package/src/plugins/command/list_numbered.js +152 -151
  103. package/src/plugins/dropdown/align.js +157 -155
  104. package/src/plugins/dropdown/backgroundColor.js +108 -104
  105. package/src/plugins/dropdown/font.js +141 -137
  106. package/src/plugins/dropdown/fontColor.js +109 -105
  107. package/src/plugins/dropdown/formatBlock.js +170 -178
  108. package/src/plugins/dropdown/hr.js +152 -152
  109. package/src/plugins/dropdown/layout.js +83 -83
  110. package/src/plugins/dropdown/lineHeight.js +131 -130
  111. package/src/plugins/dropdown/list.js +123 -122
  112. package/src/plugins/dropdown/paragraphStyle.js +138 -138
  113. package/src/plugins/dropdown/table.js +4110 -4000
  114. package/src/plugins/dropdown/template.js +83 -83
  115. package/src/plugins/dropdown/textStyle.js +149 -149
  116. package/src/plugins/field/mention.js +242 -242
  117. package/src/plugins/index.js +120 -120
  118. package/src/plugins/input/fontSize.js +414 -410
  119. package/src/plugins/input/pageNavigator.js +71 -70
  120. package/src/plugins/modal/audio.js +677 -677
  121. package/src/plugins/modal/drawing.js +537 -531
  122. package/src/plugins/modal/embed.js +886 -886
  123. package/src/plugins/modal/image.js +1377 -1376
  124. package/src/plugins/modal/link.js +248 -240
  125. package/src/plugins/modal/math.js +563 -563
  126. package/src/plugins/modal/video.js +1226 -1226
  127. package/src/plugins/popup/anchor.js +224 -222
  128. package/src/suneditor.js +114 -107
  129. package/src/themes/dark.css +132 -122
  130. package/src/typedef.js +132 -130
  131. package/types/assets/icons/defaultIcons.d.ts +8 -0
  132. package/types/core/base/eventManager.d.ts +29 -4
  133. package/types/core/class/char.d.ts +2 -1
  134. package/types/core/class/component.d.ts +1 -2
  135. package/types/core/class/format.d.ts +8 -1
  136. package/types/core/class/html.d.ts +8 -0
  137. package/types/core/class/menu.d.ts +8 -0
  138. package/types/core/class/offset.d.ts +24 -26
  139. package/types/core/class/selection.d.ts +2 -0
  140. package/types/core/class/toolbar.d.ts +6 -0
  141. package/types/core/class/ui.d.ts +1 -1
  142. package/types/core/editor.d.ts +34 -12
  143. package/types/core/section/constructor.d.ts +5 -638
  144. package/types/core/section/documentType.d.ts +12 -2
  145. package/types/core/section/options.d.ts +740 -0
  146. package/types/core/util/instanceCheck.d.ts +50 -0
  147. package/types/editorInjector/_core.d.ts +5 -5
  148. package/types/editorInjector/index.d.ts +2 -2
  149. package/types/events.d.ts +2 -0
  150. package/types/helper/converter.d.ts +9 -0
  151. package/types/helper/dom/domQuery.d.ts +5 -5
  152. package/types/helper/dom/domUtils.d.ts +8 -0
  153. package/types/helper/env.d.ts +6 -1
  154. package/types/helper/index.d.ts +4 -1
  155. package/types/index.d.ts +122 -120
  156. package/types/langs/_Lang.d.ts +194 -194
  157. package/types/modules/ColorPicker.d.ts +5 -1
  158. package/types/modules/Controller.d.ts +8 -4
  159. package/types/modules/Figure.d.ts +2 -1
  160. package/types/modules/HueSlider.d.ts +4 -1
  161. package/types/modules/SelectMenu.d.ts +1 -1
  162. package/types/plugins/command/blockquote.d.ts +1 -0
  163. package/types/plugins/command/list_bulleted.d.ts +1 -0
  164. package/types/plugins/command/list_numbered.d.ts +1 -0
  165. package/types/plugins/dropdown/align.d.ts +1 -0
  166. package/types/plugins/dropdown/backgroundColor.d.ts +1 -0
  167. package/types/plugins/dropdown/font.d.ts +1 -0
  168. package/types/plugins/dropdown/fontColor.d.ts +1 -0
  169. package/types/plugins/dropdown/formatBlock.d.ts +3 -2
  170. package/types/plugins/dropdown/lineHeight.d.ts +1 -0
  171. package/types/plugins/dropdown/list.d.ts +1 -0
  172. package/types/plugins/dropdown/table.d.ts +6 -0
  173. package/types/plugins/input/fontSize.d.ts +1 -0
  174. package/types/plugins/modal/drawing.d.ts +4 -0
  175. package/types/plugins/modal/link.d.ts +32 -15
  176. package/types/suneditor.d.ts +13 -9
  177. package/types/typedef.d.ts +8 -0
package/CONTRIBUTING.md CHANGED
@@ -1,184 +1,186 @@
1
- # ๐ŸŒž Guidelines For Contributing
2
-
3
- ---
4
-
5
- ## ๐Ÿ“˜ Introduction
6
-
7
- The codebase is written in **JavaScript (ES2020)**, using **JSDoc** for type definitions.
8
- Node.js **v14 or higher** is required to build and test.
9
-
10
- ### ๐Ÿ“ Notes
11
-
12
- - Uses modern syntax including:
13
- - Optional chaining (`?.`)
14
- - Nullish coalescing (`??`)
15
- - Private class fields (`#myField`)
16
- - Polyfills are **not included** โ€“ make sure your target environment supports these features.
17
-
18
- ---
19
-
20
- ## ๐Ÿ› Before Submitting an Issue
21
-
22
- - Make sure you're using the latest `master` branch. Your issue may already be fixed.
23
- - Search the [open issues](https://github.com/jihong88/suneditor/issues) and [closed issues](https://github.com/jihong88/suneditor/issues?q=is%3Aissue+is%3Aclosed) to avoid duplicates.
24
- - If your issue is new, [file a ticket](https://github.com/jihong88/suneditor/issues/new) with detailed info, including reproduction steps if possible.
25
-
26
- ---
27
-
28
- ## โœ… Before Submitting a PR
29
-
30
- - Check that no one is working on the same thing in [open issues](https://github.com/jihong88/suneditor/issues).
31
- - For new features or major changes, please open an issue first to gather feedback.
32
- - Use a **feature branch** (not `master`) for your pull request.
33
- - Make sure your code passes tests and doesnโ€™t break existing functionality.
34
-
35
- ---
36
-
37
- ## ๐Ÿค How to Contribute
38
-
39
- We welcome code contributions, bug reports, documentation improvements, or plugin ideas!
40
-
41
- ### ๐Ÿงน Code Formatting
42
-
43
- - Use the provided **ESLint** configuration.
44
- - 4-space indentation
45
- - Single quotes (`'`) for strings
46
-
47
- ---
48
-
49
- ## ๐Ÿงฉ Plugin Development
50
-
51
- SunEditor allows custom plugins using a flexible API.
52
-
53
- ๐Ÿ“˜ Start from the [Plugin API Reference](https://suneditor.com/api/plugins)
54
- ๐Ÿ” Or explore the `src/plugins/` folder to see real examples.
55
-
56
- ---
57
-
58
- ## ๐Ÿ” CI/CD
59
-
60
- ๐Ÿ“ฆ The `dist/` folder is **not included** in the git repository.
61
- โš™๏ธ It is automatically built and deployed via **GitHub Actions** after changes are pushed to the `release` branch.
62
- ๐Ÿ›‘ **Do not build or commit `dist/` files manually** โ€“ this may cause merge conflicts.
63
- โœ… The CI/CD pipeline ensures clean and consistent builds for every release.
64
-
65
- ---
66
-
67
- ## โš™๏ธ Framework Guide
68
-
69
- If you're contributing to framework integrations:
70
-
71
- - React: [suneditor-react](https://github.com/JiHong88/suneditor-react)
72
- - Vue: [suneditor-vue](https://github.com/JiHong88/suneditor-vue)
73
-
74
- ๐Ÿ’ก Feel free to propose wrappers for other frameworks too!
75
-
76
- ---
77
-
78
- ## ๐Ÿค– AI Plugin Helper
79
-
80
- Need real-time help?
81
-
82
- Check out **[SunEditor Devs AI](https://chatgpt.com/g/g-JViNPCrkD-suneditor-devs)** โ€“
83
-
84
- > ๐Ÿ’ก Just paste your code or describe your plugin idea โ€“ and get instant support.
85
-
86
- ---
87
-
88
- ## ๐Ÿ—‚๏ธ Code Architecture
89
-
90
- A quick overview of the `src/` directory:
91
-
92
- ### `/core/` โ€“ ๐Ÿง  Editor Core Logic
93
-
94
- - `editor.js`: Defines the main Editor class, managing lifecycle, commands, and overall orchestration
95
- - `section/`: Context management and document setup
96
- - `class/`: Core classes like toolbars, selections, HTML parsing, etc.
97
- - `base/`: Undo/redo history, event manager, and shared core logic
98
-
99
- ### `/helper/` โ€“ ๐Ÿ› ๏ธ Utility Functions
100
-
101
- - String converters, clipboard helpers, DOM queries
102
- - `helper/dom/`: Low-level DOM operations
103
-
104
- ### `/modules/` โ€“ ๐Ÿงฉ Reusable UI Modules
105
-
106
- - Functional components like:
107
- - `Modal`, `ColorPicker`, `SelectMenu`, `FileManager`, etc.
108
- - Useful for building consistent plugin UIs
109
-
110
- ### `/editorInjector/` โ€“ ๐Ÿงฌ Plugin Integration Point
111
-
112
- - Wraps and initializes the core editor
113
- - Plugins must inherit from this to register correctly
114
-
115
- ### `/plugins/` โ€“ โœจ Feature Extensions
116
-
117
- - Modular plugins organized by type:
118
- - Examples: `image`, `video`, `link`, `blockquote`, etc.
119
- - Each plugin is isolated and optional
120
-
121
- ### `/langs/` โ€“ ๐ŸŒ i18n Support
122
-
123
- - Language packs in separate JS files
124
-
125
- ### `/assets/` โ€“ ๐ŸŽจ Styles & Icons
126
-
127
- - CSS for editor layout and themes
128
- - SVG icon sets (`icons/defaultIcons.js`)
129
-
130
- ### `/themes/` โ€“ ๐Ÿงช Theme Stylesheets
131
-
132
- - Includes variants like `dark.css`
133
-
134
- ### `suneditor.js` โ€“ ๐Ÿšช Main Entry Point
135
-
136
- - Bootstraps and exports the editor instance
137
-
138
- ---
139
-
140
- ## ๐Ÿš€ Useful Commands
141
-
142
- ```bash
143
- # Start local dev server
144
- npm run dev
145
-
146
- # Build for development
147
- npm run build:dev
148
-
149
- # Build for production
150
- npm run build:prod
151
-
152
- # lint
153
- npm run lint
154
-
155
- # Auto-fix JavaScript issues
156
- npm run lint:fix-js
157
-
158
- # Auto-fix TypeScript issues
159
- npm run lint:fix-ts
160
-
161
- # โœ… Run before committing!
162
- # Fix all lint issues (JS + TS)
163
- npm run lint:fix-all
164
-
165
- # Build types and update barrels
166
- npm run ts-build
167
-
168
- # Sync language files (base: en.js)
169
- npm run i18n-build
170
-
171
- # test
172
- npm run test
173
- ```
174
-
175
- > [scripts/README](https://github.com/JiHong88/suneditor/blob/develop/scripts/README.md)
176
-
177
- ---
178
-
179
- Thanks for contributing ๐Ÿ’›
180
- You're helping make SunEditor better for everyone!
181
-
182
- ```
183
-
184
- ```
1
+ # ๐ŸŒž Guidelines For Contributing
2
+
3
+ ---
4
+
5
+ ## ๐Ÿ“˜ Introduction
6
+
7
+ The codebase is written in **JavaScript (ES2020)**, using **JSDoc** for type definitions.
8
+ Node.js **v14 or higher** is required to build and test.
9
+
10
+ ### ๐Ÿ“ Notes
11
+
12
+ - Uses modern syntax including:
13
+ - Optional chaining (`?.`)
14
+ - Nullish coalescing (`??`)
15
+ - Private class fields (`#myField`)
16
+ - Polyfills are **not included** โ€“ make sure your target environment supports these features.
17
+
18
+ ---
19
+
20
+ ## ๐Ÿ› Before Submitting an Issue
21
+
22
+ - Make sure you're using the latest `master` branch. Your issue may already be fixed.
23
+ - Search the [open issues](https://github.com/jihong88/suneditor/issues) and [closed issues](https://github.com/jihong88/suneditor/issues?q=is%3Aissue+is%3Aclosed) to avoid duplicates.
24
+ - If your issue is new, [file a ticket](https://github.com/jihong88/suneditor/issues/new) with detailed info, including reproduction steps if possible.
25
+
26
+ ---
27
+
28
+ ## โœ… Before Submitting a PR
29
+
30
+ > [commit-guide](./guide/commit-types.md)
31
+
32
+ - Check that no one is working on the same thing in [open issues](https://github.com/jihong88/suneditor/issues).
33
+ - For new features or major changes, please open an issue first to gather feedback.
34
+ - Use a **feature branch** (not `master`) for your pull request.
35
+ - Make sure your code passes tests and doesnโ€™t break existing functionality.
36
+
37
+ ---
38
+
39
+ ## ๐Ÿค How to Contribute
40
+
41
+ We welcome code contributions, bug reports, documentation improvements, or plugin ideas!
42
+
43
+ ### ๐Ÿงน Code Formatting
44
+
45
+ - Use the provided **ESLint** configuration.
46
+ - 4-space indentation
47
+ - Single quotes (`'`) for strings
48
+
49
+ ---
50
+
51
+ ## ๐Ÿงฉ Plugin Development
52
+
53
+ SunEditor allows custom plugins using a flexible API.
54
+
55
+ ๐Ÿ“˜ Start from the [Plugin API Reference](https://suneditor.com/api/plugins)
56
+ ๐Ÿ” Or explore the `src/plugins/` folder to see real examples.
57
+
58
+ ---
59
+
60
+ ## ๐Ÿ” CI/CD
61
+
62
+ ๐Ÿ“ฆ The `dist/` folder is **not included** in the git repository.
63
+ โš™๏ธ It is automatically built and deployed via **GitHub Actions** after changes are pushed to the `release` branch.
64
+ ๐Ÿ›‘ **Do not build or commit `dist/` files manually** โ€“ this may cause merge conflicts.
65
+ โœ… The CI/CD pipeline ensures clean and consistent builds for every release.
66
+
67
+ ---
68
+
69
+ ## โš™๏ธ Framework Guide
70
+
71
+ If you're contributing to framework integrations:
72
+
73
+ - React: [suneditor-react](https://github.com/JiHong88/suneditor-react)
74
+ - Vue: [suneditor-vue](https://github.com/JiHong88/suneditor-vue)
75
+
76
+ ๐Ÿ’ก Feel free to propose wrappers for other frameworks too!
77
+
78
+ ---
79
+
80
+ ## ๐Ÿค– AI Plugin Helper
81
+
82
+ Need real-time help?
83
+
84
+ Check out **[SunEditor Devs AI](https://chatgpt.com/g/g-JViNPCrkD-suneditor-devs)** โ€“
85
+
86
+ > ๐Ÿ’ก Just paste your code or describe your plugin idea โ€“ and get instant support.
87
+
88
+ ---
89
+
90
+ ## ๐Ÿ—‚๏ธ Code Architecture
91
+
92
+ A quick overview of the `src/` directory:
93
+
94
+ ### `/core/` โ€“ ๐Ÿง  Editor Core Logic
95
+
96
+ - `editor.js`: Defines the main Editor class, managing lifecycle, commands, and overall orchestration
97
+ - `section/`: Context management and document setup
98
+ - `class/`: Core classes like toolbars, selections, HTML parsing, etc.
99
+ - `base/`: Undo/redo history, event manager, and shared core logic
100
+
101
+ ### `/helper/` โ€“ ๐Ÿ› ๏ธ Utility Functions
102
+
103
+ - String converters, clipboard helpers, DOM queries
104
+ - `helper/dom/`: Low-level DOM operations
105
+
106
+ ### `/modules/` โ€“ ๐Ÿงฉ Reusable UI Modules
107
+
108
+ - Functional components like:
109
+ - `Modal`, `ColorPicker`, `SelectMenu`, `FileManager`, etc.
110
+ - Useful for building consistent plugin UIs
111
+
112
+ ### `/editorInjector/` โ€“ ๐Ÿงฌ Plugin Integration Point
113
+
114
+ - Wraps and initializes the core editor
115
+ - Plugins must inherit from this to register correctly
116
+
117
+ ### `/plugins/` โ€“ โœจ Feature Extensions
118
+
119
+ - Modular plugins organized by type:
120
+ - Examples: `image`, `video`, `link`, `blockquote`, etc.
121
+ - Each plugin is isolated and optional
122
+
123
+ ### `/langs/` โ€“ ๐ŸŒ i18n Support
124
+
125
+ - Language packs in separate JS files
126
+
127
+ ### `/assets/` โ€“ ๐ŸŽจ Styles & Icons
128
+
129
+ - CSS for editor layout and themes
130
+ - SVG icon sets (`icons/defaultIcons.js`)
131
+
132
+ ### `/themes/` โ€“ ๐Ÿงช Theme Stylesheets
133
+
134
+ - Includes variants like `dark.css`
135
+
136
+ ### `suneditor.js` โ€“ ๐Ÿšช Main Entry Point
137
+
138
+ - Bootstraps and exports the editor instance
139
+
140
+ ---
141
+
142
+ ## ๐Ÿš€ Useful Commands
143
+
144
+ > [scripts-guide](./guide/scripts-guide.md)
145
+
146
+ ```bash
147
+ # Start local dev server
148
+ npm run dev
149
+
150
+ # Build for development
151
+ npm run build:dev
152
+
153
+ # Build for production
154
+ npm run build:prod
155
+
156
+ # lint
157
+ npm run lint
158
+
159
+ # Auto-fix JavaScript issues
160
+ npm run lint:fix-js
161
+
162
+ # Auto-fix TypeScript issues
163
+ npm run lint:fix-ts
164
+
165
+ # โœ… Run before committing!
166
+ # Fix all lint issues (JS + TS)
167
+ npm run lint:fix-all
168
+
169
+ # Build types and update barrels
170
+ npm run ts-build
171
+
172
+ # Sync language files (base: en.js)
173
+ npm run i18n-build
174
+
175
+ # test
176
+ npm run test
177
+ ```
178
+
179
+ ---
180
+
181
+ Thanks for contributing ๐Ÿ’›
182
+ You're helping make SunEditor better for everyone!
183
+
184
+ ```
185
+
186
+ ```
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2017-2025 Yi JiHong
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2017-2025 Yi JiHong
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.