@overvis/hmi-workspace-ui 0.1.1 → 0.1.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 (91) hide show
  1. package/README.md +6 -4
  2. package/dist/{alarm-list-sheAq-pb.js → alarm-list-TDg7nwkn.js} +4 -4
  3. package/dist/{alarm-rule-dialog-D_ml7V0v.js → alarm-rule-dialog-DwbRtPZD.js} +10 -10
  4. package/dist/{alarm-rule-lists-DaA4soF4.js → alarm-rule-lists-Ax7PzbQy.js} +4 -4
  5. package/dist/{alarm-rules-page-OFjOQ-dm.js → alarm-rules-page-DisATKLV.js} +11 -11
  6. package/dist/{alert-dialog-B60PF7S9.js → alert-dialog-CskdoiGZ.js} +1 -1
  7. package/dist/{base-revision-DYCOZS0R.js → base-revision-C-tNhqGq.js} +3 -3
  8. package/dist/{breadcrumbs-D2u8KZQo.js → breadcrumbs-B5O9let7.js} +3 -3
  9. package/dist/{catalog-list-LXuRix0-.js → catalog-list-3yaB4bJD.js} +1 -1
  10. package/dist/{code-editor-BMSyzAxu.js → code-editor-B6myrPQm.js} +6 -2
  11. package/dist/{dashboards-page-wnmmLpVC.js → dashboards-page-CoKevu-T.js} +9 -9
  12. package/dist/{de-hkEr2usK.js → de-CPxvTPak.js} +11 -0
  13. package/dist/{diagnostic-text-CsbENUNI.js → diagnostic-text-BS4rdZcE.js} +2 -2
  14. package/dist/{dialogs-AtIYlNSy.js → dialogs-BUyPGimM.js} +6 -6
  15. package/dist/{dialogs-DsHbKgZD.js → dialogs-CF7Baagf.js} +512 -510
  16. package/dist/{display-DSyEwQt8.js → display-DmldtHdd.js} +2 -2
  17. package/dist/{editor-language-CTfJBXMs.js → editor-language-8UJkvBgX.js} +1 -1
  18. package/dist/{editor-page-BWbVGJvU.js → editor-page-_6TxO_iT.js} +14 -14
  19. package/dist/{en-UW_k-Bd6.js → en-DoFtc9Sn.js} +11 -0
  20. package/dist/{entity-controls-BCuRx882.js → entity-controls-rdv-ttvP.js} +3 -3
  21. package/dist/{errors-Cawve9yD.js → errors-BFeJfnyz.js} +2 -2
  22. package/dist/{footer-B9XdpVzq.js → footer-DZUQHVnt.js} +4 -4
  23. package/dist/host.js +1175 -1063
  24. package/dist/{i18n-Dt6xbSK6.js → i18n-D54xfDUE.js} +5 -5
  25. package/dist/i18n.js +1 -1
  26. package/dist/index.js +64 -42
  27. package/dist/{list-page-agHupfNb.js → list-page-Cz5bdD8r.js} +11 -11
  28. package/dist/{location-map-renderer-kxU6cgFl.js → location-map-renderer-Hb5N0AYH.js} +1 -1
  29. package/dist/{notice-card-CH28rYUt.js → notice-card-BMNjc7qi.js} +3 -3
  30. package/dist/{page-CZPHJUmz.js → page-BKnwJyv5.js} +8 -8
  31. package/dist/{page-HCGXXGjy.js → page-CBWLmbIE.js} +11 -11
  32. package/dist/{page-DpdkOGGb.js → page-UoQRnsm3.js} +11 -11
  33. package/dist/{panel-BCwBlB_h.js → panel-Cr3OXiRs.js} +3 -3
  34. package/dist/{pl-BokvsP3J.js → pl-DEPfFtMO.js} +11 -0
  35. package/dist/{presence-code-cT6wxlTg.js → presence-code-DIKs9fBe.js} +2 -2
  36. package/dist/{query-gate-DqmHsZ07.js → query-gate-2sU8OvEb.js} +3 -3
  37. package/dist/{quick-report-DEqqwQxR.js → quick-report-ZvrI5Jkh.js} +3130 -3102
  38. package/dist/{retention-note-nequESpo.js → retention-note-BrkxE2Wo.js} +9 -6
  39. package/dist/{retention-DZ0reGGe.js → retention-wDvnFMbN.js} +2 -2
  40. package/dist/{ru-DZSlsRHq.js → ru-Ct2zNOs8.js} +15 -4
  41. package/dist/{run-text-DneX9rWh.js → run-text-Bmkf_u0N.js} +2 -2
  42. package/dist/{search-DP9_alSQ.js → search-ADhiRT_S.js} +3 -3
  43. package/dist/{sections-BU7NKUOQ.js → sections-BDtBUhxn.js} +1 -1
  44. package/dist/{select-Te6Qv1Zu.js → select-Cpeslz01.js} +2 -2
  45. package/dist/{spinner-BRcNKwjH.js → spinner-LbVGWBQq.js} +2 -2
  46. package/dist/src/code-editor/code-editor.d.ts +3 -0
  47. package/dist/src/code-editor/taskfile-language.d.ts +22 -2
  48. package/dist/src/i18n/catalogs/de/api-error.d.ts +3 -0
  49. package/dist/src/i18n/catalogs/de/audit.d.ts +1 -0
  50. package/dist/src/i18n/catalogs/de/edge-program.d.ts +4 -0
  51. package/dist/src/i18n/catalogs/de/parameter.d.ts +1 -0
  52. package/dist/src/i18n/catalogs/de/starter.d.ts +2 -0
  53. package/dist/src/i18n/catalogs/de.d.ts +11 -0
  54. package/dist/src/i18n/catalogs/en/api-error.d.ts +3 -0
  55. package/dist/src/i18n/catalogs/en/audit.d.ts +1 -0
  56. package/dist/src/i18n/catalogs/en/edge-program.d.ts +4 -0
  57. package/dist/src/i18n/catalogs/en/parameter.d.ts +1 -0
  58. package/dist/src/i18n/catalogs/en/starter.d.ts +2 -0
  59. package/dist/src/i18n/catalogs/en.d.ts +11 -0
  60. package/dist/src/i18n/catalogs/pl/api-error.d.ts +3 -0
  61. package/dist/src/i18n/catalogs/pl/audit.d.ts +1 -0
  62. package/dist/src/i18n/catalogs/pl/edge-program.d.ts +4 -0
  63. package/dist/src/i18n/catalogs/pl/parameter.d.ts +1 -0
  64. package/dist/src/i18n/catalogs/pl/starter.d.ts +2 -0
  65. package/dist/src/i18n/catalogs/pl.d.ts +11 -0
  66. package/dist/src/i18n/catalogs/ru/api-error.d.ts +3 -0
  67. package/dist/src/i18n/catalogs/ru/audit.d.ts +1 -0
  68. package/dist/src/i18n/catalogs/ru/edge-program.d.ts +6 -2
  69. package/dist/src/i18n/catalogs/ru/graphics.d.ts +2 -2
  70. package/dist/src/i18n/catalogs/ru/parameter.d.ts +1 -0
  71. package/dist/src/i18n/catalogs/ru/starter.d.ts +2 -0
  72. package/dist/src/i18n/catalogs/ru.d.ts +15 -4
  73. package/dist/src/i18n/catalogs/uk/api-error.d.ts +3 -0
  74. package/dist/src/i18n/catalogs/uk/audit.d.ts +1 -0
  75. package/dist/src/i18n/catalogs/uk/edge-program.d.ts +6 -2
  76. package/dist/src/i18n/catalogs/uk/graphics.d.ts +2 -2
  77. package/dist/src/i18n/catalogs/uk/parameter.d.ts +1 -0
  78. package/dist/src/i18n/catalogs/uk/starter.d.ts +2 -0
  79. package/dist/src/i18n/catalogs/uk.d.ts +15 -4
  80. package/dist/src/version.d.ts +1 -1
  81. package/dist/src/workspace/device-presets/layout.d.ts +2 -0
  82. package/dist/src/workspace/local-setup-link.d.ts +3 -0
  83. package/dist/src/workspace/parameters/errors.d.ts +5 -0
  84. package/dist/src/workspace/setup/starters/starter-form.d.ts +24 -6
  85. package/dist/starter-fields-BHNS6IQe.js +678 -0
  86. package/dist/styles.css +1 -1
  87. package/dist/ui.js +6 -6
  88. package/dist/{uk-CjXPq9Lk.js → uk-Dbm1i2uh.js} +15 -4
  89. package/dist/{wireguard-docs-CC8XKBR7.js → wireguard-docs-DIBtCviv.js} +3 -3
  90. package/package.json +2 -2
  91. package/dist/starter-fields-yM4B49nd.js +0 -583
