mui-language-picker 1.1.15 → 1.2.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/LICENSE +1 -1
- package/README.md +56 -16
- package/dist/ChangeName.d.ts +11 -0
- package/dist/ChangeName.js +63 -0
- package/dist/GrowingSpacer.d.ts +2 -0
- package/dist/GrowingSpacer.js +10 -0
- package/dist/LanguageChoice.d.ts +2 -0
- package/dist/LanguageChoice.js +41 -43
- package/dist/LanguagePicker.d.ts +4 -0
- package/dist/LanguagePicker.js +86 -99
- package/dist/getDisplayName.d.ts +3 -0
- package/dist/getDisplayName.js +17 -0
- package/dist/index/LgExact.js +8 -4
- package/dist/index/LgScripts.js +8 -4
- package/dist/index.js +6 -2
- package/dist/localization/index.d.ts +4 -0
- package/dist/localization/index.js +5 -1
- package/dist/model/index.js +6 -2
- package/dist/useDebounce.js +2 -2
- package/dist/util/badChar.js +4 -2
- package/dist/util/index.js +6 -2
- package/package.json +42 -25
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ Material UI react language picker
|
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
|
-
Complete
|
|
7
|
+
Complete information for [material-ui](https://mui.com/material-ui/).
|
|
8
8
|
|
|
9
9
|
```sh
|
|
10
10
|
npm install mui-language-picker --save
|
|
@@ -12,19 +12,26 @@ npm install mui-language-picker --save
|
|
|
12
12
|
|
|
13
13
|
## Usage
|
|
14
14
|
|
|
15
|
-
### TypeScript React
|
|
15
|
+
### TypeScript React 18 code
|
|
16
16
|
|
|
17
17
|
```typescript
|
|
18
18
|
import {
|
|
19
19
|
LanguagePicker,
|
|
20
20
|
ILanguagePickerStrings,
|
|
21
21
|
languagePickerStrings_en,
|
|
22
|
+
LangTag,
|
|
23
|
+
DisplayName,
|
|
22
24
|
} from "mui-language-picker";
|
|
23
25
|
|
|
24
26
|
const MyComponent = (props: any) => {
|
|
25
27
|
const [bcp47, setBcp47] = React.useState("und");
|
|
26
28
|
const [lgName, setLgName] = React.useState("");
|
|
27
29
|
const [fontName, setFontName] = React.useState("");
|
|
30
|
+
const [tag, setTag] = React.useState<LangTag>()
|
|
31
|
+
|
|
32
|
+
const displayName = (name: string, tag?:LangTag) => {
|
|
33
|
+
return tag.localname || tag.name
|
|
34
|
+
}
|
|
28
35
|
|
|
29
36
|
return (
|
|
30
37
|
<LanguagePicker
|
|
@@ -34,6 +41,8 @@ const MyComponent = (props: any) => {
|
|
|
34
41
|
setName={setLgName}
|
|
35
42
|
font={fontName}
|
|
36
43
|
setFont={setFontName}
|
|
44
|
+
displayName={displayName}
|
|
45
|
+
setInfo={setTag}
|
|
37
46
|
t={languagePickerStrings_en}
|
|
38
47
|
/>
|
|
39
48
|
);
|
|
@@ -54,6 +63,8 @@ Output should be a Language Picker when entered opens a dialog
|
|
|
54
63
|
| setName\* | (name: string) => void | callback to change language name |
|
|
55
64
|
| font | string | font family name |
|
|
56
65
|
| setFont\* | (font: string) => void | callback to change font family name |
|
|
66
|
+
| displayName\* | DisplayName | function to control display of name |
|
|
67
|
+
| setInfo\* | (tag: LangTag) => void | callback to receive tag information |
|
|
57
68
|
| disabled\* | boolean | true if control disabled |
|
|
58
69
|
| t | ILanguagePickerStrings | localization strings (see below) |
|
|
59
70
|
|
|
@@ -63,24 +74,53 @@ Output should be a Language Picker when entered opens a dialog
|
|
|
63
74
|
|
|
64
75
|
```typescript
|
|
65
76
|
export const languagePickerStrings_en = {
|
|
66
|
-
font:
|
|
67
|
-
script:
|
|
68
|
-
language:
|
|
69
|
-
selectLanguage:
|
|
70
|
-
findALanguage:
|
|
71
|
-
codeExplained:
|
|
72
|
-
subtags:
|
|
73
|
-
details:
|
|
74
|
-
languageOf:
|
|
75
|
-
inScript:
|
|
76
|
-
select:
|
|
77
|
-
cancel:
|
|
78
|
-
phonetic:
|
|
77
|
+
font: 'Font',
|
|
78
|
+
script: 'Script',
|
|
79
|
+
language: 'Language',
|
|
80
|
+
selectLanguage: 'Choose Language Details',
|
|
81
|
+
findALanguage: 'Find a language by name, code, or country',
|
|
82
|
+
codeExplained: 'Code Explained',
|
|
83
|
+
subtags: 'Subtags',
|
|
84
|
+
details: 'Details',
|
|
85
|
+
languageOf: 'A Language of $1$2.',
|
|
86
|
+
inScript: ' in the $1 script',
|
|
87
|
+
select: 'Save',
|
|
88
|
+
cancel: 'Cancel',
|
|
89
|
+
phonetic: 'Phonetic',
|
|
90
|
+
changeName: 'Change Name',
|
|
91
|
+
nameInstruction:
|
|
92
|
+
'If you would like to change the language name enter the new name here.',
|
|
93
|
+
newName: 'New Language Name',
|
|
94
|
+
change: 'Change',
|
|
79
95
|
} as ILanguagePickerStrings;
|
|
80
96
|
```
|
|
81
97
|
|
|
98
|
+
### Information returned by setInfo
|
|
99
|
+
|
|
100
|
+
```typescript
|
|
101
|
+
export interface LangTag {
|
|
102
|
+
full: string;
|
|
103
|
+
iana?: string;
|
|
104
|
+
iso639_3?: string;
|
|
105
|
+
localname?: string;
|
|
106
|
+
name: string;
|
|
107
|
+
names?: string[];
|
|
108
|
+
nophonvars?: boolean;
|
|
109
|
+
region?: string;
|
|
110
|
+
regionname?: string;
|
|
111
|
+
regions?: string[];
|
|
112
|
+
script: string;
|
|
113
|
+
sldr: boolean;
|
|
114
|
+
tag: string;
|
|
115
|
+
tags?: string[];
|
|
116
|
+
variants?: string[];
|
|
117
|
+
defaultFont?: string;
|
|
118
|
+
fonts?: string[];
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
82
122
|
### Change control background
|
|
83
|
-
If the theme involves using a dark background, the control background can be changed with css. See also [material-ui](https://
|
|
123
|
+
If the theme involves using a dark background, the control background can be changed with css. See also [material-ui](https://mui.com/) documentation.
|
|
84
124
|
```css
|
|
85
125
|
#LangBcp47 .MuiFilledInput-root {
|
|
86
126
|
background-color: rgba(255, 255, 255, 0.9);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ILanguagePickerStrings } from './model';
|
|
3
|
+
interface IProps {
|
|
4
|
+
isOpen: boolean;
|
|
5
|
+
onClose?: () => void;
|
|
6
|
+
curName?: string;
|
|
7
|
+
onNewName?: (name: string) => void;
|
|
8
|
+
t?: ILanguagePickerStrings;
|
|
9
|
+
}
|
|
10
|
+
export default function ChangeName({ isOpen, onClose, curName, onNewName, t, }: IProps): JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
var React = __importStar(require("react"));
|
|
30
|
+
var Button_1 = __importDefault(require("@mui/material/Button"));
|
|
31
|
+
var TextField_1 = __importDefault(require("@mui/material/TextField"));
|
|
32
|
+
var Dialog_1 = __importDefault(require("@mui/material/Dialog"));
|
|
33
|
+
var DialogActions_1 = __importDefault(require("@mui/material/DialogActions"));
|
|
34
|
+
var DialogContent_1 = __importDefault(require("@mui/material/DialogContent"));
|
|
35
|
+
var DialogContentText_1 = __importDefault(require("@mui/material/DialogContentText"));
|
|
36
|
+
var DialogTitle_1 = __importDefault(require("@mui/material/DialogTitle"));
|
|
37
|
+
var localization_1 = require("./localization");
|
|
38
|
+
function ChangeName(_a) {
|
|
39
|
+
var isOpen = _a.isOpen, onClose = _a.onClose, curName = _a.curName, onNewName = _a.onNewName, t = _a.t;
|
|
40
|
+
var _b = React.useState(isOpen), open = _b[0], setOpen = _b[1];
|
|
41
|
+
var _c = React.useState(curName || ''), name = _c[0], setName = _c[1];
|
|
42
|
+
var handleClose = function (save) { return function () {
|
|
43
|
+
if (save && name)
|
|
44
|
+
onNewName && onNewName(name);
|
|
45
|
+
onClose && onClose();
|
|
46
|
+
setOpen(false);
|
|
47
|
+
}; };
|
|
48
|
+
var handleNameChange = function (event) {
|
|
49
|
+
setName(event.target.value);
|
|
50
|
+
};
|
|
51
|
+
React.useEffect(function () {
|
|
52
|
+
setOpen(isOpen);
|
|
53
|
+
}, [isOpen]);
|
|
54
|
+
return (React.createElement(Dialog_1.default, { open: open, onClose: handleClose() },
|
|
55
|
+
React.createElement(DialogTitle_1.default, null, (t === null || t === void 0 ? void 0 : t.changeName) || localization_1.languagePickerStrings_en.changeName),
|
|
56
|
+
React.createElement(DialogContent_1.default, null,
|
|
57
|
+
React.createElement(DialogContentText_1.default, null, (t === null || t === void 0 ? void 0 : t.nameInstruction) || localization_1.languagePickerStrings_en.nameInstruction),
|
|
58
|
+
React.createElement(TextField_1.default, { autoFocus: true, margin: "dense", id: "name", label: (t === null || t === void 0 ? void 0 : t.newName) || localization_1.languagePickerStrings_en.newName, fullWidth: true, value: name, onChange: handleNameChange })),
|
|
59
|
+
React.createElement(DialogActions_1.default, null,
|
|
60
|
+
React.createElement(Button_1.default, { onClick: handleClose() }, (t === null || t === void 0 ? void 0 : t.cancel) || localization_1.languagePickerStrings_en.cancel),
|
|
61
|
+
React.createElement(Button_1.default, { onClick: handleClose(true) }, (t === null || t === void 0 ? void 0 : t.change) || localization_1.languagePickerStrings_en.change))));
|
|
62
|
+
}
|
|
63
|
+
exports.default = ChangeName;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.GrowingSpacer = void 0;
|
|
7
|
+
var react_1 = __importDefault(require("react"));
|
|
8
|
+
var material_1 = require("@mui/material");
|
|
9
|
+
var GrowingSpacer = function () { return react_1.default.createElement(material_1.Box, { sx: { flexGrow: 1 } }, '\u00A0'); };
|
|
10
|
+
exports.GrowingSpacer = GrowingSpacer;
|
package/dist/LanguageChoice.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { ILanguagePickerStrings } from './model';
|
|
3
3
|
import { LangTag, ScriptName } from './langPicker/types';
|
|
4
|
+
import { DisplayName } from './getDisplayName';
|
|
4
5
|
interface IProps {
|
|
5
6
|
list: number[];
|
|
6
7
|
choose: (tag: LangTag) => void;
|
|
7
8
|
secondary?: boolean;
|
|
8
9
|
langTags: LangTag[];
|
|
9
10
|
scriptName: ScriptName;
|
|
11
|
+
displayName?: DisplayName;
|
|
10
12
|
t: ILanguagePickerStrings;
|
|
11
13
|
}
|
|
12
14
|
export declare function LanguageChoice(props: IProps): JSX.Element;
|
package/dist/LanguageChoice.js
CHANGED
|
@@ -1,41 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
4
24
|
};
|
|
5
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
26
|
exports.LanguageChoice = void 0;
|
|
7
|
-
var react_1 =
|
|
8
|
-
var
|
|
9
|
-
var core_1 = require("@material-ui/core");
|
|
27
|
+
var react_1 = __importStar(require("react"));
|
|
28
|
+
var material_1 = require("@mui/material");
|
|
10
29
|
var lodash_1 = require("lodash");
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
root: {
|
|
14
|
-
flexGrow: 1,
|
|
15
|
-
maxWidth: 752,
|
|
16
|
-
},
|
|
17
|
-
paper: {
|
|
18
|
-
backgroundColor: theme.palette.background.paper,
|
|
19
|
-
},
|
|
20
|
-
list: {
|
|
21
|
-
overflowY: 'scroll',
|
|
22
|
-
},
|
|
23
|
-
title: {
|
|
24
|
-
margin: theme.spacing(4, 0, 2),
|
|
25
|
-
},
|
|
26
|
-
firstLine: {
|
|
27
|
-
display: 'flex',
|
|
28
|
-
},
|
|
29
|
-
grow: {
|
|
30
|
-
flexGrow: 1,
|
|
31
|
-
},
|
|
32
|
-
});
|
|
33
|
-
});
|
|
30
|
+
var GrowingSpacer_1 = require("./GrowingSpacer");
|
|
31
|
+
var getDisplayName_1 = require("./getDisplayName");
|
|
34
32
|
function LanguageChoice(props) {
|
|
35
33
|
var list = props.list, langTags = props.langTags, scriptName = props.scriptName, secondary = props.secondary, t = props.t, choose = props.choose;
|
|
36
|
-
var
|
|
37
|
-
var dense = react_1.
|
|
38
|
-
var _a = react_1.
|
|
34
|
+
var displayName = props.displayName;
|
|
35
|
+
var dense = (0, react_1.useState)(true)[0];
|
|
36
|
+
var _a = (0, react_1.useState)(window.innerHeight), height = _a[0], setHeight = _a[1];
|
|
39
37
|
var handleChoose = function (tag) { return function () {
|
|
40
38
|
choose(tag);
|
|
41
39
|
}; };
|
|
@@ -44,8 +42,8 @@ function LanguageChoice(props) {
|
|
|
44
42
|
choose(tag);
|
|
45
43
|
}
|
|
46
44
|
}; };
|
|
47
|
-
react_1.
|
|
48
|
-
var handleResize = lodash_1.debounce(function () { return setHeight(window.innerHeight); }, 100);
|
|
45
|
+
(0, react_1.useEffect)(function () {
|
|
46
|
+
var handleResize = (0, lodash_1.debounce)(function () { return setHeight(window.innerHeight); }, 100);
|
|
49
47
|
window.addEventListener('resize', handleResize);
|
|
50
48
|
return function () {
|
|
51
49
|
window.removeEventListener('resize', handleResize);
|
|
@@ -59,25 +57,25 @@ function LanguageChoice(props) {
|
|
|
59
57
|
};
|
|
60
58
|
var detail = function (tag) {
|
|
61
59
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
62
|
-
react_1.default.createElement(
|
|
60
|
+
react_1.default.createElement(material_1.Typography, { component: 'span' }, t.languageOf
|
|
63
61
|
.replace('$1', tag.regionname ? tag.regionname : '')
|
|
64
62
|
.replace('$2', scriptDetail(tag))),
|
|
65
63
|
react_1.default.createElement("br", null),
|
|
66
|
-
react_1.default.createElement(
|
|
64
|
+
react_1.default.createElement(material_1.Typography, { component: 'span' }, tag.names ? tag.names.join(', ') : '')));
|
|
67
65
|
};
|
|
68
66
|
var langElems = function (refList, refTags) {
|
|
69
67
|
return refList.map(function (r, i) {
|
|
70
68
|
var tag = refTags[r];
|
|
71
|
-
return (react_1.default.createElement(
|
|
72
|
-
react_1.default.createElement(
|
|
73
|
-
react_1.default.createElement(
|
|
74
|
-
react_1.default.createElement(
|
|
75
|
-
react_1.default.createElement(
|
|
69
|
+
return (react_1.default.createElement(material_1.ListItem, { key: "".concat(tag.tag, " ").concat(i), button: true, onClick: handleChoose(tag), onKeyDown: handleKeydown(tag) },
|
|
70
|
+
react_1.default.createElement(material_1.ListItemText, { primary: react_1.default.createElement(material_1.Box, { sx: { display: 'flex' } },
|
|
71
|
+
react_1.default.createElement(material_1.Typography, null, (0, getDisplayName_1.getDisplayName)(tag.name, tag, displayName)),
|
|
72
|
+
react_1.default.createElement(GrowingSpacer_1.GrowingSpacer, null),
|
|
73
|
+
react_1.default.createElement(material_1.Typography, null, tag.tag)), secondary: secondary ? detail(tag) : null })));
|
|
76
74
|
});
|
|
77
75
|
};
|
|
78
|
-
return (react_1.default.createElement(
|
|
79
|
-
react_1.default.createElement(
|
|
80
|
-
react_1.default.createElement(
|
|
76
|
+
return (react_1.default.createElement(material_1.Box, { sx: { flexGrow: 1, maxWidth: 752 } },
|
|
77
|
+
react_1.default.createElement(material_1.Box, { sx: { backgroundColor: 'background.paper' } },
|
|
78
|
+
react_1.default.createElement(material_1.List, { dense: dense, sx: { overflowY: 'scroll' }, style: { maxHeight: Math.max(height - 450, 200) } }, langElems(list, langTags)))));
|
|
81
79
|
}
|
|
82
80
|
exports.LanguageChoice = LanguageChoice;
|
|
83
81
|
exports.default = LanguageChoice;
|
package/dist/LanguagePicker.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { ILanguagePickerStrings } from './model';
|
|
3
|
+
import { LangTag } from './langPicker/types';
|
|
4
|
+
import { DisplayName } from './getDisplayName';
|
|
3
5
|
interface IStateProps {
|
|
4
6
|
t: ILanguagePickerStrings;
|
|
5
7
|
}
|
|
@@ -7,9 +9,11 @@ interface IProps extends IStateProps {
|
|
|
7
9
|
value: string;
|
|
8
10
|
name: string;
|
|
9
11
|
font: string;
|
|
12
|
+
displayName?: DisplayName;
|
|
10
13
|
setCode?: (code: string) => void;
|
|
11
14
|
setName?: (name: string) => void;
|
|
12
15
|
setFont?: (font: string) => void;
|
|
16
|
+
setInfo?: (tag: LangTag) => void;
|
|
13
17
|
disabled?: boolean;
|
|
14
18
|
}
|
|
15
19
|
export declare const LanguagePicker: (props: IProps) => JSX.Element;
|
package/dist/LanguagePicker.js
CHANGED
|
@@ -16,12 +16,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.LanguagePicker = void 0;
|
|
18
18
|
var react_1 = __importDefault(require("react"));
|
|
19
|
-
var
|
|
20
|
-
var
|
|
21
|
-
var
|
|
19
|
+
var material_1 = require("@mui/material");
|
|
20
|
+
var Clear_1 = __importDefault(require("@mui/icons-material/Clear"));
|
|
21
|
+
var BorderColor_1 = __importDefault(require("@mui/icons-material/BorderColor"));
|
|
22
22
|
var util_1 = require("./util");
|
|
23
23
|
var LanguageChoice_1 = __importDefault(require("./LanguageChoice"));
|
|
24
|
-
var clsx_1 = __importDefault(require("clsx"));
|
|
25
24
|
var LgExact_1 = require("./index/LgExact");
|
|
26
25
|
var LgScripts_1 = require("./index/LgScripts");
|
|
27
26
|
var LgScriptName_1 = require("./index/LgScriptName");
|
|
@@ -29,51 +28,22 @@ var LgFontMap_1 = require("./index/LgFontMap");
|
|
|
29
28
|
var bcp47_1 = require("./bcp47");
|
|
30
29
|
var langTags_1 = require("./langTags");
|
|
31
30
|
var useDebounce_1 = __importDefault(require("./useDebounce"));
|
|
31
|
+
var GrowingSpacer_1 = require("./GrowingSpacer");
|
|
32
|
+
var ChangeName_1 = __importDefault(require("./ChangeName"));
|
|
33
|
+
var getDisplayName_1 = require("./getDisplayName");
|
|
32
34
|
var MAXOPTIONS = 50;
|
|
33
|
-
var
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
check: {
|
|
42
|
-
justifyContent: 'flex-end',
|
|
43
|
-
},
|
|
44
|
-
label: {
|
|
45
|
-
flexDirection: 'row-reverse',
|
|
46
|
-
},
|
|
47
|
-
label2: {
|
|
48
|
-
flexDirection: 'row-reverse',
|
|
49
|
-
marginRight: 0,
|
|
50
|
-
},
|
|
51
|
-
textField: {
|
|
52
|
-
width: 150,
|
|
53
|
-
marginLeft: theme.spacing(1),
|
|
54
|
-
marginRight: theme.spacing(1),
|
|
55
|
-
},
|
|
56
|
-
fontField: {
|
|
57
|
-
width: 300,
|
|
58
|
-
marginLeft: theme.spacing(1),
|
|
59
|
-
marginRight: theme.spacing(1),
|
|
60
|
-
},
|
|
61
|
-
menu: {
|
|
62
|
-
width: 200,
|
|
63
|
-
},
|
|
64
|
-
hide: {
|
|
65
|
-
display: 'none',
|
|
66
|
-
},
|
|
67
|
-
grow: {
|
|
68
|
-
flexGrow: 1,
|
|
69
|
-
},
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
exports.LanguagePicker = function (props) {
|
|
35
|
+
var menuWidth = { width: 200 };
|
|
36
|
+
var StyledDialog = (0, material_1.styled)(material_1.Dialog)(function () { return ({
|
|
37
|
+
'& .MuiDialog-paperScrollPaper': {
|
|
38
|
+
marginBottom: 'auto',
|
|
39
|
+
width: '90%',
|
|
40
|
+
},
|
|
41
|
+
}); });
|
|
42
|
+
var LanguagePicker = function (props) {
|
|
73
43
|
var _a;
|
|
74
44
|
var disabled = props.disabled;
|
|
75
|
-
var value = props.value, name = props.name, font = props.font, setCode = props.setCode, setName = props.setName, setFont = props.setFont, t = props.t;
|
|
76
|
-
var
|
|
45
|
+
var value = props.value, name = props.name, font = props.font, setCode = props.setCode, setName = props.setName, setFont = props.setFont, setInfo = props.setInfo, t = props.t;
|
|
46
|
+
var displayName = props.displayName;
|
|
77
47
|
var _b = react_1.default.useState(false), open = _b[0], setOpen = _b[1];
|
|
78
48
|
var _c = react_1.default.useState(value), curValue = _c[0], setCurValue = _c[1];
|
|
79
49
|
var _d = react_1.default.useState(name), curName = _d[0], setCurName = _d[1];
|
|
@@ -84,8 +54,9 @@ exports.LanguagePicker = function (props) {
|
|
|
84
54
|
var _j = react_1.default.useState(''), defaultScript = _j[0], setDefaultScript = _j[1];
|
|
85
55
|
var _k = react_1.default.useState(''), defaultFont = _k[0], setDefaultFont = _k[1];
|
|
86
56
|
var _l = react_1.default.useState(Array()), fontOpts = _l[0], setFontOpts = _l[1];
|
|
57
|
+
var _m = react_1.default.useState(false), newName = _m[0], setNewName = _m[1];
|
|
87
58
|
var langEl = react_1.default.useRef();
|
|
88
|
-
var debouncedResponse = useDebounce_1.default(response, 500);
|
|
59
|
+
var debouncedResponse = (0, useDebounce_1.default)(response, 500);
|
|
89
60
|
var TAB = 9;
|
|
90
61
|
var SHIFT = 16;
|
|
91
62
|
var CTRL = 17;
|
|
@@ -97,10 +68,11 @@ exports.LanguagePicker = function (props) {
|
|
|
97
68
|
return;
|
|
98
69
|
if (e.keyCode && [TAB, SHIFT, CTRL].indexOf(e.keyCode) !== -1)
|
|
99
70
|
return;
|
|
100
|
-
var found = bcp47_1.bcp47Find(curValue);
|
|
71
|
+
var found = (0, bcp47_1.bcp47Find)(curValue);
|
|
101
72
|
if (curValue !== 'und') {
|
|
102
73
|
if (found && !Array.isArray(found)) {
|
|
103
|
-
|
|
74
|
+
var tagName = (0, getDisplayName_1.getDisplayName)(curName, found, displayName);
|
|
75
|
+
setResponse(tagName + ' (' + curValue + ')');
|
|
104
76
|
setTag(found);
|
|
105
77
|
selectFont(found);
|
|
106
78
|
setDefaultScript(found.script);
|
|
@@ -108,9 +80,9 @@ exports.LanguagePicker = function (props) {
|
|
|
108
80
|
}
|
|
109
81
|
else {
|
|
110
82
|
var key = curValue.toLocaleLowerCase();
|
|
111
|
-
if (LgExact_1.hasExact(key)) {
|
|
83
|
+
if ((0, LgExact_1.hasExact)(key)) {
|
|
112
84
|
setResponse(curName + ' (' + curValue + ')');
|
|
113
|
-
var langTag = langTags_1.langTags[LgExact_1.getExact(key)[0]];
|
|
85
|
+
var langTag = langTags_1.langTags[(0, LgExact_1.getExact)(key)[0]];
|
|
114
86
|
setTag(langTag);
|
|
115
87
|
selectFont(langTag);
|
|
116
88
|
setDefaultScript(langTag.script);
|
|
@@ -142,7 +114,8 @@ exports.LanguagePicker = function (props) {
|
|
|
142
114
|
};
|
|
143
115
|
var displayTag = function (tagP, val) {
|
|
144
116
|
if (tagP && tagP.name) {
|
|
145
|
-
|
|
117
|
+
var tagName = (0, getDisplayName_1.getDisplayName)(tagP.name, tagP, displayName);
|
|
118
|
+
setResponse(tagName + ' (' + tagP.tag + ')');
|
|
146
119
|
setCurValue(val ? val : tagP.tag);
|
|
147
120
|
setCurName(tagP.name);
|
|
148
121
|
}
|
|
@@ -154,6 +127,8 @@ exports.LanguagePicker = function (props) {
|
|
|
154
127
|
setName(curName);
|
|
155
128
|
if (setFont)
|
|
156
129
|
setFont(curFont);
|
|
130
|
+
if (setInfo && tag)
|
|
131
|
+
setInfo(tag);
|
|
157
132
|
if (tag) {
|
|
158
133
|
displayTag(tag, curValue);
|
|
159
134
|
}
|
|
@@ -184,7 +159,7 @@ exports.LanguagePicker = function (props) {
|
|
|
184
159
|
var selectFont = function (tagP) {
|
|
185
160
|
if (!tagP || tagP.tag === 'und')
|
|
186
161
|
return;
|
|
187
|
-
var parse = bcp47_1.bcp47Parse(tagP.tag);
|
|
162
|
+
var parse = (0, bcp47_1.bcp47Parse)(tagP.tag);
|
|
188
163
|
var script = parse.script ? parse.script : tagP.script;
|
|
189
164
|
var region = parse.region ? parse.region : tagP.region;
|
|
190
165
|
var code = script;
|
|
@@ -202,6 +177,17 @@ exports.LanguagePicker = function (props) {
|
|
|
202
177
|
else
|
|
203
178
|
selectDefaultFont(code);
|
|
204
179
|
};
|
|
180
|
+
var handleNewName = function () {
|
|
181
|
+
setNewName(true);
|
|
182
|
+
};
|
|
183
|
+
var handleCloseName = function () {
|
|
184
|
+
setNewName(false);
|
|
185
|
+
};
|
|
186
|
+
var handleSetName = function (name) {
|
|
187
|
+
setCurName(name);
|
|
188
|
+
var tagName = (0, getDisplayName_1.getDisplayName)(name, tag, displayName);
|
|
189
|
+
setResponse(tagName);
|
|
190
|
+
};
|
|
205
191
|
react_1.default.useEffect(function () {
|
|
206
192
|
if (response === '')
|
|
207
193
|
handleClear();
|
|
@@ -215,7 +201,7 @@ exports.LanguagePicker = function (props) {
|
|
|
215
201
|
var handleScriptChange = function (tagP) { return function (e) {
|
|
216
202
|
var val = e.target.value;
|
|
217
203
|
setDefaultScript(val);
|
|
218
|
-
var parse = bcp47_1.bcp47Parse(curValue);
|
|
204
|
+
var parse = (0, bcp47_1.bcp47Parse)(curValue);
|
|
219
205
|
var script = parse.script ? parse.script : tagP === null || tagP === void 0 ? void 0 : tagP.script;
|
|
220
206
|
if (script !== val) {
|
|
221
207
|
var newTag = parse.language || 'und';
|
|
@@ -223,13 +209,13 @@ exports.LanguagePicker = function (props) {
|
|
|
223
209
|
newTag += '-' + val;
|
|
224
210
|
if (parse.region)
|
|
225
211
|
newTag += '-' + parse.region;
|
|
226
|
-
var found = bcp47_1.bcp47Find(newTag);
|
|
212
|
+
var found = (0, bcp47_1.bcp47Find)(newTag);
|
|
227
213
|
if (found) {
|
|
228
214
|
var firstFind = Array.isArray(found) ? found[0] : found;
|
|
229
215
|
setTag(firstFind);
|
|
230
216
|
var myTag_1 = firstFind.tag;
|
|
231
217
|
if (val === IpaTag)
|
|
232
|
-
myTag_1 += "-"
|
|
218
|
+
myTag_1 += "-".concat(IpaTag);
|
|
233
219
|
else if (parse.variant && parse.variant !== IpaTag)
|
|
234
220
|
myTag_1 += '-' + parse.variant;
|
|
235
221
|
if (parse.extension)
|
|
@@ -246,14 +232,14 @@ exports.LanguagePicker = function (props) {
|
|
|
246
232
|
}
|
|
247
233
|
}; };
|
|
248
234
|
var selectScript = function (tagP) {
|
|
249
|
-
var tagParts = bcp47_1.bcp47Parse(tagP.tag);
|
|
235
|
+
var tagParts = (0, bcp47_1.bcp47Parse)(tagP.tag);
|
|
250
236
|
selectFont(tagP);
|
|
251
237
|
setDefaultScript(tagParts.script ? tagParts.script : tagP.script);
|
|
252
238
|
};
|
|
253
239
|
var scriptList = function (tagP) {
|
|
254
240
|
if (!tagP)
|
|
255
241
|
return [];
|
|
256
|
-
return LgScripts_1.getScripts(tagP.tag.split('-')[0]).concat(IpaTag);
|
|
242
|
+
return (0, LgScripts_1.getScripts)(tagP.tag.split('-')[0]).concat(IpaTag);
|
|
257
243
|
};
|
|
258
244
|
var handleLanguageClick = function () {
|
|
259
245
|
if (tag)
|
|
@@ -262,7 +248,7 @@ exports.LanguagePicker = function (props) {
|
|
|
262
248
|
};
|
|
263
249
|
var handleChoose = function (tagP) {
|
|
264
250
|
var newTag = tagP;
|
|
265
|
-
var found = bcp47_1.bcp47Find(response);
|
|
251
|
+
var found = (0, bcp47_1.bcp47Find)(response);
|
|
266
252
|
var maxMatch = '';
|
|
267
253
|
var tagList = [tagP.full, tagP.tag];
|
|
268
254
|
if (tagP.iso639_3) {
|
|
@@ -273,7 +259,7 @@ exports.LanguagePicker = function (props) {
|
|
|
273
259
|
tagList.push(tagP.iso639_3 + '-' + tagP.script + '-' + tagP.region);
|
|
274
260
|
}
|
|
275
261
|
}
|
|
276
|
-
var parse = bcp47_1.bcp47Parse(response);
|
|
262
|
+
var parse = (0, bcp47_1.bcp47Parse)(response);
|
|
277
263
|
if (parse.extlang && parse.language) {
|
|
278
264
|
tagList.push(parse.language);
|
|
279
265
|
tagList.push(parse.language + '-' + tagP.script);
|
|
@@ -298,7 +284,7 @@ exports.LanguagePicker = function (props) {
|
|
|
298
284
|
if (maxMatch !== '') {
|
|
299
285
|
var newCode = tagP.tag;
|
|
300
286
|
if (parse.variant && tagP.tag.indexOf(tagP.script) > 0) {
|
|
301
|
-
newCode = tagP.tag.replace("-"
|
|
287
|
+
newCode = tagP.tag.replace("-".concat(tagP.script), '');
|
|
302
288
|
}
|
|
303
289
|
newTag = __assign(__assign({}, tagP), { tag: newCode + response.slice(maxMatch.length) });
|
|
304
290
|
displayTag(newTag);
|
|
@@ -326,14 +312,14 @@ exports.LanguagePicker = function (props) {
|
|
|
326
312
|
var list_1 = Array();
|
|
327
313
|
debouncedResponse.split(' ').forEach(function (w) {
|
|
328
314
|
if (w.length > 1) {
|
|
329
|
-
var wLangTags = bcp47_1.bcp47Index(w);
|
|
315
|
+
var wLangTags = (0, bcp47_1.bcp47Index)(w);
|
|
330
316
|
if (wLangTags) {
|
|
331
317
|
list_1 = mergeList(list_1, wLangTags);
|
|
332
318
|
}
|
|
333
319
|
else {
|
|
334
|
-
var token = util_1.woBadChar(w).toLocaleLowerCase();
|
|
335
|
-
if (LgExact_1.hasExact(token)) {
|
|
336
|
-
list_1 = mergeList(list_1, LgExact_1.getExact(token));
|
|
320
|
+
var token = (0, util_1.woBadChar)(w).toLocaleLowerCase();
|
|
321
|
+
if ((0, LgExact_1.hasExact)(token)) {
|
|
322
|
+
list_1 = mergeList(list_1, (0, LgExact_1.getExact)(token));
|
|
337
323
|
}
|
|
338
324
|
}
|
|
339
325
|
}
|
|
@@ -342,18 +328,18 @@ exports.LanguagePicker = function (props) {
|
|
|
342
328
|
if (w.length > 1) {
|
|
343
329
|
var lastDash = w.lastIndexOf('-');
|
|
344
330
|
if (lastDash !== -1) {
|
|
345
|
-
var wLangTags = bcp47_1.bcp47Index(w.slice(0, lastDash));
|
|
331
|
+
var wLangTags = (0, bcp47_1.bcp47Index)(w.slice(0, lastDash));
|
|
346
332
|
if (wLangTags)
|
|
347
333
|
list_1 = mergeList(list_1, wLangTags);
|
|
348
334
|
}
|
|
349
335
|
else {
|
|
350
|
-
var token_1 = util_1.woBadChar(w).toLocaleLowerCase();
|
|
351
|
-
if (LgExact_1.hasPart(token_1)) {
|
|
336
|
+
var token_1 = (0, util_1.woBadChar)(w).toLocaleLowerCase();
|
|
337
|
+
if ((0, LgExact_1.hasPart)(token_1)) {
|
|
352
338
|
var tokLen_1 = token_1.length;
|
|
353
|
-
Object.keys(LgExact_1.getPart(token_1)).forEach(function (k) {
|
|
339
|
+
Object.keys((0, LgExact_1.getPart)(token_1)).forEach(function (k) {
|
|
354
340
|
if (list_1.length < MAXOPTIONS) {
|
|
355
341
|
if (token_1 === k.slice(0, tokLen_1))
|
|
356
|
-
list_1 = mergeList(list_1, LgExact_1.getExact(k));
|
|
342
|
+
list_1 = mergeList(list_1, (0, LgExact_1.getExact)(k));
|
|
357
343
|
}
|
|
358
344
|
});
|
|
359
345
|
}
|
|
@@ -362,48 +348,49 @@ exports.LanguagePicker = function (props) {
|
|
|
362
348
|
});
|
|
363
349
|
if (list_1.length > 0) {
|
|
364
350
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
365
|
-
react_1.default.createElement(
|
|
366
|
-
react_1.default.createElement(
|
|
367
|
-
react_1.default.createElement(LanguageChoice_1.default, { list: list_1, secondary: secondary, choose: handleChoose, langTags: langTags_1.langTags, scriptName: LgScriptName_1.scriptName, t: t })));
|
|
351
|
+
react_1.default.createElement(material_1.FormGroup, { row: true, sx: { justifyContent: 'flex-end' } },
|
|
352
|
+
react_1.default.createElement(material_1.FormControlLabel, { sx: { flexDirection: 'row-reverse', mr: 0 }, control: react_1.default.createElement(material_1.Checkbox, { checked: secondary, onChange: function (event) { return setSecondary(event.target.checked); }, value: "secondary" }), label: t.details })),
|
|
353
|
+
react_1.default.createElement(LanguageChoice_1.default, { list: list_1, secondary: secondary, choose: handleChoose, langTags: langTags_1.langTags, scriptName: LgScriptName_1.scriptName, displayName: displayName, t: t })));
|
|
368
354
|
}
|
|
369
355
|
}
|
|
370
356
|
return react_1.default.createElement(react_1.default.Fragment, null);
|
|
371
357
|
};
|
|
372
358
|
return (react_1.default.createElement("div", { id: "LangBcp47" },
|
|
373
|
-
react_1.default.createElement(
|
|
374
|
-
react_1.default.createElement(
|
|
375
|
-
react_1.default.createElement(
|
|
376
|
-
react_1.default.createElement(
|
|
377
|
-
react_1.default.createElement(
|
|
359
|
+
react_1.default.createElement(material_1.TextField, { variant: "filled", margin: "dense", id: "lang-bcp47", label: t.language, required: true, style: { width: 300 }, value: value !== 'und' ? name + ' (' + value + ')' : '', onClick: handleClickOpen, onKeyDown: handleClickOpen, disabled: disabled ? disabled : false }),
|
|
360
|
+
react_1.default.createElement(StyledDialog, { id: "LanguagePicker", open: open, onClose: handleCancel, "aria-labelledby": "form-dialog-title" },
|
|
361
|
+
react_1.default.createElement(material_1.DialogTitle, { id: "form-dialog-title" }, t.selectLanguage),
|
|
362
|
+
react_1.default.createElement(material_1.DialogContent, { dividers: true },
|
|
363
|
+
react_1.default.createElement(material_1.TextField, { autoFocus: true, margin: "normal", id: "language", label: t.findALanguage, fullWidth: true, value: response, onChange: handleChange, onClick: handleLanguageClick, variant: "outlined", InputProps: {
|
|
378
364
|
ref: langEl,
|
|
379
|
-
endAdornment: (react_1.default.createElement(
|
|
380
|
-
react_1.default.createElement(
|
|
381
|
-
react_1.default.createElement(Clear_1.default,
|
|
365
|
+
endAdornment: (react_1.default.createElement(material_1.InputAdornment, { position: "end" },
|
|
366
|
+
react_1.default.createElement(material_1.IconButton, { edge: "end", "aria-label": "clear language", onClick: handleClear },
|
|
367
|
+
react_1.default.createElement(Clear_1.default, { color: "primary" })))),
|
|
382
368
|
} }),
|
|
383
369
|
optList(),
|
|
384
|
-
react_1.default.createElement(
|
|
385
|
-
MenuProps: {
|
|
386
|
-
className: classes.menu,
|
|
387
|
-
},
|
|
370
|
+
react_1.default.createElement(material_1.FormControlLabel, { control: react_1.default.createElement(material_1.TextField, { id: "select-script", select: true, sx: { width: 150, mx: 1 }, label: t.script, value: defaultScript, onChange: handleScriptChange(tag), style: { width: 400 }, SelectProps: {
|
|
371
|
+
MenuProps: __assign({ sx: menuWidth }),
|
|
388
372
|
}, helperText: '', margin: "normal", variant: "filled", required: true }, scriptList(tag)
|
|
389
|
-
.map(function (s) { return (react_1.default.createElement(
|
|
373
|
+
.map(function (s) { return (react_1.default.createElement(material_1.MenuItem, { key: s, value: s }, LgScriptName_1.scriptName[s] + ' - ' + s)); })
|
|
390
374
|
.concat(scriptList(tag).includes(defaultScript)
|
|
391
375
|
? []
|
|
392
376
|
: [
|
|
393
|
-
react_1.default.createElement(
|
|
377
|
+
react_1.default.createElement(material_1.MenuItem, { key: defaultScript, value: defaultScript }, defaultScript),
|
|
394
378
|
])), label: "" }),
|
|
395
|
-
react_1.default.createElement(
|
|
396
|
-
MenuProps: {
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
}, helperText: '', margin: "normal", variant: "filled", required: true }, fontOpts.map(function (s) { return (react_1.default.createElement(core_1.MenuItem, { key: s, value: s }, s)); })), label: "" })),
|
|
400
|
-
react_1.default.createElement(core_1.DialogActions, null,
|
|
379
|
+
react_1.default.createElement(material_1.FormControlLabel, { control: react_1.default.createElement(material_1.TextField, { id: "select-font", select: true, sx: { width: 300, mx: 1 }, label: t.font, value: defaultFont, onChange: addFontInfo, SelectProps: {
|
|
380
|
+
MenuProps: __assign({ sx: menuWidth }),
|
|
381
|
+
}, helperText: '', margin: "normal", variant: "filled", required: true }, fontOpts.map(function (s) { return (react_1.default.createElement(material_1.MenuItem, { key: s, value: s }, s)); })), label: "" })),
|
|
382
|
+
react_1.default.createElement(material_1.DialogActions, null,
|
|
401
383
|
react_1.default.createElement("a", { href: "https://www.w3.org/International/questions/qa-choosing-language-tags", target: "_blank", rel: "noopener noreferrer" },
|
|
402
|
-
react_1.default.createElement(
|
|
403
|
-
react_1.default.createElement(
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
react_1.default.createElement(
|
|
407
|
-
|
|
384
|
+
react_1.default.createElement(material_1.Typography, null, t.codeExplained)),
|
|
385
|
+
curName !== '' && (react_1.default.createElement(material_1.Tooltip, { title: (_a = t.changeName) !== null && _a !== void 0 ? _a : 'Change name' },
|
|
386
|
+
react_1.default.createElement(material_1.IconButton, { color: "primary", size: "small", onClick: handleNewName },
|
|
387
|
+
react_1.default.createElement(BorderColor_1.default, { fontSize: "small" })))),
|
|
388
|
+
react_1.default.createElement(GrowingSpacer_1.GrowingSpacer, null),
|
|
389
|
+
react_1.default.createElement(material_1.Button, { onClick: handleCancel, color: "primary" },
|
|
390
|
+
react_1.default.createElement(material_1.Typography, null, t.cancel)),
|
|
391
|
+
react_1.default.createElement(material_1.Button, { onClick: handleSelect, color: "primary", disabled: tag === undefined },
|
|
392
|
+
react_1.default.createElement(material_1.Typography, null, t.select)))),
|
|
393
|
+
newName && (react_1.default.createElement(ChangeName_1.default, { isOpen: newName, onClose: handleCloseName, curName: curName, onNewName: handleSetName, t: t }))));
|
|
408
394
|
};
|
|
395
|
+
exports.LanguagePicker = LanguagePicker;
|
|
409
396
|
exports.default = exports.LanguagePicker;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDisplayName = void 0;
|
|
4
|
+
var getDisplayName = function (curName, tag, displayName) {
|
|
5
|
+
// If user setup a custom language name
|
|
6
|
+
if (tag && curName !== tag.name)
|
|
7
|
+
return curName;
|
|
8
|
+
// if caller provided a custom name formatter
|
|
9
|
+
if (displayName)
|
|
10
|
+
return displayName(curName, tag);
|
|
11
|
+
// By default show the local name if present and the name
|
|
12
|
+
var tagName = curName;
|
|
13
|
+
if ((tag === null || tag === void 0 ? void 0 : tag.localname) && tag.localname.toLowerCase() !== curName.toLowerCase())
|
|
14
|
+
tagName = "".concat(tag.localname, " / ").concat(curName);
|
|
15
|
+
return tagName;
|
|
16
|
+
};
|
|
17
|
+
exports.getDisplayName = getDisplayName;
|
package/dist/index/LgExact.js
CHANGED
|
@@ -204,7 +204,7 @@ var _31925_1 = require("./Exact/31925");
|
|
|
204
204
|
var _31908_1 = require("./Exact/31908");
|
|
205
205
|
var _20013_1 = require("./Exact/20013");
|
|
206
206
|
var _32321_1 = require("./Exact/32321");
|
|
207
|
-
|
|
207
|
+
var hasExact = function (key) {
|
|
208
208
|
if (!key || key.length === 0)
|
|
209
209
|
return false;
|
|
210
210
|
switch (key.slice(0, 1).charCodeAt(0)) {
|
|
@@ -413,7 +413,8 @@ exports.hasExact = function (key) {
|
|
|
413
413
|
default: return false;
|
|
414
414
|
}
|
|
415
415
|
};
|
|
416
|
-
exports.
|
|
416
|
+
exports.hasExact = hasExact;
|
|
417
|
+
var getExact = function (key) {
|
|
417
418
|
if (!key || key.length === 0)
|
|
418
419
|
return [];
|
|
419
420
|
switch (key.slice(0, 1).charCodeAt(0)) {
|
|
@@ -622,7 +623,8 @@ exports.getExact = function (key) {
|
|
|
622
623
|
default: return [];
|
|
623
624
|
}
|
|
624
625
|
};
|
|
625
|
-
exports.
|
|
626
|
+
exports.getExact = getExact;
|
|
627
|
+
var hasPart = function (key) {
|
|
626
628
|
if (!key || key.length === 0)
|
|
627
629
|
return false;
|
|
628
630
|
switch (key.slice(0, 1).charCodeAt(0)) {
|
|
@@ -831,7 +833,8 @@ exports.hasPart = function (key) {
|
|
|
831
833
|
default: return false;
|
|
832
834
|
}
|
|
833
835
|
};
|
|
834
|
-
exports.
|
|
836
|
+
exports.hasPart = hasPart;
|
|
837
|
+
var getPart = function (key) {
|
|
835
838
|
if (!key || key.length === 0)
|
|
836
839
|
return [];
|
|
837
840
|
switch (key.slice(0, 1).charCodeAt(0)) {
|
|
@@ -1040,3 +1043,4 @@ exports.getPart = function (key) {
|
|
|
1040
1043
|
default: return [];
|
|
1041
1044
|
}
|
|
1042
1045
|
};
|
|
1046
|
+
exports.getPart = getPart;
|
package/dist/index/LgScripts.js
CHANGED
|
@@ -29,7 +29,7 @@ var _119_1 = require("./Scripts/119");
|
|
|
29
29
|
var _120_1 = require("./Scripts/120");
|
|
30
30
|
var _121_1 = require("./Scripts/121");
|
|
31
31
|
var _122_1 = require("./Scripts/122");
|
|
32
|
-
|
|
32
|
+
var hasScripts = function (key) {
|
|
33
33
|
if (!key || key.length === 0)
|
|
34
34
|
return false;
|
|
35
35
|
switch (key.slice(0, 1).charCodeAt(0)) {
|
|
@@ -63,7 +63,8 @@ exports.hasScripts = function (key) {
|
|
|
63
63
|
default: return false;
|
|
64
64
|
}
|
|
65
65
|
};
|
|
66
|
-
exports.
|
|
66
|
+
exports.hasScripts = hasScripts;
|
|
67
|
+
var getScripts = function (key) {
|
|
67
68
|
if (!key || key.length === 0)
|
|
68
69
|
return [];
|
|
69
70
|
switch (key.slice(0, 1).charCodeAt(0)) {
|
|
@@ -97,7 +98,8 @@ exports.getScripts = function (key) {
|
|
|
97
98
|
default: return [];
|
|
98
99
|
}
|
|
99
100
|
};
|
|
100
|
-
exports.
|
|
101
|
+
exports.getScripts = getScripts;
|
|
102
|
+
var hasPart = function (key) {
|
|
101
103
|
if (!key || key.length === 0)
|
|
102
104
|
return false;
|
|
103
105
|
switch (key.slice(0, 1).charCodeAt(0)) {
|
|
@@ -131,7 +133,8 @@ exports.hasPart = function (key) {
|
|
|
131
133
|
default: return false;
|
|
132
134
|
}
|
|
133
135
|
};
|
|
134
|
-
exports.
|
|
136
|
+
exports.hasPart = hasPart;
|
|
137
|
+
var getPart = function (key) {
|
|
135
138
|
if (!key || key.length === 0)
|
|
136
139
|
return [];
|
|
137
140
|
switch (key.slice(0, 1).charCodeAt(0)) {
|
|
@@ -165,3 +168,4 @@ exports.getPart = function (key) {
|
|
|
165
168
|
default: return [];
|
|
166
169
|
}
|
|
167
170
|
};
|
|
171
|
+
exports.getPart = getPart;
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
8
12
|
}));
|
|
9
13
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
15
|
};
|
|
12
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
17
|
__exportStar(require("./LanguagePicker"), exports);
|
|
@@ -12,5 +12,9 @@ export interface ILanguagePickerStrings {
|
|
|
12
12
|
select: string;
|
|
13
13
|
cancel: string;
|
|
14
14
|
phonetic: string;
|
|
15
|
+
changeName?: string;
|
|
16
|
+
nameInstruction?: string;
|
|
17
|
+
newName?: string;
|
|
18
|
+
change?: string;
|
|
15
19
|
}
|
|
16
20
|
export declare const languagePickerStrings_en: ILanguagePickerStrings;
|
|
@@ -15,5 +15,9 @@ exports.languagePickerStrings_en = {
|
|
|
15
15
|
inScript: ' in the $1 script',
|
|
16
16
|
select: 'Save',
|
|
17
17
|
cancel: 'Cancel',
|
|
18
|
-
phonetic: 'Phonetic'
|
|
18
|
+
phonetic: 'Phonetic',
|
|
19
|
+
changeName: 'Change Name',
|
|
20
|
+
nameInstruction: 'If you would like to change the language name enter the new name here.',
|
|
21
|
+
newName: 'New Language Name',
|
|
22
|
+
change: 'Change',
|
|
19
23
|
};
|
package/dist/model/index.js
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
8
12
|
}));
|
|
9
13
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
15
|
};
|
|
12
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
17
|
__exportStar(require("../langPicker/types"), exports);
|
package/dist/useDebounce.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
var react_1 = require("react");
|
|
4
4
|
var useDebounce = function (value, delay) {
|
|
5
|
-
var _a = react_1.useState(value), debouncedValue = _a[0], setDebouncedValue = _a[1];
|
|
6
|
-
react_1.useEffect(function () {
|
|
5
|
+
var _a = (0, react_1.useState)(value), debouncedValue = _a[0], setDebouncedValue = _a[1];
|
|
6
|
+
(0, react_1.useEffect)(function () {
|
|
7
7
|
var handler = setTimeout(function () {
|
|
8
8
|
setDebouncedValue(value);
|
|
9
9
|
}, delay);
|
package/dist/util/badChar.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.woBadChar = exports.hasBadChar = void 0;
|
|
4
4
|
var badChar = " (),.:/!?_'`0123456789";
|
|
5
|
-
|
|
5
|
+
var hasBadChar = function (s) {
|
|
6
6
|
for (var _i = 0, _a = s.split(''); _i < _a.length; _i++) {
|
|
7
7
|
var c = _a[_i];
|
|
8
8
|
if (badChar.indexOf(c) !== -1)
|
|
@@ -10,7 +10,8 @@ exports.hasBadChar = function (s) {
|
|
|
10
10
|
}
|
|
11
11
|
return false;
|
|
12
12
|
};
|
|
13
|
-
exports.
|
|
13
|
+
exports.hasBadChar = hasBadChar;
|
|
14
|
+
var woBadChar = function (s) {
|
|
14
15
|
if (!s)
|
|
15
16
|
return '';
|
|
16
17
|
var result = '';
|
|
@@ -21,3 +22,4 @@ exports.woBadChar = function (s) {
|
|
|
21
22
|
}
|
|
22
23
|
return result;
|
|
23
24
|
};
|
|
25
|
+
exports.woBadChar = woBadChar;
|
package/dist/util/index.js
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
8
12
|
}));
|
|
9
13
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
15
|
};
|
|
12
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
17
|
__exportStar(require("./badChar"), exports);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mui-language-picker",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.2",
|
|
4
4
|
"description": "Material UI language picker",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -29,42 +29,47 @@
|
|
|
29
29
|
},
|
|
30
30
|
"homepage": "https://github.com/sillsdev/mui-language-picker#readme",
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@babel/cli": "^7.
|
|
33
|
-
"@babel/core": "^7.
|
|
34
|
-
"@babel/preset-env": "^7.
|
|
35
|
-
"@babel/preset-react": "^7.
|
|
36
|
-
"@
|
|
37
|
-
"@
|
|
38
|
-
"@
|
|
39
|
-
"@
|
|
40
|
-
"@testing-library/
|
|
41
|
-
"@
|
|
32
|
+
"@babel/cli": "^7.18.10",
|
|
33
|
+
"@babel/core": "^7.18.13",
|
|
34
|
+
"@babel/preset-env": "^7.18.10",
|
|
35
|
+
"@babel/preset-react": "^7.18.6",
|
|
36
|
+
"@emotion/react": "^11.10.0",
|
|
37
|
+
"@emotion/styled": "^11.10.0",
|
|
38
|
+
"@mui/icons-material": "^5.10.2",
|
|
39
|
+
"@mui/material": "^5.10.2",
|
|
40
|
+
"@testing-library/jest-dom": "^5.16.5",
|
|
41
|
+
"@testing-library/react": "^13.3.0",
|
|
42
|
+
"@testing-library/user-event": "^13.5.0",
|
|
43
|
+
"@types/jest": "^27.5.2",
|
|
42
44
|
"@types/lodash": "^4.14.162",
|
|
43
|
-
"@types/node": "^
|
|
44
|
-
"@types/react": "^
|
|
45
|
-
"@types/react-dom": "^
|
|
45
|
+
"@types/node": "^16.11.52",
|
|
46
|
+
"@types/react": "^18.0.17",
|
|
47
|
+
"@types/react-dom": "^18.0.6",
|
|
46
48
|
"copyfiles": "^2.4.0",
|
|
47
|
-
"jest": "^
|
|
48
|
-
"
|
|
49
|
-
"react
|
|
49
|
+
"jest": "^28.1.3",
|
|
50
|
+
"jest-environment-jsdom": "^28.1.3",
|
|
51
|
+
"react": "^18.2.0",
|
|
52
|
+
"react-dom": "^18.2.0",
|
|
53
|
+
"react-testing-library": "^8.0.1",
|
|
50
54
|
"rimraf": "^3.0.2",
|
|
51
|
-
"ts-jest": "^
|
|
55
|
+
"ts-jest": "^28.0.8",
|
|
52
56
|
"tslint": "^6.1.3",
|
|
53
|
-
"typescript": "^
|
|
57
|
+
"typescript": "^4.7.4",
|
|
54
58
|
"write": "^2.0.0"
|
|
55
59
|
},
|
|
56
60
|
"peerdependencies": {
|
|
57
|
-
"@
|
|
58
|
-
"@
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
+
"@emotion/react": "^11.10.0",
|
|
62
|
+
"@emotion/styled": "^11.10.0",
|
|
63
|
+
"@mui/icons-material": "^5.10.2",
|
|
64
|
+
"@mui/material": "^5.10.2",
|
|
65
|
+
"react": "^18.2.0",
|
|
66
|
+
"react-dom": "^18.2.0"
|
|
61
67
|
},
|
|
62
68
|
"prettier": {
|
|
63
69
|
"trailingComma": "es5"
|
|
64
70
|
},
|
|
65
71
|
"dependencies": {
|
|
66
|
-
"
|
|
67
|
-
"lodash": "^4.17.20"
|
|
72
|
+
"lodash": "^4.17.21"
|
|
68
73
|
},
|
|
69
74
|
"jest": {
|
|
70
75
|
"moduleFileExtensions": [
|
|
@@ -76,5 +81,17 @@
|
|
|
76
81
|
"\\.(ts|tsx)$": "ts-jest"
|
|
77
82
|
},
|
|
78
83
|
"testRegex": "(/__tests__/.*|.*\\.test)\\.(ts|tsx)$"
|
|
84
|
+
},
|
|
85
|
+
"browserslist": {
|
|
86
|
+
"production": [
|
|
87
|
+
">0.2%",
|
|
88
|
+
"not dead",
|
|
89
|
+
"not op_mini all"
|
|
90
|
+
],
|
|
91
|
+
"development": [
|
|
92
|
+
"last 1 chrome version",
|
|
93
|
+
"last 1 firefox version",
|
|
94
|
+
"last 1 safari version"
|
|
95
|
+
]
|
|
79
96
|
}
|
|
80
97
|
}
|