pgkiln 0.72.0 → 0.73.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/db/migrations/140_item_region_types.sql +27 -0
  2. package/docs/apex-feature-parity.md +84 -8
  3. package/docs/guide/04-pages-and-regions.md +41 -1
  4. package/docs/guide/05-items.md +43 -3
  5. package/docs/guide/11-from-apex.md +3 -0
  6. package/docs/guide/12-development.md +10 -2
  7. package/examples/hr/hr_75_item_region_types.sql +81 -0
  8. package/package.json +1 -1
  9. package/public/app.css +48 -0
  10. package/public/app.js +377 -1
  11. package/src/builder/advisor.ts +5 -1
  12. package/src/builder/arrange.ts +7 -0
  13. package/src/builder/components.ts +5 -5
  14. package/src/builder/designer.ts +8 -2
  15. package/src/builder/i18n/de.ts +6 -0
  16. package/src/builder/i18n/en.ts +6 -0
  17. package/src/builder/i18n/es.ts +6 -0
  18. package/src/builder/i18n/fr.ts +6 -0
  19. package/src/builder/i18n/it.ts +6 -0
  20. package/src/builder/i18n/ja.ts +6 -0
  21. package/src/builder/i18n/ko.ts +6 -0
  22. package/src/builder/i18n/nl.ts +6 -0
  23. package/src/builder/i18n/pt.ts +6 -0
  24. package/src/builder/i18n/zh-cn.ts +6 -0
  25. package/src/builder/i18n/zh-tw.ts +6 -0
  26. package/src/builder/region-help.ts +8 -2
  27. package/src/i18n/ar.ts +13 -0
  28. package/src/i18n/cs.ts +13 -0
  29. package/src/i18n/da.ts +13 -0
  30. package/src/i18n/de.ts +13 -0
  31. package/src/i18n/el.ts +13 -0
  32. package/src/i18n/es.ts +13 -0
  33. package/src/i18n/fi.ts +13 -0
  34. package/src/i18n/fr.ts +13 -0
  35. package/src/i18n/he.ts +13 -0
  36. package/src/i18n/it.ts +13 -0
  37. package/src/i18n/ja.ts +13 -0
  38. package/src/i18n/ko.ts +13 -0
  39. package/src/i18n/nb.ts +13 -0
  40. package/src/i18n/pl.ts +13 -0
  41. package/src/i18n/pt.ts +13 -0
  42. package/src/i18n/ru.ts +13 -0
  43. package/src/i18n/sv.ts +13 -0
  44. package/src/i18n/tr.ts +13 -0
  45. package/src/i18n/uk.ts +13 -0
  46. package/src/i18n/zh.ts +13 -0
  47. package/src/i18n.ts +26 -0
  48. package/src/metadata.ts +5 -2
  49. package/src/runtime/items.ts +32 -3
  50. package/src/runtime/page-regions.ts +50 -0
  51. package/src/runtime/region-cache.ts +1 -1
  52. package/src/runtime/regions.ts +11 -0
  53. package/src/runtime/render.ts +3 -17
  54. package/src/runtime/report.ts +55 -3