@@ -102,6 +102,7 @@ declare const _default: {
102
102
  readonly error_device_api_device_error_status: "Urządzenie odpowiedziało błędem {status}.";
103
103
  readonly error_input_invalid: "Przesłane dane są nieprawidłowe.";
104
104
  readonly error_workspace_no_access: "Nie masz dostępu do tego obszaru roboczego.";
105
+ readonly error_workspace_public_link_not_found: "Ten publiczny adres jest niedostępny.";
105
106
  readonly error_workspace_suspended: "Ten obszar roboczy jest zawieszony. Otwórz go, aby zobaczyć powód.";
106
107
  readonly error_workspace_not_owner: "Tylko właściciel obszaru może to zrobić.";
107
108
  readonly error_workspace_not_admin: "Tylko administrator lub właściciel obszaru może to zrobić.";
@@ -329,6 +330,8 @@ declare const _default: {
329
330
  readonly error_authentication_required: "Zaloguj się, aby kontynuować.";
330
331
  readonly error_admission_required: "Twoje konto nie ma jeszcze dostępu. Użyj zaproszenia lub kodu dostępu, aby kontynuować.";
331
332
  readonly error_onboarding_required: "Uzupełnij swój profil w aplikacji internetowej, aby kontynuować.";
333
+ readonly error_guest_not_allowed: "Zaloguj się, aby to zrobić. Goście mogą tylko przeglądać ten obszar roboczy.";
334
+ readonly error_guest_rate_limited: "Zbyt wiele żądań z Twojej sieci. Odczekaj minutę lub zaloguj się.";
332
335
  readonly error_audit_invalid_cursor: "Ta strona historii jest już nieaktualna. Wczytaj historię ponownie.";
333
336
  readonly error_audit_archived_workspace_required: "Wybierz usunięty obszar roboczy, aby wyświetlić jego historię.";
334
337
  readonly error_checkpoint_not_found: "Ten punkt kontrolny już nie istnieje. Odśwież historię.";
@@ -1240,6 +1243,7 @@ declare const _default: {
1240
1243
  readonly parameter_field_addresses_placeholder: "0, 1, 2";
1241
1244
  readonly parameter_field_addresses_invalid: "Wpisz 1–64 adresy (0–65535), oddzielone przecinkami.";
1242
1245
  readonly parameter_field_addresses_too_short: "Adresy dostarczają {available} B, a ten typ wartości wymaga {required} B. Każdy rejestr dostarcza 2 bajty, każde wyjście lub wejście dyskretne 1. Dodaj adresy lub zmień typ wartości.";
1246
+ readonly parameter_field_write_limit_exceeds_storage: "Ten limit zapisu nie mieści się w pamięci typu wartości. Zmień limit albo zmień typ wartości i zapisz wartość ponownie.";
1243
1247
  readonly parameter_field_write_function: "Funkcja zapisu";
1244
1248
  readonly parameter_field_source_invalid: "Konfiguracja źródła jest nieprawidłowa.";
1245
1249
  readonly parameter_field_value_type_invalid: "Konfiguracja typu wartości jest nieprawidłowa.";
@@ -1431,6 +1435,7 @@ declare const _default: {
1431
1435
  readonly audit_target_type_workspace: "Obszar roboczy";
1432
1436
  readonly audit_target_type_workspace_permission: "Dostęp do obszaru roboczego";
1433
1437
  readonly audit_target_type_workspace_invitation: "Zaproszenie";
1438
+ readonly audit_target_type_workspace_public_link: "Adres publiczny";
1434
1439
  readonly audit_target_type_workspace_file: "Plik obszaru roboczego";
1435
1440
  readonly audit_target_type_dashboard: "Pulpit";
1436
1441
  readonly audit_target_type_endpoint: "Połączenie";
@@ -2582,6 +2587,8 @@ declare const _default: {
2582
2587
  readonly starter_add_row: "Dodaj";
2583
2588
  readonly starter_remove_row: "Usuń: {row}";
2584
2589
  readonly starter_recipients_none: "Nikt";
2590
+ readonly starter_unit: "Jednostka";
2591
+ readonly starter_unit_ms: "ms";
2585
2592
  readonly starter_unit_s: "s";
2586
2593
  readonly starter_unit_min: "min";
2587
2594
  readonly starter_unit_h: "h";
@@ -3115,6 +3122,8 @@ declare const _default: {
3115
3122
  readonly edge_program_delete_description: "Program zostanie usunięty z urządzenia przy następnym wdrożeniu, a urządzenie uruchomi ponownie pozostałe programy.";
3116
3123
  readonly edge_program_delete_submit: "Usuń";
3117
3124
  readonly edge_program_delete_toast: "Usunięto program";
3125
+ readonly edge_program_indent_if_actions: "Wcięcie akcji po IF";
3126
+ readonly edge_program_indent_if_actions_hint: "Wcina akcję po każdym IF o cztery spacje (Shift+Alt+F)";
3118
3127
  readonly edge_program_enabled_label: "Program włączony";
3119
3128
  readonly edge_program_enabled: "Włączony";
3120
3129
  readonly edge_program_disabled: "Wyłączony";
@@ -3245,11 +3254,13 @@ declare const _default: {
3245
3254
  readonly taskfile_error_param_map_multiple_writers: "Inny program zapisuje ten odwzorowany parametr. Zapisywać go może tylko jeden program.";
3246
3255
  readonly taskfile_error_obsolete_file_layout: "Pliki na urządzeniu mają przestarzały układ.";
3247
3256
  readonly taskfile_error_unknown: "Urządzenie zgłosiło błąd {code}.";
3257
+ readonly taskfile_warning_consecutive_if: "To IF jest sprawdzane tylko wtedy, gdy IF przed nim jest prawdziwe; w przeciwnym razie jest pomijane, a akcja po nim zostaje wykonana. Aby wymagać obu warunków, użyj IF AND.";
3248
3258
  readonly taskfile_warning_depends_on_invalid_definition: "Ten wiersz używa definicji, która zawiera błąd.";
3249
3259
  readonly taskfile_warning_filename_ignored: "Urządzenie pomija {filename}: pliki .MAP, .OBJ i .CNF są zarezerwowane.";
3250
3260
  readonly taskfile_warning_filename_invalid: "{filename} nie jest nazwą pliku 8.3, więc urządzenie go pomija.";
3251
3261
  readonly taskfile_warning_implicit_indirect_index: "Zdefiniuj zmienną indeksu przed jej użyciem; z niezdefiniowaną urządzenie może działać nieprzewidywalnie.";
3252
3262
  readonly taskfile_warning_memory_log_target: "Rejestrowanie parametru w pamięci urządzenia kończy się błędem i zatrzymuje całe rejestrowanie programów. Zamiast tego odwzoruj go na rejestr Modbus urządzenia.";
3263
+ readonly taskfile_warning_missing_return: "{name} jest wywoływana przez CALL lub TRYCALL, ale jej akcje mogą bez RETURN przejść do innej funkcji lub poza koniec pliku. RETURN tuż po IF wykonuje się tylko wtedy, gdy warunek jest prawdziwy.";
3253
3264
  readonly taskfile_warning_nonstandard_holding_name: "Urządzenie przyjmuje tu tę nazwę, ale nie jest ona zgodna ze zwykłymi zasadami nazewnictwa.";
3254
3265
  readonly taskfile_warning_string_output_limit: "Ten ciąg może przekroczyć {limit} bajtów, a urządzenie obetnie resztę.";
3255
3266
  readonly taskfile_warning_unknown: "Możliwy problem: {code}.";
@@ -1,6 +1,7 @@
1
1
  declare const _default: {
2
2
  readonly error_input_invalid: "Отправленные данные содержат ошибки.";
3
3
  readonly error_workspace_no_access: "У вас нет доступа к этому рабочему пространству.";
4
+ readonly error_workspace_public_link_not_found: "Этот публичный адрес недоступен.";
4
5
  readonly error_workspace_suspended: "Это рабочее пространство приостановлено. Откройте его, чтобы узнать причину.";
5
6
  readonly error_workspace_not_owner: "Только владелец рабочего пространства может это сделать.";
6
7
  readonly error_workspace_not_admin: "Только администратор или владелец рабочего пространства может это сделать.";
@@ -228,6 +229,8 @@ declare const _default: {
228
229
  readonly error_authentication_required: "Войдите, чтобы продолжить.";
229
230
  readonly error_admission_required: "У вашей учётной записи пока нет доступа. Используйте приглашение или код доступа, чтобы продолжить.";
230
231
  readonly error_onboarding_required: "Заполните профиль в веб-приложении, чтобы продолжить.";
232
+ readonly error_guest_not_allowed: "Войдите, чтобы сделать это. Гости могут только просматривать это рабочее пространство.";
233
+ readonly error_guest_rate_limited: "Слишком много запросов из вашей сети. Подождите минуту или войдите.";
231
234
  readonly error_audit_invalid_cursor: "Эта страница истории больше недействительна. Обновите историю.";
232
235
  readonly error_audit_archived_workspace_required: "Выберите удалённое рабочее пространство, чтобы посмотреть его историю.";
233
236
  readonly error_checkpoint_not_found: "Этой контрольной точки больше нет. Обновите историю.";
@@ -41,6 +41,7 @@ declare const _default: {
41
41
  readonly audit_target_type_workspace: "Рабочее пространство";
42
42
  readonly audit_target_type_workspace_permission: "Доступ к рабочему пространству";
43
43
  readonly audit_target_type_workspace_invitation: "Приглашение";
44
+ readonly audit_target_type_workspace_public_link: "Публичный адрес";
44
45
  readonly audit_target_type_workspace_file: "Файл рабочего пространства";
45
46
  readonly audit_target_type_dashboard: "Панель";
46
47
  readonly audit_target_type_endpoint: "Подключение";
@@ -63,6 +63,8 @@ declare const _default: {
63
63
  readonly edge_program_delete_description: "Программа будет удалена с устройства при следующем развёртывании, а устройство перезапустит остальные программы.";
64
64
  readonly edge_program_delete_submit: "Удалить";
65
65
  readonly edge_program_delete_toast: "Программа удалена";
66
+ readonly edge_program_indent_if_actions: "Отступ для действий после IF";
67
+ readonly edge_program_indent_if_actions_hint: "Сдвигает действие после каждого IF на четыре пробела (Shift+Alt+F)";
66
68
  readonly edge_program_enabled_label: "Программа включена";
67
69
  readonly edge_program_enabled: "Включена";
68
70
  readonly edge_program_disabled: "Выключена";
@@ -79,9 +81,9 @@ declare const _default: {
79
81
  readonly edge_program_insert_example: "Начать с примера";
80
82
  readonly edge_program_disabled_hint: "Эта программа выключена: она не развёртывается и проверяется отдельно.";
81
83
  readonly edge_program_read_only: "Вы можете просматривать эту программу. Для редактирования нужна роль «Редактор».";
82
- readonly edge_program_discard_title: "Отменить несохранённые изменения?";
84
+ readonly edge_program_discard_title: "Сбросить несохранённые изменения?";
83
85
  readonly edge_program_discard_description: "Ваши изменения в {file} будут потеряны.";
84
- readonly edge_program_discard_confirm: "Отменить изменения";
86
+ readonly edge_program_discard_confirm: "Сбросить изменения";
85
87
  readonly edge_program_keep_editing: "Продолжить редактирование";
86
88
  readonly edge_program_keys_hint: "Ctrl+S или ⌘S — сохранить · Esc, затем Tab — выйти из редактора";
87
89
  readonly edge_program_select: "Программа";
@@ -193,11 +195,13 @@ declare const _default: {
193
195
  readonly taskfile_error_param_map_multiple_writers: "Этот отображённый параметр записывает другая программа. Записывать его может только одна программа.";
194
196
  readonly taskfile_error_obsolete_file_layout: "Файлы на устройстве имеют устаревшую структуру.";
195
197
  readonly taskfile_error_unknown: "Устройство сообщило об ошибке {code}.";
198
+ readonly taskfile_warning_consecutive_if: "Этот IF проверяется, только когда IF перед ним истинен; иначе он пропускается, а действие после него выполняется. Чтобы требовать оба условия, используйте IF AND.";
196
199
  readonly taskfile_warning_depends_on_invalid_definition: "Эта строка использует определение с ошибкой.";
197
200
  readonly taskfile_warning_filename_ignored: "Устройство пропускает {filename}: файлы .MAP, .OBJ и .CNF зарезервированы.";
198
201
  readonly taskfile_warning_filename_invalid: "{filename} не является именем файла 8.3, поэтому устройство его пропускает.";
199
202
  readonly taskfile_warning_implicit_indirect_index: "Определите индексную переменную до её использования; с неопределённой устройство может вести себя непредсказуемо.";
200
203
  readonly taskfile_warning_memory_log_target: "Журналирование параметра в памяти устройства завершается ошибкой и останавливает всё журналирование программ. Вместо этого отобразите его на регистр Modbus устройства.";
204
+ readonly taskfile_warning_missing_return: "{name} вызывается через CALL или TRYCALL, но её действия могут без RETURN перейти в другую функцию или за конец файла. RETURN сразу после IF выполняется, только когда условие истинно.";
201
205
  readonly taskfile_warning_nonstandard_holding_name: "Устройство принимает здесь это имя, но оно не соответствует обычным правилам именования.";
202
206
  readonly taskfile_warning_string_output_limit: "Эта строка может стать длиннее {limit} байт, и устройство обрежет остаток.";
203
207
  readonly taskfile_warning_unknown: "Возможная проблема: {code}.";
@@ -99,7 +99,7 @@ declare const _default: {
99
99
  readonly graphics_review_saved: "Проверить сохранённую версию";
100
100
  readonly graphics_keep_draft: "Оставить мой черновик";
101
101
  readonly graphics_use_saved: "Использовать сохранённую версию";
102
- readonly graphics_discard: "Отменить несохранённые изменения?";
102
+ readonly graphics_discard: "Сбросить несохранённые изменения?";
103
103
  readonly graphics_empty: "Добавьте фигуру или символ с панели инструментов, чтобы начать схему.";
104
104
  readonly graphics_empty_view: "На этой схеме пока нет объектов.";
105
105
  readonly graphics_action_title: "Сведения";
@@ -286,7 +286,7 @@ declare const _default: {
286
286
  readonly graphics_invalid_object: "{object}: проверьте настройки.";
287
287
  readonly graphics_slot_object: "Назначение параметра «{name}»";
288
288
  readonly graphics_discard_description: "Ваши изменения в этом рисунке будут потеряны.";
289
- readonly graphics_discard_confirm: "Отменить изменения";
289
+ readonly graphics_discard_confirm: "Сбросить изменения";
290
290
  readonly graphics_keep_editing: "Продолжить";
291
291
  readonly graphics_save_warnings: "Сохранено. Некоторые объекты требуют внимания:";
292
292
  readonly graphics_dismiss: "Скрыть";
@@ -220,6 +220,7 @@ declare const _default: {
220
220
  readonly parameter_field_addresses_placeholder: "0, 1, 2";
221
221
  readonly parameter_field_addresses_invalid: "Введите 1–64 адреса (0–65535) через запятую.";
222
222
  readonly parameter_field_addresses_too_short: "Адреса дают {available} Б, а этому типу значения нужно {required} Б. Каждый регистр даёт 2 байта, каждый дискретный выход или вход — 1. Добавьте адреса или измените тип значения.";
223
+ readonly parameter_field_write_limit_exceeds_storage: "Этот предел записи не помещается в хранилище типа значения. Измените предел или измените тип значения и затем запишите значение заново.";
223
224
  readonly parameter_field_write_function: "Функция записи";
224
225
  readonly parameter_field_source_invalid: "Конфигурация источника некорректна.";
225
226
  readonly parameter_field_value_type_invalid: "Конфигурация типа значения некорректна.";
@@ -8,6 +8,8 @@ declare const _default: {
8
8
  readonly starter_add_row: "Добавить";
9
9
  readonly starter_remove_row: "Удалить: {row}";
10
10
  readonly starter_recipients_none: "Никого";
11
+ readonly starter_unit: "Единица измерения";
12
+ readonly starter_unit_ms: "мс";
11
13
  readonly starter_unit_s: "с";
12
14
  readonly starter_unit_min: "мин";
13
15
  readonly starter_unit_h: "ч";
@@ -102,6 +102,7 @@ declare const _default: {
102
102
  readonly error_device_api_device_error_status: "Устройство ответило ошибкой {status}.";
103
103
  readonly error_input_invalid: "Отправленные данные содержат ошибки.";
104
104
  readonly error_workspace_no_access: "У вас нет доступа к этому рабочему пространству.";
105
+ readonly error_workspace_public_link_not_found: "Этот публичный адрес недоступен.";
105
106
  readonly error_workspace_suspended: "Это рабочее пространство приостановлено. Откройте его, чтобы узнать причину.";
106
107
  readonly error_workspace_not_owner: "Только владелец рабочего пространства может это сделать.";
107
108
  readonly error_workspace_not_admin: "Только администратор или владелец рабочего пространства может это сделать.";
@@ -329,6 +330,8 @@ declare const _default: {
329
330
  readonly error_authentication_required: "Войдите, чтобы продолжить.";
330
331
  readonly error_admission_required: "У вашей учётной записи пока нет доступа. Используйте приглашение или код доступа, чтобы продолжить.";
331
332
  readonly error_onboarding_required: "Заполните профиль в веб-приложении, чтобы продолжить.";
333
+ readonly error_guest_not_allowed: "Войдите, чтобы сделать это. Гости могут только просматривать это рабочее пространство.";
334
+ readonly error_guest_rate_limited: "Слишком много запросов из вашей сети. Подождите минуту или войдите.";
332
335
  readonly error_audit_invalid_cursor: "Эта страница истории больше недействительна. Обновите историю.";
333
336
  readonly error_audit_archived_workspace_required: "Выберите удалённое рабочее пространство, чтобы посмотреть его историю.";
334
337
  readonly error_checkpoint_not_found: "Этой контрольной точки больше нет. Обновите историю.";
@@ -1240,6 +1243,7 @@ declare const _default: {
1240
1243
  readonly parameter_field_addresses_placeholder: "0, 1, 2";
1241
1244
  readonly parameter_field_addresses_invalid: "Введите 1–64 адреса (0–65535) через запятую.";
1242
1245
  readonly parameter_field_addresses_too_short: "Адреса дают {available} Б, а этому типу значения нужно {required} Б. Каждый регистр даёт 2 байта, каждый дискретный выход или вход — 1. Добавьте адреса или измените тип значения.";
1246
+ readonly parameter_field_write_limit_exceeds_storage: "Этот предел записи не помещается в хранилище типа значения. Измените предел или измените тип значения и затем запишите значение заново.";
1243
1247
  readonly parameter_field_write_function: "Функция записи";
1244
1248
  readonly parameter_field_source_invalid: "Конфигурация источника некорректна.";
1245
1249
  readonly parameter_field_value_type_invalid: "Конфигурация типа значения некорректна.";
@@ -1431,6 +1435,7 @@ declare const _default: {
1431
1435
  readonly audit_target_type_workspace: "Рабочее пространство";
1432
1436
  readonly audit_target_type_workspace_permission: "Доступ к рабочему пространству";
1433
1437
  readonly audit_target_type_workspace_invitation: "Приглашение";
1438
+ readonly audit_target_type_workspace_public_link: "Публичный адрес";
1434
1439
  readonly audit_target_type_workspace_file: "Файл рабочего пространства";
1435
1440
  readonly audit_target_type_dashboard: "Панель";
1436
1441
  readonly audit_target_type_endpoint: "Подключение";
@@ -1619,7 +1624,7 @@ declare const _default: {
1619
1624
  readonly graphics_review_saved: "Проверить сохранённую версию";
1620
1625
  readonly graphics_keep_draft: "Оставить мой черновик";
1621
1626
  readonly graphics_use_saved: "Использовать сохранённую версию";
1622
- readonly graphics_discard: "Отменить несохранённые изменения?";
1627
+ readonly graphics_discard: "Сбросить несохранённые изменения?";
1623
1628
  readonly graphics_empty: "Добавьте фигуру или символ с панели инструментов, чтобы начать схему.";
1624
1629
  readonly graphics_empty_view: "На этой схеме пока нет объектов.";
1625
1630
  readonly graphics_action_title: "Сведения";
@@ -1806,7 +1811,7 @@ declare const _default: {
1806
1811
  readonly graphics_invalid_object: "{object}: проверьте настройки.";
1807
1812
  readonly graphics_slot_object: "Назначение параметра «{name}»";
1808
1813
  readonly graphics_discard_description: "Ваши изменения в этом рисунке будут потеряны.";
1809
- readonly graphics_discard_confirm: "Отменить изменения";
1814
+ readonly graphics_discard_confirm: "Сбросить изменения";
1810
1815
  readonly graphics_keep_editing: "Продолжить";
1811
1816
  readonly graphics_save_warnings: "Сохранено. Некоторые объекты требуют внимания:";
1812
1817
  readonly graphics_dismiss: "Скрыть";
@@ -2582,6 +2587,8 @@ declare const _default: {
2582
2587
  readonly starter_add_row: "Добавить";
2583
2588
  readonly starter_remove_row: "Удалить: {row}";
2584
2589
  readonly starter_recipients_none: "Никого";
2590
+ readonly starter_unit: "Единица измерения";
2591
+ readonly starter_unit_ms: "мс";
2585
2592
  readonly starter_unit_s: "с";
2586
2593
  readonly starter_unit_min: "мин";
2587
2594
  readonly starter_unit_h: "ч";
@@ -3115,6 +3122,8 @@ declare const _default: {
3115
3122
  readonly edge_program_delete_description: "Программа будет удалена с устройства при следующем развёртывании, а устройство перезапустит остальные программы.";
3116
3123
  readonly edge_program_delete_submit: "Удалить";
3117
3124
  readonly edge_program_delete_toast: "Программа удалена";
3125
+ readonly edge_program_indent_if_actions: "Отступ для действий после IF";
3126
+ readonly edge_program_indent_if_actions_hint: "Сдвигает действие после каждого IF на четыре пробела (Shift+Alt+F)";
3118
3127
  readonly edge_program_enabled_label: "Программа включена";
3119
3128
  readonly edge_program_enabled: "Включена";
3120
3129
  readonly edge_program_disabled: "Выключена";
@@ -3131,9 +3140,9 @@ declare const _default: {
3131
3140
  readonly edge_program_insert_example: "Начать с примера";
3132
3141
  readonly edge_program_disabled_hint: "Эта программа выключена: она не развёртывается и проверяется отдельно.";
3133
3142
  readonly edge_program_read_only: "Вы можете просматривать эту программу. Для редактирования нужна роль «Редактор».";
3134
- readonly edge_program_discard_title: "Отменить несохранённые изменения?";
3143
+ readonly edge_program_discard_title: "Сбросить несохранённые изменения?";
3135
3144
  readonly edge_program_discard_description: "Ваши изменения в {file} будут потеряны.";
3136
- readonly edge_program_discard_confirm: "Отменить изменения";
3145
+ readonly edge_program_discard_confirm: "Сбросить изменения";
3137
3146
  readonly edge_program_keep_editing: "Продолжить редактирование";
3138
3147
  readonly edge_program_keys_hint: "Ctrl+S или ⌘S — сохранить · Esc, затем Tab — выйти из редактора";
3139
3148
  readonly edge_program_select: "Программа";
@@ -3245,11 +3254,13 @@ declare const _default: {
3245
3254
  readonly taskfile_error_param_map_multiple_writers: "Этот отображённый параметр записывает другая программа. Записывать его может только одна программа.";
3246
3255
  readonly taskfile_error_obsolete_file_layout: "Файлы на устройстве имеют устаревшую структуру.";
3247
3256
  readonly taskfile_error_unknown: "Устройство сообщило об ошибке {code}.";
3257
+ readonly taskfile_warning_consecutive_if: "Этот IF проверяется, только когда IF перед ним истинен; иначе он пропускается, а действие после него выполняется. Чтобы требовать оба условия, используйте IF AND.";
3248
3258
  readonly taskfile_warning_depends_on_invalid_definition: "Эта строка использует определение с ошибкой.";
3249
3259
  readonly taskfile_warning_filename_ignored: "Устройство пропускает {filename}: файлы .MAP, .OBJ и .CNF зарезервированы.";
3250
3260
  readonly taskfile_warning_filename_invalid: "{filename} не является именем файла 8.3, поэтому устройство его пропускает.";
3251
3261
  readonly taskfile_warning_implicit_indirect_index: "Определите индексную переменную до её использования; с неопределённой устройство может вести себя непредсказуемо.";
3252
3262
  readonly taskfile_warning_memory_log_target: "Журналирование параметра в памяти устройства завершается ошибкой и останавливает всё журналирование программ. Вместо этого отобразите его на регистр Modbus устройства.";
3263
+ readonly taskfile_warning_missing_return: "{name} вызывается через CALL или TRYCALL, но её действия могут без RETURN перейти в другую функцию или за конец файла. RETURN сразу после IF выполняется, только когда условие истинно.";
3253
3264
  readonly taskfile_warning_nonstandard_holding_name: "Устройство принимает здесь это имя, но оно не соответствует обычным правилам именования.";
3254
3265
  readonly taskfile_warning_string_output_limit: "Эта строка может стать длиннее {limit} байт, и устройство обрежет остаток.";
3255
3266
  readonly taskfile_warning_unknown: "Возможная проблема: {code}.";
@@ -1,6 +1,7 @@
1
1
  declare const _default: {
2
2
  readonly error_input_invalid: "Надіслані дані містять помилки.";
3
3
  readonly error_workspace_no_access: "У вас немає доступу до цього робочого простору.";
4
+ readonly error_workspace_public_link_not_found: "Ця публічна адреса недоступна.";
4
5
  readonly error_workspace_suspended: "Цей робочий простір призупинено. Відкрийте його, щоб дізнатися причину.";
5
6
  readonly error_workspace_not_owner: "Лише власник робочого простору може це зробити.";
6
7
  readonly error_workspace_not_admin: "Лише адміністратор або власник робочого простору може це зробити.";
@@ -228,6 +229,8 @@ declare const _default: {
228
229
  readonly error_authentication_required: "Увійдіть, щоб продовжити.";
229
230
  readonly error_admission_required: "Ваш обліковий запис ще не має доступу. Скористайтеся запрошенням або кодом доступу, щоб продовжити.";
230
231
  readonly error_onboarding_required: "Заповніть свій профіль у вебзастосунку, щоб продовжити.";
232
+ readonly error_guest_not_allowed: "Увійдіть, щоб зробити це. Гості можуть лише переглядати цей робочий простір.";
233
+ readonly error_guest_rate_limited: "Забагато запитів із вашої мережі. Зачекайте хвилину або увійдіть.";
231
234
  readonly error_audit_invalid_cursor: "Ця сторінка історії вже недійсна. Оновіть історію.";
232
235
  readonly error_audit_archived_workspace_required: "Виберіть видалений робочий простір, щоб переглянути його історію.";
233
236
  readonly error_checkpoint_not_found: "Цієї контрольної точки більше немає. Оновіть історію.";
@@ -41,6 +41,7 @@ declare const _default: {
41
41
  readonly audit_target_type_workspace: "Робочий простір";
42
42
  readonly audit_target_type_workspace_permission: "Доступ до робочого простору";
43
43
  readonly audit_target_type_workspace_invitation: "Запрошення";
44
+ readonly audit_target_type_workspace_public_link: "Публічна адреса";
44
45
  readonly audit_target_type_workspace_file: "Файл робочого простору";
45
46
  readonly audit_target_type_dashboard: "Панель";
46
47
  readonly audit_target_type_endpoint: "Підключення";
@@ -63,6 +63,8 @@ declare const _default: {
63
63
  readonly edge_program_delete_description: "Програму буде видалено з пристрою під час наступного розгортання, а пристрій перезапустить інші програми.";
64
64
  readonly edge_program_delete_submit: "Видалити";
65
65
  readonly edge_program_delete_toast: "Програму видалено";
66
+ readonly edge_program_indent_if_actions: "Відступ для дій після IF";
67
+ readonly edge_program_indent_if_actions_hint: "Зсуває дію після кожного IF на чотири пробіли (Shift+Alt+F)";
66
68
  readonly edge_program_enabled_label: "Програму увімкнено";
67
69
  readonly edge_program_enabled: "Увімкнено";
68
70
  readonly edge_program_disabled: "Вимкнено";
@@ -79,9 +81,9 @@ declare const _default: {
79
81
  readonly edge_program_insert_example: "Почати з прикладу";
80
82
  readonly edge_program_disabled_hint: "Цю програму вимкнено: вона не розгортається й перевіряється окремо.";
81
83
  readonly edge_program_read_only: "Ви можете переглядати цю програму. Для редагування потрібна роль «Редактор».";
82
- readonly edge_program_discard_title: "Скасувати незбережені зміни?";
84
+ readonly edge_program_discard_title: "Відкинути незбережені зміни?";
83
85
  readonly edge_program_discard_description: "Ваші зміни в {file} буде втрачено.";
84
- readonly edge_program_discard_confirm: "Скасувати зміни";
86
+ readonly edge_program_discard_confirm: "Відкинути зміни";
85
87
  readonly edge_program_keep_editing: "Продовжити редагування";
86
88
  readonly edge_program_keys_hint: "Ctrl+S або ⌘S — зберегти · Esc, потім Tab — вийти з редактора";
87
89
  readonly edge_program_select: "Програма";
@@ -193,11 +195,13 @@ declare const _default: {
193
195
  readonly taskfile_error_param_map_multiple_writers: "Цей відображений параметр записує інша програма. Записувати його може лише одна програма.";
194
196
  readonly taskfile_error_obsolete_file_layout: "Файли на пристрої мають застарілу структуру.";
195
197
  readonly taskfile_error_unknown: "Пристрій повідомив про помилку {code}.";
198
+ readonly taskfile_warning_consecutive_if: "Цей IF перевіряється, лише коли IF перед ним істинний; інакше його пропущено, а дію після нього виконано. Щоб вимагати обидві умови, використовуйте IF AND.";
196
199
  readonly taskfile_warning_depends_on_invalid_definition: "Цей рядок використовує визначення з помилкою.";
197
200
  readonly taskfile_warning_filename_ignored: "Пристрій пропускає {filename}: файли .MAP, .OBJ і .CNF зарезервовано.";
198
201
  readonly taskfile_warning_filename_invalid: "{filename} не є ім’ям файлу 8.3, тому пристрій його пропускає.";
199
202
  readonly taskfile_warning_implicit_indirect_index: "Визначте індексну змінну до її використання; з невизначеною пристрій може поводитися непередбачувано.";
200
203
  readonly taskfile_warning_memory_log_target: "Журналювання параметра в пам’яті пристрою завершується помилкою й зупиняє все журналювання програм. Натомість відобразіть його на регістр Modbus пристрою.";
204
+ readonly taskfile_warning_missing_return: "{name} викликається через CALL або TRYCALL, але її дії можуть без RETURN перейти в іншу функцію або за кінець файлу. RETURN одразу після IF виконується, лише коли умова істинна.";
201
205
  readonly taskfile_warning_nonstandard_holding_name: "Пристрій приймає тут це ім’я, але воно не відповідає звичайним правилам іменування.";
202
206
  readonly taskfile_warning_string_output_limit: "Цей рядок може стати довшим за {limit} байтів, і пристрій обріже решту.";
203
207
  readonly taskfile_warning_unknown: "Можлива проблема: {code}.";
@@ -99,7 +99,7 @@ declare const _default: {
99
99
  readonly graphics_review_saved: "Переглянути збережену версію";
100
100
  readonly graphics_keep_draft: "Залишити мою чернетку";
101
101
  readonly graphics_use_saved: "Використати збережену версію";
102
- readonly graphics_discard: "Скасувати незбережені зміни?";
102
+ readonly graphics_discard: "Відкинути незбережені зміни?";
103
103
  readonly graphics_empty: "Додайте фігуру або символ із панелі інструментів, щоб почати схему.";
104
104
  readonly graphics_empty_view: "На цій схемі поки немає об’єктів.";
105
105
  readonly graphics_action_title: "Відомості";
@@ -286,7 +286,7 @@ declare const _default: {
286
286
  readonly graphics_invalid_object: "{object}: перевірте налаштування.";
287
287
  readonly graphics_slot_object: "Призначення параметра «{name}»";
288
288
  readonly graphics_discard_description: "Ваші зміни в цьому малюнку буде втрачено.";
289
- readonly graphics_discard_confirm: "Скасувати зміни";
289
+ readonly graphics_discard_confirm: "Відкинути зміни";
290
290
  readonly graphics_keep_editing: "Продовжити";
291
291
  readonly graphics_save_warnings: "Збережено. Деякі об’єкти потребують уваги:";
292
292
  readonly graphics_dismiss: "Приховати";
@@ -220,6 +220,7 @@ declare const _default: {
220
220
  readonly parameter_field_addresses_placeholder: "0, 1, 2";
221
221
  readonly parameter_field_addresses_invalid: "Введіть 1–64 адреси (0–65535), через кому.";
222
222
  readonly parameter_field_addresses_too_short: "Адреси дають {available} Б, а цьому типу значення потрібно {required} Б. Кожен регістр дає 2 байти, кожен дискретний вихід або вхід — 1. Додайте адреси або змініть тип значення.";
223
+ readonly parameter_field_write_limit_exceeds_storage: "Ця межа запису не вміщується у сховище типу значення. Змініть межу або змініть тип значення й потім запишіть значення знову.";
223
224
  readonly parameter_field_write_function: "Функція запису";
224
225
  readonly parameter_field_source_invalid: "Конфігурація джерела некоректна.";
225
226
  readonly parameter_field_value_type_invalid: "Конфігурація типу значення некоректна.";
@@ -8,6 +8,8 @@ declare const _default: {
8
8
  readonly starter_add_row: "Додати";
9
9
  readonly starter_remove_row: "Видалити: {row}";
10
10
  readonly starter_recipients_none: "Нікого";
11
+ readonly starter_unit: "Одиниця виміру";
12
+ readonly starter_unit_ms: "мс";
11
13
  readonly starter_unit_s: "с";
12
14
  readonly starter_unit_min: "хв";
13
15
  readonly starter_unit_h: "год";
@@ -102,6 +102,7 @@ declare const _default: {
102
102
  readonly error_device_api_device_error_status: "Пристрій відповів помилкою {status}.";
103
103
  readonly error_input_invalid: "Надіслані дані містять помилки.";
104
104
  readonly error_workspace_no_access: "У вас немає доступу до цього робочого простору.";
105
+ readonly error_workspace_public_link_not_found: "Ця публічна адреса недоступна.";
105
106
  readonly error_workspace_suspended: "Цей робочий простір призупинено. Відкрийте його, щоб дізнатися причину.";
106
107
  readonly error_workspace_not_owner: "Лише власник робочого простору може це зробити.";
107
108
  readonly error_workspace_not_admin: "Лише адміністратор або власник робочого простору може це зробити.";
@@ -329,6 +330,8 @@ declare const _default: {
329
330
  readonly error_authentication_required: "Увійдіть, щоб продовжити.";
330
331
  readonly error_admission_required: "Ваш обліковий запис ще не має доступу. Скористайтеся запрошенням або кодом доступу, щоб продовжити.";
331
332
  readonly error_onboarding_required: "Заповніть свій профіль у вебзастосунку, щоб продовжити.";
333
+ readonly error_guest_not_allowed: "Увійдіть, щоб зробити це. Гості можуть лише переглядати цей робочий простір.";
334
+ readonly error_guest_rate_limited: "Забагато запитів із вашої мережі. Зачекайте хвилину або увійдіть.";
332
335
  readonly error_audit_invalid_cursor: "Ця сторінка історії вже недійсна. Оновіть історію.";
333
336
  readonly error_audit_archived_workspace_required: "Виберіть видалений робочий простір, щоб переглянути його історію.";
334
337
  readonly error_checkpoint_not_found: "Цієї контрольної точки більше немає. Оновіть історію.";
@@ -1240,6 +1243,7 @@ declare const _default: {
1240
1243
  readonly parameter_field_addresses_placeholder: "0, 1, 2";
1241
1244
  readonly parameter_field_addresses_invalid: "Введіть 1–64 адреси (0–65535), через кому.";
1242
1245
  readonly parameter_field_addresses_too_short: "Адреси дають {available} Б, а цьому типу значення потрібно {required} Б. Кожен регістр дає 2 байти, кожен дискретний вихід або вхід — 1. Додайте адреси або змініть тип значення.";
1246
+ readonly parameter_field_write_limit_exceeds_storage: "Ця межа запису не вміщується у сховище типу значення. Змініть межу або змініть тип значення й потім запишіть значення знову.";
1243
1247
  readonly parameter_field_write_function: "Функція запису";
1244
1248
  readonly parameter_field_source_invalid: "Конфігурація джерела некоректна.";
1245
1249
  readonly parameter_field_value_type_invalid: "Конфігурація типу значення некоректна.";
@@ -1431,6 +1435,7 @@ declare const _default: {
1431
1435
  readonly audit_target_type_workspace: "Робочий простір";
1432
1436
  readonly audit_target_type_workspace_permission: "Доступ до робочого простору";
1433
1437
  readonly audit_target_type_workspace_invitation: "Запрошення";
1438
+ readonly audit_target_type_workspace_public_link: "Публічна адреса";
1434
1439
  readonly audit_target_type_workspace_file: "Файл робочого простору";
1435
1440
  readonly audit_target_type_dashboard: "Панель";
1436
1441
  readonly audit_target_type_endpoint: "Підключення";
@@ -1619,7 +1624,7 @@ declare const _default: {
1619
1624
  readonly graphics_review_saved: "Переглянути збережену версію";
1620
1625
  readonly graphics_keep_draft: "Залишити мою чернетку";
1621
1626
  readonly graphics_use_saved: "Використати збережену версію";
1622
- readonly graphics_discard: "Скасувати незбережені зміни?";
1627
+ readonly graphics_discard: "Відкинути незбережені зміни?";
1623
1628
  readonly graphics_empty: "Додайте фігуру або символ із панелі інструментів, щоб почати схему.";
1624
1629
  readonly graphics_empty_view: "На цій схемі поки немає об’єктів.";
1625
1630
  readonly graphics_action_title: "Відомості";
@@ -1806,7 +1811,7 @@ declare const _default: {
1806
1811
  readonly graphics_invalid_object: "{object}: перевірте налаштування.";
1807
1812
  readonly graphics_slot_object: "Призначення параметра «{name}»";
1808
1813
  readonly graphics_discard_description: "Ваші зміни в цьому малюнку буде втрачено.";
1809
- readonly graphics_discard_confirm: "Скасувати зміни";
1814
+ readonly graphics_discard_confirm: "Відкинути зміни";
1810
1815
  readonly graphics_keep_editing: "Продовжити";
1811
1816
  readonly graphics_save_warnings: "Збережено. Деякі об’єкти потребують уваги:";
1812
1817
  readonly graphics_dismiss: "Приховати";
@@ -2582,6 +2587,8 @@ declare const _default: {
2582
2587
  readonly starter_add_row: "Додати";
2583
2588
  readonly starter_remove_row: "Видалити: {row}";
2584
2589
  readonly starter_recipients_none: "Нікого";
2590
+ readonly starter_unit: "Одиниця виміру";
2591
+ readonly starter_unit_ms: "мс";
2585
2592
  readonly starter_unit_s: "с";
2586
2593
  readonly starter_unit_min: "хв";
2587
2594
  readonly starter_unit_h: "год";
@@ -3115,6 +3122,8 @@ declare const _default: {
3115
3122
  readonly edge_program_delete_description: "Програму буде видалено з пристрою під час наступного розгортання, а пристрій перезапустить інші програми.";
3116
3123
  readonly edge_program_delete_submit: "Видалити";
3117
3124
  readonly edge_program_delete_toast: "Програму видалено";
3125
+ readonly edge_program_indent_if_actions: "Відступ для дій після IF";
3126
+ readonly edge_program_indent_if_actions_hint: "Зсуває дію після кожного IF на чотири пробіли (Shift+Alt+F)";
3118
3127
  readonly edge_program_enabled_label: "Програму увімкнено";
3119
3128
  readonly edge_program_enabled: "Увімкнено";
3120
3129
  readonly edge_program_disabled: "Вимкнено";
@@ -3131,9 +3140,9 @@ declare const _default: {
3131
3140
  readonly edge_program_insert_example: "Почати з прикладу";
3132
3141
  readonly edge_program_disabled_hint: "Цю програму вимкнено: вона не розгортається й перевіряється окремо.";
3133
3142
  readonly edge_program_read_only: "Ви можете переглядати цю програму. Для редагування потрібна роль «Редактор».";
3134
- readonly edge_program_discard_title: "Скасувати незбережені зміни?";
3143
+ readonly edge_program_discard_title: "Відкинути незбережені зміни?";
3135
3144
  readonly edge_program_discard_description: "Ваші зміни в {file} буде втрачено.";
3136
- readonly edge_program_discard_confirm: "Скасувати зміни";
3145
+ readonly edge_program_discard_confirm: "Відкинути зміни";
3137
3146
  readonly edge_program_keep_editing: "Продовжити редагування";
3138
3147
  readonly edge_program_keys_hint: "Ctrl+S або ⌘S — зберегти · Esc, потім Tab — вийти з редактора";
3139
3148
  readonly edge_program_select: "Програма";
@@ -3245,11 +3254,13 @@ declare const _default: {
3245
3254
  readonly taskfile_error_param_map_multiple_writers: "Цей відображений параметр записує інша програма. Записувати його може лише одна програма.";
3246
3255
  readonly taskfile_error_obsolete_file_layout: "Файли на пристрої мають застарілу структуру.";
3247
3256
  readonly taskfile_error_unknown: "Пристрій повідомив про помилку {code}.";
3257
+ readonly taskfile_warning_consecutive_if: "Цей IF перевіряється, лише коли IF перед ним істинний; інакше його пропущено, а дію після нього виконано. Щоб вимагати обидві умови, використовуйте IF AND.";
3248
3258
  readonly taskfile_warning_depends_on_invalid_definition: "Цей рядок використовує визначення з помилкою.";
3249
3259
  readonly taskfile_warning_filename_ignored: "Пристрій пропускає {filename}: файли .MAP, .OBJ і .CNF зарезервовано.";
3250
3260
  readonly taskfile_warning_filename_invalid: "{filename} не є ім’ям файлу 8.3, тому пристрій його пропускає.";
3251
3261
  readonly taskfile_warning_implicit_indirect_index: "Визначте індексну змінну до її використання; з невизначеною пристрій може поводитися непередбачувано.";
3252
3262
  readonly taskfile_warning_memory_log_target: "Журналювання параметра в пам’яті пристрою завершується помилкою й зупиняє все журналювання програм. Натомість відобразіть його на регістр Modbus пристрою.";
3263
+ readonly taskfile_warning_missing_return: "{name} викликається через CALL або TRYCALL, але її дії можуть без RETURN перейти в іншу функцію або за кінець файлу. RETURN одразу після IF виконується, лише коли умова істинна.";
3253
3264
  readonly taskfile_warning_nonstandard_holding_name: "Пристрій приймає тут це ім’я, але воно не відповідає звичайним правилам іменування.";
3254
3265
  readonly taskfile_warning_string_output_limit: "Цей рядок може стати довшим за {limit} байтів, і пристрій обріже решту.";
3255
3266
  readonly taskfile_warning_unknown: "Можлива проблема: {code}.";
@@ -1,2 +1,2 @@
1
1
  /** This package's version, sent to the API as `workspace-ui/<version>` by local workspace hosts. */
2
- export declare const WORKSPACE_UI_VERSION = "0.1.1";
2
+ export declare const WORKSPACE_UI_VERSION = "0.1.3";
@@ -17,6 +17,8 @@ export interface DevicePresetPageContext<Page extends string> {
17
17
  connected: boolean;
18
18
  /** Reads the page's values from the device again. */
19
19
  readAgain: () => void;
20
+ /** The operator has not paused the dashboard; a page's own polling should stop while false. */
21
+ live: boolean;
20
22
  }
21
23
  /**
22
24
  * A device dashboard: the device header with live controls, tabs for its pages, the banner of a
@@ -12,5 +12,8 @@ export declare const loadLocalDashboardSetup: LoadLocalDashboardSetup;
12
12
  * Shows a dashboard's unpushed local configuration from `setup.db` in place of the saved one, for
13
13
  * `dashboard.get` and `graphics.get`. A local drawing reports the revision the API will give it
14
14
  * after a push, so saving over unpushed local changes is refused as a conflict.
15
+ * A dashboard created locally and never pushed has no API row: it resolves from local setup once
16
+ * `workspace.get` confirms access to its workspace, and its Maps queries use the workspace scope.
17
+ * Every other dashboard still needs its API read.
15
18
  */
16
19
  export declare function localSetupLink(load?: LoadLocalDashboardSetup): TRPCLink<PublicAppRouter>;
@@ -13,3 +13,8 @@ export declare const parameterCodeFields: {
13
13
  * value type needs (`modbus_source_too_short`), or null for any other failure.
14
14
  */
15
15
  export declare function modbusSourceTooShortError(error: unknown): (() => string) | null;
16
+ /**
17
+ * Value type field text for a save rejected because a write limit does not fit the storage
18
+ * (`const_write_limit_exceeds_storage`), or null for any other failure.
19
+ */
20
+ export declare function constWriteLimitError(error: unknown): (() => string) | null;
@@ -1,5 +1,5 @@
1
1
  import type { AutomationRecipients } from "@overvis/hmi-shared/automation";
2
- import { type StarterPlaceholder, type StarterProblem, type StarterScalarPlaceholder, type StarterValues } from "@overvis/hmi-shared/starter";
2
+ import { type StarterDurationUnit, type StarterPlaceholder, type StarterProblem, type StarterScalarPlaceholder, type StarterValues } from "@overvis/hmi-shared/starter";
3
3
  export type StarterRole = Extract<AutomationRecipients, {
4
4
  kind: "roles";
5
5
  }>["roles"][number];
@@ -9,11 +9,17 @@ export interface StarterRecipientsValue {
9
9
  roles: StarterRole[];
10
10
  memberIds: string[];
11
11
  }
12
+ /** A duration as typed in, with the unit it is typed in. */
13
+ export interface StarterDurationValue {
14
+ kind: "duration";
15
+ amount: string;
16
+ unit: StarterDurationUnit;
17
+ }
12
18
  /**
13
19
  * What the form holds for one scalar placeholder: text for typed-in and chosen values (empty
14
- * when nothing is given), a switch, weekdays, or recipients.
20
+ * when nothing is given), a duration, a switch, weekdays, or recipients.
15
21
  */
16
- export type StarterFieldValue = string | boolean | number[] | StarterRecipientsValue;
22
+ export type StarterFieldValue = string | boolean | number[] | StarterDurationValue | StarterRecipientsValue;
17
23
  export interface StarterFormRow {
18
24
  /** Stable across edits, for React keys. */
19
25
  key: string;
@@ -21,15 +27,26 @@ export interface StarterFormRow {
21
27
  }
22
28
  export type StarterFormValue = StarterFieldValue | StarterFormRow[];
23
29
  export type StarterFormValues = Record<string, StarterFormValue>;
24
- /** A duration in the placeholder's unit, as the form shows it. */
25
- export declare function durationInUnit(placeholder: StarterScalarPlaceholder & {
30
+ type DurationPlaceholder = StarterScalarPlaceholder & {
26
31
  kind: "duration";
27
- }, ms: number): string;
32
+ };
33
+ /** The units a duration field offers, largest first. */
34
+ export declare function durationUnits(placeholder: DurationPlaceholder): StarterDurationUnit[];
35
+ /**
36
+ * A duration as the form shows it: in the placeholder's own unit when it offers no other, else in
37
+ * the largest offered unit that holds it whole.
38
+ */
39
+ export declare function durationInUnits(placeholder: DurationPlaceholder, ms: number): {
40
+ amount: string;
41
+ unit: StarterDurationUnit;
42
+ };
28
43
  /** The form value of a scalar placeholder before anything is filled in: its default, or empty. */
29
44
  export declare function initialStarterField(placeholder: StarterScalarPlaceholder): StarterFieldValue;
30
45
  export declare function newStarterRow(fields: readonly StarterScalarPlaceholder[], key: string): StarterFormRow;
31
46
  /** Form values of a starter before anything is filled in; lists start with their fewest rows. */
32
47
  export declare function newStarterFormValues(placeholders: readonly StarterPlaceholder[]): StarterFormValues;
48
+ /** Whole milliseconds of a typed-in duration; null while it is not a number. */
49
+ export declare function durationMs(value: StarterDurationValue): number | null;
33
50
  export type StarterFormConversion = {
34
51
  ok: true;
35
52
  values: StarterValues;
@@ -48,3 +65,4 @@ export declare function asField(value: StarterFormValue | undefined): StarterFie
48
65
  export declare function asRows(value: StarterFormValue | undefined): StarterFormRow[];
49
66
  /** Problems by the path of the field they belong to; a list's own problems sit on the list. */
50
67
  export declare function starterProblemsByPath(problems: readonly StarterProblem[]): Map<string, StarterProblem[]>;
68
+ export {};