chuijs 3.6.3 → 3.6.4

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 (119) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +1203 -162
  3. package/framework/appLayout/default/chui_app_layout.js +747 -747
  4. package/framework/appLayout/default/global_style.css +592 -570
  5. package/framework/appLayout/default/main_theme_style.css +118 -101
  6. package/framework/components/chui_accordion/accordion.js +63 -63
  7. package/framework/components/chui_accordion/styles.css +79 -75
  8. package/framework/components/chui_badge/badge.js +55 -55
  9. package/framework/components/chui_badge/styles.css +29 -29
  10. package/framework/components/chui_button/button.js +48 -48
  11. package/framework/components/chui_button/styles.css +75 -70
  12. package/framework/components/chui_calendar/calendar.js +97 -97
  13. package/framework/components/chui_card/card.js +87 -0
  14. package/framework/components/chui_card/styles.css +72 -0
  15. package/framework/components/chui_code/code.js +18 -18
  16. package/framework/components/chui_code/styles.css +9 -9
  17. package/framework/components/chui_console/console.js +27 -27
  18. package/framework/components/chui_console/styles.css +31 -31
  19. package/framework/components/chui_content_block/content_block.js +51 -51
  20. package/framework/components/chui_content_block/styles.css +2 -2
  21. package/framework/components/chui_context_menu/context_menu.js +230 -0
  22. package/framework/components/chui_context_menu/styles.css +136 -0
  23. package/framework/components/chui_custom_element/custom_element.js +24 -24
  24. package/framework/components/chui_details/details.js +85 -85
  25. package/framework/components/chui_details/styles.css +70 -66
  26. package/framework/components/chui_fieldset/fieldset.js +40 -40
  27. package/framework/components/chui_fieldset/styles.css +24 -24
  28. package/framework/components/chui_form/form.js +40 -40
  29. package/framework/components/chui_form/styles.css +21 -21
  30. package/framework/components/chui_graphs/graphs.js +234 -190
  31. package/framework/components/chui_graphs/styles.css +37 -32
  32. package/framework/components/chui_hero/hero.js +98 -0
  33. package/framework/components/chui_hero/styles.css +91 -0
  34. package/framework/components/chui_html_block/html_block.js +16 -16
  35. package/framework/components/chui_html_block/styles.css +5 -5
  36. package/framework/components/chui_hx/hx.js +15 -15
  37. package/framework/components/chui_hx/styles.css +38 -38
  38. package/framework/components/chui_icons/icons.js +2144 -2144
  39. package/framework/components/chui_icons/styles.css +13 -13
  40. package/framework/components/chui_inputs/chui_check_box/check_box.js +32 -32
  41. package/framework/components/chui_inputs/chui_check_box/styles.css +91 -86
  42. package/framework/components/chui_inputs/chui_combo_box/combo_box.js +166 -150
  43. package/framework/components/chui_inputs/chui_combo_box/styles.css +113 -107
  44. package/framework/components/chui_inputs/chui_date/date.js +177 -174
  45. package/framework/components/chui_inputs/chui_date/styles.css +163 -128
  46. package/framework/components/chui_inputs/chui_email/email.js +61 -61
  47. package/framework/components/chui_inputs/chui_email/styles.css +69 -71
  48. package/framework/components/chui_inputs/chui_file/file.js +76 -76
  49. package/framework/components/chui_inputs/chui_file/styles.css +99 -99
  50. package/framework/components/chui_inputs/chui_multi_combo_box/multi_combo_box.js +295 -295
  51. package/framework/components/chui_inputs/chui_multi_combo_box/styles.css +212 -235
  52. package/framework/components/chui_inputs/chui_number/number.js +108 -108
  53. package/framework/components/chui_inputs/chui_number/styles.css +84 -84
  54. package/framework/components/chui_inputs/chui_password/password.js +99 -99
  55. package/framework/components/chui_inputs/chui_password/styles.css +97 -97
  56. package/framework/components/chui_inputs/chui_radio_button/radio_button.js +45 -45
  57. package/framework/components/chui_inputs/chui_radio_button/styles.css +76 -73
  58. package/framework/components/chui_inputs/chui_select_box/select_box.js +187 -170
  59. package/framework/components/chui_inputs/chui_select_box/styles.css +123 -117
  60. package/framework/components/chui_inputs/chui_text/styles.css +83 -84
  61. package/framework/components/chui_inputs/chui_text/text.js +91 -91
  62. package/framework/components/chui_inputs/chui_text_area/styles.css +57 -57
  63. package/framework/components/chui_inputs/chui_text_area/text_area.js +61 -61
  64. package/framework/components/chui_inputs/chui_toggle/styles.css +66 -61
  65. package/framework/components/chui_inputs/chui_toggle/toggle.js +36 -36
  66. package/framework/components/chui_label/label.js +54 -54
  67. package/framework/components/chui_label/styles.css +11 -11
  68. package/framework/components/chui_media/audio.js +908 -908
  69. package/framework/components/chui_media/audio_styles.css +458 -458
  70. package/framework/components/chui_media/image.js +105 -105
  71. package/framework/components/chui_media/image_styles.css +61 -61
  72. package/framework/components/chui_media/video.js +248 -248
  73. package/framework/components/chui_media/video_styles.css +160 -160
  74. package/framework/components/chui_menu_bar/menu_bar.js +66 -74
  75. package/framework/components/chui_menu_bar/styles.css +114 -76
  76. package/framework/components/chui_modal/modal.js +142 -135
  77. package/framework/components/chui_modal/styles.css +36 -36
  78. package/framework/components/chui_notification/notification.js +72 -72
  79. package/framework/components/chui_notification/notification_download.js +78 -78
  80. package/framework/components/chui_notification/notification_download_progress.css +119 -123
  81. package/framework/components/chui_notification/notification_download_progress.js +105 -105
  82. package/framework/components/chui_notification/notification_update.js +54 -54
  83. package/framework/components/chui_notification/styles.css +91 -91
  84. package/framework/components/chui_notification/styles_download.css +85 -85
  85. package/framework/components/chui_notification/styles_update.css +73 -73
  86. package/framework/components/chui_paragraph/paragraph.js +14 -14
  87. package/framework/components/chui_paragraph/styles.css +6 -6
  88. package/framework/components/chui_popups/popups.js +250 -250
  89. package/framework/components/chui_popups/styles.css +129 -115
  90. package/framework/components/chui_progress_bar/progress_bar.js +28 -28
  91. package/framework/components/chui_progress_bar/styles.css +28 -28
  92. package/framework/components/chui_radio_group/radio_group.js +57 -57
  93. package/framework/components/chui_radio_group/styles.css +3 -3
  94. package/framework/components/chui_slideshow/slideshow.js +75 -75
  95. package/framework/components/chui_slideshow/styles.css +94 -85
  96. package/framework/components/chui_spinner/spinner.js +45 -45
  97. package/framework/components/chui_spinner/styles.css +23 -23
  98. package/framework/components/chui_table/styles.css +42 -42
  99. package/framework/components/chui_table/table.js +234 -234
  100. package/framework/components/chui_tabs/chui_tabs.js +77 -77
  101. package/framework/components/chui_tabs/styles.css +54 -48
  102. package/framework/components/chui_text_editor/styles.css +217 -217
  103. package/framework/components/chui_text_editor/text_editor.js +144 -144
  104. package/framework/components/chui_text_editor/text_editor_panel.js +568 -568
  105. package/framework/components/chui_tree_view/styles.css +81 -75
  106. package/framework/components/chui_tree_view/tree_view.js +90 -90
  107. package/framework/components/chui_webview/styles.css +27 -27
  108. package/framework/components/chui_webview/webview.js +103 -103
  109. package/framework/components/telegram_bot/chui_telegram_bot.js +183 -183
  110. package/framework/modules/chui_animations/animations.js +121 -121
  111. package/framework/modules/chui_animations/styles.css +79 -79
  112. package/framework/modules/chui_fonts.js +7128 -7128
  113. package/framework/modules/chui_functions.js +106 -78
  114. package/framework/modules/chui_logger/chui_logger.js +53 -53
  115. package/framework/modules/chui_page/page.js +86 -86
  116. package/framework/modules/chui_page/styles.css +9 -9
  117. package/framework/tray_bar/chui_menu_items.js +48 -48
  118. package/index.js +570 -555
  119. package/package.json +51 -46
