chuijs 4.0.1 → 4.0.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.
Files changed (222) hide show
  1. package/CHANGELOG.md +113 -0
  2. package/README.md +43 -632
  3. package/framework/appLayout/default/chui_app_layout.js +314 -273
  4. package/framework/appLayout/default/global_style.css +93 -53
  5. package/framework/components/chui_accordion/accordion.js +29 -26
  6. package/framework/components/chui_accordion/styles.css +6 -5
  7. package/framework/components/chui_action_sheet/action_sheet.js +59 -33
  8. package/framework/components/chui_action_sheet/styles.css +2 -1
  9. package/framework/components/chui_affix/affix.js +11 -6
  10. package/framework/components/chui_alert/alert.js +23 -14
  11. package/framework/components/chui_avatar/avatar.js +23 -22
  12. package/framework/components/chui_avatar_group/avatar_group.js +21 -19
  13. package/framework/components/chui_backtop/backtop.js +35 -19
  14. package/framework/components/chui_badge/badge.js +15 -13
  15. package/framework/components/chui_breadcrumb/breadcrumb.js +15 -13
  16. package/framework/components/chui_button/button.js +42 -22
  17. package/framework/components/chui_button/styles.css +2 -2
  18. package/framework/components/chui_calendar/calendar.js +12 -10
  19. package/framework/components/chui_card/card.js +43 -23
  20. package/framework/components/chui_chat/chat.js +72 -33
  21. package/framework/components/chui_clipboard_history/clipboard_history.js +30 -21
  22. package/framework/components/chui_clipboard_history/styles.css +4 -2
  23. package/framework/components/chui_code/code.js +2 -2
  24. package/framework/components/chui_code/styles.css +2 -2
  25. package/framework/components/chui_code_editor/code_editor.js +47 -31
  26. package/framework/components/chui_code_editor/styles.css +3 -2
  27. package/framework/components/chui_command_palette/command_palette.js +60 -37
  28. package/framework/components/chui_console/console.js +5 -5
  29. package/framework/components/chui_console/styles.css +1 -1
  30. package/framework/components/chui_content_block/content_block.js +33 -19
  31. package/framework/components/chui_content_block/styles.css +2 -2
  32. package/framework/components/chui_context_menu/context_menu.js +9 -4
  33. package/framework/components/chui_custom_element/custom_element.js +22 -15
  34. package/framework/components/chui_data_grid/data_grid.js +396 -234
  35. package/framework/components/chui_data_grid/styles.css +10 -8
  36. package/framework/components/chui_descriptions/descriptions.js +34 -17
  37. package/framework/components/chui_details/details.js +32 -26
  38. package/framework/components/chui_details/styles.css +5 -4
  39. package/framework/components/chui_diff_viewer/diff_viewer.js +91 -66
  40. package/framework/components/chui_diff_viewer/styles.css +1 -1
  41. package/framework/components/chui_divider/divider.js +13 -11
  42. package/framework/components/chui_drawer/drawer.js +27 -25
  43. package/framework/components/chui_drop_zone/drop_zone.js +31 -21
  44. package/framework/components/chui_empty_state/empty_state.js +20 -15
  45. package/framework/components/chui_fieldset/fieldset.js +37 -20
  46. package/framework/components/chui_fieldset/styles.css +1 -1
  47. package/framework/components/chui_file_explorer/file_explorer.js +157 -86
  48. package/framework/components/chui_file_explorer/styles.css +2 -1
  49. package/framework/components/chui_form/form.js +31 -19
  50. package/framework/components/chui_form/styles.css +1 -1
  51. package/framework/components/chui_gantt/gantt.js +64 -40
  52. package/framework/components/chui_graphs/graphs.js +301 -200
  53. package/framework/components/chui_graphs/styles.css +1 -1
  54. package/framework/components/chui_hero/hero.js +40 -22
  55. package/framework/components/chui_html_block/html_block.js +6 -6
  56. package/framework/components/chui_html_block/styles.css +2 -2
  57. package/framework/components/chui_hx/hx.js +3 -3
  58. package/framework/components/chui_hx/styles.css +11 -4
  59. package/framework/components/chui_icons/icons.js +2109 -2109
  60. package/framework/components/chui_icons/styles.css +2 -2
  61. package/framework/components/chui_inputs/chui_check_box/check_box.js +31 -19
  62. package/framework/components/chui_inputs/chui_check_box/styles.css +18 -18
  63. package/framework/components/chui_inputs/chui_chips/chips.js +50 -40
  64. package/framework/components/chui_inputs/chui_chips/styles.css +4 -2
  65. package/framework/components/chui_inputs/chui_color_picker/color_picker.js +36 -24
  66. package/framework/components/chui_inputs/chui_combo_box/combo_box.js +100 -82
  67. package/framework/components/chui_inputs/chui_combo_box/styles.css +14 -12
  68. package/framework/components/chui_inputs/chui_date/date.js +102 -66
  69. package/framework/components/chui_inputs/chui_date/styles.css +12 -11
  70. package/framework/components/chui_inputs/chui_date_range/date_range.js +40 -29
  71. package/framework/components/chui_inputs/chui_datetime/datetime.js +35 -27
  72. package/framework/components/chui_inputs/chui_email/email.js +43 -31
  73. package/framework/components/chui_inputs/chui_email/styles.css +5 -5
  74. package/framework/components/chui_inputs/chui_file/file.js +68 -41
  75. package/framework/components/chui_inputs/chui_file/styles.css +13 -12
  76. package/framework/components/chui_inputs/chui_hotkey/hotkey.js +61 -36
  77. package/framework/components/chui_inputs/chui_masked/masked.js +39 -28
  78. package/framework/components/chui_inputs/chui_mention/mention.js +77 -30
  79. package/framework/components/chui_inputs/chui_multi_combo_box/multi_combo_box.js +173 -153
  80. package/framework/components/chui_inputs/chui_multi_combo_box/styles.css +9 -7
  81. package/framework/components/chui_inputs/chui_number/number.js +58 -41
  82. package/framework/components/chui_inputs/chui_number/styles.css +7 -7
  83. package/framework/components/chui_inputs/chui_otp/otp.js +38 -29
  84. package/framework/components/chui_inputs/chui_password/password.js +58 -36
  85. package/framework/components/chui_inputs/chui_password/styles.css +8 -8
  86. package/framework/components/chui_inputs/chui_radio_button/radio_button.js +37 -25
  87. package/framework/components/chui_inputs/chui_radio_button/styles.css +20 -20
  88. package/framework/components/chui_inputs/chui_rating/rating.js +26 -22
  89. package/framework/components/chui_inputs/chui_select_box/select_box.js +102 -78
  90. package/framework/components/chui_inputs/chui_select_box/styles.css +11 -11
  91. package/framework/components/chui_inputs/chui_slider/slider.js +29 -26
  92. package/framework/components/chui_inputs/chui_slider/styles.css +2 -1
  93. package/framework/components/chui_inputs/chui_text/styles.css +8 -8
  94. package/framework/components/chui_inputs/chui_text/text.js +65 -44
  95. package/framework/components/chui_inputs/chui_text_area/styles.css +6 -6
  96. package/framework/components/chui_inputs/chui_text_area/text_area.js +51 -28
  97. package/framework/components/chui_inputs/chui_time/styles.css +5 -3
  98. package/framework/components/chui_inputs/chui_time/time.js +38 -27
  99. package/framework/components/chui_inputs/chui_toggle/styles.css +3 -3
  100. package/framework/components/chui_inputs/chui_toggle/toggle.js +16 -16
  101. package/framework/components/chui_json_editor/json_editor.js +53 -43
  102. package/framework/components/chui_json_viewer/json_viewer.js +52 -33
  103. package/framework/components/chui_json_viewer/styles.css +3 -2
  104. package/framework/components/chui_kanban/kanban.js +52 -34
  105. package/framework/components/chui_kbd/kbd.js +12 -10
  106. package/framework/components/chui_label/label.js +14 -12
  107. package/framework/components/chui_label/styles.css +2 -2
  108. package/framework/components/chui_link/link.js +27 -20
  109. package/framework/components/chui_list/list.js +31 -27
  110. package/framework/components/chui_list/styles.css +2 -1
  111. package/framework/components/chui_markdown_editor/markdown_editor.js +60 -44
  112. package/framework/components/chui_media/audio.js +326 -227
  113. package/framework/components/chui_media/audio_styles.css +40 -21
  114. package/framework/components/chui_media/image.js +70 -38
  115. package/framework/components/chui_media/image_compare.js +52 -21
  116. package/framework/components/chui_media/image_styles.css +3 -3
  117. package/framework/components/chui_media/video.js +155 -62
  118. package/framework/components/chui_media/video_styles.css +33 -16
  119. package/framework/components/chui_menu_bar/menu_bar.js +26 -24
  120. package/framework/components/chui_menu_bar/styles.css +4 -2
  121. package/framework/components/chui_modal/modal.js +44 -43
  122. package/framework/components/chui_modal/styles.css +3 -2
  123. package/framework/components/chui_notification/notification.js +50 -34
  124. package/framework/components/chui_notification/notification_download.js +31 -25
  125. package/framework/components/chui_notification/notification_download_progress.css +3 -2
  126. package/framework/components/chui_notification/notification_download_progress.js +47 -41
  127. package/framework/components/chui_notification/notification_update.js +23 -16
  128. package/framework/components/chui_notification/status_plate.js +2 -2
  129. package/framework/components/chui_notification/styles_download.css +1 -1
  130. package/framework/components/chui_notification/styles_update.css +1 -1
  131. package/framework/components/chui_org_chart/org_chart.js +74 -35
  132. package/framework/components/chui_pagination/pagination.js +62 -27
  133. package/framework/components/chui_paragraph/paragraph.js +2 -2
  134. package/framework/components/chui_paragraph/styles.css +1 -1
  135. package/framework/components/chui_popover/popover.js +49 -28
  136. package/framework/components/chui_popups/popups.js +137 -108
  137. package/framework/components/chui_popups/styles.css +2 -2
  138. package/framework/components/chui_print_button/print_button.js +33 -23
  139. package/framework/components/chui_progress_bar/progress_bar.js +23 -15
  140. package/framework/components/chui_progress_bar/styles.css +2 -2
  141. package/framework/components/chui_progress_ring/progress_ring.js +17 -15
  142. package/framework/components/chui_qrcode/qrcode.js +75 -31
  143. package/framework/components/chui_query_builder/query_builder.js +216 -123
  144. package/framework/components/chui_radio_group/radio_group.js +36 -26
  145. package/framework/components/chui_radio_group/styles.css +1 -1
  146. package/framework/components/chui_result/result.js +26 -16
  147. package/framework/components/chui_scheduler/scheduler.js +57 -35
  148. package/framework/components/chui_scheduler/styles.css +6 -2
  149. package/framework/components/chui_segmented_control/segmented_control.js +27 -21
  150. package/framework/components/chui_settings/settings.js +122 -48
  151. package/framework/components/chui_shortcut_help/shortcut_help.js +55 -32
  152. package/framework/components/chui_sidebar_nav/sidebar_nav.js +33 -23
  153. package/framework/components/chui_skeleton/skeleton.js +29 -24
  154. package/framework/components/chui_slideshow/slideshow.js +60 -41
  155. package/framework/components/chui_slideshow/styles.css +18 -12
  156. package/framework/components/chui_spinner/spinner.js +8 -8
  157. package/framework/components/chui_spinner/styles.css +0 -1
  158. package/framework/components/chui_split_button/split_button.js +23 -18
  159. package/framework/components/chui_split_button/styles.css +1 -1
  160. package/framework/components/chui_splitter/splitter.js +35 -28
  161. package/framework/components/chui_statistic/statistic.js +65 -38
  162. package/framework/components/chui_status_bar/status_bar.js +11 -9
  163. package/framework/components/chui_stepper/stepper.js +27 -22
  164. package/framework/components/chui_sticky_bar/sticky_bar.js +9 -4
  165. package/framework/components/chui_sticky_bar/styles.css +3 -1
  166. package/framework/components/chui_tabs/chui_tabs.js +28 -22
  167. package/framework/components/chui_tabs/styles.css +3 -3
  168. package/framework/components/chui_text_editor/styles.css +20 -19
  169. package/framework/components/chui_text_editor/text_editor.js +85 -61
  170. package/framework/components/chui_text_editor/text_editor_panel.js +346 -284
  171. package/framework/components/chui_theme_toggle/theme_toggle.js +27 -22
  172. package/framework/components/chui_timeline/timeline.js +14 -12
  173. package/framework/components/chui_toast_queue/toast_queue.js +52 -46
  174. package/framework/components/chui_toolbar/toolbar.js +20 -13
  175. package/framework/components/chui_tooltip/tooltip.js +37 -24
  176. package/framework/components/chui_tour/styles.css +8 -3
  177. package/framework/components/chui_tour/tour.js +61 -27
  178. package/framework/components/chui_transfer/styles.css +2 -1
  179. package/framework/components/chui_transfer/transfer.js +75 -42
  180. package/framework/components/chui_tree_table/tree_table.js +43 -29
  181. package/framework/components/chui_tree_view/styles.css +4 -2
  182. package/framework/components/chui_tree_view/tree_view.js +142 -99
  183. package/framework/components/chui_watermark/watermark.js +24 -16
  184. package/framework/components/chui_webview/styles.css +2 -2
  185. package/framework/components/chui_webview/webview.js +62 -50
  186. package/framework/components/telegram_bot/chui_telegram_bot.js +71 -64
  187. package/framework/modules/chui_a11y/chui_a11y.js +77 -46
  188. package/framework/modules/chui_animations/animations.js +42 -42
  189. package/framework/modules/chui_animations/styles.css +1 -1
  190. package/framework/modules/chui_bridge/preload.js +56 -26
  191. package/framework/modules/chui_functions.js +52 -50
  192. package/framework/modules/chui_highlight/chui_highlight.js +25 -22
  193. package/framework/modules/chui_i18n/chui_i18n.js +9 -7
  194. package/framework/modules/chui_i18n/locales/a11y.js +5 -5
  195. package/framework/modules/chui_i18n/locales/app_layout.js +5 -5
  196. package/framework/modules/chui_i18n/locales/calendar.js +3 -3
  197. package/framework/modules/chui_i18n/locales/common.js +3 -3
  198. package/framework/modules/chui_i18n/locales/data.js +36 -26
  199. package/framework/modules/chui_i18n/locales/editors.js +40 -13
  200. package/framework/modules/chui_i18n/locales/feedback.js +3 -3
  201. package/framework/modules/chui_i18n/locales/forms.js +8 -8
  202. package/framework/modules/chui_i18n/locales/graphics.js +8 -8
  203. package/framework/modules/chui_i18n/locales/media.js +4 -4
  204. package/framework/modules/chui_i18n/locales/navigation.js +8 -8
  205. package/framework/modules/chui_i18n/locales/validate.js +3 -3
  206. package/framework/modules/chui_json/chui_json.js +9 -9
  207. package/framework/modules/chui_layout/chui_layout.js +12 -10
  208. package/framework/modules/chui_logger/chui_logger.js +29 -25
  209. package/framework/modules/chui_page/page.js +33 -27
  210. package/framework/modules/chui_page/styles.css +3 -26
  211. package/framework/modules/chui_qr/chui_qr.js +158 -67
  212. package/framework/modules/chui_scrollbar/chui_scrollbar.js +35 -24
  213. package/framework/modules/chui_scrollbar/styles.css +3 -1
  214. package/framework/modules/chui_services/chui_channels.js +76 -11
  215. package/framework/modules/chui_services/chui_services.js +39 -31
  216. package/framework/modules/chui_services/desktop.js +149 -30
  217. package/framework/modules/chui_sortable/chui_sortable.js +17 -12
  218. package/framework/modules/chui_validate/chui_validate.js +7 -4
  219. package/framework/tray_bar/chui_menu_items.js +136 -46
  220. package/index.d.ts +4814 -0
  221. package/index.js +449 -334
  222. package/package.json +79 -68
