@sdcorejs/angular 20.2.0 → 20.2.1

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.
@@ -13,6 +13,7 @@ export * from '@sdcorejs/angular/components/section';
13
13
  export * from '@sdcorejs/angular/components/inform';
14
14
  export * from '@sdcorejs/angular/components/form-generic';
15
15
  export * from '@sdcorejs/angular/components/anchor';
16
+ export * from '@sdcorejs/angular/components/api-contract-builder';
16
17
  export * from '@sdcorejs/angular/components/query-builder';
17
18
  export * from '@sdcorejs/angular/components/org-chart';
18
19
  export * from '@sdcorejs/angular/components/tree';
@@ -1 +1 @@
1
- {"version":3,"file":"sdcorejs-angular-components.mjs","sources":["../../../projects/sdcorejs-angular/components/sdcorejs-angular-components.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEG"}
1
+ {"version":3,"file":"sdcorejs-angular-components.mjs","sources":["../../../projects/sdcorejs-angular/components/sdcorejs-angular-components.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEG"}
@@ -157,6 +157,8 @@ const EN_MESSAGES = {
157
157
  'core.form.tree-select.cancel': 'Cancel',
158
158
  'core.form.tree-select.apply': 'Apply',
159
159
  'core.component.tree.retry': 'Retry',
160
+ 'core.component.section.expand': 'Expand {title}',
161
+ 'core.component.section.collapse': 'Collapse {title}',
160
162
  'core.service.unsaved-changes.message': 'You have unsaved changes. Discard them and continue?',
161
163
  'core.component.job-progress.status.idle': 'Ready',
162
164
  'core.component.job-progress.status.queued': 'Queued',
@@ -633,6 +635,85 @@ const EN_MESSAGES = {
633
635
  'core.component.query-builder.to': 'To',
634
636
  'core.component.query-builder.boolean.true': 'Yes',
635
637
  'core.component.query-builder.boolean.false': 'No',
638
+ // ---- Component: api-contract-builder ----
639
+ 'core.component.api-contract-builder.steps': 'Contract steps',
640
+ 'core.component.api-contract-builder.step.general': 'General',
641
+ 'core.component.api-contract-builder.step.input': 'Input schema',
642
+ 'core.component.api-contract-builder.step.request': 'Request',
643
+ 'core.component.api-contract-builder.step.response': 'Response',
644
+ 'core.component.api-contract-builder.step.output': 'Output',
645
+ 'core.component.api-contract-builder.step.review': 'Review',
646
+ 'core.component.api-contract-builder.empty.contract': 'No contract yet',
647
+ 'core.component.api-contract-builder.create-contract': 'Create a contract',
648
+ 'core.component.api-contract-builder.contract.code': 'Contract code',
649
+ 'core.component.api-contract-builder.contract.name': 'Name',
650
+ 'core.component.api-contract-builder.contract.description': 'Description',
651
+ 'core.component.api-contract-builder.contract.version': 'Contract version',
652
+ 'core.component.api-contract-builder.node.name': 'Name',
653
+ 'core.component.api-contract-builder.node.type': 'Type',
654
+ 'core.component.api-contract-builder.node.required': 'Required',
655
+ 'core.component.api-contract-builder.node.label': 'Label',
656
+ 'core.component.api-contract-builder.node.description': 'Description',
657
+ 'core.component.api-contract-builder.node.transform': 'Temporal transform',
658
+ 'core.component.api-contract-builder.node.items': 'Item schema',
659
+ 'core.component.api-contract-builder.node.remove': 'Remove',
660
+ 'core.component.api-contract-builder.node.empty': 'No properties yet',
661
+ 'core.component.api-contract-builder.node.add-property': 'Add property',
662
+ 'core.component.api-contract-builder.node.duplicate-key': 'This name is already used by a sibling',
663
+ 'core.component.api-contract-builder.node.confirm-remove': 'Remove "{name}" and every field inside it?',
664
+ 'core.component.api-contract-builder.node.confirm-type': 'Changing the type discards the nested fields. Continue?',
665
+ 'core.component.api-contract-builder.confirm.yes': 'Yes',
666
+ 'core.component.api-contract-builder.confirm.no': 'No',
667
+ 'core.component.api-contract-builder.required.true': 'Yes',
668
+ 'core.component.api-contract-builder.required.false': 'No',
669
+ 'core.component.api-contract-builder.field.required': 'Required',
670
+ 'core.component.api-contract-builder.transform.none': 'None',
671
+ 'core.component.api-contract-builder.mapping.mode': 'Value',
672
+ 'core.component.api-contract-builder.mapping.mode.source': 'From source',
673
+ 'core.component.api-contract-builder.mapping.mode.static': 'Static value',
674
+ 'core.component.api-contract-builder.mapping.mode.advanced': 'Advanced',
675
+ 'core.component.api-contract-builder.mapping.mode.nested': 'Map each field',
676
+ 'core.component.api-contract-builder.mapping.source': 'Source expression',
677
+ 'core.component.api-contract-builder.mapping.value': 'Static value',
678
+ 'core.component.api-contract-builder.mapping.sensitive': 'sensitive',
679
+ 'core.component.api-contract-builder.drawer.add-title': 'Add field',
680
+ 'core.component.api-contract-builder.drawer.edit-title': 'Edit field',
681
+ 'core.component.api-contract-builder.drawer.save': 'Save',
682
+ 'core.component.api-contract-builder.drawer.cancel': 'Cancel',
683
+ 'core.component.api-contract-builder.drawer.discard-confirm': 'Discard unsaved changes?',
684
+ 'core.component.api-contract-builder.summary.unmapped': 'unmapped',
685
+ 'core.component.api-contract-builder.summary.field-count': '{count} field(s)',
686
+ 'core.component.api-contract-builder.node.name-required': 'The field name cannot be empty',
687
+ 'core.component.api-contract-builder.boolean.true': 'True',
688
+ 'core.component.api-contract-builder.boolean.false': 'False',
689
+ 'core.component.api-contract-builder.request.method': 'Method',
690
+ 'core.component.api-contract-builder.request.url': 'URL',
691
+ 'core.component.api-contract-builder.request.path': 'Path parameters',
692
+ 'core.component.api-contract-builder.request.query': 'Query parameters',
693
+ 'core.component.api-contract-builder.request.headers': 'Headers',
694
+ 'core.component.api-contract-builder.request.body': 'Body',
695
+ 'core.component.api-contract-builder.request.add-body': 'Add a body',
696
+ 'core.component.api-contract-builder.request.remove-body': 'Remove the body',
697
+ 'core.component.api-contract-builder.request.add-entry': 'Add',
698
+ 'core.component.api-contract-builder.response.status': 'Success status codes',
699
+ 'core.component.api-contract-builder.response.status-hint': 'Comma separated, for example 200, 201',
700
+ 'core.component.api-contract-builder.response.headers': 'Response headers',
701
+ 'core.component.api-contract-builder.response.body': 'Response body',
702
+ 'core.component.api-contract-builder.response.add-body': 'Add a body',
703
+ 'core.component.api-contract-builder.response.remove-body': 'Remove the body',
704
+ 'core.component.api-contract-builder.output.schema': 'Output schema',
705
+ 'core.component.api-contract-builder.output.use-response': 'Use a response field as the output',
706
+ 'core.component.api-contract-builder.output.fields': 'Fields available to consumers',
707
+ 'core.component.api-contract-builder.output.no-fields': 'No leaf field yet',
708
+ 'core.component.api-contract-builder.review.valid': 'The contract is valid',
709
+ 'core.component.api-contract-builder.review.errors': '{count} error(s)',
710
+ 'core.component.api-contract-builder.review.warnings': '{count} warning(s)',
711
+ 'core.component.api-contract-builder.review.json': 'Contract JSON',
712
+ 'core.component.api-contract-builder.empty.path': 'No path parameter yet',
713
+ 'core.component.api-contract-builder.empty.query': 'No query parameter yet',
714
+ 'core.component.api-contract-builder.empty.headers': 'No header yet',
715
+ 'core.component.api-contract-builder.empty.body': 'No body declared',
716
+ 'core.component.api-contract-builder.empty.section': 'This section is missing from the contract',
636
717
  // ---- Component: tree ----
637
718
  'core.component.tree.selected-count': '{count} item(s) selected',
638
719
  'core.component.tree.expand': 'Expand tree item',
@@ -814,6 +895,8 @@ const JA_MESSAGES = {
814
895
  'core.form.tree-select.cancel': 'キャンセル',
815
896
  'core.form.tree-select.apply': '適用',
816
897
  'core.component.tree.retry': '再試行',
898
+ 'core.component.section.expand': '「{title}」を展開',
899
+ 'core.component.section.collapse': '「{title}」を折りたたむ',
817
900
  'core.service.unsaved-changes.message': '未保存の変更があります。破棄して続行しますか?',
818
901
  'core.component.job-progress.status.idle': '準備完了',
819
902
  'core.component.job-progress.status.queued': '待機中',
@@ -1290,6 +1373,85 @@ const JA_MESSAGES = {
1290
1373
  'core.component.query-builder.to': '終了',
1291
1374
  'core.component.query-builder.boolean.true': 'はい',
1292
1375
  'core.component.query-builder.boolean.false': 'いいえ',
1376
+ // ---- Component: api-contract-builder ----
1377
+ 'core.component.api-contract-builder.steps': 'コントラクトのステップ',
1378
+ 'core.component.api-contract-builder.step.general': '基本情報',
1379
+ 'core.component.api-contract-builder.step.input': '入力スキーマ',
1380
+ 'core.component.api-contract-builder.step.request': 'リクエスト',
1381
+ 'core.component.api-contract-builder.step.response': 'レスポンス',
1382
+ 'core.component.api-contract-builder.step.output': '出力',
1383
+ 'core.component.api-contract-builder.step.review': '確認',
1384
+ 'core.component.api-contract-builder.empty.contract': 'コントラクトがありません',
1385
+ 'core.component.api-contract-builder.create-contract': 'コントラクトを作成',
1386
+ 'core.component.api-contract-builder.contract.code': 'コントラクトコード',
1387
+ 'core.component.api-contract-builder.contract.name': '名前',
1388
+ 'core.component.api-contract-builder.contract.description': '説明',
1389
+ 'core.component.api-contract-builder.contract.version': 'コントラクトバージョン',
1390
+ 'core.component.api-contract-builder.node.name': 'フィールド名',
1391
+ 'core.component.api-contract-builder.node.type': 'データ型',
1392
+ 'core.component.api-contract-builder.node.required': '必須',
1393
+ 'core.component.api-contract-builder.node.label': 'ラベル',
1394
+ 'core.component.api-contract-builder.node.description': '説明',
1395
+ 'core.component.api-contract-builder.node.transform': '日時の変換形式',
1396
+ 'core.component.api-contract-builder.node.items': '要素のスキーマ',
1397
+ 'core.component.api-contract-builder.node.remove': '削除',
1398
+ 'core.component.api-contract-builder.node.empty': 'フィールドがありません',
1399
+ 'core.component.api-contract-builder.node.add-property': 'フィールドを追加',
1400
+ 'core.component.api-contract-builder.node.duplicate-key': 'この名前は同じ階層で既に使われています',
1401
+ 'core.component.api-contract-builder.node.confirm-remove': '「{name}」と配下のフィールドをすべて削除しますか?',
1402
+ 'core.component.api-contract-builder.node.confirm-type': '型を変更すると入れ子のフィールドは破棄されます。続行しますか?',
1403
+ 'core.component.api-contract-builder.confirm.yes': 'はい',
1404
+ 'core.component.api-contract-builder.confirm.no': 'いいえ',
1405
+ 'core.component.api-contract-builder.required.true': 'はい',
1406
+ 'core.component.api-contract-builder.required.false': 'いいえ',
1407
+ 'core.component.api-contract-builder.field.required': '必須',
1408
+ 'core.component.api-contract-builder.transform.none': 'なし',
1409
+ 'core.component.api-contract-builder.mapping.mode': '値の指定',
1410
+ 'core.component.api-contract-builder.mapping.mode.source': 'ソースから取得',
1411
+ 'core.component.api-contract-builder.mapping.mode.static': '固定値',
1412
+ 'core.component.api-contract-builder.mapping.mode.advanced': '詳細設定',
1413
+ 'core.component.api-contract-builder.mapping.mode.nested': 'フィールドごとにマッピング',
1414
+ 'core.component.api-contract-builder.mapping.source': 'ソース式',
1415
+ 'core.component.api-contract-builder.mapping.value': '固定値',
1416
+ 'core.component.api-contract-builder.mapping.sensitive': '機密',
1417
+ 'core.component.api-contract-builder.drawer.add-title': '項目を追加',
1418
+ 'core.component.api-contract-builder.drawer.edit-title': '項目を編集',
1419
+ 'core.component.api-contract-builder.drawer.save': '保存',
1420
+ 'core.component.api-contract-builder.drawer.cancel': 'キャンセル',
1421
+ 'core.component.api-contract-builder.drawer.discard-confirm': '保存していない変更を破棄しますか?',
1422
+ 'core.component.api-contract-builder.summary.unmapped': '未割り当て',
1423
+ 'core.component.api-contract-builder.summary.field-count': '{count} 項目',
1424
+ 'core.component.api-contract-builder.node.name-required': '項目名は空にできません',
1425
+ 'core.component.api-contract-builder.boolean.true': '真',
1426
+ 'core.component.api-contract-builder.boolean.false': '偽',
1427
+ 'core.component.api-contract-builder.request.method': 'メソッド',
1428
+ 'core.component.api-contract-builder.request.url': 'URL',
1429
+ 'core.component.api-contract-builder.request.path': 'パスパラメータ',
1430
+ 'core.component.api-contract-builder.request.query': 'クエリパラメータ',
1431
+ 'core.component.api-contract-builder.request.headers': 'ヘッダー',
1432
+ 'core.component.api-contract-builder.request.body': 'ボディ',
1433
+ 'core.component.api-contract-builder.request.add-body': 'ボディを追加',
1434
+ 'core.component.api-contract-builder.request.remove-body': 'ボディを削除',
1435
+ 'core.component.api-contract-builder.request.add-entry': '追加',
1436
+ 'core.component.api-contract-builder.response.status': '成功ステータスコード',
1437
+ 'core.component.api-contract-builder.response.status-hint': 'カンマ区切り。例: 200, 201',
1438
+ 'core.component.api-contract-builder.response.headers': 'レスポンスヘッダー',
1439
+ 'core.component.api-contract-builder.response.body': 'レスポンスボディ',
1440
+ 'core.component.api-contract-builder.response.add-body': 'ボディを追加',
1441
+ 'core.component.api-contract-builder.response.remove-body': 'ボディを削除',
1442
+ 'core.component.api-contract-builder.output.schema': '出力スキーマ',
1443
+ 'core.component.api-contract-builder.output.use-response': 'レスポンスのフィールドを出力に使う',
1444
+ 'core.component.api-contract-builder.output.fields': '利用側が受け取るフィールド',
1445
+ 'core.component.api-contract-builder.output.no-fields': 'リーフフィールドがありません',
1446
+ 'core.component.api-contract-builder.review.valid': 'コントラクトは有効です',
1447
+ 'core.component.api-contract-builder.review.errors': 'エラー {count} 件',
1448
+ 'core.component.api-contract-builder.review.warnings': '警告 {count} 件',
1449
+ 'core.component.api-contract-builder.review.json': 'コントラクトの JSON',
1450
+ 'core.component.api-contract-builder.empty.path': 'パスパラメータがありません',
1451
+ 'core.component.api-contract-builder.empty.query': 'クエリパラメータがありません',
1452
+ 'core.component.api-contract-builder.empty.headers': 'ヘッダーがありません',
1453
+ 'core.component.api-contract-builder.empty.body': 'ボディが未定義です',
1454
+ 'core.component.api-contract-builder.empty.section': 'コントラクトにこのセクションがありません',
1293
1455
  // ---- Component: tree ----
1294
1456
  'core.component.tree.selected-count': '{count} 件選択中',
1295
1457
  'core.component.tree.expand': 'ツリー項目を展開',
@@ -1471,6 +1633,8 @@ const KO_MESSAGES = {
1471
1633
  'core.form.tree-select.cancel': '취소',
1472
1634
  'core.form.tree-select.apply': '적용',
1473
1635
  'core.component.tree.retry': '다시 시도',
1636
+ 'core.component.section.expand': '{title} 펼치기',
1637
+ 'core.component.section.collapse': '{title} 접기',
1474
1638
  'core.service.unsaved-changes.message': '저장하지 않은 변경 사항이 있습니다. 변경을 버리고 계속할까요?',
1475
1639
  'core.component.job-progress.status.idle': '준비됨',
1476
1640
  'core.component.job-progress.status.queued': '대기 중',
@@ -1947,6 +2111,85 @@ const KO_MESSAGES = {
1947
2111
  'core.component.query-builder.to': '종료',
1948
2112
  'core.component.query-builder.boolean.true': '예',
1949
2113
  'core.component.query-builder.boolean.false': '아니오',
2114
+ // ---- Component: api-contract-builder ----
2115
+ 'core.component.api-contract-builder.steps': '컨트랙트 단계',
2116
+ 'core.component.api-contract-builder.step.general': '기본 정보',
2117
+ 'core.component.api-contract-builder.step.input': '입력 스키마',
2118
+ 'core.component.api-contract-builder.step.request': '요청',
2119
+ 'core.component.api-contract-builder.step.response': '응답',
2120
+ 'core.component.api-contract-builder.step.output': '출력',
2121
+ 'core.component.api-contract-builder.step.review': '검토',
2122
+ 'core.component.api-contract-builder.empty.contract': '컨트랙트가 없습니다',
2123
+ 'core.component.api-contract-builder.create-contract': '컨트랙트 만들기',
2124
+ 'core.component.api-contract-builder.contract.code': '컨트랙트 코드',
2125
+ 'core.component.api-contract-builder.contract.name': '이름',
2126
+ 'core.component.api-contract-builder.contract.description': '설명',
2127
+ 'core.component.api-contract-builder.contract.version': '컨트랙트 버전',
2128
+ 'core.component.api-contract-builder.node.name': '필드 이름',
2129
+ 'core.component.api-contract-builder.node.type': '데이터 타입',
2130
+ 'core.component.api-contract-builder.node.required': '필수',
2131
+ 'core.component.api-contract-builder.node.label': '라벨',
2132
+ 'core.component.api-contract-builder.node.description': '설명',
2133
+ 'core.component.api-contract-builder.node.transform': '시간 변환 형식',
2134
+ 'core.component.api-contract-builder.node.items': '요소 스키마',
2135
+ 'core.component.api-contract-builder.node.remove': '삭제',
2136
+ 'core.component.api-contract-builder.node.empty': '필드가 없습니다',
2137
+ 'core.component.api-contract-builder.node.add-property': '필드 추가',
2138
+ 'core.component.api-contract-builder.node.duplicate-key': '같은 계층에서 이미 사용 중인 이름입니다',
2139
+ 'core.component.api-contract-builder.node.confirm-remove': '"{name}" 및 하위 필드를 모두 삭제할까요?',
2140
+ 'core.component.api-contract-builder.node.confirm-type': '타입을 바꾸면 중첩된 필드가 삭제됩니다. 계속할까요?',
2141
+ 'core.component.api-contract-builder.confirm.yes': '예',
2142
+ 'core.component.api-contract-builder.confirm.no': '아니오',
2143
+ 'core.component.api-contract-builder.required.true': '예',
2144
+ 'core.component.api-contract-builder.required.false': '아니오',
2145
+ 'core.component.api-contract-builder.field.required': '필수',
2146
+ 'core.component.api-contract-builder.transform.none': '없음',
2147
+ 'core.component.api-contract-builder.mapping.mode': '값 지정',
2148
+ 'core.component.api-contract-builder.mapping.mode.source': '소스에서 가져오기',
2149
+ 'core.component.api-contract-builder.mapping.mode.static': '고정 값',
2150
+ 'core.component.api-contract-builder.mapping.mode.advanced': '고급',
2151
+ 'core.component.api-contract-builder.mapping.mode.nested': '필드별 매핑',
2152
+ 'core.component.api-contract-builder.mapping.source': '소스 표현식',
2153
+ 'core.component.api-contract-builder.mapping.value': '고정 값',
2154
+ 'core.component.api-contract-builder.mapping.sensitive': '민감 정보',
2155
+ 'core.component.api-contract-builder.drawer.add-title': '필드 추가',
2156
+ 'core.component.api-contract-builder.drawer.edit-title': '필드 편집',
2157
+ 'core.component.api-contract-builder.drawer.save': '저장',
2158
+ 'core.component.api-contract-builder.drawer.cancel': '취소',
2159
+ 'core.component.api-contract-builder.drawer.discard-confirm': '저장하지 않은 변경 사항을 취소할까요?',
2160
+ 'core.component.api-contract-builder.summary.unmapped': '미할당',
2161
+ 'core.component.api-contract-builder.summary.field-count': '{count}개 필드',
2162
+ 'core.component.api-contract-builder.node.name-required': '필드 이름은 비워 둘 수 없습니다',
2163
+ 'core.component.api-contract-builder.boolean.true': '참',
2164
+ 'core.component.api-contract-builder.boolean.false': '거짓',
2165
+ 'core.component.api-contract-builder.request.method': '메서드',
2166
+ 'core.component.api-contract-builder.request.url': 'URL',
2167
+ 'core.component.api-contract-builder.request.path': '경로 파라미터',
2168
+ 'core.component.api-contract-builder.request.query': '쿼리 파라미터',
2169
+ 'core.component.api-contract-builder.request.headers': '헤더',
2170
+ 'core.component.api-contract-builder.request.body': '본문',
2171
+ 'core.component.api-contract-builder.request.add-body': '본문 추가',
2172
+ 'core.component.api-contract-builder.request.remove-body': '본문 삭제',
2173
+ 'core.component.api-contract-builder.request.add-entry': '추가',
2174
+ 'core.component.api-contract-builder.response.status': '성공 상태 코드',
2175
+ 'core.component.api-contract-builder.response.status-hint': '쉼표로 구분. 예: 200, 201',
2176
+ 'core.component.api-contract-builder.response.headers': '응답 헤더',
2177
+ 'core.component.api-contract-builder.response.body': '응답 본문',
2178
+ 'core.component.api-contract-builder.response.add-body': '본문 추가',
2179
+ 'core.component.api-contract-builder.response.remove-body': '본문 삭제',
2180
+ 'core.component.api-contract-builder.output.schema': '출력 스키마',
2181
+ 'core.component.api-contract-builder.output.use-response': '응답 필드를 출력으로 사용',
2182
+ 'core.component.api-contract-builder.output.fields': '사용자가 받게 될 필드',
2183
+ 'core.component.api-contract-builder.output.no-fields': '리프 필드가 없습니다',
2184
+ 'core.component.api-contract-builder.review.valid': '컨트랙트가 유효합니다',
2185
+ 'core.component.api-contract-builder.review.errors': '오류 {count}건',
2186
+ 'core.component.api-contract-builder.review.warnings': '경고 {count}건',
2187
+ 'core.component.api-contract-builder.review.json': '컨트랙트 JSON',
2188
+ 'core.component.api-contract-builder.empty.path': '경로 파라미터가 없습니다',
2189
+ 'core.component.api-contract-builder.empty.query': '쿼리 파라미터가 없습니다',
2190
+ 'core.component.api-contract-builder.empty.headers': '헤더가 없습니다',
2191
+ 'core.component.api-contract-builder.empty.body': '본문이 선언되지 않았습니다',
2192
+ 'core.component.api-contract-builder.empty.section': '컨트랙트에 이 섹션이 없습니다',
1950
2193
  // ---- Component: tree ----
1951
2194
  'core.component.tree.selected-count': '{count}개 선택됨',
1952
2195
  'core.component.tree.expand': '트리 항목 펼치기',
@@ -2128,6 +2371,8 @@ const VI_MESSAGES = {
2128
2371
  'core.form.tree-select.cancel': 'Hủy',
2129
2372
  'core.form.tree-select.apply': 'Áp dụng',
2130
2373
  'core.component.tree.retry': 'Thử lại',
2374
+ 'core.component.section.expand': 'Mở rộng {title}',
2375
+ 'core.component.section.collapse': 'Thu gọn {title}',
2131
2376
  'core.service.unsaved-changes.message': 'Bạn có thay đổi chưa lưu. Bỏ thay đổi và tiếp tục?',
2132
2377
  'core.component.job-progress.status.idle': 'Sẵn sàng',
2133
2378
  'core.component.job-progress.status.queued': 'Đang chờ',
@@ -2604,6 +2849,85 @@ const VI_MESSAGES = {
2604
2849
  'core.component.query-builder.to': 'Đến',
2605
2850
  'core.component.query-builder.boolean.true': 'Có',
2606
2851
  'core.component.query-builder.boolean.false': 'Không',
2852
+ // ---- Component: api-contract-builder ----
2853
+ 'core.component.api-contract-builder.steps': 'Các bước khai báo contract',
2854
+ 'core.component.api-contract-builder.step.general': 'Thông tin chung',
2855
+ 'core.component.api-contract-builder.step.input': 'Input schema',
2856
+ 'core.component.api-contract-builder.step.request': 'Request',
2857
+ 'core.component.api-contract-builder.step.response': 'Response',
2858
+ 'core.component.api-contract-builder.step.output': 'Output',
2859
+ 'core.component.api-contract-builder.step.review': 'Kiểm tra',
2860
+ 'core.component.api-contract-builder.empty.contract': 'Chưa có contract nào',
2861
+ 'core.component.api-contract-builder.create-contract': 'Tạo contract',
2862
+ 'core.component.api-contract-builder.contract.code': 'Mã contract',
2863
+ 'core.component.api-contract-builder.contract.name': 'Tên',
2864
+ 'core.component.api-contract-builder.contract.description': 'Mô tả',
2865
+ 'core.component.api-contract-builder.contract.version': 'Phiên bản contract',
2866
+ 'core.component.api-contract-builder.node.name': 'Tên trường',
2867
+ 'core.component.api-contract-builder.node.type': 'Kiểu dữ liệu',
2868
+ 'core.component.api-contract-builder.node.required': 'Bắt buộc',
2869
+ 'core.component.api-contract-builder.node.label': 'Nhãn',
2870
+ 'core.component.api-contract-builder.node.description': 'Mô tả',
2871
+ 'core.component.api-contract-builder.node.transform': 'Định dạng thời gian',
2872
+ 'core.component.api-contract-builder.node.items': 'Schema của phần tử',
2873
+ 'core.component.api-contract-builder.node.remove': 'Xoá',
2874
+ 'core.component.api-contract-builder.node.empty': 'Chưa có trường nào',
2875
+ 'core.component.api-contract-builder.node.add-property': 'Thêm trường',
2876
+ 'core.component.api-contract-builder.node.duplicate-key': 'Tên này đã được dùng ở cùng cấp',
2877
+ 'core.component.api-contract-builder.node.confirm-remove': 'Xoá "{name}" cùng toàn bộ trường bên trong?',
2878
+ 'core.component.api-contract-builder.node.confirm-type': 'Đổi kiểu sẽ bỏ toàn bộ trường lồng bên trong. Tiếp tục?',
2879
+ 'core.component.api-contract-builder.confirm.yes': 'Đồng ý',
2880
+ 'core.component.api-contract-builder.confirm.no': 'Huỷ',
2881
+ 'core.component.api-contract-builder.required.true': 'Có',
2882
+ 'core.component.api-contract-builder.required.false': 'Không',
2883
+ 'core.component.api-contract-builder.field.required': 'Bắt buộc',
2884
+ 'core.component.api-contract-builder.transform.none': 'Không dùng',
2885
+ 'core.component.api-contract-builder.mapping.mode': 'Nguồn giá trị',
2886
+ 'core.component.api-contract-builder.mapping.mode.source': 'Lấy từ nguồn',
2887
+ 'core.component.api-contract-builder.mapping.mode.static': 'Giá trị tĩnh',
2888
+ 'core.component.api-contract-builder.mapping.mode.advanced': 'Nâng cao',
2889
+ 'core.component.api-contract-builder.mapping.mode.nested': 'Map từng trường',
2890
+ 'core.component.api-contract-builder.mapping.source': 'Biểu thức nguồn',
2891
+ 'core.component.api-contract-builder.mapping.value': 'Giá trị tĩnh',
2892
+ 'core.component.api-contract-builder.mapping.sensitive': 'nhạy cảm',
2893
+ 'core.component.api-contract-builder.drawer.add-title': 'Thêm trường',
2894
+ 'core.component.api-contract-builder.drawer.edit-title': 'Sửa trường',
2895
+ 'core.component.api-contract-builder.drawer.save': 'Lưu',
2896
+ 'core.component.api-contract-builder.drawer.cancel': 'Huỷ',
2897
+ 'core.component.api-contract-builder.drawer.discard-confirm': 'Bỏ các thay đổi chưa lưu?',
2898
+ 'core.component.api-contract-builder.summary.unmapped': 'chưa gán',
2899
+ 'core.component.api-contract-builder.summary.field-count': '{count} trường',
2900
+ 'core.component.api-contract-builder.node.name-required': 'Tên trường không được để trống',
2901
+ 'core.component.api-contract-builder.boolean.true': 'Đúng',
2902
+ 'core.component.api-contract-builder.boolean.false': 'Sai',
2903
+ 'core.component.api-contract-builder.request.method': 'Method',
2904
+ 'core.component.api-contract-builder.request.url': 'URL',
2905
+ 'core.component.api-contract-builder.request.path': 'Tham số đường dẫn',
2906
+ 'core.component.api-contract-builder.request.query': 'Tham số query',
2907
+ 'core.component.api-contract-builder.request.headers': 'Headers',
2908
+ 'core.component.api-contract-builder.request.body': 'Body',
2909
+ 'core.component.api-contract-builder.request.add-body': 'Thêm body',
2910
+ 'core.component.api-contract-builder.request.remove-body': 'Xoá body',
2911
+ 'core.component.api-contract-builder.request.add-entry': 'Thêm',
2912
+ 'core.component.api-contract-builder.response.status': 'Mã trạng thái thành công',
2913
+ 'core.component.api-contract-builder.response.status-hint': 'Ngăn cách bằng dấu phẩy, ví dụ 200, 201',
2914
+ 'core.component.api-contract-builder.response.headers': 'Header phản hồi',
2915
+ 'core.component.api-contract-builder.response.body': 'Body phản hồi',
2916
+ 'core.component.api-contract-builder.response.add-body': 'Thêm body',
2917
+ 'core.component.api-contract-builder.response.remove-body': 'Xoá body',
2918
+ 'core.component.api-contract-builder.output.schema': 'Output schema',
2919
+ 'core.component.api-contract-builder.output.use-response': 'Dùng một trường của response làm output',
2920
+ 'core.component.api-contract-builder.output.fields': 'Các trường consumer sẽ nhận được',
2921
+ 'core.component.api-contract-builder.output.no-fields': 'Chưa có trường lá nào',
2922
+ 'core.component.api-contract-builder.review.valid': 'Contract hợp lệ',
2923
+ 'core.component.api-contract-builder.review.errors': '{count} lỗi',
2924
+ 'core.component.api-contract-builder.review.warnings': '{count} cảnh báo',
2925
+ 'core.component.api-contract-builder.review.json': 'JSON của contract',
2926
+ 'core.component.api-contract-builder.empty.path': 'Chưa có tham số đường dẫn',
2927
+ 'core.component.api-contract-builder.empty.query': 'Chưa có tham số query',
2928
+ 'core.component.api-contract-builder.empty.headers': 'Chưa có header nào',
2929
+ 'core.component.api-contract-builder.empty.body': 'Chưa khai báo body',
2930
+ 'core.component.api-contract-builder.empty.section': 'Contract chưa có phần này',
2607
2931
  // ---- Component: tree ----
2608
2932
  'core.component.tree.selected-count': 'Đã chọn {count} mục',
2609
2933
  'core.component.tree.expand': 'Mở rộng mục',
@@ -2785,6 +3109,8 @@ const ZH_MESSAGES = {
2785
3109
  'core.form.tree-select.cancel': '取消',
2786
3110
  'core.form.tree-select.apply': '应用',
2787
3111
  'core.component.tree.retry': '重试',
3112
+ 'core.component.section.expand': '展开{title}',
3113
+ 'core.component.section.collapse': '收起{title}',
2788
3114
  'core.service.unsaved-changes.message': '您有未保存的更改。是否放弃更改并继续?',
2789
3115
  'core.component.job-progress.status.idle': '就绪',
2790
3116
  'core.component.job-progress.status.queued': '排队中',
@@ -3261,6 +3587,85 @@ const ZH_MESSAGES = {
3261
3587
  'core.component.query-builder.to': '结束',
3262
3588
  'core.component.query-builder.boolean.true': '是',
3263
3589
  'core.component.query-builder.boolean.false': '否',
3590
+ // ---- Component: api-contract-builder ----
3591
+ 'core.component.api-contract-builder.steps': '契约步骤',
3592
+ 'core.component.api-contract-builder.step.general': '基本信息',
3593
+ 'core.component.api-contract-builder.step.input': '输入结构',
3594
+ 'core.component.api-contract-builder.step.request': '请求',
3595
+ 'core.component.api-contract-builder.step.response': '响应',
3596
+ 'core.component.api-contract-builder.step.output': '输出',
3597
+ 'core.component.api-contract-builder.step.review': '检查',
3598
+ 'core.component.api-contract-builder.empty.contract': '尚未创建契约',
3599
+ 'core.component.api-contract-builder.create-contract': '创建契约',
3600
+ 'core.component.api-contract-builder.contract.code': '契约编码',
3601
+ 'core.component.api-contract-builder.contract.name': '名称',
3602
+ 'core.component.api-contract-builder.contract.description': '描述',
3603
+ 'core.component.api-contract-builder.contract.version': '契约版本',
3604
+ 'core.component.api-contract-builder.node.name': '字段名',
3605
+ 'core.component.api-contract-builder.node.type': '数据类型',
3606
+ 'core.component.api-contract-builder.node.required': '必填',
3607
+ 'core.component.api-contract-builder.node.label': '标签',
3608
+ 'core.component.api-contract-builder.node.description': '描述',
3609
+ 'core.component.api-contract-builder.node.transform': '时间转换格式',
3610
+ 'core.component.api-contract-builder.node.items': '元素结构',
3611
+ 'core.component.api-contract-builder.node.remove': '删除',
3612
+ 'core.component.api-contract-builder.node.empty': '暂无字段',
3613
+ 'core.component.api-contract-builder.node.add-property': '添加字段',
3614
+ 'core.component.api-contract-builder.node.duplicate-key': '同级中已存在该名称',
3615
+ 'core.component.api-contract-builder.node.confirm-remove': '删除「{name}」及其全部子字段?',
3616
+ 'core.component.api-contract-builder.node.confirm-type': '更改类型会丢弃嵌套字段,是否继续?',
3617
+ 'core.component.api-contract-builder.confirm.yes': '确定',
3618
+ 'core.component.api-contract-builder.confirm.no': '取消',
3619
+ 'core.component.api-contract-builder.required.true': '是',
3620
+ 'core.component.api-contract-builder.required.false': '否',
3621
+ 'core.component.api-contract-builder.field.required': '必填',
3622
+ 'core.component.api-contract-builder.transform.none': '不使用',
3623
+ 'core.component.api-contract-builder.mapping.mode': '取值方式',
3624
+ 'core.component.api-contract-builder.mapping.mode.source': '来自数据源',
3625
+ 'core.component.api-contract-builder.mapping.mode.static': '静态值',
3626
+ 'core.component.api-contract-builder.mapping.mode.advanced': '高级',
3627
+ 'core.component.api-contract-builder.mapping.mode.nested': '逐字段映射',
3628
+ 'core.component.api-contract-builder.mapping.source': '来源表达式',
3629
+ 'core.component.api-contract-builder.mapping.value': '静态值',
3630
+ 'core.component.api-contract-builder.mapping.sensitive': '敏感',
3631
+ 'core.component.api-contract-builder.drawer.add-title': '添加字段',
3632
+ 'core.component.api-contract-builder.drawer.edit-title': '编辑字段',
3633
+ 'core.component.api-contract-builder.drawer.save': '保存',
3634
+ 'core.component.api-contract-builder.drawer.cancel': '取消',
3635
+ 'core.component.api-contract-builder.drawer.discard-confirm': '放弃未保存的更改?',
3636
+ 'core.component.api-contract-builder.summary.unmapped': '未映射',
3637
+ 'core.component.api-contract-builder.summary.field-count': '{count} 个字段',
3638
+ 'core.component.api-contract-builder.node.name-required': '字段名不能为空',
3639
+ 'core.component.api-contract-builder.boolean.true': '真',
3640
+ 'core.component.api-contract-builder.boolean.false': '假',
3641
+ 'core.component.api-contract-builder.request.method': '请求方法',
3642
+ 'core.component.api-contract-builder.request.url': 'URL',
3643
+ 'core.component.api-contract-builder.request.path': '路径参数',
3644
+ 'core.component.api-contract-builder.request.query': '查询参数',
3645
+ 'core.component.api-contract-builder.request.headers': '请求头',
3646
+ 'core.component.api-contract-builder.request.body': '请求体',
3647
+ 'core.component.api-contract-builder.request.add-body': '添加请求体',
3648
+ 'core.component.api-contract-builder.request.remove-body': '删除请求体',
3649
+ 'core.component.api-contract-builder.request.add-entry': '添加',
3650
+ 'core.component.api-contract-builder.response.status': '成功状态码',
3651
+ 'core.component.api-contract-builder.response.status-hint': '用逗号分隔,例如 200, 201',
3652
+ 'core.component.api-contract-builder.response.headers': '响应头',
3653
+ 'core.component.api-contract-builder.response.body': '响应体',
3654
+ 'core.component.api-contract-builder.response.add-body': '添加响应体',
3655
+ 'core.component.api-contract-builder.response.remove-body': '删除响应体',
3656
+ 'core.component.api-contract-builder.output.schema': '输出结构',
3657
+ 'core.component.api-contract-builder.output.use-response': '将响应字段作为输出',
3658
+ 'core.component.api-contract-builder.output.fields': '调用方可获得的字段',
3659
+ 'core.component.api-contract-builder.output.no-fields': '暂无叶子字段',
3660
+ 'core.component.api-contract-builder.review.valid': '契约有效',
3661
+ 'core.component.api-contract-builder.review.errors': '{count} 个错误',
3662
+ 'core.component.api-contract-builder.review.warnings': '{count} 个警告',
3663
+ 'core.component.api-contract-builder.review.json': '契约 JSON',
3664
+ 'core.component.api-contract-builder.empty.path': '暂无路径参数',
3665
+ 'core.component.api-contract-builder.empty.query': '暂无查询参数',
3666
+ 'core.component.api-contract-builder.empty.headers': '暂无请求头',
3667
+ 'core.component.api-contract-builder.empty.body': '未声明请求体',
3668
+ 'core.component.api-contract-builder.empty.section': '契约中缺少该部分',
3264
3669
  // ---- Component: tree ----
3265
3670
  'core.component.tree.selected-count': '已选择 {count} 项',
3266
3671
  'core.component.tree.expand': '展开树节点',