@@ -1,251 +1,251 @@
1
- const {Animation} = require('../../modules/chui_animations/animations');
2
- const {PasswordInput} = require("../chui_inputs/chui_password/password");
3
- const {TextInput} = require("../chui_inputs/chui_text/text");
4
-
5
- class Popup {
6
- constructor() {
7
- require('../../modules/chui_functions').setStyles(__dirname + "/styles.css", 'chUiJS_Popups');
8
- }
9
- alert(options = {title: String(), message: String()}) {
10
- new PopupAlert(options);
11
- }
12
- async confirm(options = {
13
- title: String(), message: String(), okText: String(), cancelText: String(),
14
- }) {
15
- try {
16
- return await new PopupConfirm(options);
17
- } catch (err) {
18
- return err;
19
- }
20
- }
21
- async prompt(options = {
22
- title: String(), message: String(),
23
- inputs: {
24
- text: {
25
- placeholder: String(), errorMessage: String()
26
- },
27
- password: {
28
- placeholder: String(), errorMessage: String()
29
- },
30
- },
31
- okText: String(), cancelText: String()
32
- }) {
33
- try {
34
- return await new PopupPrompt(options);
35
- } catch (err) {
36
- throw new Error(err)
37
- }
38
- }
39
- }
40
-
41
- exports.Popup = Popup
42
-
43
- class PopupAlert {
44
- #id = require("randomstring").generate();
45
- #chui_popup = document.createElement(`chui_popup`);
46
- #popup_content = document.createElement('popup_content');
47
- #popup_body = document.createElement("popup_body")
48
- #popup_buttons = document.createElement('popup_buttons');
49
- #button_OK = document.createElement("popup_button_ok");
50
-
51
- #popup_title = document.createElement("popup_title")
52
- #popup_message = document.createElement("popup_message")
53
- constructor(options = {title: String(), message: String()}) {
54
- this.#chui_popup.id = this.#id
55
- //ADDS
56
- this.#popup_content.appendChild(this.#popup_body)
57
- this.#popup_content.appendChild(this.#popup_buttons)
58
- this.#chui_popup.appendChild(this.#popup_content)
59
-
60
- this.#popup_title.innerText = options.title;
61
- this.#popup_message.innerText = options.message;
62
-
63
- this.#popup_body.appendChild(this.#popup_title);
64
- this.#popup_body.appendChild(this.#popup_message);
65
-
66
- // СОБЫТИЯ
67
- this.#button_OK.innerText = "OK";
68
- this.#button_OK.addEventListener("click", () => {
69
- let popup = document.getElementById(this.#id);
70
- new Animation(popup.firstChild).scaleOut();
71
- new Animation(popup).fadeOutAndRemove();
72
- })
73
- this.#popup_buttons.appendChild(this.#button_OK);
74
-
75
- //
76
- document.body.appendChild(this.#chui_popup)
77
- let popup = document.getElementById(this.#id);
78
- new Animation(popup).fadeIn();
79
- new Animation(popup.firstChild).scaleIn();
80
- }
81
- }
82
-
83
- class PopupConfirm {
84
- #id = require("randomstring").generate();
85
- #chui_popup = document.createElement(`chui_popup`);
86
- #popup_content = document.createElement('popup_content');
87
- #popup_body = document.createElement("popup_body")
88
- #popup_buttons = document.createElement('popup_buttons');
89
- #button_accept = document.createElement("popup_button_accept")
90
- #button_cancel = document.createElement("popup_button_cancel")
91
-
92
- #popup_title = document.createElement("popup_title")
93
- #popup_message = document.createElement("popup_message")
94
- constructor(options = {
95
- title: String(), message: String(),
96
- okText: String(), cancelText: String(),
97
- }) {
98
- this.#chui_popup.id = this.#id
99
- //ADDS
100
- this.#popup_content.appendChild(this.#popup_body)
101
- this.#popup_content.appendChild(this.#popup_buttons)
102
- this.#chui_popup.appendChild(this.#popup_content)
103
-
104
- this.#popup_title.innerText = options.title;
105
- this.#popup_message.innerText = options.message;
106
-
107
- this.#popup_body.appendChild(this.#popup_title);
108
- this.#popup_body.appendChild(this.#popup_message);
109
-
110
- this.#button_cancel.innerText = options.cancelText;
111
- this.#button_accept.innerText = options.okText;
112
-
113
- this.#popup_buttons.appendChild(this.#button_cancel);
114
- this.#popup_buttons.appendChild(this.#button_accept);
115
-
116
- return new Promise((resolve) => {
117
- this.#button_cancel.addEventListener("click", () => {
118
- let popup = document.getElementById(this.#id);
119
- new Animation(popup.firstChild).scaleOut();
120
- new Animation(popup).fadeOutAndRemove();
121
- resolve(false);
122
- })
123
-
124
- this.#button_accept.addEventListener("click", () => {
125
- let popup = document.getElementById(this.#id);
126
- new Animation(popup.firstChild).scaleOut();
127
- new Animation(popup).fadeOutAndRemove();
128
- resolve(true);
129
- });
130
-
131
- document.body.appendChild(this.#chui_popup)
132
- let popup = document.getElementById(this.#id);
133
- new Animation(popup).fadeIn();
134
- new Animation(popup.firstChild).scaleIn();
135
- })
136
- }
137
- }
138
-
139
- class PopupPrompt {
140
- #id = require("randomstring").generate();
141
- #chui_popup = document.createElement(`chui_popup`);
142
- #popup_content = document.createElement('popup_content');
143
- #popup_body = document.createElement("popup_body")
144
- #popup_buttons = document.createElement('popup_buttons');
145
- #button_accept = document.createElement("popup_button_accept")
146
- #button_cancel = document.createElement("popup_button_cancel")
147
-
148
- #popup_title = document.createElement("popup_title")
149
- #popup_message = document.createElement("popup_message")
150
-
151
- #input_text = undefined;
152
- #input_pass = undefined;
153
-
154
- constructor(options = {
155
- title: String(), message: String(),
156
- inputs: {
157
- text: {
158
- placeholder: String(),
159
- errorMessage: String()
160
- },
161
- password: {
162
- placeholder: String(),
163
- errorMessage: String()
164
- },
165
- },
166
- okText: String(), cancelText: String()
167
- }) {
168
- this.#chui_popup.id = this.#id
169
- //ADDS
170
- this.#popup_content.appendChild(this.#popup_body)
171
- this.#popup_content.appendChild(this.#popup_buttons)
172
- this.#chui_popup.appendChild(this.#popup_content)
173
-
174
- this.#popup_title.innerText = options.title;
175
- this.#popup_message.innerText = options.message;
176
-
177
- this.#popup_body.appendChild(this.#popup_title);
178
- this.#popup_body.appendChild(this.#popup_message);
179
-
180
- if (options.inputs.text === undefined && options.inputs.password === undefined) {
181
- throw new Error("render: Установите одно из полей ввода text или password");
182
- }
183
-
184
- if (options.inputs.text !== undefined) {
185
- this.#input_text = new TextInput({ placeholder: options.inputs.text.placeholder, width: "-webkit-fill-available" })
186
- this.#popup_body.appendChild(this.#input_text.set());
187
- }
188
-
189
- if (options.inputs.password !== undefined) {
190
- this.#input_pass = new PasswordInput({ placeholder: options.inputs.password.placeholder, width: "-webkit-fill-available" })
191
- this.#popup_body.appendChild(this.#input_pass.set());
192
- }
193
-
194
- this.#button_cancel.innerText = options.cancelText;
195
- this.#button_accept.innerText = options.okText;
196
-
197
- this.#popup_buttons.appendChild(this.#button_cancel);
198
- this.#popup_buttons.appendChild(this.#button_accept);
199
-
200
- return new Promise((resolve) => {
201
-
202
-
203
- this.#button_cancel.addEventListener("click", () => {
204
- let popup = document.getElementById(this.#id);
205
- new Animation(popup.firstChild).scaleOut();
206
- new Animation(popup).fadeOutAndRemove();
207
- })
208
-
209
- this.#button_accept.addEventListener("click", () => {
210
- let close = false;
211
- if (this.#input_text && this.#input_pass === undefined) {
212
- if (this.#input_text.getValue() !== "") {
213
- close = true;
214
- resolve({ text: this.#input_text.getValue() });
215
- } else {
216
- this.#input_text.setErrorMessage(options.inputs.text.errorMessage);
217
- }
218
- }
219
- if (this.#input_text === undefined && this.#input_pass) {
220
- if (this.#input_pass.getValue() !== "") {
221
- close = true;
222
- resolve({ password: this.#input_pass.getValue() });
223
- } else {
224
- this.#input_pass.setErrorMessage(options.inputs.password.errorMessage);
225
- }
226
- }
227
- if (this.#input_text && this.#input_pass) {
228
- let text = this.#input_text.getValue();
229
- let password = this.#input_pass.getValue();
230
- if (text !== "" && password !== "") {
231
- close = true;
232
- resolve({ text, password });
233
- }
234
- if (text === "") this.#input_text.setErrorMessage(options.inputs.text.errorMessage);
235
- if (password === "") this.#input_pass.setErrorMessage(options.inputs.password.errorMessage);
236
- }
237
- if (close) {
238
- let popup = document.getElementById(this.#id);
239
- new Animation(popup.firstChild).scaleOut();
240
- new Animation(popup).fadeOutAndRemove();
241
- }
242
- })
243
-
244
- document.body.appendChild(this.#chui_popup);
245
-
246
- let popup = document.getElementById(this.#id);
247
- new Animation(popup).fadeIn();
248
- new Animation(popup.firstChild).scaleIn();
249
- })
250
- }
1
+ const {Animation} = require('../../modules/chui_animations/animations');
2
+ const {PasswordInput} = require("../chui_inputs/chui_password/password");
3
+ const {TextInput} = require("../chui_inputs/chui_text/text");
4
+
5
+ class Popup {
6
+ constructor() {
7
+ require('../../modules/chui_functions').setStyles(__dirname + "/styles.css", 'chUiJS_Popups');
8
+ }
9
+ alert(options = {title: String(), message: String()}) {
10
+ new PopupAlert(options);
11
+ }
12
+ async confirm(options = {
13
+ title: String(), message: String(), okText: String(), cancelText: String(),
14
+ }) {
15
+ try {
16
+ return await new PopupConfirm(options);
17
+ } catch (err) {
18
+ return err;
19
+ }
20
+ }
21
+ async prompt(options = {
22
+ title: String(), message: String(),
23
+ inputs: {
24
+ text: {
25
+ placeholder: String(), errorMessage: String()
26
+ },
27
+ password: {
28
+ placeholder: String(), errorMessage: String()
29
+ },
30
+ },
31
+ okText: String(), cancelText: String()
32
+ }) {
33
+ try {
34
+ return await new PopupPrompt(options);
35
+ } catch (err) {
36
+ throw new Error(err)
37
+ }
38
+ }
39
+ }
40
+
41
+ exports.Popup = Popup
42
+
43
+ class PopupAlert {
44
+ #id = require("randomstring").generate();
45
+ #chui_popup = document.createElement(`chui_popup`);
46
+ #popup_content = document.createElement('popup_content');
47
+ #popup_body = document.createElement("popup_body")
48
+ #popup_buttons = document.createElement('popup_buttons');
49
+ #button_OK = document.createElement("popup_button_ok");
50
+
51
+ #popup_title = document.createElement("popup_title")
52
+ #popup_message = document.createElement("popup_message")
53
+ constructor(options = {title: String(), message: String()}) {
54
+ this.#chui_popup.id = this.#id
55
+ //ADDS
56
+ this.#popup_content.appendChild(this.#popup_body)
57
+ this.#popup_content.appendChild(this.#popup_buttons)
58
+ this.#chui_popup.appendChild(this.#popup_content)
59
+
60
+ this.#popup_title.innerText = options.title;
61
+ this.#popup_message.innerText = options.message;
62
+
63
+ this.#popup_body.appendChild(this.#popup_title);
64
+ this.#popup_body.appendChild(this.#popup_message);
65
+
66
+ // СОБЫТИЯ
67
+ this.#button_OK.innerText = "OK";
68
+ this.#button_OK.addEventListener("click", () => {
69
+ let popup = document.getElementById(this.#id);
70
+ new Animation(popup.firstChild).scaleOut();
71
+ new Animation(popup).fadeOutAndRemove();
72
+ })
73
+ this.#popup_buttons.appendChild(this.#button_OK);
74
+
75
+ //
76
+ document.body.appendChild(this.#chui_popup)
77
+ let popup = document.getElementById(this.#id);
78
+ new Animation(popup).fadeIn();
79
+ new Animation(popup.firstChild).scaleIn();
80
+ }
81
+ }
82
+
83
+ class PopupConfirm {
84
+ #id = require("randomstring").generate();
85
+ #chui_popup = document.createElement(`chui_popup`);
86
+ #popup_content = document.createElement('popup_content');
87
+ #popup_body = document.createElement("popup_body")
88
+ #popup_buttons = document.createElement('popup_buttons');
89
+ #button_accept = document.createElement("popup_button_accept")
90
+ #button_cancel = document.createElement("popup_button_cancel")
91
+
92
+ #popup_title = document.createElement("popup_title")
93
+ #popup_message = document.createElement("popup_message")
94
+ constructor(options = {
95
+ title: String(), message: String(),
96
+ okText: String(), cancelText: String(),
97
+ }) {
98
+ this.#chui_popup.id = this.#id
99
+ //ADDS
100
+ this.#popup_content.appendChild(this.#popup_body)
101
+ this.#popup_content.appendChild(this.#popup_buttons)
102
+ this.#chui_popup.appendChild(this.#popup_content)
103
+
104
+ this.#popup_title.innerText = options.title;
105
+ this.#popup_message.innerText = options.message;
106
+
107
+ this.#popup_body.appendChild(this.#popup_title);
108
+ this.#popup_body.appendChild(this.#popup_message);
109
+
110
+ this.#button_cancel.innerText = options.cancelText;
111
+ this.#button_accept.innerText = options.okText;
112
+
113
+ this.#popup_buttons.appendChild(this.#button_cancel);
114
+ this.#popup_buttons.appendChild(this.#button_accept);
115
+
116
+ return new Promise((resolve) => {
117
+ this.#button_cancel.addEventListener("click", () => {
118
+ let popup = document.getElementById(this.#id);
119
+ new Animation(popup.firstChild).scaleOut();
120
+ new Animation(popup).fadeOutAndRemove();
121
+ resolve(false);
122
+ })
123
+
124
+ this.#button_accept.addEventListener("click", () => {
125
+ let popup = document.getElementById(this.#id);
126
+ new Animation(popup.firstChild).scaleOut();
127
+ new Animation(popup).fadeOutAndRemove();
128
+ resolve(true);
129
+ });
130
+
131
+ document.body.appendChild(this.#chui_popup)
132
+ let popup = document.getElementById(this.#id);
133
+ new Animation(popup).fadeIn();
134
+ new Animation(popup.firstChild).scaleIn();
135
+ })
136
+ }
137
+ }
138
+
139
+ class PopupPrompt {
140
+ #id = require("randomstring").generate();
141
+ #chui_popup = document.createElement(`chui_popup`);
142
+ #popup_content = document.createElement('popup_content');
143
+ #popup_body = document.createElement("popup_body")
144
+ #popup_buttons = document.createElement('popup_buttons');
145
+ #button_accept = document.createElement("popup_button_accept")
146
+ #button_cancel = document.createElement("popup_button_cancel")
147
+
148
+ #popup_title = document.createElement("popup_title")
149
+ #popup_message = document.createElement("popup_message")
150
+
151
+ #input_text = undefined;
152
+ #input_pass = undefined;
153
+
154
+ constructor(options = {
155
+ title: String(), message: String(),
156
+ inputs: {
157
+ text: {
158
+ placeholder: String(),
159
+ errorMessage: String()
160
+ },
161
+ password: {
162
+ placeholder: String(),
163
+ errorMessage: String()
164
+ },
165
+ },
166
+ okText: String(), cancelText: String()
167
+ }) {
168
+ this.#chui_popup.id = this.#id
169
+ //ADDS
170
+ this.#popup_content.appendChild(this.#popup_body)
171
+ this.#popup_content.appendChild(this.#popup_buttons)
172
+ this.#chui_popup.appendChild(this.#popup_content)
173
+
174
+ this.#popup_title.innerText = options.title;
175
+ this.#popup_message.innerText = options.message;
176
+
177
+ this.#popup_body.appendChild(this.#popup_title);
178
+ this.#popup_body.appendChild(this.#popup_message);
179
+
180
+ if (options.inputs.text === undefined && options.inputs.password === undefined) {
181
+ throw new Error("render: Установите одно из полей ввода text или password");
182
+ }
183
+
184
+ if (options.inputs.text !== undefined) {
185
+ this.#input_text = new TextInput({ placeholder: options.inputs.text.placeholder, width: "-webkit-fill-available" })
186
+ this.#popup_body.appendChild(this.#input_text.set());
187
+ }
188
+
189
+ if (options.inputs.password !== undefined) {
190
+ this.#input_pass = new PasswordInput({ placeholder: options.inputs.password.placeholder, width: "-webkit-fill-available" })
191
+ this.#popup_body.appendChild(this.#input_pass.set());
192
+ }
193
+
194
+ this.#button_cancel.innerText = options.cancelText;
195
+ this.#button_accept.innerText = options.okText;
196
+
197
+ this.#popup_buttons.appendChild(this.#button_cancel);
198
+ this.#popup_buttons.appendChild(this.#button_accept);
199
+
200
+ return new Promise((resolve) => {
201
+
202
+
203
+ this.#button_cancel.addEventListener("click", () => {
204
+ let popup = document.getElementById(this.#id);
205
+ new Animation(popup.firstChild).scaleOut();
206
+ new Animation(popup).fadeOutAndRemove();
207
+ })
208
+
209
+ this.#button_accept.addEventListener("click", () => {
210
+ let close = false;
211
+ if (this.#input_text && this.#input_pass === undefined) {
212
+ if (this.#input_text.getValue() !== "") {
213
+ close = true;
214
+ resolve({ text: this.#input_text.getValue() });
215
+ } else {
216
+ this.#input_text.setErrorMessage(options.inputs.text.errorMessage);
217
+ }
218
+ }
219
+ if (this.#input_text === undefined && this.#input_pass) {
220
+ if (this.#input_pass.getValue() !== "") {
221
+ close = true;
222
+ resolve({ password: this.#input_pass.getValue() });
223
+ } else {
224
+ this.#input_pass.setErrorMessage(options.inputs.password.errorMessage);
225
+ }
226
+ }
227
+ if (this.#input_text && this.#input_pass) {
228
+ let text = this.#input_text.getValue();
229
+ let password = this.#input_pass.getValue();
230
+ if (text !== "" && password !== "") {
231
+ close = true;
232
+ resolve({ text, password });
233
+ }
234
+ if (text === "") this.#input_text.setErrorMessage(options.inputs.text.errorMessage);
235
+ if (password === "") this.#input_pass.setErrorMessage(options.inputs.password.errorMessage);
236
+ }
237
+ if (close) {
238
+ let popup = document.getElementById(this.#id);
239
+ new Animation(popup.firstChild).scaleOut();
240
+ new Animation(popup).fadeOutAndRemove();
241
+ }
242
+ })
243
+
244
+ document.body.appendChild(this.#chui_popup);
245
+
246
+ let popup = document.getElementById(this.#id);
247
+ new Animation(popup).fadeIn();
248
+ new Animation(popup.firstChild).scaleIn();
249
+ })
250
+ }
251
251
  }