@sap-ux/ui-components 1.3.0 → 1.3.2
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.
- package/dist/components/Icons.d.ts +1 -0
- package/dist/components/Icons.d.ts.map +1 -1
- package/dist/components/Icons.js +4 -0
- package/dist/components/Icons.js.map +1 -1
- package/dist/components/UITranslationInput/UITranslationButton.d.ts +3 -13
- package/dist/components/UITranslationInput/UITranslationButton.d.ts.map +1 -1
- package/dist/components/UITranslationInput/UITranslationButton.js +5 -101
- package/dist/components/UITranslationInput/UITranslationButton.js.map +1 -1
- package/dist/components/UITranslationInput/UITranslationButton.types.d.ts +21 -8
- package/dist/components/UITranslationInput/UITranslationButton.types.d.ts.map +1 -1
- package/dist/components/UITranslationInput/UITranslationButton.types.js +7 -1
- package/dist/components/UITranslationInput/UITranslationButton.types.js.map +1 -1
- package/dist/components/UITranslationInput/UITranslationInput.d.ts +13 -1
- package/dist/components/UITranslationInput/UITranslationInput.d.ts.map +1 -1
- package/dist/components/UITranslationInput/UITranslationInput.js +106 -2
- package/dist/components/UITranslationInput/UITranslationInput.js.map +1 -1
- package/dist/components/UITranslationInput/defaults.d.ts +2 -2
- package/dist/components/UITranslationInput/defaults.d.ts.map +1 -1
- package/dist/components/UITranslationInput/defaults.js +5 -4
- package/dist/components/UITranslationInput/defaults.js.map +1 -1
- package/package.json +1 -1
- package/storybook/iframe.html +1 -1
- package/storybook/main.a2292fb0.iframe.bundle.js +99 -0
- package/storybook/project.json +1 -1
- package/storybook/main.5b8f5833.iframe.bundle.js +0 -98
|
@@ -22,7 +22,95 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
22
22
|
exports.UITranslationInput = void 0;
|
|
23
23
|
const react_1 = __importStar(require("react"));
|
|
24
24
|
const UIInput_1 = require("../UIInput");
|
|
25
|
+
const Icons_1 = require("../Icons");
|
|
25
26
|
const UITranslationButton_1 = require("./UITranslationButton");
|
|
27
|
+
const UITranslationButton_types_1 = require("./UITranslationButton.types");
|
|
28
|
+
const UITranslationUtils_1 = require("./UITranslationUtils");
|
|
29
|
+
const defaults_1 = require("./defaults");
|
|
30
|
+
const UIFormattedText_1 = require("./UIFormattedText");
|
|
31
|
+
/**
|
|
32
|
+
* Method returns suggestion object with message and tooltip based on passed translation button props.
|
|
33
|
+
*
|
|
34
|
+
* @param props Properties of translation input component.
|
|
35
|
+
* @returns Translation suggestion object.
|
|
36
|
+
*/
|
|
37
|
+
const getTranslationSuggestion = (props) => {
|
|
38
|
+
const { value = '', allowedPatterns, entries, strings = defaults_1.defaultTranslationInputStrings, namingConvention = UITranslationButton_types_1.TranslationKeyGenerator.CamelCase, defaultPattern, i18nPrefix, allowedI18nPrefixes } = props;
|
|
39
|
+
const i18nKey = UITranslationUtils_1.extractI18nKey(value, allowedPatterns, allowedI18nPrefixes || [i18nPrefix]);
|
|
40
|
+
let message = '';
|
|
41
|
+
let tooltip = '';
|
|
42
|
+
let suggest;
|
|
43
|
+
if (i18nKey) {
|
|
44
|
+
// There is already i18n binding as value
|
|
45
|
+
const entry = UITranslationUtils_1.getTranslationByKey(entries, i18nKey);
|
|
46
|
+
if (entry) {
|
|
47
|
+
tooltip = strings.i18nEntryExistsTooltip;
|
|
48
|
+
suggest = {
|
|
49
|
+
entry,
|
|
50
|
+
type: UITranslationButton_types_1.SuggestValueType.Existing,
|
|
51
|
+
icon: Icons_1.UiIcons.WorldArrow
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
message = strings.i18nKeyMissingDescription;
|
|
56
|
+
tooltip = strings.i18nKeyMissingTooltip;
|
|
57
|
+
suggest = {
|
|
58
|
+
entry: {
|
|
59
|
+
key: {
|
|
60
|
+
value: i18nKey
|
|
61
|
+
},
|
|
62
|
+
value: {
|
|
63
|
+
value: i18nKey
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
type: UITranslationButton_types_1.SuggestValueType.New,
|
|
67
|
+
icon: Icons_1.UiIcons.WorldWarning
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
// Use generation format passed from outside or use default as 'Standard';
|
|
73
|
+
const existingEntry = UITranslationUtils_1.getTranslationByText(entries, value);
|
|
74
|
+
if (existingEntry) {
|
|
75
|
+
message = strings.i18nReplaceWithExistingDescription;
|
|
76
|
+
tooltip = strings.i18nReplaceWithExistingTooltip;
|
|
77
|
+
suggest = {
|
|
78
|
+
entry: existingEntry,
|
|
79
|
+
type: UITranslationButton_types_1.SuggestValueType.Update
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
message = strings.i18nValueMissingDescription;
|
|
84
|
+
tooltip = strings.i18nValueMissingTooltip;
|
|
85
|
+
const key = UITranslationUtils_1.generateI18nKey(value, namingConvention, entries);
|
|
86
|
+
suggest = {
|
|
87
|
+
entry: {
|
|
88
|
+
key: {
|
|
89
|
+
value: key
|
|
90
|
+
},
|
|
91
|
+
value: {
|
|
92
|
+
value
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
type: UITranslationButton_types_1.SuggestValueType.New
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// I18n string to apply for input value
|
|
100
|
+
suggest.i18n = UITranslationUtils_1.applyI18nPattern(suggest.entry.key.value, defaultPattern, i18nPrefix);
|
|
101
|
+
// Format message to show in callout
|
|
102
|
+
const messageValues = {
|
|
103
|
+
key: suggest.entry.key.value,
|
|
104
|
+
value: suggest.entry.value.value,
|
|
105
|
+
i18n: suggest.i18n
|
|
106
|
+
};
|
|
107
|
+
tooltip = UIFormattedText_1.formatText(tooltip, messageValues);
|
|
108
|
+
return {
|
|
109
|
+
message: react_1.default.createElement(UIFormattedText_1.UIFormattedText, { values: messageValues }, message),
|
|
110
|
+
tooltip,
|
|
111
|
+
suggest
|
|
112
|
+
};
|
|
113
|
+
};
|
|
26
114
|
/**
|
|
27
115
|
* Component to render translation input with button to provide helper callout with i18n generation option.
|
|
28
116
|
*
|
|
@@ -30,7 +118,8 @@ const UITranslationButton_1 = require("./UITranslationButton");
|
|
|
30
118
|
* @returns Component to render translation input.
|
|
31
119
|
*/
|
|
32
120
|
function UITranslationInput(props) {
|
|
33
|
-
const {
|
|
121
|
+
const { id, className, onChange, value, allowedPatterns, defaultPattern, entries, busy, i18nPrefix, allowedI18nPrefixes, namingConvention, onCreateNewEntry, onShowExistingEntry, disabled, strings } = props;
|
|
122
|
+
const suggestion = getTranslationSuggestion(props);
|
|
34
123
|
let classNames = ' ui-translatable__input';
|
|
35
124
|
// Custom external classes
|
|
36
125
|
if (className) {
|
|
@@ -39,8 +128,20 @@ function UITranslationInput(props) {
|
|
|
39
128
|
const onUpdateValue = react_1.useCallback((newValue) => {
|
|
40
129
|
onChange?.({}, newValue);
|
|
41
130
|
}, [onChange]);
|
|
131
|
+
// Generate DOM id for i18n button
|
|
132
|
+
let buttonId = `${id}-i18n`;
|
|
133
|
+
let title = props.title;
|
|
134
|
+
if (suggestion.suggest?.type === UITranslationButton_types_1.SuggestValueType.Existing && strings?.i18nEntryExistsInputTooltip) {
|
|
135
|
+
// Change DOM id with additional suffix
|
|
136
|
+
buttonId += '-navigate';
|
|
137
|
+
// Overwrite title with information about reference entry
|
|
138
|
+
title = UIFormattedText_1.formatText(strings.i18nEntryExistsInputTooltip, {
|
|
139
|
+
value: value || '',
|
|
140
|
+
translation: suggestion.suggest.entry.value.value
|
|
141
|
+
});
|
|
142
|
+
}
|
|
42
143
|
const onRenderSuffix = react_1.useCallback(() => {
|
|
43
|
-
return (react_1.default.createElement(UITranslationButton_1.UITranslationButton, { id:
|
|
144
|
+
return (react_1.default.createElement(UITranslationButton_1.UITranslationButton, { id: buttonId, value: value, busy: busy, onCreateNewEntry: onCreateNewEntry, onShowExistingEntry: onShowExistingEntry, onUpdateValue: onUpdateValue, disabled: disabled, strings: strings, suggestion: suggestion }));
|
|
44
145
|
}, [
|
|
45
146
|
value,
|
|
46
147
|
allowedPatterns,
|
|
@@ -58,4 +159,7 @@ function UITranslationInput(props) {
|
|
|
58
159
|
return (react_1.default.createElement(UIInput_1.UITextInput, { ...props, title: title, onRenderSuffix: value?.trim() ? onRenderSuffix : undefined, className: classNames }));
|
|
59
160
|
}
|
|
60
161
|
exports.UITranslationInput = UITranslationInput;
|
|
162
|
+
UITranslationInput.defaultProps = {
|
|
163
|
+
strings: defaults_1.defaultTranslationInputStrings
|
|
164
|
+
};
|
|
61
165
|
//# sourceMappingURL=UITranslationInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UITranslationInput.js","sourceRoot":"","sources":["../../../src/components/UITranslationInput/UITranslationInput.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA2C;AAE3C,wCAAyC;AAEzC,+DAA4D;
|
|
1
|
+
{"version":3,"file":"UITranslationInput.js","sourceRoot":"","sources":["../../../src/components/UITranslationInput/UITranslationInput.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const
|
|
1
|
+
import type { TranslationInputStrings } from './UITranslationButton.types';
|
|
2
|
+
export declare const defaultTranslationInputStrings: TranslationInputStrings;
|
|
3
3
|
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/components/UITranslationInput/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/components/UITranslationInput/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE3E,eAAO,MAAM,8BAA8B,EAAE,uBAa5C,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
5
|
-
acceptButtonLabel: '
|
|
3
|
+
exports.defaultTranslationInputStrings = void 0;
|
|
4
|
+
exports.defaultTranslationInputStrings = {
|
|
5
|
+
acceptButtonLabel: 'Apply',
|
|
6
6
|
cancelButtonLabel: 'Cancel',
|
|
7
7
|
i18nKeyMissingTooltip: 'Text key or value is not available in i18n file.',
|
|
8
8
|
i18nKeyMissingDescription: 'Generate a text key {{{key}}} with value {{{value}}} in i18n file.',
|
|
@@ -10,6 +10,7 @@ exports.defaultTranslationButtonStrings = {
|
|
|
10
10
|
i18nValueMissingDescription: 'Generate a text key {{{key}}} in i18n file and substitute {{{value}}} by {{{i18n}}}.',
|
|
11
11
|
i18nReplaceWithExistingTooltip: 'Text key {{{key}}} for value {{{value}}} is available in i18n file. \nConsider substituting {{{value}}} by {{{i18n}}}.',
|
|
12
12
|
i18nReplaceWithExistingDescription: 'Text key {{{key}}} for value {{{value}}} is available in i18n file.Substitute {{{value}}} by {{{i18n}}}.',
|
|
13
|
-
i18nEntryExistsTooltip: 'Edit in source file'
|
|
13
|
+
i18nEntryExistsTooltip: 'Edit in source file',
|
|
14
|
+
i18nEntryExistsInputTooltip: "Value: '{{{value}}}'.\nTranslation: '{{{translation}}}'."
|
|
14
15
|
};
|
|
15
16
|
//# sourceMappingURL=defaults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/components/UITranslationInput/defaults.ts"],"names":[],"mappings":";;;AAEa,QAAA
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/components/UITranslationInput/defaults.ts"],"names":[],"mappings":";;;AAEa,QAAA,8BAA8B,GAA4B;IACnE,iBAAiB,EAAE,OAAO;IAC1B,iBAAiB,EAAE,QAAQ;IAC3B,qBAAqB,EAAE,kDAAkD;IACzE,yBAAyB,EAAE,oEAAoE;IAC/F,uBAAuB,EAAE,kEAAkE;IAC3F,2BAA2B,EAAE,sFAAsF;IACnH,8BAA8B,EAC1B,wHAAwH;IAC5H,kCAAkC,EAC9B,0GAA0G;IAC9G,sBAAsB,EAAE,qBAAqB;IAC7C,2BAA2B,EAAE,0DAA0D;CAC1F,CAAC"}
|
package/package.json
CHANGED
package/storybook/iframe.html
CHANGED
|
@@ -377,4 +377,4 @@
|
|
|
377
377
|
|
|
378
378
|
|
|
379
379
|
|
|
380
|
-
window['STORIES'] = [{"titlePrefix":"","directory":"./stories","files":"*.story.tsx","importPathMatcher":"^\\.[\\\\/](?:stories\\/(?!\\.)(?=.)[^/]*?\\.story\\.tsx)$"}];</script><script src="runtime~main.d4909001.iframe.bundle.js"></script><script src="733.4fa1d656.iframe.bundle.js"></script><script src="main.
|
|
380
|
+
window['STORIES'] = [{"titlePrefix":"","directory":"./stories","files":"*.story.tsx","importPathMatcher":"^\\.[\\\\/](?:stories\\/(?!\\.)(?=.)[^/]*?\\.story\\.tsx)$"}];</script><script src="runtime~main.d4909001.iframe.bundle.js"></script><script src="733.4fa1d656.iframe.bundle.js"></script><script src="main.a2292fb0.iframe.bundle.js"></script></body></html>
|