@@ -1,6 +1,6 @@
1
- const { setStyles, optionOr } = require('../../modules/chui_functions');
2
- const { QR } = require('../../modules/chui_qr/chui_qr');
3
- const { I18n } = require('../../modules/chui_i18n/chui_i18n');
1
+ const { setStyles, optionOr } = require("../../modules/chui_functions");
2
+ const { QR } = require("../../modules/chui_qr/chui_qr");
3
+ const { I18n } = require("../../modules/chui_i18n/chui_i18n");
4
4
 
5
5
  /** Длинное значение не перечисляется в имени кода — там остаётся только его длина */
6
6
  const LONG_VALUE = 64;
@@ -73,11 +73,22 @@ class QRCode {
73
73
  #code = undefined;
74
74
  #error_text = undefined;
75
75
 
76
- constructor(options = {
77
- id: String(), value: String(), size: Number(), margin: Number(), level: String(),
78
- mode: String(), minVersion: Number(), mask: Number(), dark: String(), light: String(),
79
- label: String(), emptyText: String()
80
- }) {
76
+ constructor(
77
+ options = {
78
+ id: String(),
79
+ value: String(),
80
+ size: Number(),
81
+ margin: Number(),
82
+ level: String(),
83
+ mode: String(),
84
+ minVersion: Number(),
85
+ mask: Number(),
86
+ dark: String(),
87
+ light: String(),
88
+ label: String(),
89
+ emptyText: String(),
90
+ }
91
+ ) {
81
92
  setStyles(__dirname + "/styles.css", "ChUiJS_QRCode");
82
93
  QRCode.#counter += 1;
83
94
  this.#id = options.id === undefined ? `chui_qrcode_${QRCode.#counter}` : options.id;
@@ -99,43 +110,72 @@ class QRCode {
99
110
  if (Number.isInteger(Number(options.minVersion)) && Number(options.minVersion) > 0) {
100
111
  this.#min_version = QRCode.#toVersion(options.minVersion);
101
112
  }
102
- if (Number.isInteger(Number(options.mask)) && Number(options.mask) >= 0) this.#mask = QRCode.#toMask(options.mask);
113
+ if (Number.isInteger(Number(options.mask)) && Number(options.mask) >= 0)
114
+ this.#mask = QRCode.#toMask(options.mask);
103
115
  if (optionOr(options.dark, undefined) !== undefined) this.#dark = String(options.dark);
104
116
  if (optionOr(options.light, undefined) !== undefined) this.#light = String(options.light);
105
117
  this.setValue(options.value);
106
118
  }
107
119
 
108
120
  // GET
109
- getId() { return this.#id; }
110
- getValue() { return this.#value; }
121
+ getId() {
122
+ return this.#id;
123
+ }
124
+ getValue() {
125
+ return this.#value;
126
+ }
111
127
  /** Заданная сторона канвы в CSS-пикселях (итоговая может быть меньше на доли модуля) */
112
- getSize() { return this.#size; }
128
+ getSize() {
129
+ return this.#size;
130
+ }
113
131
  /** Тихая зона вокруг кода в модулях */
114
- getMargin() { return this.#margin; }
115
- getLevel() { return this.#level; }
132
+ getMargin() {
133
+ return this.#margin;
134
+ }
135
+ getLevel() {
136
+ return this.#level;
137
+ }
116
138
  /** Режим готового кода: при `AUTO` — тот, что подобрался под строку */
117
- getMode() { return this.#code === undefined ? this.#mode : this.#code.mode; }
118
- getMinVersion() { return this.#min_version; }
139
+ getMode() {
140
+ return this.#code === undefined ? this.#mode : this.#code.mode;
141
+ }
142
+ getMinVersion() {
143
+ return this.#min_version;
144
+ }
119
145
  /** Маска готового кода (0…7); без кода — заданная опция или `undefined` при автоподборе */
120
- getMask() { return this.#code === undefined ? this.#mask : this.#code.mask; }
146
+ getMask() {
147
+ return this.#code === undefined ? this.#mask : this.#code.mask;
148
+ }
121
149
  /** Цвета кода: тёмные модули и поле */
122
- getColors() { return {dark: this.#dark, light: this.#light}; }
123
- getCanvas() { return this.#canvas; }
150
+ getColors() {
151
+ return { dark: this.#dark, light: this.#light };
152
+ }
153
+ getCanvas() {
154
+ return this.#canvas;
155
+ }
124
156
  /** Описание готового кода: `{version, size, mask, level, mode, length}` или `undefined` */
125
157
  getCode() {
126
158
  if (this.#code === undefined) return undefined;
127
159
  return {
128
- version: this.#code.version, size: this.#code.size, mask: this.#code.mask,
129
- level: this.#code.level, mode: this.#code.mode, length: this.#code.length
160
+ version: this.#code.version,
161
+ size: this.#code.size,
162
+ mask: this.#code.mask,
163
+ level: this.#code.level,
164
+ mode: this.#code.mode,
165
+ length: this.#code.length,
130
166
  };
131
167
  }
132
- getVersion() { return this.#code === undefined ? undefined : this.#code.version; }
168
+ getVersion() {
169
+ return this.#code === undefined ? undefined : this.#code.version;
170
+ }
133
171
  /** Модули готового кода: `matrix[y][x] === true` — тёмный модуль */
134
172
  getMatrix() {
135
173
  return this.#code === undefined ? undefined : this.#code.matrix.map((row) => row.slice());
136
174
  }
137
175
  /** Текст незаданного состояния или ошибки; `undefined`, если код построен */
138
- getError() { return this.#error_text; }
176
+ getError() {
177
+ return this.#error_text;
178
+ }
139
179
 
140
180
  // SET
141
181
  setId(id = String()) {
@@ -213,7 +253,9 @@ class QRCode {
213
253
  toDataURL(type = "image/png", quality = undefined) {
214
254
  return this.#canvas.toDataURL(type, quality);
215
255
  }
216
- set() { return this.#root; }
256
+ set() {
257
+ return this.#root;
258
+ }
217
259
 
218
260
  // === ОТРИСОВКА ===
219
261
  #render() {
@@ -225,7 +267,7 @@ class QRCode {
225
267
  this.#setLabel(I18n.t("graphics.qrLabel"));
226
268
  return this;
227
269
  }
228
- const options = {level: this.#level, mode: this.#mode};
270
+ const options = { level: this.#level, mode: this.#mode };
229
271
  if (this.#min_version !== undefined) options.minVersion = this.#min_version;
230
272
  if (this.#mask !== undefined) options.mask = this.#mask;
231
273
  const result = QR.encode(value, options);
@@ -306,8 +348,8 @@ class QRCode {
306
348
  /** Имя кода: короткое значение перечисляется, длинное — только по длине */
307
349
  static #valueLabel(value = String()) {
308
350
  return value.length <= LONG_VALUE
309
- ? I18n.t("graphics.qrValue", {value: value})
310
- : I18n.t("graphics.qrLongValue", {length: value.length});
351
+ ? I18n.t("graphics.qrValue", { value: value })
352
+ : I18n.t("graphics.qrLongValue", { length: value.length });
311
353
  }
312
354
 
313
355
  /** Ошибка генератора словами словаря: пустое значение сюда не доходит */
@@ -315,11 +357,12 @@ class QRCode {
315
357
  if (error.code === "tooLong") {
316
358
  const bytes = error.mode === QR.MODE.BYTE;
317
359
  return I18n.t(bytes ? "graphics.qrTooLongBytes" : "graphics.qrTooLongChars", {
318
- needed: error.needed, capacity: error.capacity
360
+ needed: error.needed,
361
+ capacity: error.capacity,
319
362
  });
320
363
  }
321
364
  if (error.code === "mode") {
322
- return I18n.t("graphics.qrModeMismatch", {mode: I18n.t(`graphics.qrMode.${error.mode}`)});
365
+ return I18n.t("graphics.qrModeMismatch", { mode: I18n.t(`graphics.qrMode.${error.mode}`) });
323
366
  }
324
367
  return I18n.t("graphics.qrEmpty");
325
368
  }
@@ -357,9 +400,10 @@ class QRCode {
357
400
 
358
401
  static #toVersion(version = Number()) {
359
402
  const value = Number(version);
360
- if (!Number.isInteger(value) || value < 1 || value > 40) throw new RangeError("QRCode: версия вне диапазона 1…40");
403
+ if (!Number.isInteger(value) || value < 1 || value > 40)
404
+ throw new RangeError("QRCode: версия вне диапазона 1…40");
361
405
  return value;
362
406
  }
363
407
  }
364
408
 
365
- exports.QRCode = QRCode
409
+ exports.QRCode = QRCode;