@@ -552,6 +552,9 @@ export const es: BuilderMessages = {
552
552
  'gallery.region.search': 'Buscar',
553
553
  'gallery.region.login': 'Inicio de sesión',
554
554
  'gallery.region.plugin': 'Plugin',
555
+ 'gallery.region.classic_report': 'Informe clásico',
556
+ 'gallery.region.breadcrumb': 'Ruta de navegación',
557
+ 'gallery.region.help_text': 'Texto de ayuda',
555
558
  'gallery.item.text': 'Campo de texto',
556
559
  'gallery.item.textarea': 'Área de texto',
557
560
  'gallery.item.number': 'Campo numérico',
@@ -582,6 +585,9 @@ export const es: BuilderMessages = {
582
585
  'gallery.item.display': 'Solo visualización',
583
586
  'gallery.item.password': 'Contraseña',
584
587
  'gallery.item.plugin': 'Plugin',
588
+ 'gallery.item.shuttle': 'Lista de transferencia',
589
+ 'gallery.item.select_one': 'Seleccionar uno',
590
+ 'gallery.item.select_many': 'Seleccionar varios',
585
591
  'gallery.button.submit': 'Enviar página',
586
592
  'gallery.button.redirect': 'Redirigir a página',
587
593
  'gallery.button.da': 'Acción dinámica',
@@ -552,6 +552,9 @@ export const fr: BuilderMessages = {
552
552
  'gallery.region.search': 'Recherche',
553
553
  'gallery.region.login': 'Connexion',
554
554
  'gallery.region.plugin': 'Plug-in',
555
+ 'gallery.region.classic_report': 'Etat classique',
556
+ 'gallery.region.breadcrumb': 'Fil d\'Ariane',
557
+ 'gallery.region.help_text': 'Texte d\'aide',
555
558
  'gallery.item.text': 'Champ de texte',
556
559
  'gallery.item.textarea': 'Zone de texte',
557
560
  'gallery.item.number': 'Champ numérique',
@@ -582,6 +585,9 @@ export const fr: BuilderMessages = {
582
585
  'gallery.item.display': 'Affichage seul',
583
586
  'gallery.item.password': 'Mot de passe',
584
587
  'gallery.item.plugin': 'Plug-in',
588
+ 'gallery.item.shuttle': 'Navette',
589
+ 'gallery.item.select_one': 'Sélectionner un',
590
+ 'gallery.item.select_many': 'Sélectionner plusieurs',
585
591
  'gallery.button.submit': 'Soumettre la page',
586
592
  'gallery.button.redirect': 'Rediriger vers une page',
587
593
  'gallery.button.da': 'Action dynamique',
@@ -552,6 +552,9 @@ export const it: BuilderMessages = {
552
552
  'gallery.region.search': 'Ricerca',
553
553
  'gallery.region.login': 'Login',
554
554
  'gallery.region.plugin': 'Plug-in',
555
+ 'gallery.region.classic_report': 'Report classico',
556
+ 'gallery.region.breadcrumb': 'Percorso di navigazione',
557
+ 'gallery.region.help_text': 'Testo della guida',
555
558
  'gallery.item.text': 'Campo di testo',
556
559
  'gallery.item.textarea': 'Area di testo',
557
560
  'gallery.item.number': 'Campo numerico',
@@ -582,6 +585,9 @@ export const it: BuilderMessages = {
582
585
  'gallery.item.display': 'Solo visualizzazione',
583
586
  'gallery.item.password': 'Password',
584
587
  'gallery.item.plugin': 'Plug-in',
588
+ 'gallery.item.shuttle': 'Shuttle',
589
+ 'gallery.item.select_one': 'Selezione singola',
590
+ 'gallery.item.select_many': 'Selezione multipla con ricerca',
585
591
  'gallery.button.submit': 'Invia pagina',
586
592
  'gallery.button.redirect': 'Reindirizza alla pagina',
587
593
  'gallery.button.da': 'Azione dinamica',
@@ -552,6 +552,9 @@ export const ja: BuilderMessages = {
552
552
  'gallery.region.search': '検索',
553
553
  'gallery.region.login': 'ログイン',
554
554
  'gallery.region.plugin': 'プラグイン',
555
+ 'gallery.region.classic_report': 'クラシック・レポート',
556
+ 'gallery.region.breadcrumb': 'ブレッドクラム',
557
+ 'gallery.region.help_text': 'ヘルプ・テキスト',
555
558
  'gallery.item.text': 'テキスト・フィールド',
556
559
  'gallery.item.textarea': 'テキスト領域',
557
560
  'gallery.item.number': '数値フィールド',
@@ -582,6 +585,9 @@ export const ja: BuilderMessages = {
582
585
  'gallery.item.display': '表示のみ',
583
586
  'gallery.item.password': 'パスワード',
584
587
  'gallery.item.plugin': 'プラグイン',
588
+ 'gallery.item.shuttle': 'シャトル',
589
+ 'gallery.item.select_one': '単一選択',
590
+ 'gallery.item.select_many': '複数選択(検索)',
585
591
  'gallery.button.submit': 'ページの送信',
586
592
  'gallery.button.redirect': 'ページへリダイレクト',
587
593
  'gallery.button.da': '動的アクション',
@@ -552,6 +552,9 @@ export const ko: BuilderMessages = {
552
552
  'gallery.region.search': '검색',
553
553
  'gallery.region.login': '로그인',
554
554
  'gallery.region.plugin': '플러그인',
555
+ 'gallery.region.classic_report': '클래식 보고서',
556
+ 'gallery.region.breadcrumb': '이동 경로',
557
+ 'gallery.region.help_text': '도움말 텍스트',
555
558
  'gallery.item.text': '텍스트 필드',
556
559
  'gallery.item.textarea': '텍스트 영역',
557
560
  'gallery.item.number': '숫자 필드',
@@ -582,6 +585,9 @@ export const ko: BuilderMessages = {
582
585
  'gallery.item.display': '표시 전용',
583
586
  'gallery.item.password': '비밀번호',
584
587
  'gallery.item.plugin': '플러그인',
588
+ 'gallery.item.shuttle': '셔틀',
589
+ 'gallery.item.select_one': '단일 선택',
590
+ 'gallery.item.select_many': '다중 선택(검색)',
585
591
  'gallery.button.submit': '페이지 제출',
586
592
  'gallery.button.redirect': '페이지로 리디렉션',
587
593
  'gallery.button.da': '동적 작업',
@@ -552,6 +552,9 @@ export const nl: BuilderMessages = {
552
552
  'gallery.region.search': 'Zoeken',
553
553
  'gallery.region.login': 'Aanmelden',
554
554
  'gallery.region.plugin': 'Plug-in',
555
+ 'gallery.region.classic_report': 'Klassiek rapport',
556
+ 'gallery.region.breadcrumb': 'Kruimelpad',
557
+ 'gallery.region.help_text': 'Helptekst',
555
558
  'gallery.item.text': 'Tekstveld',
556
559
  'gallery.item.textarea': 'Tekstgebied',
557
560
  'gallery.item.number': 'Getalveld',
@@ -582,6 +585,9 @@ export const nl: BuilderMessages = {
582
585
  'gallery.item.display': 'Alleen weergeven',
583
586
  'gallery.item.password': 'Wachtwoord',
584
587
  'gallery.item.plugin': 'Plug-in',
588
+ 'gallery.item.shuttle': 'Shuttle',
589
+ 'gallery.item.select_one': 'Eén kiezen',
590
+ 'gallery.item.select_many': 'Meerdere kiezen',
585
591
  'gallery.button.submit': 'Pagina verzenden',
586
592
  'gallery.button.redirect': 'Naar pagina omleiden',
587
593
  'gallery.button.da': 'Dynamische actie',
@@ -552,6 +552,9 @@ export const pt: BuilderMessages = {
552
552
  'gallery.region.search': 'Pesquisa',
553
553
  'gallery.region.login': 'Login',
554
554
  'gallery.region.plugin': 'Plug-in',
555
+ 'gallery.region.classic_report': 'Relatório Clássico',
556
+ 'gallery.region.breadcrumb': 'Trilha de Navegação',
557
+ 'gallery.region.help_text': 'Texto de Ajuda',
555
558
  'gallery.item.text': 'Campo de Texto',
556
559
  'gallery.item.textarea': 'Área de Texto',
557
560
  'gallery.item.number': 'Campo Numérico',
@@ -582,6 +585,9 @@ export const pt: BuilderMessages = {
582
585
  'gallery.item.display': 'Somente Exibição',
583
586
  'gallery.item.password': 'Senha',
584
587
  'gallery.item.plugin': 'Plug-in',
588
+ 'gallery.item.shuttle': 'Shuttle',
589
+ 'gallery.item.select_one': 'Selecionar Um',
590
+ 'gallery.item.select_many': 'Selecionar Vários',
585
591
  'gallery.button.submit': 'Enviar Página',
586
592
  'gallery.button.redirect': 'Redirecionar para Página',
587
593
  'gallery.button.da': 'Ação Dinâmica',
@@ -552,6 +552,9 @@ export const zhCN: BuilderMessages = {
552
552
  'gallery.region.search': '搜索',
553
553
  'gallery.region.login': '登录',
554
554
  'gallery.region.plugin': '插件',
555
+ 'gallery.region.classic_report': '经典报表',
556
+ 'gallery.region.breadcrumb': '面包屑导航',
557
+ 'gallery.region.help_text': '帮助文本',
555
558
  'gallery.item.text': '文本字段',
556
559
  'gallery.item.textarea': '文本区域',
557
560
  'gallery.item.number': '数字字段',
@@ -582,6 +585,9 @@ export const zhCN: BuilderMessages = {
582
585
  'gallery.item.display': '仅显示',
583
586
  'gallery.item.password': '密码',
584
587
  'gallery.item.plugin': '插件',
588
+ 'gallery.item.shuttle': '穿梭框',
589
+ 'gallery.item.select_one': '单选(搜索)',
590
+ 'gallery.item.select_many': '多选(搜索)',
585
591
  'gallery.button.submit': '提交页面',
586
592
  'gallery.button.redirect': '重定向到页面',
587
593
  'gallery.button.da': '动态操作',
@@ -552,6 +552,9 @@ export const zhTW: BuilderMessages = {
552
552
  'gallery.region.search': '搜尋',
553
553
  'gallery.region.login': '登入',
554
554
  'gallery.region.plugin': '外掛程式',
555
+ 'gallery.region.classic_report': '傳統報表',
556
+ 'gallery.region.breadcrumb': '導覽路徑',
557
+ 'gallery.region.help_text': '說明文字',
555
558
  'gallery.item.text': '文字欄位',
556
559
  'gallery.item.textarea': '文字區域',
557
560
  'gallery.item.number': '數字欄位',
@@ -582,6 +585,9 @@ export const zhTW: BuilderMessages = {
582
585
  'gallery.item.display': '僅顯示',
583
586
  'gallery.item.password': '密碼',
584
587
  'gallery.item.plugin': '外掛程式',
588
+ 'gallery.item.shuttle': '穿梭框',
589
+ 'gallery.item.select_one': '單選(搜尋)',
590
+ 'gallery.item.select_many': '多選(搜尋)',
585
591
  'gallery.button.submit': '提交頁面',
586
592
  'gallery.button.redirect': '重新導向至頁面',
587
593
  'gallery.button.da': '動態動作',
@@ -8,7 +8,7 @@ const GUIDE = 'https://pgkiln.vargar.eu/docs';
8
8
 
9
9
  export const REGION_CONFIG_HELP: [string[], string][] = [
10
10
  [['report'], '{"page_size":15,"pagination":"range" (rows X–Y without a total),"keyset":["id"] (with range: Next/Previous seek on these unique columns),"max_rows":10000,"searchable":true,"sortable":true,"interactive":true,"mobile":"reflow"|"scroll","hidden":["col"],"headings":{"col":"Label"},"link":{"column":"id","page":3,"items":{"P3_ID":"#id#"}},"empty":"No rows","pdf":{"layout":"NAME","columns":["col"],"widths":{"col":40},"align":{"col":"right"}}} (pdf widths in mm; layouts under Shared Components → Report layouts)'],
11
- [['report', 'grid', 'cards'], '{"formats":{"sal":"FML999G990D00","hiredate":"DD-MON-YYYY"}} (number or date format masks per column)'],
11
+ [['report', 'classic_report', 'grid', 'cards'], '{"formats":{"sal":"FML999G990D00","hiredate":"DD-MON-YYYY"}} (number or date format masks per column)'],
12
12
  [['chart'], '{"kind":"bar"|"column"|"line"|"area"|"donut","max_rows":1000,"format_mask":"FML999G990"}'],
13
13
  [['cards'], '{"style":"metric","link":{...},"max_rows":500}'],
14
14
  [['dynamic'], '{"max_rows":1000}'],
@@ -19,7 +19,7 @@ export const REGION_CONFIG_HELP: [string[], string][] = [
19
19
  [['display_selector'], '{"style":"tabs"|"select","show_all":true,"remember":true}'],
20
20
  [['list'], '{"list":"NAME","template":"links"|"badges"|"cards"|"tabs"} (lists under Shared Components → Lists)'],
21
21
  [['*'], '{"display_selector":true} puts it in the page\'s display selector'],
22
- [['report', 'chart', 'cards', 'dynamic', 'tree', 'template_component'], '{"lazy":true} loads it after the page shows, {"cache":{"scope":"user"|"session"|"all","seconds":300}} keeps its HTML (a submit of the page empties it)'],
22
+ [['report', 'classic_report', 'chart', 'cards', 'dynamic', 'tree', 'template_component'], '{"lazy":true} loads it after the page shows, {"cache":{"scope":"user"|"session"|"all","seconds":300}} keeps its HTML (a submit of the page empties it)'],
23
23
  [['data_reporter'], '{"sources":[{"id":"orders","label":"Orders","description":"…","schema":"sales","table":"order_v","columns":[{"name":"total","label":"Total","format":"FML999G990D00"}]}],"sharing":true,"share_authz":"SCHEME","page_size":25} (the Data Reporter settings below edit it)'],
24
24
  [['form_designer'], '{"sources":[{"id":"orders","label":"Orders","description":"…","schema":"sales","table":"orders","key":"id","columns":[{"name":"customer","label":"Customer"},{"name":"status","lov":"LOV:ORDER_STATUS"}],"insert":true,"update":true,"delete":false}],"design_authz":"SCHEME","page_size":25} (the Form Designer region\'s Settings; users that pass design_authz design forms)'],
25
25
  [['ai_assistant'], '{"service":"NAME","system":"…","welcome":"…","context":[{"name":"policy","sql":"select … :AI_PROMPT …"}],"tools":[{"name":"my_leave","description":"…","sql":"select … where status = :STATUS","parameters":{"STATUS":{"type":"string","enum":["PENDING"]}}},{"name":"dept","type":"rest","source":"DEPARTMENT","description":"…"}],"max_rounds":5,"max_turns":20}; or {"agent":"SALES_AGENT","welcome":"…"} for an AI agent of Shared Components (the AI assistant settings below edit it)'],
@@ -28,6 +28,9 @@ export const REGION_CONFIG_HELP: [string[], string][] = [
28
28
  [['form'], '{"lost_update":false} saves without checking that the row is unchanged since it was shown'],
29
29
  [['login'], '(no attributes) the sign-in form of the application\'s login page (Application settings → Login page): providers, user name and password, "Keep me signed in", "Forgot password?"'],
30
30
  [['url'], '{"height":480,"sandbox":["allow-scripts","allow-forms","allow-popups","allow-same-origin"] (the default; false: no sandbox),"fullscreen":true}'],
31
+ [['classic_report'], '{"report_template":"standard"|"value_pairs"|"badges"|"media_list","pagination":"total" (rows X–Y of N, the default)|"range" (rows X–Y)|"none" (one page of at most max_rows, 500),"page_size":15,"max_rows":500,"sortable":true,"searchable":false,"mobile":"reflow"|"scroll","hidden":["col"],"headings":{"col":"Label"},"link":{"column":"id","page":3,"items":{"P3_ID":"#id#"}},"empty":"No rows"} (a report without the Actions menu; badges: label and value columns; media_list: title and description columns)'],
32
+ [['breadcrumb'], '{"current":false} leaves the current page out of the trail (the pages above it come from each page\'s Breadcrumb parent, else Home); put it in the Breadcrumb bar position with template plain'],
33
+ [['help_text'], '{"empty":"…"} shown when the page has no help text (Page → Help text: Markdown with &ITEM. substitutions)'],
31
34
  [['search'], '{"configs":["CUSTOMERS","ORDERS"] (Shared Components → Search configurations; empty: all),"item":"P1_SEARCH" (search with this item\'s value instead of a field of its own),"placeholder":"…","min_length":2,"empty":"No results"}'],
32
35
  ];
33
36
 
@@ -57,6 +60,9 @@ const ANCHORS: Record<string, string> = {
57
60
  tasks: 'approvals-and-the-task-list',
58
61
  workflows: 'workflows',
59
62
  login: 'the-login-page',
63
+ classic_report: 'classic_report-classic-report',
64
+ breadcrumb: 'breadcrumb-and-help_text',
65
+ help_text: 'breadcrumb-and-help_text',
60
66
  };
61
67
 
62
68
  /** The help of every type (a region whose type isn't known yet). */
package/src/i18n/ar.ts CHANGED
@@ -424,6 +424,19 @@ export const ar: Record<MessageKey, string> = {
424
424
  'lov.loading': "جارٍ تحميل المزيد…",
425
425
  'da.wait': "يرجى الانتظار…",
426
426
  'lov.no_rows': "لم يُعثر على شيء.",
427
+ 'shuttle.available': "المتاحة",
428
+ 'shuttle.chosen': "المحددة",
429
+ 'shuttle.move': "نقل",
430
+ 'shuttle.move_all': "نقل الكل",
431
+ 'shuttle.remove': "إزالة",
432
+ 'shuttle.remove_all': "إزالة الكل",
433
+ 'shuttle.up': "نقل لأعلى",
434
+ 'shuttle.down': "نقل لأسفل",
435
+ 'shuttle.top': "نقل إلى الأعلى",
436
+ 'shuttle.bottom': "نقل إلى الأسفل",
437
+ 'shuttle.filter': "تصفية",
438
+ 'region.breadcrumb': "مسار التنقل",
439
+ 'region.no_help': "لا تتوفر تعليمات لهذه الصفحة.",
427
440
  'search.did_you_mean': "هل تقصد:",
428
441
  'error.lov_value': "{label}: اختر قيمة من القائمة.",
429
442
  'item.yes': "نعم",
package/src/i18n/cs.ts CHANGED
@@ -424,6 +424,19 @@ export const cs: Record<MessageKey, string> = {
424
424
  'lov.loading': "Načítání dalších…",
425
425
  'da.wait': "Čekejte prosím…",
426
426
  'lov.no_rows': "Nic nenalezeno.",
427
+ 'shuttle.available': "Dostupné",
428
+ 'shuttle.chosen': "Vybrané",
429
+ 'shuttle.move': "Přesunout",
430
+ 'shuttle.move_all': "Přesunout vše",
431
+ 'shuttle.remove': "Odebrat",
432
+ 'shuttle.remove_all': "Odebrat vše",
433
+ 'shuttle.up': "Posunout nahoru",
434
+ 'shuttle.down': "Posunout dolů",
435
+ 'shuttle.top': "Přesunout na začátek",
436
+ 'shuttle.bottom': "Přesunout na konec",
437
+ 'shuttle.filter': "Filtrovat",
438
+ 'region.breadcrumb': "Drobečková navigace",
439
+ 'region.no_help': "Pro tuto stránku není k dispozici nápověda.",
427
440
  'search.did_you_mean': "Měli jste na mysli:",
428
441
  'error.lov_value': "{label}: vyberte hodnotu ze seznamu.",
429
442
  'item.yes': "Ano",
package/src/i18n/da.ts CHANGED
@@ -424,6 +424,19 @@ export const da: Record<MessageKey, string> = {
424
424
  'lov.loading': "Indlæser flere…",
425
425
  'da.wait': "Vent venligst…",
426
426
  'lov.no_rows': "Intet fundet.",
427
+ 'shuttle.available': "Tilgængelige",
428
+ 'shuttle.chosen': "Valgte",
429
+ 'shuttle.move': "Flyt",
430
+ 'shuttle.move_all': "Flyt alle",
431
+ 'shuttle.remove': "Fjern",
432
+ 'shuttle.remove_all': "Fjern alle",
433
+ 'shuttle.up': "Flyt op",
434
+ 'shuttle.down': "Flyt ned",
435
+ 'shuttle.top': "Flyt øverst",
436
+ 'shuttle.bottom': "Flyt nederst",
437
+ 'shuttle.filter': "Filtrer",
438
+ 'region.breadcrumb': "Brødkrummesti",
439
+ 'region.no_help': "Der er ingen hjælp til denne side.",
427
440
  'search.did_you_mean': "Mente du:",
428
441
  'error.lov_value': "{label}: vælg en værdi på listen.",
429
442
  'item.yes': "Ja",
package/src/i18n/de.ts CHANGED
@@ -421,6 +421,19 @@ export const de: Record<MessageKey, string> = {
421
421
  'lov.loading': 'Weitere werden geladen…',
422
422
  'da.wait': 'Bitte warten…',
423
423
  'lov.no_rows': 'Nichts gefunden.',
424
+ 'shuttle.available': 'Verfügbar',
425
+ 'shuttle.chosen': 'Ausgewählt',
426
+ 'shuttle.move': 'Verschieben',
427
+ 'shuttle.move_all': 'Alle verschieben',
428
+ 'shuttle.remove': 'Entfernen',
429
+ 'shuttle.remove_all': 'Alle entfernen',
430
+ 'shuttle.up': 'Nach oben',
431
+ 'shuttle.down': 'Nach unten',
432
+ 'shuttle.top': 'An den Anfang',
433
+ 'shuttle.bottom': 'An das Ende',
434
+ 'shuttle.filter': 'Filtern',
435
+ 'region.breadcrumb': 'Navigationspfad',
436
+ 'region.no_help': 'Für diese Seite ist keine Hilfe verfügbar.',
424
437
  'search.did_you_mean': "Meinten Sie:",
425
438
  'error.lov_value': '{label}: Wählen Sie einen Wert aus der Liste.',
426
439
  'item.yes': 'Ja',
package/src/i18n/el.ts CHANGED
@@ -424,6 +424,19 @@ export const el: Record<MessageKey, string> = {
424
424
  'lov.loading': "Φόρτωση περισσότερων…",
425
425
  'da.wait': "Παρακαλώ περιμένετε…",
426
426
  'lov.no_rows': "Δεν βρέθηκε τίποτα.",
427
+ 'shuttle.available': "Διαθέσιμα",
428
+ 'shuttle.chosen': "Επιλεγμένα",
429
+ 'shuttle.move': "Μετακίνηση",
430
+ 'shuttle.move_all': "Μετακίνηση όλων",
431
+ 'shuttle.remove': "Αφαίρεση",
432
+ 'shuttle.remove_all': "Αφαίρεση όλων",
433
+ 'shuttle.up': "Μετακίνηση πάνω",
434
+ 'shuttle.down': "Μετακίνηση κάτω",
435
+ 'shuttle.top': "Μετακίνηση στην αρχή",
436
+ 'shuttle.bottom': "Μετακίνηση στο τέλος",
437
+ 'shuttle.filter': "Φιλτράρισμα",
438
+ 'region.breadcrumb': "Διαδρομή πλοήγησης",
439
+ 'region.no_help': "Δεν υπάρχει βοήθεια για αυτή τη σελίδα.",
427
440
  'search.did_you_mean': "Μήπως εννοούσατε:",
428
441
  'error.lov_value': "{label}: επιλέξτε τιμή από τη λίστα.",
429
442
  'item.yes': "Ναι",
package/src/i18n/es.ts CHANGED
@@ -421,6 +421,19 @@ export const es: Record<MessageKey, string> = {
421
421
  'lov.loading': 'Cargando más…',
422
422
  'da.wait': 'Espere, por favor…',
423
423
  'lov.no_rows': 'No se ha encontrado nada.',
424
+ 'shuttle.available': 'Disponibles',
425
+ 'shuttle.chosen': 'Seleccionados',
426
+ 'shuttle.move': 'Mover',
427
+ 'shuttle.move_all': 'Mover todos',
428
+ 'shuttle.remove': 'Quitar',
429
+ 'shuttle.remove_all': 'Quitar todos',
430
+ 'shuttle.up': 'Subir',
431
+ 'shuttle.down': 'Bajar',
432
+ 'shuttle.top': 'Mover al principio',
433
+ 'shuttle.bottom': 'Mover al final',
434
+ 'shuttle.filter': 'Filtrar',
435
+ 'region.breadcrumb': 'Ruta de navegación',
436
+ 'region.no_help': 'No hay ayuda disponible para esta página.',
424
437
  'search.did_you_mean': "Quizás quiso decir:",
425
438
  'error.lov_value': '{label}: elija un valor de la lista.',
426
439
  'item.yes': 'Sí',
package/src/i18n/fi.ts CHANGED
@@ -424,6 +424,19 @@ export const fi: Record<MessageKey, string> = {
424
424
  'lov.loading': "Ladataan lisää…",
425
425
  'da.wait': "Odota hetki…",
426
426
  'lov.no_rows': "Mitään ei löytynyt.",
427
+ 'shuttle.available': "Käytettävissä",
428
+ 'shuttle.chosen': "Valitut",
429
+ 'shuttle.move': "Siirrä",
430
+ 'shuttle.move_all': "Siirrä kaikki",
431
+ 'shuttle.remove': "Poista",
432
+ 'shuttle.remove_all': "Poista kaikki",
433
+ 'shuttle.up': "Siirrä ylös",
434
+ 'shuttle.down': "Siirrä alas",
435
+ 'shuttle.top': "Siirrä alkuun",
436
+ 'shuttle.bottom': "Siirrä loppuun",
437
+ 'shuttle.filter': "Suodata",
438
+ 'region.breadcrumb': "Murupolku",
439
+ 'region.no_help': "Tälle sivulle ei ole ohjetta.",
427
440
  'search.did_you_mean': "Tarkoititko:",
428
441
  'error.lov_value': "{label}: valitse arvo luettelosta.",
429
442
  'item.yes': "Kyllä",
package/src/i18n/fr.ts CHANGED
@@ -421,6 +421,19 @@ export const fr: Record<MessageKey, string> = {
421
421
  'lov.loading': 'Chargement de la suite…',
422
422
  'da.wait': 'Veuillez patienter…',
423
423
  'lov.no_rows': 'Aucun résultat.',
424
+ 'shuttle.available': 'Disponibles',
425
+ 'shuttle.chosen': 'Sélectionnés',
426
+ 'shuttle.move': 'Déplacer',
427
+ 'shuttle.move_all': 'Tout déplacer',
428
+ 'shuttle.remove': 'Retirer',
429
+ 'shuttle.remove_all': 'Tout retirer',
430
+ 'shuttle.up': 'Monter',
431
+ 'shuttle.down': 'Descendre',
432
+ 'shuttle.top': 'Placer en premier',
433
+ 'shuttle.bottom': 'Placer en dernier',
434
+ 'shuttle.filter': 'Filtrer',
435
+ 'region.breadcrumb': 'Fil d\'Ariane',
436
+ 'region.no_help': 'Aucune aide n\'est disponible pour cette page.',
424
437
  'search.did_you_mean': "Vouliez-vous dire :",
425
438
  'error.lov_value': '{label} : choisissez une valeur dans la liste.',
426
439
  'item.yes': 'Oui',
package/src/i18n/he.ts CHANGED
@@ -424,6 +424,19 @@ export const he: Record<MessageKey, string> = {
424
424
  'lov.loading': "טוען עוד…",
425
425
  'da.wait': "נא להמתין…",
426
426
  'lov.no_rows': "לא נמצא דבר.",
427
+ 'shuttle.available': "זמינים",
428
+ 'shuttle.chosen': "נבחרים",
429
+ 'shuttle.move': "העבר",
430
+ 'shuttle.move_all': "העבר הכול",
431
+ 'shuttle.remove': "הסר",
432
+ 'shuttle.remove_all': "הסר הכול",
433
+ 'shuttle.up': "הזז למעלה",
434
+ 'shuttle.down': "הזז למטה",
435
+ 'shuttle.top': "הזז להתחלה",
436
+ 'shuttle.bottom': "הזז לסוף",
437
+ 'shuttle.filter': "סינון",
438
+ 'region.breadcrumb': "נתיב ניווט",
439
+ 'region.no_help': "אין עזרה זמינה לדף זה.",
427
440
  'search.did_you_mean': "האם התכוונת ל:",
428
441
  'error.lov_value': "{label}: בחרו ערך מהרשימה.",
429
442
  'item.yes': "כן",
package/src/i18n/it.ts CHANGED
@@ -424,6 +424,19 @@ export const it: Record<MessageKey, string> = {
424
424
  'lov.loading': "Caricamento di altri…",
425
425
  'da.wait': "Attendere prego…",
426
426
  'lov.no_rows': "Nessun risultato.",
427
+ 'shuttle.available': "Disponibili",
428
+ 'shuttle.chosen': "Selezionati",
429
+ 'shuttle.move': "Sposta",
430
+ 'shuttle.move_all': "Sposta tutti",
431
+ 'shuttle.remove': "Rimuovi",
432
+ 'shuttle.remove_all': "Rimuovi tutti",
433
+ 'shuttle.up': "Sposta su",
434
+ 'shuttle.down': "Sposta giù",
435
+ 'shuttle.top': "Sposta all'inizio",
436
+ 'shuttle.bottom': "Sposta alla fine",
437
+ 'shuttle.filter': "Filtra",
438
+ 'region.breadcrumb': "Percorso di navigazione",
439
+ 'region.no_help': "Nessuna guida disponibile per questa pagina.",
427
440
  'search.did_you_mean': "Forse cercavi:",
428
441
  'error.lov_value': "{label}: scegli un valore dall'elenco.",
429
442
  'item.yes': "Sì",
package/src/i18n/ja.ts CHANGED
@@ -424,6 +424,19 @@ export const ja: Record<MessageKey, string> = {
424
424
  'lov.loading': "さらに読み込み中…",
425
425
  'da.wait': "お待ちください…",
426
426
  'lov.no_rows': "見つかりません。",
427
+ 'shuttle.available': "使用可能",
428
+ 'shuttle.chosen': "選択済み",
429
+ 'shuttle.move': "移動",
430
+ 'shuttle.move_all': "すべて移動",
431
+ 'shuttle.remove': "削除",
432
+ 'shuttle.remove_all': "すべて削除",
433
+ 'shuttle.up': "上へ移動",
434
+ 'shuttle.down': "下へ移動",
435
+ 'shuttle.top': "先頭へ移動",
436
+ 'shuttle.bottom': "末尾へ移動",
437
+ 'shuttle.filter': "フィルタ",
438
+ 'region.breadcrumb': "パンくずリスト",
439
+ 'region.no_help': "このページのヘルプはありません。",
427
440
  'search.did_you_mean': "もしかして:",
428
441
  'error.lov_value': "{label}: 一覧から値を選んでください。",
429
442
  'item.yes': "はい",
package/src/i18n/ko.ts CHANGED
@@ -424,6 +424,19 @@ export const ko: Record<MessageKey, string> = {
424
424
  'lov.loading': "더 불러오는 중…",
425
425
  'da.wait': "잠시 기다려 주세요…",
426
426
  'lov.no_rows': "찾은 항목이 없습니다.",
427
+ 'shuttle.available': "사용 가능",
428
+ 'shuttle.chosen': "선택됨",
429
+ 'shuttle.move': "이동",
430
+ 'shuttle.move_all': "모두 이동",
431
+ 'shuttle.remove': "제거",
432
+ 'shuttle.remove_all': "모두 제거",
433
+ 'shuttle.up': "위로 이동",
434
+ 'shuttle.down': "아래로 이동",
435
+ 'shuttle.top': "맨 위로 이동",
436
+ 'shuttle.bottom': "맨 아래로 이동",
437
+ 'shuttle.filter': "필터",
438
+ 'region.breadcrumb': "이동 경로",
439
+ 'region.no_help': "이 페이지에 대한 도움말이 없습니다.",
427
440
  'search.did_you_mean': "이것을 찾으셨나요:",
428
441
  'error.lov_value': "{label}: 목록에서 값을 선택하세요.",
429
442
  'item.yes': "예",
package/src/i18n/nb.ts CHANGED
@@ -424,6 +424,19 @@ export const nb: Record<MessageKey, string> = {
424
424
  'lov.loading': "Laster inn flere…",
425
425
  'da.wait': "Vent litt…",
426
426
  'lov.no_rows': "Fant ingenting.",
427
+ 'shuttle.available': "Tilgjengelige",
428
+ 'shuttle.chosen': "Valgte",
429
+ 'shuttle.move': "Flytt",
430
+ 'shuttle.move_all': "Flytt alle",
431
+ 'shuttle.remove': "Fjern",
432
+ 'shuttle.remove_all': "Fjern alle",
433
+ 'shuttle.up': "Flytt opp",
434
+ 'shuttle.down': "Flytt ned",
435
+ 'shuttle.top': "Flytt øverst",
436
+ 'shuttle.bottom': "Flytt nederst",
437
+ 'shuttle.filter': "Filtrer",
438
+ 'region.breadcrumb': "Brødsmulesti",
439
+ 'region.no_help': "Det finnes ingen hjelp for denne siden.",
427
440
  'search.did_you_mean': "Mente du:",
428
441
  'error.lov_value': "{label}: velg en verdi fra listen.",
429
442
  'item.yes': "Ja",
package/src/i18n/pl.ts CHANGED
@@ -424,6 +424,19 @@ export const pl: Record<MessageKey, string> = {
424
424
  'lov.loading': "Wczytywanie kolejnych…",
425
425
  'da.wait': "Proszę czekać…",
426
426
  'lov.no_rows': "Nic nie znaleziono.",
427
+ 'shuttle.available': "Dostępne",
428
+ 'shuttle.chosen': "Wybrane",
429
+ 'shuttle.move': "Przenieś",
430
+ 'shuttle.move_all': "Przenieś wszystkie",
431
+ 'shuttle.remove': "Usuń",
432
+ 'shuttle.remove_all': "Usuń wszystkie",
433
+ 'shuttle.up': "W górę",
434
+ 'shuttle.down': "W dół",
435
+ 'shuttle.top': "Na początek",
436
+ 'shuttle.bottom': "Na koniec",
437
+ 'shuttle.filter': "Filtruj",
438
+ 'region.breadcrumb': "Ścieżka nawigacji",
439
+ 'region.no_help': "Brak pomocy dla tej strony.",
427
440
  'search.did_you_mean': "Czy chodziło o:",
428
441
  'error.lov_value': "{label}: wybierz wartość z listy.",
429
442
  'item.yes': "Tak",
package/src/i18n/pt.ts CHANGED
@@ -424,6 +424,19 @@ export const pt: Record<MessageKey, string> = {
424
424
  'lov.loading': "A carregar mais…",
425
425
  'da.wait': "Aguarde, por favor…",
426
426
  'lov.no_rows': "Nada encontrado.",
427
+ 'shuttle.available': "Disponíveis",
428
+ 'shuttle.chosen': "Selecionados",
429
+ 'shuttle.move': "Mover",
430
+ 'shuttle.move_all': "Mover todos",
431
+ 'shuttle.remove': "Remover",
432
+ 'shuttle.remove_all': "Remover todos",
433
+ 'shuttle.up': "Mover para cima",
434
+ 'shuttle.down': "Mover para baixo",
435
+ 'shuttle.top': "Mover para o início",
436
+ 'shuttle.bottom': "Mover para o fim",
437
+ 'shuttle.filter': "Filtrar",
438
+ 'region.breadcrumb': "Trilha de navegação",
439
+ 'region.no_help': "Não há ajuda disponível para esta página.",
427
440
  'search.did_you_mean': "Queria dizer:",
428
441
  'error.lov_value': "{label}: escolha um valor da lista.",
429
442
  'item.yes': "Sim",
package/src/i18n/ru.ts CHANGED
@@ -424,6 +424,19 @@ export const ru: Record<MessageKey, string> = {
424
424
  'lov.loading': "Загрузка…",
425
425
  'da.wait': "Подождите…",
426
426
  'lov.no_rows': "Ничего не найдено.",
427
+ 'shuttle.available': "Доступные",
428
+ 'shuttle.chosen': "Выбранные",
429
+ 'shuttle.move': "Переместить",
430
+ 'shuttle.move_all': "Переместить все",
431
+ 'shuttle.remove': "Убрать",
432
+ 'shuttle.remove_all': "Убрать все",
433
+ 'shuttle.up': "Вверх",
434
+ 'shuttle.down': "Вниз",
435
+ 'shuttle.top': "В начало",
436
+ 'shuttle.bottom': "В конец",
437
+ 'shuttle.filter': "Фильтр",
438
+ 'region.breadcrumb': "Навигационная цепочка",
439
+ 'region.no_help': "Для этой страницы нет справки.",
427
440
  'search.did_you_mean': "Возможно, вы имели в виду:",
428
441
  'error.lov_value': "{label}: выберите значение из списка.",
429
442
  'item.yes': "Да",
package/src/i18n/sv.ts CHANGED
@@ -424,6 +424,19 @@ export const sv: Record<MessageKey, string> = {
424
424
  'lov.loading': "Läser in fler…",
425
425
  'da.wait': "Vänta…",
426
426
  'lov.no_rows': "Inget hittades.",
427
+ 'shuttle.available': "Tillgängliga",
428
+ 'shuttle.chosen': "Valda",
429
+ 'shuttle.move': "Flytta",
430
+ 'shuttle.move_all': "Flytta alla",
431
+ 'shuttle.remove': "Ta bort",
432
+ 'shuttle.remove_all': "Ta bort alla",
433
+ 'shuttle.up': "Flytta upp",
434
+ 'shuttle.down': "Flytta ned",
435
+ 'shuttle.top': "Flytta först",
436
+ 'shuttle.bottom': "Flytta sist",
437
+ 'shuttle.filter': "Filtrera",
438
+ 'region.breadcrumb': "Brödsmulor",
439
+ 'region.no_help': "Det finns ingen hjälp för den här sidan.",
427
440
  'search.did_you_mean': "Menade du:",
428
441
  'error.lov_value': "{label}: välj ett värde i listan.",
429
442
  'item.yes': "Ja",
package/src/i18n/tr.ts CHANGED
@@ -424,6 +424,19 @@ export const tr: Record<MessageKey, string> = {
424
424
  'lov.loading': "Daha fazlası yükleniyor…",
425
425
  'da.wait': "Lütfen bekleyin…",
426
426
  'lov.no_rows': "Hiçbir şey bulunamadı.",
427
+ 'shuttle.available': "Kullanılabilir",
428
+ 'shuttle.chosen': "Seçilenler",
429
+ 'shuttle.move': "Taşı",
430
+ 'shuttle.move_all': "Tümünü taşı",
431
+ 'shuttle.remove': "Kaldır",
432
+ 'shuttle.remove_all': "Tümünü kaldır",
433
+ 'shuttle.up': "Yukarı taşı",
434
+ 'shuttle.down': "Aşağı taşı",
435
+ 'shuttle.top': "En üste taşı",
436
+ 'shuttle.bottom': "En alta taşı",
437
+ 'shuttle.filter': "Filtrele",
438
+ 'region.breadcrumb': "İçerik haritası",
439
+ 'region.no_help': "Bu sayfa için yardım yok.",
427
440
  'search.did_you_mean': "Bunu mu demek istediniz:",
428
441
  'error.lov_value': "{label}: listeden bir değer seçin.",
429
442
  'item.yes': "Evet",