@atlaskit/datetime-picker 12.10.2 → 12.10.3
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/CHANGELOG.md +6 -0
- package/dist/cjs/components/date-picker.js +7 -7
- package/dist/cjs/components/date-time-picker.js +6 -10
- package/dist/cjs/components/time-picker.js +4 -6
- package/dist/cjs/internal/fixed-layer.js +2 -3
- package/dist/cjs/internal/index.js +5 -10
- package/dist/cjs/internal/single-value.js +2 -3
- package/dist/es2019/components/date-picker.js +4 -2
- package/dist/es2019/components/date-time-picker.js +1 -1
- package/dist/es2019/components/time-picker.js +1 -1
- package/dist/esm/components/date-picker.js +4 -2
- package/dist/esm/components/date-time-picker.js +1 -1
- package/dist/esm/components/time-picker.js +1 -1
- package/package.json +7 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @atlaskit/datetime-picker
|
|
2
2
|
|
|
3
|
+
## 12.10.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#41628](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/41628) [`b05664f7aba`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b05664f7aba) - Use feature flag to toggle if we enable UNSAFE_LAYERING
|
|
8
|
+
|
|
3
9
|
## 12.10.2
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
|
@@ -39,7 +39,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
39
39
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
40
40
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** @jsx jsx */
|
|
41
41
|
var packageName = "@atlaskit/datetime-picker";
|
|
42
|
-
var packageVersion = "12.10.
|
|
42
|
+
var packageVersion = "12.10.3";
|
|
43
43
|
function getValidDate(iso) {
|
|
44
44
|
var date = (0, _dateFns.parseISO)(iso);
|
|
45
45
|
return (0, _dateFns.isValid)(date) ? {
|
|
@@ -61,7 +61,9 @@ var menuStyles = (0, _react2.css)({
|
|
|
61
61
|
var Menu = function Menu(_ref) {
|
|
62
62
|
var selectProps = _ref.selectProps,
|
|
63
63
|
innerProps = _ref.innerProps;
|
|
64
|
-
return (0, _react2.jsx)(_layering.UNSAFE_LAYERING,
|
|
64
|
+
return (0, _react2.jsx)(_layering.UNSAFE_LAYERING, {
|
|
65
|
+
isDisabled: (0, _platformFeatureFlags.getBooleanFF)('platform.design-system-team.layering_qmiw3') ? false : true
|
|
66
|
+
}, (0, _react2.jsx)(_fixedLayer.default, {
|
|
65
67
|
inputValue: selectProps.inputValue,
|
|
66
68
|
containerRef: selectProps.calendarContainerRef,
|
|
67
69
|
content: (0, _react2.jsx)("div", (0, _extends2.default)({
|
|
@@ -113,7 +115,7 @@ var datePickerDefaultProps = {
|
|
|
113
115
|
// Not including a default prop for value as it will
|
|
114
116
|
// Make the component a controlled component
|
|
115
117
|
};
|
|
116
|
-
var DatePicker = /*#__PURE__*/function (_Component) {
|
|
118
|
+
var DatePicker = exports.DatePickerWithoutAnalytics = /*#__PURE__*/function (_Component) {
|
|
117
119
|
(0, _inherits2.default)(DatePicker, _Component);
|
|
118
120
|
var _super = _createSuper(DatePicker);
|
|
119
121
|
function DatePicker(props) {
|
|
@@ -533,9 +535,8 @@ var DatePicker = /*#__PURE__*/function (_Component) {
|
|
|
533
535
|
}]);
|
|
534
536
|
return DatePicker;
|
|
535
537
|
}(_react.Component);
|
|
536
|
-
exports.DatePickerWithoutAnalytics = DatePicker;
|
|
537
538
|
(0, _defineProperty2.default)(DatePicker, "defaultProps", datePickerDefaultProps);
|
|
538
|
-
var _default = (0, _analyticsNext.withAnalyticsContext)({
|
|
539
|
+
var _default = exports.default = (0, _analyticsNext.withAnalyticsContext)({
|
|
539
540
|
componentName: 'datePicker',
|
|
540
541
|
packageName: packageName,
|
|
541
542
|
packageVersion: packageVersion
|
|
@@ -549,5 +550,4 @@ var _default = (0, _analyticsNext.withAnalyticsContext)({
|
|
|
549
550
|
packageVersion: packageVersion
|
|
550
551
|
}
|
|
551
552
|
})
|
|
552
|
-
})(DatePicker));
|
|
553
|
-
exports.default = _default;
|
|
553
|
+
})(DatePicker));
|
|
@@ -31,7 +31,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
|
|
|
31
31
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
32
32
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /** @jsx jsx */
|
|
33
33
|
var packageName = "@atlaskit/datetime-picker";
|
|
34
|
-
var packageVersion = "12.10.
|
|
34
|
+
var packageVersion = "12.10.3";
|
|
35
35
|
var isInvalidBorderStyles = (0, _react2.css)({
|
|
36
36
|
borderColor: "var(--ds-border-danger, ".concat(_colors.R400, ")")
|
|
37
37
|
});
|
|
@@ -157,11 +157,9 @@ var dateTimePickerDefaultProps = {
|
|
|
157
157
|
// Make the component a controlled component
|
|
158
158
|
};
|
|
159
159
|
|
|
160
|
-
var datePickerDefaultAriaLabel = 'Date';
|
|
161
|
-
exports.
|
|
162
|
-
var
|
|
163
|
-
exports.timePickerDefaultAriaLabel = timePickerDefaultAriaLabel;
|
|
164
|
-
var DateTimePicker = /*#__PURE__*/function (_React$Component) {
|
|
160
|
+
var datePickerDefaultAriaLabel = exports.datePickerDefaultAriaLabel = 'Date';
|
|
161
|
+
var timePickerDefaultAriaLabel = exports.timePickerDefaultAriaLabel = 'Time';
|
|
162
|
+
var DateTimePicker = exports.DateTimePickerWithoutAnalytics = /*#__PURE__*/function (_React$Component) {
|
|
165
163
|
(0, _inherits2.default)(DateTimePicker, _React$Component);
|
|
166
164
|
var _super = _createSuper(DateTimePicker);
|
|
167
165
|
function DateTimePicker() {
|
|
@@ -356,9 +354,8 @@ var DateTimePicker = /*#__PURE__*/function (_React$Component) {
|
|
|
356
354
|
}]);
|
|
357
355
|
return DateTimePicker;
|
|
358
356
|
}(_react.default.Component);
|
|
359
|
-
exports.DateTimePickerWithoutAnalytics = DateTimePicker;
|
|
360
357
|
(0, _defineProperty2.default)(DateTimePicker, "defaultProps", dateTimePickerDefaultProps);
|
|
361
|
-
var _default = (0, _analyticsNext.withAnalyticsContext)({
|
|
358
|
+
var _default = exports.default = (0, _analyticsNext.withAnalyticsContext)({
|
|
362
359
|
componentName: 'dateTimePicker',
|
|
363
360
|
packageName: packageName,
|
|
364
361
|
packageVersion: packageVersion
|
|
@@ -372,5 +369,4 @@ var _default = (0, _analyticsNext.withAnalyticsContext)({
|
|
|
372
369
|
packageVersion: packageVersion
|
|
373
370
|
}
|
|
374
371
|
})
|
|
375
|
-
})(DateTimePicker));
|
|
376
|
-
exports.default = _default;
|
|
372
|
+
})(DateTimePicker));
|
|
@@ -37,7 +37,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
37
37
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
38
38
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
39
39
|
var packageName = "@atlaskit/datetime-picker";
|
|
40
|
-
var packageVersion = "12.10.
|
|
40
|
+
var packageVersion = "12.10.3";
|
|
41
41
|
var menuStyles = {
|
|
42
42
|
/* Need to remove default absolute positioning as that causes issues with position fixed */
|
|
43
43
|
position: 'static',
|
|
@@ -87,7 +87,7 @@ var timePickerDefaultProps = {
|
|
|
87
87
|
// Not including a default prop for value as it will
|
|
88
88
|
// Make the component a controlled component
|
|
89
89
|
};
|
|
90
|
-
var TimePicker = /*#__PURE__*/function (_React$Component) {
|
|
90
|
+
var TimePicker = exports.TimePickerWithoutAnalytics = /*#__PURE__*/function (_React$Component) {
|
|
91
91
|
(0, _inherits2.default)(TimePicker, _React$Component);
|
|
92
92
|
var _super = _createSuper(TimePicker);
|
|
93
93
|
function TimePicker() {
|
|
@@ -339,9 +339,8 @@ var TimePicker = /*#__PURE__*/function (_React$Component) {
|
|
|
339
339
|
}]);
|
|
340
340
|
return TimePicker;
|
|
341
341
|
}(_react.default.Component);
|
|
342
|
-
exports.TimePickerWithoutAnalytics = TimePicker;
|
|
343
342
|
(0, _defineProperty2.default)(TimePicker, "defaultProps", timePickerDefaultProps);
|
|
344
|
-
var _default = (0, _analyticsNext.withAnalyticsContext)({
|
|
343
|
+
var _default = exports.default = (0, _analyticsNext.withAnalyticsContext)({
|
|
345
344
|
componentName: 'timePicker',
|
|
346
345
|
packageName: packageName,
|
|
347
346
|
packageVersion: packageVersion
|
|
@@ -355,5 +354,4 @@ var _default = (0, _analyticsNext.withAnalyticsContext)({
|
|
|
355
354
|
packageVersion: packageVersion
|
|
356
355
|
}
|
|
357
356
|
})
|
|
358
|
-
})(TimePicker));
|
|
359
|
-
exports.default = _default;
|
|
357
|
+
})(TimePicker));
|
|
@@ -28,7 +28,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
|
|
|
28
28
|
* Scroll is locked outside the layer to prevent the layered content from detaching from the
|
|
29
29
|
* container ref.
|
|
30
30
|
*/
|
|
31
|
-
var FixedLayer = /*#__PURE__*/function (_React$Component) {
|
|
31
|
+
var FixedLayer = exports.default = /*#__PURE__*/function (_React$Component) {
|
|
32
32
|
(0, _inherits2.default)(FixedLayer, _React$Component);
|
|
33
33
|
var _super = _createSuper(FixedLayer);
|
|
34
34
|
function FixedLayer() {
|
|
@@ -100,5 +100,4 @@ var FixedLayer = /*#__PURE__*/function (_React$Component) {
|
|
|
100
100
|
}
|
|
101
101
|
}]);
|
|
102
102
|
return FixedLayer;
|
|
103
|
-
}(_react.default.Component);
|
|
104
|
-
exports.default = FixedLayer;
|
|
103
|
+
}(_react.default.Component);
|
|
@@ -10,21 +10,16 @@ exports.placeholderDatetime = void 0;
|
|
|
10
10
|
/**
|
|
11
11
|
* This component is used to hide portions of Select component.
|
|
12
12
|
*/
|
|
13
|
-
var EmptyComponent = function EmptyComponent() {
|
|
13
|
+
var EmptyComponent = exports.EmptyComponent = function EmptyComponent() {
|
|
14
14
|
return null;
|
|
15
15
|
};
|
|
16
16
|
|
|
17
17
|
// This date was chosen to clearly show date and time formats (day > 12)
|
|
18
18
|
// e.g. 18/02/1993 vs. 2/18/1993 and 1:00 PM vs 13:00
|
|
19
|
-
exports.
|
|
20
|
-
var
|
|
21
|
-
exports.
|
|
22
|
-
var
|
|
23
|
-
exports.defaultTimes = defaultTimes;
|
|
24
|
-
var defaultTimeFormat = 'h:mma';
|
|
25
|
-
exports.defaultTimeFormat = defaultTimeFormat;
|
|
26
|
-
var defaultDateFormat = 'YYYY/MM/DD';
|
|
27
|
-
exports.defaultDateFormat = defaultDateFormat;
|
|
19
|
+
var placeholderDatetime = exports.placeholderDatetime = new Date(1993, 1, 18, 13);
|
|
20
|
+
var defaultTimes = exports.defaultTimes = ['09:00', '09:30', '10:00', '10:30', '11:00', '11:30', '12:00', '12:30', '13:00', '13:30', '14:00', '14:30', '15:00', '15:30', '16:00', '16:30', '17:00', '17:30', '18:00'];
|
|
21
|
+
var defaultTimeFormat = exports.defaultTimeFormat = 'h:mma';
|
|
22
|
+
var defaultDateFormat = exports.defaultDateFormat = 'YYYY/MM/DD';
|
|
28
23
|
function padToTwo(number) {
|
|
29
24
|
return number <= 99 ? "0".concat(number).slice(-2) : "".concat(number);
|
|
30
25
|
}
|
|
@@ -14,7 +14,7 @@ var _excluded = ["children"];
|
|
|
14
14
|
* This creates a functional component that `react-select` will use to make the
|
|
15
15
|
* SingleValue part of the different pickers.
|
|
16
16
|
*/
|
|
17
|
-
var makeSingleValue = function makeSingleValue(_ref) {
|
|
17
|
+
var makeSingleValue = exports.makeSingleValue = function makeSingleValue(_ref) {
|
|
18
18
|
var lang = _ref.lang;
|
|
19
19
|
return function (_ref2) {
|
|
20
20
|
var children = _ref2.children,
|
|
@@ -25,5 +25,4 @@ var makeSingleValue = function makeSingleValue(_ref) {
|
|
|
25
25
|
}
|
|
26
26
|
}), children);
|
|
27
27
|
};
|
|
28
|
-
};
|
|
29
|
-
exports.makeSingleValue = makeSingleValue;
|
|
28
|
+
};
|
|
@@ -19,7 +19,7 @@ import FixedLayer from '../internal/fixed-layer';
|
|
|
19
19
|
import { makeSingleValue } from '../internal/single-value';
|
|
20
20
|
import { convertTokens } from './utils';
|
|
21
21
|
const packageName = "@atlaskit/datetime-picker";
|
|
22
|
-
const packageVersion = "12.10.
|
|
22
|
+
const packageVersion = "12.10.3";
|
|
23
23
|
function getValidDate(iso) {
|
|
24
24
|
const date = parseISO(iso);
|
|
25
25
|
return isValid(date) ? {
|
|
@@ -41,7 +41,9 @@ const menuStyles = css({
|
|
|
41
41
|
const Menu = ({
|
|
42
42
|
selectProps,
|
|
43
43
|
innerProps
|
|
44
|
-
}) => jsx(UNSAFE_LAYERING,
|
|
44
|
+
}) => jsx(UNSAFE_LAYERING, {
|
|
45
|
+
isDisabled: getBooleanFF('platform.design-system-team.layering_qmiw3') ? false : true
|
|
46
|
+
}, jsx(FixedLayer, {
|
|
45
47
|
inputValue: selectProps.inputValue,
|
|
46
48
|
containerRef: selectProps.calendarContainerRef,
|
|
47
49
|
content: jsx("div", _extends({
|
|
@@ -15,7 +15,7 @@ import DatePicker from './date-picker';
|
|
|
15
15
|
import TimePicker from './time-picker';
|
|
16
16
|
import { convertTokens } from './utils';
|
|
17
17
|
const packageName = "@atlaskit/datetime-picker";
|
|
18
|
-
const packageVersion = "12.10.
|
|
18
|
+
const packageVersion = "12.10.3";
|
|
19
19
|
const isInvalidBorderStyles = css({
|
|
20
20
|
borderColor: `var(--ds-border-danger, ${R400})`
|
|
21
21
|
});
|
|
@@ -16,7 +16,7 @@ import parseTime from '../internal/parse-time';
|
|
|
16
16
|
import { makeSingleValue } from '../internal/single-value';
|
|
17
17
|
import { convertTokens } from './utils';
|
|
18
18
|
const packageName = "@atlaskit/datetime-picker";
|
|
19
|
-
const packageVersion = "12.10.
|
|
19
|
+
const packageVersion = "12.10.3";
|
|
20
20
|
const menuStyles = {
|
|
21
21
|
/* Need to remove default absolute positioning as that causes issues with position fixed */
|
|
22
22
|
position: 'static',
|
|
@@ -30,7 +30,7 @@ import FixedLayer from '../internal/fixed-layer';
|
|
|
30
30
|
import { makeSingleValue } from '../internal/single-value';
|
|
31
31
|
import { convertTokens } from './utils';
|
|
32
32
|
var packageName = "@atlaskit/datetime-picker";
|
|
33
|
-
var packageVersion = "12.10.
|
|
33
|
+
var packageVersion = "12.10.3";
|
|
34
34
|
function getValidDate(iso) {
|
|
35
35
|
var date = parseISO(iso);
|
|
36
36
|
return isValid(date) ? {
|
|
@@ -52,7 +52,9 @@ var menuStyles = css({
|
|
|
52
52
|
var Menu = function Menu(_ref) {
|
|
53
53
|
var selectProps = _ref.selectProps,
|
|
54
54
|
innerProps = _ref.innerProps;
|
|
55
|
-
return jsx(UNSAFE_LAYERING,
|
|
55
|
+
return jsx(UNSAFE_LAYERING, {
|
|
56
|
+
isDisabled: getBooleanFF('platform.design-system-team.layering_qmiw3') ? false : true
|
|
57
|
+
}, jsx(FixedLayer, {
|
|
56
58
|
inputValue: selectProps.inputValue,
|
|
57
59
|
containerRef: selectProps.calendarContainerRef,
|
|
58
60
|
content: jsx("div", _extends({
|
|
@@ -25,7 +25,7 @@ import DatePicker from './date-picker';
|
|
|
25
25
|
import TimePicker from './time-picker';
|
|
26
26
|
import { convertTokens } from './utils';
|
|
27
27
|
var packageName = "@atlaskit/datetime-picker";
|
|
28
|
-
var packageVersion = "12.10.
|
|
28
|
+
var packageVersion = "12.10.3";
|
|
29
29
|
var isInvalidBorderStyles = css({
|
|
30
30
|
borderColor: "var(--ds-border-danger, ".concat(R400, ")")
|
|
31
31
|
});
|
|
@@ -29,7 +29,7 @@ import parseTime from '../internal/parse-time';
|
|
|
29
29
|
import { makeSingleValue } from '../internal/single-value';
|
|
30
30
|
import { convertTokens } from './utils';
|
|
31
31
|
var packageName = "@atlaskit/datetime-picker";
|
|
32
|
-
var packageVersion = "12.10.
|
|
32
|
+
var packageVersion = "12.10.3";
|
|
33
33
|
var menuStyles = {
|
|
34
34
|
/* Need to remove default absolute positioning as that causes issues with position fixed */
|
|
35
35
|
position: 'static',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/datetime-picker",
|
|
3
|
-
"version": "12.10.
|
|
3
|
+
"version": "12.10.3",
|
|
4
4
|
"description": "A date time picker allows the user to select an associated date and time.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"@atlaskit/popper": "^5.5.0",
|
|
43
43
|
"@atlaskit/select": "^16.7.0",
|
|
44
44
|
"@atlaskit/theme": "^12.6.0",
|
|
45
|
-
"@atlaskit/tokens": "^1.
|
|
45
|
+
"@atlaskit/tokens": "^1.27.0",
|
|
46
46
|
"@babel/runtime": "^7.0.0",
|
|
47
47
|
"@emotion/react": "^11.7.1",
|
|
48
48
|
"date-fns": "^2.17.0",
|
|
@@ -57,8 +57,8 @@
|
|
|
57
57
|
"@atlaskit/button": "^16.10.0",
|
|
58
58
|
"@atlaskit/docs": "*",
|
|
59
59
|
"@atlaskit/form": "^8.11.0",
|
|
60
|
-
"@atlaskit/modal-dialog": "^12.
|
|
61
|
-
"@atlaskit/popup": "^1.
|
|
60
|
+
"@atlaskit/modal-dialog": "^12.8.0",
|
|
61
|
+
"@atlaskit/popup": "^1.11.0",
|
|
62
62
|
"@atlaskit/range": "^7.1.0",
|
|
63
63
|
"@atlaskit/section-message": "^6.4.0",
|
|
64
64
|
"@atlaskit/ssr": "*",
|
|
@@ -68,7 +68,6 @@
|
|
|
68
68
|
"@atlaskit/webdriver-runner": "*",
|
|
69
69
|
"@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",
|
|
70
70
|
"@atlassian/feature-flags-test-utils": "*",
|
|
71
|
-
"@emotion/react": "^11.7.1",
|
|
72
71
|
"@testing-library/react": "^12.1.5",
|
|
73
72
|
"@testing-library/user-event": "^14.4.3",
|
|
74
73
|
"@types/testing-library__jest-dom": "^5.14.5",
|
|
@@ -98,6 +97,9 @@
|
|
|
98
97
|
}
|
|
99
98
|
},
|
|
100
99
|
"platform-feature-flags": {
|
|
100
|
+
"platform.design-system-team.layering_qmiw3": {
|
|
101
|
+
"type": "boolean"
|
|
102
|
+
},
|
|
101
103
|
"platform.design-system-team.border-checkbox_nyoiu": {
|
|
102
104
|
"type": "boolean"
|
|
103
105
|
},
|