@sap-ux/fe-fpm-writer 0.35.9 → 0.35.11

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.
@@ -138,7 +138,10 @@ async function getChartBuildingBlockPrompts(context) {
138
138
  type: 'input',
139
139
  name: 'buildingBlockData.selectionChange',
140
140
  message: t('selectionChange'),
141
- guiOptions: { groupId: groupIds.chartConfigureEvents, placeholder: t('selectionChangePlaceholder') }
141
+ guiOptions: {
142
+ groupId: groupIds.chartConfigureEvents,
143
+ placeholder: t('selectionChangePlaceholder')
144
+ }
142
145
  }
143
146
  ],
144
147
  initialAnswers: {
@@ -98,7 +98,10 @@ async function getFilterBarBuildingBlockPrompts(context) {
98
98
  type: 'input',
99
99
  name: 'buildingBlockData.filterChanged',
100
100
  message: t('filterChanged'),
101
- guiOptions: { groupId: groupIds.filterConfigureEvents, placeholder: t('filterChangedPlaceholder') }
101
+ guiOptions: {
102
+ groupId: groupIds.filterConfigureEvents,
103
+ placeholder: t('filterChangedPlaceholder')
104
+ }
102
105
  },
103
106
  {
104
107
  type: 'input',
package/dist/i18n.d.ts CHANGED
@@ -1,11 +1,15 @@
1
- import type { StringMap, TOptions, TOptionsBase } from 'i18next';
1
+ import type { i18n as i18nNext, TOptions, TOptionsBase } from 'i18next';
2
2
  export declare const i18nNamespaces: {
3
3
  readonly buildingBlock: "fe-fpm-writer-building-block";
4
4
  };
5
+ export declare const i18n: i18nNext;
5
6
  /**
6
7
  * Initialize i18next with the translations for this module.
7
8
  */
8
9
  export declare function initI18n(): Promise<void>;
10
+ type $Dictionary<T = unknown> = {
11
+ [key: string]: T;
12
+ };
9
13
  /**
10
14
  * Wraps the i18next module's translate function to bind the provided namespace and a key prefix.
11
15
  *
@@ -13,5 +17,6 @@ export declare function initI18n(): Promise<void>;
13
17
  * @param {string} keyPrefix - the key prefix
14
18
  * @returns {Function} the translate function
15
19
  */
16
- export declare function translate(namespace: string, keyPrefix?: string): (key: string, options?: string | TOptions<StringMap & TOptionsBase>) => string;
20
+ export declare function translate(namespace: string, keyPrefix?: string): (key: string, options?: string | TOptions<$Dictionary & TOptionsBase>) => string | string[];
21
+ export {};
17
22
  //# sourceMappingURL=i18n.d.ts.map
package/dist/i18n.js CHANGED
@@ -3,42 +3,30 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.i18nNamespaces = void 0;
6
+ exports.i18n = exports.i18nNamespaces = void 0;
7
7
  exports.initI18n = initI18n;
8
8
  exports.translate = translate;
9
9
  const i18next_1 = __importDefault(require("i18next"));
10
- const i18next_fs_backend_1 = __importDefault(require("i18next-fs-backend"));
11
- const path_1 = require("path");
12
- const i18nInstance = i18next_1.default.createInstance();
10
+ const i18n_1 = __importDefault(require("./prompts/translations/i18n"));
13
11
  const namespacePrefix = 'fe-fpm-writer';
14
12
  exports.i18nNamespaces = {
15
13
  buildingBlock: `${namespacePrefix}-building-block`
16
14
  };
17
- /**
18
- * Returns the translation file path for the provided language and namespace.
19
- *
20
- * @param {string} language the language
21
- * @param {string} namespace the i18n namespace
22
- * @returns {string} the translation file path
23
- */
24
- function getTranslationFilePath(language, namespace) {
25
- if (namespace === exports.i18nNamespaces.buildingBlock) {
26
- return (0, path_1.join)(__dirname, `./prompts/translations/i18n.${language}.json`);
27
- }
28
- return '';
29
- }
15
+ exports.i18n = i18next_1.default.createInstance();
30
16
  /**
31
17
  * Initialize i18next with the translations for this module.
32
18
  */
33
19
  async function initI18n() {
34
- await i18nInstance.use(i18next_fs_backend_1.default).init({
35
- initImmediate: false,
20
+ await exports.i18n.init({
21
+ resources: {
22
+ en: {
23
+ [exports.i18nNamespaces.buildingBlock]: i18n_1.default
24
+ }
25
+ },
26
+ lng: 'en',
36
27
  fallbackLng: 'en',
37
- interpolation: { escapeValue: false },
38
- ns: [exports.i18nNamespaces.buildingBlock],
39
- backend: {
40
- loadPath: getTranslationFilePath
41
- }
28
+ defaultNS: exports.i18nNamespaces.buildingBlock,
29
+ ns: [exports.i18nNamespaces.buildingBlock]
42
30
  });
43
31
  }
44
32
  /**
@@ -49,6 +37,9 @@ async function initI18n() {
49
37
  * @returns {Function} the translate function
50
38
  */
51
39
  function translate(namespace, keyPrefix) {
52
- return (key, options) => i18nInstance.t(`${namespace}:${keyPrefix ?? ''}${key}`, options) || '';
40
+ return (key, options) => {
41
+ const result = exports.i18n.t(`${namespace}:${keyPrefix ?? ''}${key}`, options);
42
+ return result;
43
+ };
53
44
  }
54
45
  //# sourceMappingURL=i18n.js.map
@@ -115,7 +115,9 @@ class PromptsAPI {
115
115
  if (mandatory && !answer) {
116
116
  result[name] = {
117
117
  isValid: false,
118
- errorMessage: type === 'input' ? t('validation.errorMessage.input') : t('validation.errorMessage.select')
118
+ errorMessage: type === 'input'
119
+ ? t('validation.errorMessage.input')
120
+ : t('validation.errorMessage.select')
119
121
  };
120
122
  }
121
123
  else if (typeof validate === 'function') {
@@ -0,0 +1,188 @@
1
+ declare const ns1: {
2
+ prompts: {
3
+ super: {
4
+ buildingBlockType: {
5
+ message: string;
6
+ choices: {
7
+ chart: string;
8
+ filterBar: string;
9
+ table: string;
10
+ };
11
+ };
12
+ manifestGroup: {
13
+ manifestLibrariesTitle: string;
14
+ manifestLibrariesDescription: string[];
15
+ };
16
+ };
17
+ common: {
18
+ id: {
19
+ existingIdValidation: string;
20
+ defaultPlaceholder: string;
21
+ };
22
+ service: {
23
+ defaultPlaceholder: string;
24
+ };
25
+ entity: {
26
+ defaultPlaceholder: string;
27
+ };
28
+ aggregationPath: {
29
+ defaultPlaceholder: string;
30
+ };
31
+ filterBar: {
32
+ defaultPlaceholder: string;
33
+ };
34
+ viewOrFragmentPath: {
35
+ defaultPlaceholder: string;
36
+ };
37
+ bindingContextType: {
38
+ option: {
39
+ relative: string;
40
+ absolute: string;
41
+ };
42
+ };
43
+ validation: {
44
+ errorMessage: {
45
+ input: string;
46
+ select: string;
47
+ };
48
+ };
49
+ };
50
+ chart: {
51
+ chartBuildingBlockPropertiesTitle: string;
52
+ chartBuildingBlockPropertiesDescription: string[];
53
+ chartVisualizationPropertiesTitle: string;
54
+ chartVisualizationPropertiesDescription: string[];
55
+ chartConfigureEventsTitle: string;
56
+ chartConfigureEventsDescription: string[];
57
+ id: {
58
+ message: string;
59
+ validation: string;
60
+ };
61
+ aggregation: string;
62
+ entity: string;
63
+ service: string;
64
+ viewOrFragmentPath: {
65
+ message: string;
66
+ validation: string;
67
+ };
68
+ contextPath: string;
69
+ metaPath: string;
70
+ filterBar: {
71
+ message: string;
72
+ validation: string;
73
+ placeholder: string;
74
+ inputPlaceholder: string;
75
+ };
76
+ bindingContextType: string;
77
+ personalization: {
78
+ message: string;
79
+ choices: {
80
+ type: string;
81
+ item: string;
82
+ sort: string;
83
+ };
84
+ placeholder: string;
85
+ };
86
+ selectionMode: {
87
+ message: string;
88
+ choices: {
89
+ single: string;
90
+ multiple: string;
91
+ };
92
+ };
93
+ selectionChange: string;
94
+ selectionChangePlaceholder: string;
95
+ qualifier: string;
96
+ qualifierPlaceholder: string;
97
+ valuesDependentOnEntityTypeInfo: string;
98
+ };
99
+ filterBar: {
100
+ filterBarBuildingBlockPropertiesTitle: string;
101
+ filterBarBuildingBlockPropertiesDescription: string[];
102
+ filterBarConfigureEventsTitle: string;
103
+ filterBarConfigureEventsDescription: string[];
104
+ id: {
105
+ message: string;
106
+ validation: string;
107
+ };
108
+ viewOrFragmentPath: {
109
+ message: string;
110
+ validation: string;
111
+ };
112
+ entity: string;
113
+ service: string;
114
+ metaPath: string;
115
+ filterChanged: string;
116
+ filterChangedPlaceholder: string;
117
+ search: string;
118
+ searchPlaceholder: string;
119
+ qualifier: string;
120
+ qualifierPlaceholder: string;
121
+ aggregation: string;
122
+ valuesDependentOnEntityTypeInfo: string;
123
+ bindingContextType: string;
124
+ };
125
+ table: {
126
+ tableBuildingBlockPropertiesTitle: string;
127
+ tableBuildingBlockPropertiesDescription: string[];
128
+ tableVisualizationPropertiesTitle: string;
129
+ tableVisualizationPropertiesDescription: string[];
130
+ viewOrFragmentPath: {
131
+ message: string;
132
+ validation: string;
133
+ };
134
+ id: {
135
+ message: string;
136
+ validation: string;
137
+ };
138
+ bindingContextType: string;
139
+ entity: string;
140
+ service: string;
141
+ qualifier: string;
142
+ qualifierPlaceholder: string;
143
+ aggregation: string;
144
+ filterBar: {
145
+ message: string;
146
+ validation: string;
147
+ placeholder: string;
148
+ inputPlaceholder: string;
149
+ };
150
+ tableType: {
151
+ message: string;
152
+ };
153
+ selectionMode: {
154
+ message: string;
155
+ choices: {
156
+ multiple: string;
157
+ single: string;
158
+ auto: string;
159
+ none: string;
160
+ };
161
+ };
162
+ headerVisible: string;
163
+ header: {
164
+ message: string;
165
+ validation: string;
166
+ translationAnnotation: string;
167
+ };
168
+ personalization: {
169
+ message: string;
170
+ choices: {
171
+ Sort: string;
172
+ Column: string;
173
+ Filter: string;
174
+ };
175
+ };
176
+ tableVariantManagement: string;
177
+ readOnlyMode: string;
178
+ autoColumnWidth: string;
179
+ dataExport: string;
180
+ fullScreenMode: string;
181
+ pasteFromClipboard: string;
182
+ tableSearchableToggle: string;
183
+ valuesDependentOnEntityTypeInfo: string;
184
+ };
185
+ };
186
+ };
187
+ export default ns1;
188
+ //# sourceMappingURL=i18n.d.ts.map
@@ -0,0 +1,214 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // converted to ts file to support i18next "returnObjects" option
4
+ // see https://www.i18next.com/misc/migration-guide#more-information-features-and-breaking-changes
5
+ // t function will now infer interpolation values, but it'll only work if the translation files (resources)
6
+ // are placed in a ts file and using as const (like this) or an interface in a d.ts file (can be generated like this),
7
+ // JSON files don't support as const to convert objects to be type literals (yet).
8
+ const ns1 = {
9
+ 'prompts': {
10
+ 'super': {
11
+ 'buildingBlockType': {
12
+ 'message': 'Select a building block',
13
+ 'choices': {
14
+ 'chart': 'Chart',
15
+ 'filterBar': 'Filter Bar',
16
+ 'table': 'Table'
17
+ }
18
+ },
19
+ 'manifestGroup': {
20
+ 'manifestLibrariesTitle': 'Manifest Libraries',
21
+ 'manifestLibrariesDescription': [
22
+ 'In order for macros to work, we need to ensure that the sap.fe.macros library is maintained in manifest.json. Please see the code snippet.'
23
+ ]
24
+ }
25
+ },
26
+ 'common': {
27
+ 'id': {
28
+ 'existingIdValidation': 'An element with this ID already exists',
29
+ 'defaultPlaceholder': 'Enter a building block ID'
30
+ },
31
+ 'service': {
32
+ 'defaultPlaceholder': 'Select a service'
33
+ },
34
+ 'entity': {
35
+ 'defaultPlaceholder': 'Select an entity'
36
+ },
37
+ 'aggregationPath': {
38
+ 'defaultPlaceholder': 'Select an aggregation path'
39
+ },
40
+ 'filterBar': {
41
+ 'defaultPlaceholder': 'Enter a new filter bar ID'
42
+ },
43
+ 'viewOrFragmentPath': {
44
+ 'defaultPlaceholder': 'Select a view or fragment file'
45
+ },
46
+ 'bindingContextType': {
47
+ 'option': {
48
+ 'relative': 'Relative',
49
+ 'absolute': 'Absolute'
50
+ }
51
+ },
52
+ 'validation': {
53
+ 'errorMessage': {
54
+ 'input': 'Please enter a value',
55
+ 'select': 'Please select a value'
56
+ }
57
+ }
58
+ },
59
+ 'chart': {
60
+ 'chartBuildingBlockPropertiesTitle': 'Chart Building Block Properties',
61
+ 'chartBuildingBlockPropertiesDescription': [
62
+ 'Select the `View or Fragment File` where you would like to insert the chart building block and provide a `Building Block ID` to identify the chart.',
63
+ 'Select an `Entity Set`, and a `Chart Annotation` you would like to use for the chart building block.',
64
+ 'Select an `Aggregation Path` to determine where you would like the chart to be placed on the page.'
65
+ ],
66
+ 'chartVisualizationPropertiesTitle': 'Chart Visualization Properties',
67
+ 'chartVisualizationPropertiesDescription': ['Configure your chart using the properties below.'],
68
+ 'chartConfigureEventsTitle': 'Configure Events',
69
+ 'chartConfigureEventsDescription': [
70
+ 'Configure the below properties to react to events. Event handler methods are invoked when an event occurs.'
71
+ ],
72
+ 'id': {
73
+ 'message': 'Building Block ID',
74
+ 'validation': 'An ID is required to generate the chart building block'
75
+ },
76
+ 'aggregation': 'Aggregation Path',
77
+ 'entity': 'Entity',
78
+ 'service': 'Service',
79
+ 'viewOrFragmentPath': {
80
+ 'message': 'View or Fragment File',
81
+ 'validation': 'A View or Fragment is required to generate the chart building block'
82
+ },
83
+ 'contextPath': 'Enter the context path used in the page',
84
+ 'metaPath': 'Enter the relative path of the property in the meta model',
85
+ 'filterBar': {
86
+ 'message': 'Associated Filter Bar ID',
87
+ 'validation': 'Enter the ID of the filter bar building block associated with the chart',
88
+ 'placeholder': 'Select or enter a filter bar ID',
89
+ 'inputPlaceholder': 'Enter a new filter bar ID'
90
+ },
91
+ 'bindingContextType': 'Binding Context Path Type',
92
+ 'personalization': {
93
+ 'message': 'Chart Personalization',
94
+ 'choices': {
95
+ 'type': 'Type',
96
+ 'item': 'Item',
97
+ 'sort': 'Sort'
98
+ },
99
+ 'placeholder': 'Select chart personalization'
100
+ },
101
+ 'selectionMode': {
102
+ 'message': 'Selection Mode',
103
+ 'choices': {
104
+ 'single': 'Single',
105
+ 'multiple': 'Multiple'
106
+ }
107
+ },
108
+ 'selectionChange': 'Selection Change Event',
109
+ 'selectionChangePlaceholder': 'Enter a function to be executed',
110
+ 'qualifier': 'Chart Annotation Path',
111
+ 'qualifierPlaceholder': 'Select a chart annotation path',
112
+ 'valuesDependentOnEntityTypeInfo': 'Values are dependent on entity set'
113
+ },
114
+ 'filterBar': {
115
+ 'filterBarBuildingBlockPropertiesTitle': 'Filter Bar Building Block Properties',
116
+ 'filterBarBuildingBlockPropertiesDescription': [
117
+ 'Select the `View or Fragment File` where you would like to insert the filter bar building block and provide a `Building Block ID` to identify the filter bar.',
118
+ 'Select an `Entity Set`, and a `Selection Field Annotation` you would like to use for the filter bar building block.',
119
+ 'Select an `Aggregation Path` to determine where you would like the filter bar to be placed on the page.'
120
+ ],
121
+ 'filterBarConfigureEventsTitle': 'Configure Events',
122
+ 'filterBarConfigureEventsDescription': [
123
+ 'Configure the below properties to react to events. Event handler methods are invoked when an event occurs.'
124
+ ],
125
+ 'id': {
126
+ 'message': 'Building Block ID',
127
+ 'validation': 'An ID is required to generate the filter bar building block'
128
+ },
129
+ 'viewOrFragmentPath': {
130
+ 'message': 'View or Fragment File',
131
+ 'validation': 'A View or Fragment is required to generate the filterbar building block'
132
+ },
133
+ 'entity': 'Entity',
134
+ 'service': 'Service',
135
+ 'metaPath': 'Enter the relative path of the property in the meta model',
136
+ 'filterChanged': 'Filter Changed Event',
137
+ 'filterChangedPlaceholder': 'Enter a function to be executed',
138
+ 'search': 'Search Event',
139
+ 'searchPlaceholder': 'Enter a function to be executed',
140
+ 'qualifier': 'Selection Field Annotation Path',
141
+ 'qualifierPlaceholder': 'Select a selection field annotation path',
142
+ 'aggregation': 'Aggregation Path',
143
+ 'valuesDependentOnEntityTypeInfo': 'Values are dependent on entity set',
144
+ 'bindingContextType': 'Binding Context Path Type'
145
+ },
146
+ 'table': {
147
+ 'tableBuildingBlockPropertiesTitle': 'Table Building Block Properties',
148
+ 'tableBuildingBlockPropertiesDescription': [
149
+ 'Select the `View or Fragment File` where you would like to insert the table building block and provide a `Building Block ID` to identify the table.',
150
+ 'Select an `Entity Set`, and a `Line Item Annotation` you would like to use for the table building block.',
151
+ 'Select an `Aggregation Path` to determine where you would like the table to appear on the page.',
152
+ 'Provide the Associated Filter Bar ID if you want to link the table to an existing filter bar.'
153
+ ],
154
+ 'tableVisualizationPropertiesTitle': 'Table Visualization Properties',
155
+ 'tableVisualizationPropertiesDescription': ['Configure your table using the properties below.'],
156
+ 'viewOrFragmentPath': {
157
+ 'message': 'View or Fragment File',
158
+ 'validation': 'A View or Fragment is required to generate the table building block'
159
+ },
160
+ 'id': {
161
+ 'message': 'Building Block ID',
162
+ 'validation': 'An ID is required to generate the table building block'
163
+ },
164
+ 'bindingContextType': 'Binding Context Path Type',
165
+ 'entity': 'Entity',
166
+ 'service': 'Service',
167
+ 'qualifier': 'Line Item Annotation Path',
168
+ 'qualifierPlaceholder': 'Select a line item annotation path',
169
+ 'aggregation': 'Aggregation Path',
170
+ 'filterBar': {
171
+ 'message': 'Associated Filter Bar ID',
172
+ 'validation': 'Enter the ID of the filter bar building block associated with the table',
173
+ 'placeholder': 'Select or enter a filter bar ID',
174
+ 'inputPlaceholder': 'Enter a new filter bar ID'
175
+ },
176
+ 'tableType': {
177
+ 'message': 'Table Type'
178
+ },
179
+ 'selectionMode': {
180
+ 'message': 'Select a Selection Mode',
181
+ 'choices': {
182
+ 'multiple': 'Multiple',
183
+ 'single': 'Single',
184
+ 'auto': 'Auto',
185
+ 'none': 'None'
186
+ }
187
+ },
188
+ 'headerVisible': 'Display Header',
189
+ 'header': {
190
+ 'message': 'Table Header Text',
191
+ 'validation': 'Enter a Table Header Text',
192
+ 'translationAnnotation': 'Header of the table'
193
+ },
194
+ 'personalization': {
195
+ 'message': 'Table Personalization',
196
+ 'choices': {
197
+ 'Sort': 'Sort',
198
+ 'Column': 'Column',
199
+ 'Filter': 'Filter'
200
+ }
201
+ },
202
+ 'tableVariantManagement': 'Select a Table Variant Management',
203
+ 'readOnlyMode': 'Enable Read Only Mode',
204
+ 'autoColumnWidth': 'Enable Auto Column Width',
205
+ 'dataExport': 'Enable Data Export',
206
+ 'fullScreenMode': 'Enable Full Screen Mode',
207
+ 'pasteFromClipboard': 'Enable Paste From Clipboard',
208
+ 'tableSearchableToggle': 'Table Searchable Toggle',
209
+ 'valuesDependentOnEntityTypeInfo': 'Values are dependent on entity set'
210
+ }
211
+ }
212
+ };
213
+ exports.default = ns1;
214
+ //# sourceMappingURL=i18n.js.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sap-ux/fe-fpm-writer",
3
3
  "description": "SAP Fiori elements flexible programming model writer",
4
- "version": "0.35.9",
4
+ "version": "0.35.11",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/SAP/open-ux-tools.git",
@@ -24,20 +24,18 @@
24
24
  "@sap-ux/vocabularies-types": "0.13.0",
25
25
  "@xmldom/xmldom": "0.8.10",
26
26
  "ejs": "3.1.10",
27
- "i18next": "21.6.11",
28
- "i18next-fs-backend": "1.1.1",
27
+ "i18next": "25.3.0",
29
28
  "mem-fs": "2.1.0",
30
29
  "mem-fs-editor": "9.4.0",
31
30
  "semver": "7.5.4",
32
31
  "xml-formatter": "2.6.1",
33
32
  "xpath": "0.0.33",
34
- "@sap-ux/fiori-annotation-api": "0.6.7",
35
- "@sap-ux/project-access": "1.30.6"
33
+ "@sap-ux/fiori-annotation-api": "0.6.9",
34
+ "@sap-ux/project-access": "1.30.7"
36
35
  },
37
36
  "devDependencies": {
38
37
  "@types/inquirer": "8.2.6",
39
38
  "@types/ejs": "3.1.2",
40
- "@types/i18next-fs-backend": "1.0.0",
41
39
  "@types/mem-fs": "1.1.2",
42
40
  "@types/mem-fs-editor": "7.0.1",
43
41
  "@types/semver": "7.5.2",
@@ -1,205 +0,0 @@
1
- {
2
- "prompts": {
3
- "super": {
4
- "buildingBlockType": {
5
- "message": "Select a building block",
6
- "choices": {
7
- "chart": "Chart",
8
- "filterBar": "Filter Bar",
9
- "table": "Table"
10
- }
11
- },
12
- "manifestGroup": {
13
- "manifestLibrariesTitle": "Manifest Libraries",
14
- "manifestLibrariesDescription": [
15
- "In order for macros to work, we need to ensure that the sap.fe.macros library is maintained in manifest.json. Please see the code snippet."
16
- ]
17
- }
18
- },
19
- "common": {
20
- "id": {
21
- "existingIdValidation": "An element with this ID already exists",
22
- "defaultPlaceholder": "Enter a building block ID"
23
- },
24
- "service": {
25
- "defaultPlaceholder": "Select a service"
26
- },
27
- "entity": {
28
- "defaultPlaceholder": "Select an entity"
29
- },
30
- "aggregationPath": {
31
- "defaultPlaceholder": "Select an aggregation path"
32
- },
33
- "filterBar": {
34
- "defaultPlaceholder": "Enter a new filter bar ID"
35
- },
36
- "viewOrFragmentPath": {
37
- "defaultPlaceholder": "Select a view or fragment file"
38
- },
39
- "bindingContextType": {
40
- "option": {
41
- "relative": "Relative",
42
- "absolute": "Absolute"
43
- }
44
- },
45
- "validation": {
46
- "errorMessage": {
47
- "input": "Please enter a value",
48
- "select": "Please select a value"
49
- }
50
- }
51
- },
52
- "chart": {
53
- "chartBuildingBlockPropertiesTitle": "Chart Building Block Properties",
54
- "chartBuildingBlockPropertiesDescription": [
55
- "Select the `View or Fragment File` where you would like to insert the chart building block and provide a `Building Block ID` to identify the chart.",
56
- "Select an `Entity Set`, and a `Chart Annotation` you would like to use for the chart building block.",
57
- "Select an `Aggregation Path` to determine where you would like the chart to be placed on the page."
58
- ],
59
- "chartVisualizationPropertiesTitle": "Chart Visualization Properties",
60
- "chartVisualizationPropertiesDescription": ["Configure your chart using the properties below."],
61
- "chartConfigureEventsTitle": "Configure Events",
62
- "chartConfigureEventsDescription": [
63
- "Configure the below properties to react to events. Event handler methods are invoked when an event occurs."
64
- ],
65
- "id": {
66
- "message": "Building Block ID",
67
- "validation": "An ID is required to generate the chart building block"
68
- },
69
- "aggregation": "Aggregation Path",
70
- "entity": "Entity",
71
- "service": "Service",
72
- "viewOrFragmentPath": {
73
- "message": "View or Fragment File",
74
- "validation": "A View or Fragment is required to generate the chart building block"
75
- },
76
- "contextPath": "Enter the context path used in the page",
77
- "metaPath": "Enter the relative path of the property in the meta model",
78
- "filterBar": {
79
- "message": "Associated Filter Bar ID",
80
- "validation": "Enter the ID of the filter bar building block associated with the chart",
81
- "placeholder": "Select or enter a filter bar ID",
82
- "inputPlaceholder": "Enter a new filter bar ID"
83
- },
84
- "bindingContextType": "Binding Context Path Type",
85
- "personalization": {
86
- "message": "Chart Personalization",
87
- "choices": {
88
- "type": "Type",
89
- "item": "Item",
90
- "sort": "Sort"
91
- },
92
- "placeholder": "Select chart personalization"
93
- },
94
- "selectionMode": {
95
- "message": "Selection Mode",
96
- "choices": {
97
- "single": "Single",
98
- "multiple": "Multiple"
99
- }
100
- },
101
- "selectionChange": "Selection Change Event",
102
- "selectionChangePlaceholder": "Enter a function to be executed",
103
- "qualifier": "Chart Annotation Path",
104
- "qualifierPlaceholder": "Select a chart annotation path",
105
- "valuesDependentOnEntityTypeInfo": "Values are dependent on entity set"
106
- },
107
- "filterBar": {
108
- "filterBarBuildingBlockPropertiesTitle": "Filter Bar Building Block Properties",
109
- "filterBarBuildingBlockPropertiesDescription": [
110
- "Select the `View or Fragment File` where you would like to insert the filter bar building block and provide a `Building Block ID` to identify the filter bar.",
111
- "Select an `Entity Set`, and a `Selection Field Annotation` you would like to use for the filter bar building block.",
112
- "Select an `Aggregation Path` to determine where you would like the filter bar to be placed on the page."
113
- ],
114
- "filterBarConfigureEventsTitle": "Configure Events",
115
- "filterBarConfigureEventsDescription": [
116
- "Configure the below properties to react to events. Event handler methods are invoked when an event occurs."
117
- ],
118
- "id": {
119
- "message": "Building Block ID",
120
- "validation": "An ID is required to generate the filter bar building block"
121
- },
122
- "viewOrFragmentPath": {
123
- "message": "View or Fragment File",
124
- "validation": "A View or Fragment is required to generate the filterbar building block"
125
- },
126
- "entity": "Entity",
127
- "service": "Service",
128
- "metaPath": "Enter the relative path of the property in the meta model",
129
- "filterChanged": "Filter Changed Event",
130
- "filterChangedPlaceholder": "Enter a function to be executed",
131
- "search": "Search Event",
132
- "searchPlaceholder": "Enter a function to be executed",
133
- "qualifier": "Selection Field Annotation Path",
134
- "qualifierPlaceholder": "Select a selection field annotation path",
135
- "aggregation": "Aggregation Path",
136
- "valuesDependentOnEntityTypeInfo": "Values are dependent on entity set",
137
- "bindingContextType": "Binding Context Path Type"
138
- },
139
- "table": {
140
- "tableBuildingBlockPropertiesTitle": "Table Building Block Properties",
141
- "tableBuildingBlockPropertiesDescription": [
142
- "Select the `View or Fragment File` where you would like to insert the table building block and provide a `Building Block ID` to identify the table.",
143
- "Select an `Entity Set`, and a `Line Item Annotation` you would like to use for the table building block.",
144
- "Select an `Aggregation Path` to determine where you would like the table to appear on the page.",
145
- "Provide the Associated Filter Bar ID if you want to link the table to an existing filter bar."
146
- ],
147
- "tableVisualizationPropertiesTitle": "Table Visualization Properties",
148
- "tableVisualizationPropertiesDescription": ["Configure your table using the properties below."],
149
- "viewOrFragmentPath": {
150
- "message": "View or Fragment File",
151
- "validation": "A View or Fragment is required to generate the table building block"
152
- },
153
- "id": {
154
- "message": "Building Block ID",
155
- "validation": "An ID is required to generate the table building block"
156
- },
157
- "bindingContextType": "Binding Context Path Type",
158
- "entity": "Entity",
159
- "service": "Service",
160
- "qualifier": "Line Item Annotation Path",
161
- "qualifierPlaceholder": "Select a line item annotation path",
162
- "aggregation": "Aggregation Path",
163
- "filterBar": {
164
- "message": "Associated Filter Bar ID",
165
- "validation": "Enter the ID of the filter bar building block associated with the table",
166
- "placeholder": "Select or enter a filter bar ID",
167
- "inputPlaceholder": "Enter a new filter bar ID"
168
- },
169
- "tableType": {
170
- "message": "Table Type"
171
- },
172
- "selectionMode": {
173
- "message": "Select a Selection Mode",
174
- "choices": {
175
- "multiple": "Multiple",
176
- "single": "Single",
177
- "auto": "Auto",
178
- "none": "None"
179
- }
180
- },
181
- "headerVisible": "Display Header",
182
- "header": {
183
- "message": "Table Header Text",
184
- "validation": "Enter a Table Header Text",
185
- "translationAnnotation": "Header of the table"
186
- },
187
- "personalization": {
188
- "message": "Table Personalization",
189
- "choices": {
190
- "Sort": "Sort",
191
- "Column": "Column",
192
- "Filter": "Filter"
193
- }
194
- },
195
- "tableVariantManagement": "Select a Table Variant Management",
196
- "readOnlyMode": "Enable Read Only Mode",
197
- "autoColumnWidth": "Enable Auto Column Width",
198
- "dataExport": "Enable Data Export",
199
- "fullScreenMode": "Enable Full Screen Mode",
200
- "pasteFromClipboard": "Enable Paste From Clipboard",
201
- "tableSearchableToggle": "Table Searchable Toggle",
202
- "valuesDependentOnEntityTypeInfo": "Values are dependent on entity set"
203
- }
204
- }
205
- }