@daoyi/nmtl-ui 2.0.1-beta.91 → 2.0.1-beta.92
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/lib/components/{Autocomplete-887cda6a.js → Autocomplete-5d6f1df8.js} +44 -11
- package/lib/components/Autocomplete.js +5 -4
- package/lib/components/Avatar.js +1 -1
- package/lib/components/BackTop.js +2 -2
- package/lib/components/BarChart.js +1 -1
- package/lib/components/Breadcrumbs.js +1 -1
- package/lib/components/{Button-8742afeb.js → Button-305b69a0.js} +1 -1
- package/lib/components/Button.js +2 -2
- package/lib/components/Carousel.js +1 -1
- package/lib/components/CollapseContent.js +2 -2
- package/lib/components/{ContactModal-530d4d80.js → ContactModal-1997d146.js} +92 -20
- package/lib/components/ContactModal.js +9 -9
- package/lib/components/{Drawer-96442344.js → Drawer-b9855a54.js} +9 -2
- package/lib/components/Drawer.js +5 -4
- package/lib/components/Dropdown.js +1 -1
- package/lib/components/{Empty-94a8d8ff.js → Empty-bf77164f.js} +1 -1
- package/lib/components/Empty.js +2 -2
- package/lib/components/ExportButton.js +1 -1
- package/lib/components/{ExtraTools-bfb076ca.js → ExtraTools-5954ee3a.js} +72 -14
- package/lib/components/ExtraTools.js +3 -3
- package/lib/components/Filter.js +2 -2
- package/lib/components/Footer.js +9 -9
- package/lib/components/{ForwardLink-059be72d.js → ForwardLink-aa950a50.js} +12 -3
- package/lib/components/ForwardLink.js +3 -2
- package/lib/components/Header.js +24 -8
- package/lib/components/Image.js +1 -1
- package/lib/components/Input.js +1 -1
- package/lib/components/InputMethod.js +1 -1
- package/lib/components/{KeywordSearch-c3acab41.js → KeywordSearch-33341dd3.js} +2 -2
- package/lib/components/KeywordSearch.js +6 -5
- package/lib/components/KeywordTicker.js +4 -3
- package/lib/components/Keywords.js +6 -5
- package/lib/components/Loading.js +1 -1
- package/lib/components/{Modal-fc4320d3.js → Modal-5a27951f.js} +12 -4
- package/lib/components/Modal.js +5 -4
- package/lib/components/{MoreButton-d7c9f3b8.js → MoreButton-44d3b4fe.js} +1 -1
- package/lib/components/MoreButton.js +2 -2
- package/lib/components/Pagination.js +2 -2
- package/lib/components/SNA.js +3 -3
- package/lib/components/{Select-fdb4d9b8.js → Select-e550d0a5.js} +23 -6
- package/lib/components/Select.js +3 -3
- package/lib/components/{Spin-fafe3787.js → Spin-8dc60bfe.js} +1 -1
- package/lib/components/Spin.js +2 -2
- package/lib/components/{Tooltip-e67a18bc.js → Tooltip-6ebfa9c1.js} +1 -1
- package/lib/components/Tooltip.js +2 -2
- package/lib/components/globalConfig.js +27 -3
- package/package.json +1 -1
- /package/lib/components/{createSvgIcon-0d38de2e.js → createSvgIcon-e3803ee1.js} +0 -0
- /package/lib/components/{index-0be0afec.js → index-b47819f3.js} +0 -0
- /package/lib/components/{index-ef96775f.js → index-b76a85f4.js} +0 -0
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { _ as _extends$1, a as _slicedToArray, b as _objectSpread2 } from './_rollupPluginBabelHelpers-a52356f6.js';
|
|
2
2
|
import React__default, { useCallback, useState, useRef, useEffect } from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import { c as classNames } from './index-
|
|
4
|
+
import { c as classNames } from './index-b76a85f4.js';
|
|
5
5
|
import { d as debounce_1 } from './debounce-127da66c.js';
|
|
6
6
|
import { Autocomplete as Autocomplete$1 } from '@material-ui/lab';
|
|
7
7
|
import { Chip, TextField, CircularProgress } from '@material-ui/core';
|
|
8
8
|
import { Close, SearchOutlined } from '@material-ui/icons';
|
|
9
|
-
import { r as requireCreateSvgIcon, i as interopRequireDefault, a as interopRequireWildcard } from './createSvgIcon-
|
|
9
|
+
import { r as requireCreateSvgIcon, i as interopRequireDefault, a as interopRequireWildcard } from './createSvgIcon-e3803ee1.js';
|
|
10
10
|
import { _ as _extends, m as merge, d as defaultTheme, c as compose, b as borders, a as display, f as flexbox, g as grid, p as positions, e as palette, h as boxShadow, s as sizing, i as spacing, t as typography } from './defaultTheme-ed7746fe.js';
|
|
11
11
|
import 'react-is';
|
|
12
12
|
import { _ as _toConsumableArray } from './toConsumableArray-dbe8af76.js';
|
|
13
13
|
import { styled as styled$1 } from '@material-ui/styles';
|
|
14
|
+
import { getIntl } from './globalConfig';
|
|
14
15
|
import { s as styleInject } from './style-inject.es-1f59c1d0.js';
|
|
15
|
-
import { E as Empty } from './Empty-
|
|
16
|
+
import { E as Empty } from './Empty-bf77164f.js';
|
|
16
17
|
|
|
17
18
|
var ArrowDropDown = {};
|
|
18
19
|
|
|
@@ -97,7 +98,8 @@ var useAutocomplete = (_ref => {
|
|
|
97
98
|
onEnter,
|
|
98
99
|
currentResult,
|
|
99
100
|
setCurrentDefaultValue,
|
|
100
|
-
arrowIcon
|
|
101
|
+
arrowIcon,
|
|
102
|
+
ariaLabel
|
|
101
103
|
} = _ref;
|
|
102
104
|
const getValue = useCallback(data => typeof data === 'object' ? data.value : data, []);
|
|
103
105
|
const getLabel = useCallback(value => {
|
|
@@ -156,7 +158,13 @@ var useAutocomplete = (_ref => {
|
|
|
156
158
|
}, getTagProps({
|
|
157
159
|
index
|
|
158
160
|
})))), [options]);
|
|
159
|
-
const defaultRenderInput = useCallback(params => /*#__PURE__*/React__default.createElement(TextField
|
|
161
|
+
const defaultRenderInput = useCallback(params => /*#__PURE__*/React__default.createElement(TextField
|
|
162
|
+
// WCAG 3.3.2 輸入框需有可及名稱(placeholder 不是 label),未提供 ariaLabel 時以 placeholder 代替
|
|
163
|
+
, _extends$1({}, params, {
|
|
164
|
+
inputProps: {
|
|
165
|
+
...params.inputProps,
|
|
166
|
+
'aria-label': ariaLabel || placeholder
|
|
167
|
+
},
|
|
160
168
|
variant: "outlined",
|
|
161
169
|
placeholder: placeholder,
|
|
162
170
|
InputProps: {
|
|
@@ -165,8 +173,16 @@ var useAutocomplete = (_ref => {
|
|
|
165
173
|
className: "autocomplete__icon",
|
|
166
174
|
color: "inherit",
|
|
167
175
|
size: 20
|
|
168
|
-
}), searchIcon &&
|
|
176
|
+
}), searchIcon &&
|
|
177
|
+
/*#__PURE__*/
|
|
178
|
+
// WCAG 2.1.1 / 4.1.2 搜尋圖示為可點擊元素,需可鍵盤操作並有名稱
|
|
179
|
+
React__default.createElement(SearchOutlined, {
|
|
169
180
|
className: "autocomplete__icon",
|
|
181
|
+
role: "button",
|
|
182
|
+
tabIndex: 0,
|
|
183
|
+
"aria-label": getIntl().formatMessage({
|
|
184
|
+
id: 'aria.autocomplete.search'
|
|
185
|
+
}),
|
|
170
186
|
onClick: event => {
|
|
171
187
|
const tmpObj = {
|
|
172
188
|
labels: currentResult || '',
|
|
@@ -174,6 +190,17 @@ var useAutocomplete = (_ref => {
|
|
|
174
190
|
};
|
|
175
191
|
setCurrentDefaultValue(tmpObj);
|
|
176
192
|
return onEnter(event, tmpObj);
|
|
193
|
+
},
|
|
194
|
+
onKeyDown: event => {
|
|
195
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
196
|
+
event.preventDefault();
|
|
197
|
+
const tmpObj = {
|
|
198
|
+
labels: currentResult || '',
|
|
199
|
+
value: currentResult || ''
|
|
200
|
+
};
|
|
201
|
+
setCurrentDefaultValue(tmpObj);
|
|
202
|
+
onEnter(event, tmpObj);
|
|
203
|
+
}
|
|
177
204
|
}
|
|
178
205
|
}), !searchIcon && !loading && arrowIcon && /*#__PURE__*/React__default.createElement(Box, {
|
|
179
206
|
style: {
|
|
@@ -183,7 +210,7 @@ var useAutocomplete = (_ref => {
|
|
|
183
210
|
}
|
|
184
211
|
}, /*#__PURE__*/React__default.createElement(default_1, null)), params.InputProps.endAdornment)
|
|
185
212
|
}
|
|
186
|
-
})), [loading, searchIcon, arrowIcon]);
|
|
213
|
+
})), [loading, searchIcon, arrowIcon, ariaLabel, placeholder]);
|
|
187
214
|
return {
|
|
188
215
|
getValue,
|
|
189
216
|
getValueFromOptions,
|
|
@@ -210,7 +237,8 @@ var Autocomplete = function Autocomplete(props) {
|
|
|
210
237
|
placeholder = props.placeholder,
|
|
211
238
|
searchIcon = props.searchIcon,
|
|
212
239
|
_renderInput = props.renderInput,
|
|
213
|
-
_renderTags = props.renderTags
|
|
240
|
+
_renderTags = props.renderTags,
|
|
241
|
+
ariaLabel = props.ariaLabel;
|
|
214
242
|
var _onChange = props.onChange,
|
|
215
243
|
onSearch = props.onSearch,
|
|
216
244
|
onFocus = props.onFocus,
|
|
@@ -237,7 +265,7 @@ var Autocomplete = function Autocomplete(props) {
|
|
|
237
265
|
_useState10 = _slicedToArray(_useState9, 2),
|
|
238
266
|
currentDefaultValue = _useState10[0],
|
|
239
267
|
setCurrentDefaultValue = _useState10[1];
|
|
240
|
-
var _useAutocomplete = useAutocomplete(_objectSpread2({}, {
|
|
268
|
+
var _useAutocomplete = useAutocomplete(_objectSpread2(_objectSpread2({}, {
|
|
241
269
|
options: options,
|
|
242
270
|
placeholder: placeholder,
|
|
243
271
|
loading: loading,
|
|
@@ -247,6 +275,8 @@ var Autocomplete = function Autocomplete(props) {
|
|
|
247
275
|
onEnter: onEnter,
|
|
248
276
|
setCurrentDefaultValue: setCurrentDefaultValue,
|
|
249
277
|
arrowIcon: arrowIcon
|
|
278
|
+
}), {}, {
|
|
279
|
+
ariaLabel: ariaLabel
|
|
250
280
|
})),
|
|
251
281
|
getValue = _useAutocomplete.getValue,
|
|
252
282
|
getValueFromOptions = _useAutocomplete.getValueFromOptions,
|
|
@@ -384,7 +414,8 @@ Autocomplete.defaultProps = {
|
|
|
384
414
|
onFocus: function onFocus() {},
|
|
385
415
|
onBlur: function onBlur() {},
|
|
386
416
|
onEnter: function onEnter() {},
|
|
387
|
-
arrowIcon: false
|
|
417
|
+
arrowIcon: false,
|
|
418
|
+
ariaLabel: undefined
|
|
388
419
|
};
|
|
389
420
|
Autocomplete.propTypes = {
|
|
390
421
|
/** Css名稱 */
|
|
@@ -426,7 +457,9 @@ Autocomplete.propTypes = {
|
|
|
426
457
|
/** 鍵盤輸入Enter的callback */
|
|
427
458
|
onEnter: PropTypes.func,
|
|
428
459
|
/** 是否顯示arrow icon */
|
|
429
|
-
arrowIcon: PropTypes.bool
|
|
460
|
+
arrowIcon: PropTypes.bool,
|
|
461
|
+
/** 輸入框的無障礙名稱(WCAG 3.3.2),未提供時以placeholder代替 */
|
|
462
|
+
ariaLabel: PropTypes.string
|
|
430
463
|
};
|
|
431
464
|
|
|
432
465
|
export { Autocomplete as A };
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
export { A as default } from './Autocomplete-
|
|
1
|
+
export { A as default } from './Autocomplete-5d6f1df8.js';
|
|
2
2
|
import './_rollupPluginBabelHelpers-a52356f6.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
import 'prop-types';
|
|
5
|
-
import './index-
|
|
5
|
+
import './index-b76a85f4.js';
|
|
6
6
|
import './debounce-127da66c.js';
|
|
7
7
|
import './isObjectLike-e111475d.js';
|
|
8
8
|
import './_commonjsHelpers-70de2c37.js';
|
|
9
9
|
import '@material-ui/lab';
|
|
10
10
|
import '@material-ui/core';
|
|
11
11
|
import '@material-ui/icons';
|
|
12
|
-
import './createSvgIcon-
|
|
12
|
+
import './createSvgIcon-e3803ee1.js';
|
|
13
13
|
import './defaultTheme-ed7746fe.js';
|
|
14
14
|
import 'react-is';
|
|
15
15
|
import '@material-ui/styles';
|
|
16
16
|
import 'react-dom';
|
|
17
17
|
import './toConsumableArray-dbe8af76.js';
|
|
18
|
+
import './globalConfig';
|
|
18
19
|
import './style-inject.es-1f59c1d0.js';
|
|
19
|
-
import './Empty-
|
|
20
|
+
import './Empty-bf77164f.js';
|
package/lib/components/Avatar.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
|
-
import { c as classNames } from './index-
|
|
2
|
+
import { c as classNames } from './index-b76a85f4.js';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import { Avatar as Avatar$1 } from '@material-ui/core';
|
|
5
5
|
import { s as styleInject } from './style-inject.es-1f59c1d0.js';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { a as _slicedToArray } from './_rollupPluginBabelHelpers-a52356f6.js';
|
|
2
2
|
import React__default, { useState, useRef, useEffect } from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import { c as classNames } from './index-
|
|
4
|
+
import { c as classNames } from './index-b76a85f4.js';
|
|
5
5
|
import { d as debounce_1 } from './debounce-127da66c.js';
|
|
6
6
|
import { Fade, NoSsr, Box } from '@material-ui/core';
|
|
7
|
-
import { r as requireCreateSvgIcon, i as interopRequireDefault, a as interopRequireWildcard } from './createSvgIcon-
|
|
7
|
+
import { r as requireCreateSvgIcon, i as interopRequireDefault, a as interopRequireWildcard } from './createSvgIcon-e3803ee1.js';
|
|
8
8
|
import { s as styleInject } from './style-inject.es-1f59c1d0.js';
|
|
9
9
|
import './isObjectLike-e111475d.js';
|
|
10
10
|
import './_commonjsHelpers-70de2c37.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React__default, { useEffect } from 'react';
|
|
2
|
-
import { c as classNames } from './index-
|
|
2
|
+
import { c as classNames } from './index-b76a85f4.js';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import { g as constant$1, h as interpolateNumber, j as color, k as interpolateRgb, l as interpolateString, n as exponent, o as ordinal, p as initRange, r as map, s as slice$1, u as bisectRight, v as formatSpecifier, w as formatPrefix, x as format, d as d3Select } from './transform-3a04288b.js';
|
|
5
5
|
import { s as styleInject } from './style-inject.es-1f59c1d0.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
|
-
import { c as classNames } from './index-
|
|
2
|
+
import { c as classNames } from './index-b76a85f4.js';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import { NavLink } from 'react-router-dom';
|
|
5
5
|
import { Typography, Breadcrumbs as Breadcrumbs$1 } from '@material-ui/core';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { c as classNames } from './index-
|
|
3
|
+
import { c as classNames } from './index-b76a85f4.js';
|
|
4
4
|
import { Button as Button$1, CircularProgress } from '@material-ui/core';
|
|
5
5
|
import { s as styleInject } from './style-inject.es-1f59c1d0.js';
|
|
6
6
|
|
package/lib/components/Button.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { B as default } from './Button-
|
|
1
|
+
export { B as default } from './Button-305b69a0.js';
|
|
2
2
|
import 'react';
|
|
3
3
|
import 'prop-types';
|
|
4
|
-
import './index-
|
|
4
|
+
import './index-b76a85f4.js';
|
|
5
5
|
import '@material-ui/core';
|
|
6
6
|
import './style-inject.es-1f59c1d0.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { c as _objectWithoutProperties$1, b as _objectSpread2, _ as _extends$3 } from './_rollupPluginBabelHelpers-a52356f6.js';
|
|
2
2
|
import React__default, { forwardRef, useRef, useImperativeHandle } from 'react';
|
|
3
|
-
import { a as classnames, c as classNames } from './index-
|
|
3
|
+
import { a as classnames, c as classNames } from './index-b76a85f4.js';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
import { c as commonjsGlobal, g as getAugmentedNamespace, a as getDefaultExportFromCjs } from './_commonjsHelpers-70de2c37.js';
|
|
6
6
|
import { s as styleInject } from './style-inject.es-1f59c1d0.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { a as _slicedToArray } from './_rollupPluginBabelHelpers-a52356f6.js';
|
|
2
2
|
import React__default, { useState, useRef, useEffect } from 'react';
|
|
3
|
-
import { c as classNames } from './index-
|
|
3
|
+
import { c as classNames } from './index-b76a85f4.js';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
import { Typography } from '@material-ui/core';
|
|
6
|
-
import { M as MoreButton } from './MoreButton-
|
|
6
|
+
import { M as MoreButton } from './MoreButton-44d3b4fe.js';
|
|
7
7
|
import { s as styleInject } from './style-inject.es-1f59c1d0.js';
|
|
8
8
|
import '@material-ui/icons';
|
|
9
9
|
|
|
@@ -3,14 +3,14 @@ import React__default, { createContext, forwardRef, createElement, useContext, u
|
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import { h as hoistNonReactStatics_cjs } from './hoist-non-react-statics.cjs-3f408ad2.js';
|
|
5
5
|
import axios from 'axios';
|
|
6
|
-
import { M as Modal } from './Modal-
|
|
6
|
+
import { M as Modal } from './Modal-5a27951f.js';
|
|
7
7
|
import { c as commonjsGlobal, a as getDefaultExportFromCjs } from './_commonjsHelpers-70de2c37.js';
|
|
8
|
-
import { c as classNames } from './index-
|
|
8
|
+
import { c as classNames } from './index-b76a85f4.js';
|
|
9
9
|
import { Input, Button, Box, Typography, FormControl, RadioGroup, FormControlLabel, Radio, TextField, TextareaAutosize } from '@material-ui/core';
|
|
10
|
-
import { S as Select } from './Select-
|
|
11
|
-
import { s as styleInject } from './style-inject.es-1f59c1d0.js';
|
|
12
|
-
import { r as requireCreateSvgIcon, i as interopRequireDefault, a as interopRequireWildcard } from './createSvgIcon-0d38de2e.js';
|
|
10
|
+
import { S as Select } from './Select-e550d0a5.js';
|
|
13
11
|
import { getIntl } from './globalConfig';
|
|
12
|
+
import { s as styleInject } from './style-inject.es-1f59c1d0.js';
|
|
13
|
+
import { r as requireCreateSvgIcon, i as interopRequireDefault, a as interopRequireWildcard } from './createSvgIcon-e3803ee1.js';
|
|
14
14
|
|
|
15
15
|
var isArray$1 = Array.isArray;
|
|
16
16
|
var keyList = Object.keys;
|
|
@@ -10000,7 +10000,9 @@ const VCode = _ref => {
|
|
|
10000
10000
|
visible,
|
|
10001
10001
|
onChange,
|
|
10002
10002
|
formatMessage,
|
|
10003
|
-
name
|
|
10003
|
+
name,
|
|
10004
|
+
inputId,
|
|
10005
|
+
required
|
|
10004
10006
|
} = _ref;
|
|
10005
10007
|
const [codeConfig, setCodeConfig] = useState(getConfig());
|
|
10006
10008
|
const {
|
|
@@ -10020,6 +10022,10 @@ const VCode = _ref => {
|
|
|
10020
10022
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
10021
10023
|
className: "vcode"
|
|
10022
10024
|
}, /*#__PURE__*/React__default.createElement(Input, {
|
|
10025
|
+
inputProps: {
|
|
10026
|
+
id: inputId,
|
|
10027
|
+
'aria-required': required || undefined
|
|
10028
|
+
},
|
|
10023
10029
|
placeholder: formatMessage({
|
|
10024
10030
|
id: 'common.form.code.check'
|
|
10025
10031
|
}),
|
|
@@ -10027,14 +10033,20 @@ const VCode = _ref => {
|
|
|
10027
10033
|
}), /*#__PURE__*/React__default.createElement("div", {
|
|
10028
10034
|
className: "vcode__box"
|
|
10029
10035
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
10030
|
-
className: "vcode__image"
|
|
10036
|
+
className: "vcode__image",
|
|
10037
|
+
role: "img",
|
|
10038
|
+
"aria-label": getIntl().formatMessage({
|
|
10039
|
+
id: 'aria.vcode.image'
|
|
10040
|
+
})
|
|
10031
10041
|
}, /*#__PURE__*/React__default.createElement("canvas", {
|
|
10032
10042
|
id: "bgi",
|
|
10033
10043
|
width: "200",
|
|
10034
|
-
height: "200"
|
|
10044
|
+
height: "200",
|
|
10045
|
+
"aria-hidden": "true"
|
|
10035
10046
|
}), data.map((v, i) => /*#__PURE__*/React__default.createElement("div", {
|
|
10036
10047
|
key: i.toString(),
|
|
10037
10048
|
className: "vcode__image__itemStr",
|
|
10049
|
+
"aria-hidden": "true",
|
|
10038
10050
|
style: {
|
|
10039
10051
|
transform: `rotate(${rotate[i]}deg)`,
|
|
10040
10052
|
fontSize: `${fz[i]}px`,
|
|
@@ -10042,7 +10054,18 @@ const VCode = _ref => {
|
|
|
10042
10054
|
}
|
|
10043
10055
|
}, convert(v))), /*#__PURE__*/React__default.createElement("div", {
|
|
10044
10056
|
className: "vcode__image__mask",
|
|
10045
|
-
|
|
10057
|
+
role: "button",
|
|
10058
|
+
tabIndex: 0,
|
|
10059
|
+
"aria-label": getIntl().formatMessage({
|
|
10060
|
+
id: 'aria.vcode.refresh'
|
|
10061
|
+
}),
|
|
10062
|
+
onClick: refresh,
|
|
10063
|
+
onKeyDown: e => {
|
|
10064
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
10065
|
+
e.preventDefault();
|
|
10066
|
+
refresh();
|
|
10067
|
+
}
|
|
10068
|
+
}
|
|
10046
10069
|
}, formatMessage({
|
|
10047
10070
|
id: 'common.click.refresh'
|
|
10048
10071
|
}))), /*#__PURE__*/React__default.createElement(ErrorMessage, {
|
|
@@ -10056,14 +10079,20 @@ VCode.defaultProps = {
|
|
|
10056
10079
|
// placeholder: undefined,
|
|
10057
10080
|
onChange: () => {},
|
|
10058
10081
|
formatMessage: () => {},
|
|
10059
|
-
name: undefined
|
|
10082
|
+
name: undefined,
|
|
10083
|
+
inputId: undefined,
|
|
10084
|
+
required: false
|
|
10060
10085
|
};
|
|
10061
10086
|
VCode.propTypes = {
|
|
10062
10087
|
visible: PropTypes.bool,
|
|
10063
10088
|
// placeholder: PropTypes.string,
|
|
10064
10089
|
onChange: PropTypes.func,
|
|
10065
10090
|
formatMessage: PropTypes.func,
|
|
10066
|
-
name: PropTypes.string
|
|
10091
|
+
name: PropTypes.string,
|
|
10092
|
+
/** 與外部 label 關聯用的 input id(WCAG 3.3.2) */
|
|
10093
|
+
inputId: PropTypes.string,
|
|
10094
|
+
/** 是否必填(aria-required) */
|
|
10095
|
+
required: PropTypes.bool
|
|
10067
10096
|
};
|
|
10068
10097
|
|
|
10069
10098
|
var facebookLoginWithButton = {exports: {}};
|
|
@@ -10090,7 +10119,9 @@ const EmailInput = _ref => {
|
|
|
10090
10119
|
value,
|
|
10091
10120
|
placeholder,
|
|
10092
10121
|
onChange,
|
|
10093
|
-
onNotify
|
|
10122
|
+
onNotify,
|
|
10123
|
+
inputId,
|
|
10124
|
+
required
|
|
10094
10125
|
} = _ref;
|
|
10095
10126
|
const [init, setInit] = useState(false); // google login 在init時會先failed
|
|
10096
10127
|
useMemo(() => () => setTimeout(() => setInit(true), 1000), []); // 故延遲一秒後再給google call(最非最佳解 可優化)
|
|
@@ -10139,6 +10170,10 @@ const EmailInput = _ref => {
|
|
|
10139
10170
|
className: "emailInput__operator"
|
|
10140
10171
|
}, /*#__PURE__*/React__default.createElement(Input, {
|
|
10141
10172
|
value: value,
|
|
10173
|
+
inputProps: {
|
|
10174
|
+
id: inputId,
|
|
10175
|
+
'aria-required': required || undefined
|
|
10176
|
+
},
|
|
10142
10177
|
placeholder: placeholder,
|
|
10143
10178
|
onChange: e => onChange(e.target.value)
|
|
10144
10179
|
})));
|
|
@@ -10147,13 +10182,19 @@ EmailInput.defaultProps = {
|
|
|
10147
10182
|
value: undefined,
|
|
10148
10183
|
placeholder: undefined,
|
|
10149
10184
|
onChange: () => {},
|
|
10150
|
-
onNotify: () => {}
|
|
10185
|
+
onNotify: () => {},
|
|
10186
|
+
inputId: undefined,
|
|
10187
|
+
required: false
|
|
10151
10188
|
};
|
|
10152
10189
|
EmailInput.propTypes = {
|
|
10153
10190
|
value: PropTypes.string,
|
|
10154
10191
|
placeholder: PropTypes.string,
|
|
10155
10192
|
onChange: PropTypes.func,
|
|
10156
|
-
onNotify: PropTypes.func
|
|
10193
|
+
onNotify: PropTypes.func,
|
|
10194
|
+
/** 與外部 label 關聯用的 input id(WCAG 3.3.2) */
|
|
10195
|
+
inputId: PropTypes.string,
|
|
10196
|
+
/** 是否必填(aria-required) */
|
|
10197
|
+
required: PropTypes.bool
|
|
10157
10198
|
};
|
|
10158
10199
|
|
|
10159
10200
|
var CloudUpload = {};
|
|
@@ -11538,7 +11579,7 @@ Upload.propTypes = {
|
|
|
11538
11579
|
onChange: PropTypes.func.isRequired
|
|
11539
11580
|
};
|
|
11540
11581
|
|
|
11541
|
-
var css_248z = ".formItem {\n width: 100%;\n margin-bottom: 16px;\n}\n.formItem:last-child {\n margin-bottom: initial;\n}\n.formItem__title {\n display: flex;\n font-size: 16px;\n font-weight: bold;\n}\n.formItem__title__star {\n margin-left: 3px;\n color: #
|
|
11582
|
+
var css_248z = ".formItem {\n width: 100%;\n margin-bottom: 16px;\n}\n.formItem:last-child {\n margin-bottom: initial;\n}\n.formItem__title {\n display: flex;\n font-size: 16px;\n font-weight: bold;\n}\n.formItem__title__star {\n margin-left: 3px;\n color: #b91c1c;\n}\n.formItem__operator {\n margin: 2px 0;\n font-size: 14px;\n}\n.formItem__operator__radio__desc {\n margin-left: 35px !important;\n}\n.formItem__operator--unsupport {\n border: 1px solid #d93333;\n background: pink;\n color: black;\n padding: 5px 10px;\n}\n.formItem__error {\n color: #b91c1c;\n font-weight: bold;\n}\n.formItem textarea {\n border: 1px solid #d9d9d9;\n border-radius: 3px;\n width: 100%;\n background: transparent;\n padding: 6px 10px;\n}\n.formItem ::-webkit-calendar-picker-indicator {\n filter: invert(1);\n}";
|
|
11542
11583
|
styleInject(css_248z);
|
|
11543
11584
|
|
|
11544
11585
|
const FormItem = _ref => {
|
|
@@ -11558,22 +11599,35 @@ const FormItem = _ref => {
|
|
|
11558
11599
|
const currentPlaceholder = placeholder || `${formatMessage({
|
|
11559
11600
|
id: 'common.enter'
|
|
11560
11601
|
})} ${label}`;
|
|
11602
|
+
/* WCAG 1.3.1/3.3.2 欄位與標題的程式化關聯(WAVE: Missing form label) */
|
|
11603
|
+
const inputId = `form-input-${name}`;
|
|
11604
|
+
const labelId = `form-label-${name}`;
|
|
11605
|
+
const a11yInputProps = {
|
|
11606
|
+
id: inputId,
|
|
11607
|
+
'aria-required': required || undefined
|
|
11608
|
+
};
|
|
11609
|
+
/* 這些欄位型別會渲染帶 inputId 的 input,標題才能用 label htmlFor;其餘型別改以 aria-labelledby 關聯 */
|
|
11610
|
+
const hasInputId = ['input', 'textarea', 'datePicker', 'email', 'vcode'].includes(type);
|
|
11561
11611
|
const render = field => {
|
|
11562
11612
|
let component;
|
|
11563
11613
|
switch (type) {
|
|
11564
11614
|
case 'input':
|
|
11565
11615
|
component = /*#__PURE__*/React__default.createElement(Input, _extends$1({}, field, {
|
|
11616
|
+
inputProps: a11yInputProps,
|
|
11566
11617
|
placeholder: currentPlaceholder
|
|
11567
11618
|
}));
|
|
11568
11619
|
break;
|
|
11569
11620
|
case 'textarea':
|
|
11570
11621
|
component = /*#__PURE__*/React__default.createElement(TextareaAutosize, _extends$1({}, field, {
|
|
11622
|
+
id: inputId,
|
|
11623
|
+
"aria-required": required || undefined,
|
|
11571
11624
|
minRows: 3,
|
|
11572
11625
|
placeholder: currentPlaceholder
|
|
11573
11626
|
}));
|
|
11574
11627
|
break;
|
|
11575
11628
|
case 'select':
|
|
11576
11629
|
component = /*#__PURE__*/React__default.createElement(Select, _extends$1({}, field, {
|
|
11630
|
+
ariaLabelledby: labelId,
|
|
11577
11631
|
options: options,
|
|
11578
11632
|
placeholder: currentPlaceholder,
|
|
11579
11633
|
onChange: age => setFieldValue(field.name, age)
|
|
@@ -11581,12 +11635,15 @@ const FormItem = _ref => {
|
|
|
11581
11635
|
break;
|
|
11582
11636
|
case 'datePicker':
|
|
11583
11637
|
component = /*#__PURE__*/React__default.createElement(TextField, _extends$1({}, field, {
|
|
11638
|
+
inputProps: a11yInputProps,
|
|
11584
11639
|
type: "date",
|
|
11585
11640
|
onChange: event => setFieldValue(field.name, event.target.value)
|
|
11586
11641
|
}));
|
|
11587
11642
|
break;
|
|
11588
11643
|
case 'email':
|
|
11589
11644
|
component = /*#__PURE__*/React__default.createElement(EmailInput, _extends$1({}, field, {
|
|
11645
|
+
inputId: inputId,
|
|
11646
|
+
required: required,
|
|
11590
11647
|
placeholder: currentPlaceholder,
|
|
11591
11648
|
onChange: email => setFieldValue(field.name, email),
|
|
11592
11649
|
onNotify: onNotify
|
|
@@ -11594,7 +11651,8 @@ const FormItem = _ref => {
|
|
|
11594
11651
|
break;
|
|
11595
11652
|
case 'radio':
|
|
11596
11653
|
component = /*#__PURE__*/React__default.createElement(FormControl, {
|
|
11597
|
-
component: "fieldset"
|
|
11654
|
+
component: "fieldset",
|
|
11655
|
+
"aria-labelledby": labelId
|
|
11598
11656
|
}, /*#__PURE__*/React__default.createElement(RadioGroup, field, options.map(option => /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(FormControlLabel, {
|
|
11599
11657
|
key: option.value,
|
|
11600
11658
|
value: option.value,
|
|
@@ -11612,6 +11670,8 @@ const FormItem = _ref => {
|
|
|
11612
11670
|
break;
|
|
11613
11671
|
case 'vcode':
|
|
11614
11672
|
component = /*#__PURE__*/React__default.createElement(VCode, {
|
|
11673
|
+
inputId: inputId,
|
|
11674
|
+
required: required,
|
|
11615
11675
|
placeholder: currentPlaceholder,
|
|
11616
11676
|
onChange: pass => setFieldValue(field.name, pass),
|
|
11617
11677
|
formatMessage: formatMessage,
|
|
@@ -11633,11 +11693,23 @@ const FormItem = _ref => {
|
|
|
11633
11693
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
11634
11694
|
id: `form-${name}`,
|
|
11635
11695
|
className: "formItem"
|
|
11636
|
-
}, label &&
|
|
11637
|
-
|
|
11696
|
+
}, label && (hasInputId ?
|
|
11697
|
+
/*#__PURE__*/
|
|
11698
|
+
// eslint-disable-next-line jsx-a11y/label-has-for, jsx-a11y/label-has-associated-control
|
|
11699
|
+
React__default.createElement("label", {
|
|
11700
|
+
className: "formItem__title",
|
|
11701
|
+
id: labelId,
|
|
11702
|
+
htmlFor: inputId
|
|
11703
|
+
}, label, required && /*#__PURE__*/React__default.createElement("div", {
|
|
11704
|
+
className: "formItem__title__star",
|
|
11705
|
+
"aria-hidden": "true"
|
|
11706
|
+
}, '*')) : /*#__PURE__*/React__default.createElement("div", {
|
|
11707
|
+
className: "formItem__title",
|
|
11708
|
+
id: labelId
|
|
11638
11709
|
}, label, required && /*#__PURE__*/React__default.createElement("div", {
|
|
11639
|
-
className: "formItem__title__star"
|
|
11640
|
-
|
|
11710
|
+
className: "formItem__title__star",
|
|
11711
|
+
"aria-hidden": "true"
|
|
11712
|
+
}, '*'))), hint && /*#__PURE__*/React__default.createElement(Box, {
|
|
11641
11713
|
my: 1
|
|
11642
11714
|
}, /*#__PURE__*/React__default.createElement(Typography, {
|
|
11643
11715
|
variant: "body2"
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
export { C as default } from './ContactModal-
|
|
1
|
+
export { C as default } from './ContactModal-1997d146.js';
|
|
2
2
|
import './_rollupPluginBabelHelpers-a52356f6.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
import 'prop-types';
|
|
5
5
|
import './hoist-non-react-statics.cjs-3f408ad2.js';
|
|
6
6
|
import 'react-is';
|
|
7
7
|
import 'axios';
|
|
8
|
-
import './Modal-
|
|
9
|
-
import './index-
|
|
8
|
+
import './Modal-5a27951f.js';
|
|
9
|
+
import './index-b76a85f4.js';
|
|
10
10
|
import '@material-ui/core';
|
|
11
11
|
import '@material-ui/icons';
|
|
12
|
-
import './Button-
|
|
12
|
+
import './Button-305b69a0.js';
|
|
13
13
|
import './style-inject.es-1f59c1d0.js';
|
|
14
|
-
import './Spin-
|
|
14
|
+
import './Spin-8dc60bfe.js';
|
|
15
|
+
import './globalConfig';
|
|
15
16
|
import './_commonjsHelpers-70de2c37.js';
|
|
16
|
-
import './Select-
|
|
17
|
-
import './Empty-
|
|
18
|
-
import './createSvgIcon-
|
|
17
|
+
import './Select-e550d0a5.js';
|
|
18
|
+
import './Empty-bf77164f.js';
|
|
19
|
+
import './createSvgIcon-e3803ee1.js';
|
|
19
20
|
import './defaultTheme-ed7746fe.js';
|
|
20
21
|
import '@material-ui/styles';
|
|
21
22
|
import 'react-dom';
|
|
22
|
-
import './globalConfig';
|
|
@@ -3,8 +3,9 @@ import React__default, { useState } from 'react';
|
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import { List, ListItem, ListItemIcon, ListItemText, IconButton, Drawer as Drawer$1, Divider } from '@material-ui/core';
|
|
5
5
|
import { DehazeRounded } from '@material-ui/icons';
|
|
6
|
-
import { S as Select } from './Select-
|
|
6
|
+
import { S as Select } from './Select-e550d0a5.js';
|
|
7
7
|
import { useHistory, useRouteMatch } from 'react-router-dom';
|
|
8
|
+
import { getIntl } from './globalConfig';
|
|
8
9
|
import { s as styleInject } from './style-inject.es-1f59c1d0.js';
|
|
9
10
|
|
|
10
11
|
var defaultSupportLanguage = [
|
|
@@ -90,11 +91,17 @@ var Drawer = function Drawer(_ref) {
|
|
|
90
91
|
className: "drawer"
|
|
91
92
|
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
92
93
|
className: "drawer__icon",
|
|
94
|
+
"aria-label": getIntl().formatMessage({
|
|
95
|
+
id: 'aria.header.menuOpen'
|
|
96
|
+
}),
|
|
97
|
+
"aria-haspopup": "menu",
|
|
98
|
+
"aria-expanded": open,
|
|
93
99
|
onClick: function onClick() {
|
|
94
100
|
return setOpen(true);
|
|
95
101
|
}
|
|
96
102
|
}, /*#__PURE__*/React__default.createElement(DehazeRounded, {
|
|
97
|
-
fontSize: "large"
|
|
103
|
+
fontSize: "large",
|
|
104
|
+
"aria-hidden": "true"
|
|
98
105
|
})), /*#__PURE__*/React__default.createElement(Drawer$1, {
|
|
99
106
|
anchor: "right",
|
|
100
107
|
open: open,
|
package/lib/components/Drawer.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
export { D as default } from './Drawer-
|
|
1
|
+
export { D as default } from './Drawer-b9855a54.js';
|
|
2
2
|
import './_rollupPluginBabelHelpers-a52356f6.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
import 'prop-types';
|
|
5
5
|
import '@material-ui/core';
|
|
6
6
|
import '@material-ui/icons';
|
|
7
|
-
import './Select-
|
|
8
|
-
import './index-
|
|
9
|
-
import './Empty-
|
|
7
|
+
import './Select-e550d0a5.js';
|
|
8
|
+
import './index-b76a85f4.js';
|
|
9
|
+
import './Empty-bf77164f.js';
|
|
10
10
|
import './style-inject.es-1f59c1d0.js';
|
|
11
11
|
import 'react-router-dom';
|
|
12
|
+
import './globalConfig';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as _slicedToArray } from './_rollupPluginBabelHelpers-a52356f6.js';
|
|
2
2
|
import React__default, { useRef, useState } from 'react';
|
|
3
|
-
import { c as classNames } from './index-
|
|
3
|
+
import { c as classNames } from './index-b76a85f4.js';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
import { Button, Menu, Divider, MenuItem, ListItemIcon, ListItemText } from '@material-ui/core';
|
|
6
6
|
import { makeStyles } from '@material-ui/styles';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { c as classNames } from './index-
|
|
3
|
+
import { c as classNames } from './index-b76a85f4.js';
|
|
4
4
|
import { s as styleInject } from './style-inject.es-1f59c1d0.js';
|
|
5
5
|
|
|
6
6
|
var img = "data:image/svg+xml,%3csvg class='ant-empty-img-default' width='184' height='152' viewBox='0 0 184 152' xmlns='http://www.w3.org/2000/svg'%3e %3cg fill='none' fill-rule='evenodd'%3e %3cg transform='translate(24 31.67)'%3e %3cellipse fill='%23f5f5f5' fill-opacity='0.8' cx='67.797' cy='106.89' rx='67.797' ry='12.668'%3e%3c/ellipse%3e %3cpath fill='%23aeb8c2' d='M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z'%3e%3c/path%3e %3cpath fill='url(%23linearGradient-1)' d='M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z' transform='translate(13.56)'%3e%3c/path%3e %3cpath fill='%23f5f5f7' d='M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z'%3e%3c/path%3e %3cpath fill='%23dce0e6' d='M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z'%3e%3c/path%3e %3c/g%3e %3cpath fill='%23dce0e6' d='M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z'%3e%3c/path%3e %3cg fill='white' transform='translate(149.65 15.383)'%3e %3cellipse cx='20.654' cy='3.167' rx='2.849' ry='2.815'%3e%3c/ellipse%3e %3cpath d='M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z'%3e%3c/path%3e %3c/g%3e %3c/g%3e%3c/svg%3e";
|
package/lib/components/Empty.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as _slicedToArray } from './_rollupPluginBabelHelpers-a52356f6.js';
|
|
2
2
|
import React__default, { useState } from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import { c as classNames } from './index-
|
|
4
|
+
import { c as classNames } from './index-b76a85f4.js';
|
|
5
5
|
import { ExitToApp } from '@material-ui/icons';
|
|
6
6
|
import { Dialog, DialogContent, DialogContentText, DialogActions, Button } from '@material-ui/core';
|
|
7
7
|
import { f as fileDownload, j as jsonTxt, a as jsonExcel } from './dataExport-d55d6fa3.js';
|