@sheinx/base 3.5.4-beta.15 → 3.5.4-beta.16

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.
@@ -1,5 +1,4 @@
1
- /// <reference types="react" />
2
1
  import { FormFieldSetProps } from './form-fieldset.type';
3
- declare const FormFieldSet: <T>(props: FormFieldSetProps<T>) => JSX.Element;
2
+ declare const FormFieldSet: <T>(props: FormFieldSetProps<T>) => any;
4
3
  export default FormFieldSet;
5
4
  //# sourceMappingURL=form-fieldset.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"form-fieldset.d.ts","sourceRoot":"","sources":["form-fieldset.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,QAAA,MAAM,YAAY,iDAqGjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"form-fieldset.d.ts","sourceRoot":"","sources":["form-fieldset.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,QAAA,MAAM,YAAY,yCA6FjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -19,8 +19,7 @@ var FormFieldSet = function FormFieldSet(props) {
19
19
  var children = props.children,
20
20
  empty = props.empty;
21
21
  var _React$useRef = _react.default.useRef({
22
- ids: [],
23
- lastValues: []
22
+ ids: []
24
23
  }),
25
24
  context = _React$useRef.current;
26
25
  var formFunc = (0, _hooks.useFormFunc)();
@@ -55,9 +54,8 @@ var FormFieldSet = function FormFieldSet(props) {
55
54
  }
56
55
  var valueArr = (formFunc === null || formFunc === void 0 ? void 0 : formFunc.getValue(name)) || [];
57
56
  valueArr = Array.isArray(valueArr) ? valueArr : [valueArr];
58
- var result = [];
59
57
  if (valueArr.length === 0 && valueArr && empty) {
60
- result.push( /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.default.Fragment, {
58
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.default.Fragment, {
61
59
  children: empty(function (val) {
62
60
  var newValue = produce(valueArr, function (draft) {
63
61
  draft.push(val);
@@ -66,7 +64,7 @@ var FormFieldSet = function FormFieldSet(props) {
66
64
  context.ids.push(_hooks.util.generateUUID());
67
65
  formFunc === null || formFunc === void 0 || formFunc.insertError(name, 0);
68
66
  })
69
- }, 'empty'));
67
+ }, 'empty');
70
68
  }
71
69
  var errorList = (Array.isArray(error) ? error : [error]).filter(Boolean);
72
70
  if (context.ids.length !== valueArr.length) {
@@ -74,11 +72,9 @@ var FormFieldSet = function FormFieldSet(props) {
74
72
  return _hooks.util.generateUUID();
75
73
  });
76
74
  }
77
- valueArr.forEach(function (v, i) {
78
- if (context.lastValues.length !== valueArr.length) {
79
- context.ids[i] = _hooks.util.generateUUID();
80
- }
81
- result.push( /*#__PURE__*/(0, _jsxRuntime.jsx)(Provider, {
75
+ return valueArr.map(function (v, i) {
76
+ var _context$ids$i;
77
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Provider, {
82
78
  value: {
83
79
  path: "".concat(ProviderValue.path, "[").concat(i, "]"),
84
80
  validateFieldSet: validateFieldSet
@@ -124,13 +120,7 @@ var FormFieldSet = function FormFieldSet(props) {
124
120
  formFunc === null || formFunc === void 0 || formFunc.spliceError(name, i);
125
121
  }
126
122
  })
127
- }, context.ids[i]));
128
- });
129
-
130
- // 更新 lastValues
131
- context.lastValues = valueArr;
132
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
133
- children: result
123
+ }, (_context$ids$i = context.ids[i]) !== null && _context$ids$i !== void 0 ? _context$ids$i : i);
134
124
  });
135
125
  };
136
126
  var _default = exports.default = FormFieldSet;
@@ -1 +1 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["form.tsx"],"names":[],"mappings":";AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,QAAA,MAAM,IAAI,4DAsHT,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["form.tsx"],"names":[],"mappings":";AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,QAAA,MAAM,IAAI,4DAgHT,CAAC;AAEF,eAAe,IAAI,CAAC"}
package/cjs/form/form.js CHANGED
@@ -14,12 +14,6 @@ var _excluded = ["jssStyle", "className", "style", "children", "formRef"];
14
14
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
15
15
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
18
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
20
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
21
- function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
22
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
23
17
  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; }
24
18
  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) { _defineProperty(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; }
25
19
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -67,16 +61,6 @@ var Form = function Form(props) {
67
61
  type: 'withValue'
68
62
  });
69
63
  });
70
- var _useState = (0, _react.useState)(0),
71
- _useState2 = _slicedToArray(_useState, 2),
72
- renderKey = _useState2[0],
73
- setRenderKey = _useState2[1];
74
- var handleOuterSet = (0, _react.useCallback)(function (vals) {
75
- formFunc.setValue(vals);
76
- setRenderKey(function (prev) {
77
- return prev + 1;
78
- });
79
- }, [formFunc]);
80
64
  var formRefObj = (0, _hooks.useLatestObj)({
81
65
  clearValidate: formFunc.clearValidate,
82
66
  getValue: formFunc.getValue,
@@ -86,7 +70,7 @@ var Form = function Form(props) {
86
70
  validateFields: validateFields,
87
71
  validateFieldsWithValue: validateFieldsWithValue,
88
72
  validateFieldsWithError: formFunc.validateFields,
89
- set: handleOuterSet,
73
+ set: formFunc.setValue,
90
74
  scrollToField: formFunc.scrollToField
91
75
  });
92
76
  _react.default.useEffect(function () {
@@ -135,16 +119,16 @@ var Form = function Form(props) {
135
119
  }
136
120
  };
137
121
  }, [formProps.onSubmit]);
138
- return /*#__PURE__*/(0, _react.createElement)("form", _objectSpread(_objectSpread({}, _hooks.util.removeProps(formProps, {
122
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("form", _objectSpread(_objectSpread({}, _hooks.util.removeProps(formProps, {
139
123
  onSubmit: true
140
124
  })), {}, {
141
125
  ref: formElRef,
142
- key: renderKey
143
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Provider, _objectSpread(_objectSpread({}, ProviderProps), {}, {
144
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_hooks.FormContext.Provider, {
145
- value: formRefObj,
146
- children: children
147
- })
148
- })));
126
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Provider, _objectSpread(_objectSpread({}, ProviderProps), {}, {
127
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_hooks.FormContext.Provider, {
128
+ value: formRefObj,
129
+ children: children
130
+ })
131
+ }))
132
+ }));
149
133
  };
150
134
  var _default = exports.default = Form;
@@ -1,5 +1,4 @@
1
- /// <reference types="react" />
2
1
  import { FormFieldSetProps } from './form-fieldset.type';
3
- declare const FormFieldSet: <T>(props: FormFieldSetProps<T>) => JSX.Element;
2
+ declare const FormFieldSet: <T>(props: FormFieldSetProps<T>) => any;
4
3
  export default FormFieldSet;
5
4
  //# sourceMappingURL=form-fieldset.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"form-fieldset.d.ts","sourceRoot":"","sources":["form-fieldset.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,QAAA,MAAM,YAAY,iDAqGjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"form-fieldset.d.ts","sourceRoot":"","sources":["form-fieldset.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,QAAA,MAAM,YAAY,yCA6FjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -7,14 +7,12 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
7
7
  import { useFormFieldSet, util, usePersistFn, useFormFunc } from '@sheinx/hooks';
8
8
  import React from 'react';
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
- import { Fragment as _Fragment } from "react/jsx-runtime";
11
10
  var produce = util.produce;
12
11
  var FormFieldSet = function FormFieldSet(props) {
13
12
  var children = props.children,
14
13
  empty = props.empty;
15
14
  var _React$useRef = React.useRef({
16
- ids: [],
17
- lastValues: []
15
+ ids: []
18
16
  }),
19
17
  context = _React$useRef.current;
20
18
  var formFunc = useFormFunc();
@@ -49,9 +47,8 @@ var FormFieldSet = function FormFieldSet(props) {
49
47
  }
50
48
  var valueArr = (formFunc === null || formFunc === void 0 ? void 0 : formFunc.getValue(name)) || [];
51
49
  valueArr = Array.isArray(valueArr) ? valueArr : [valueArr];
52
- var result = [];
53
50
  if (valueArr.length === 0 && valueArr && empty) {
54
- result.push( /*#__PURE__*/_jsx(React.Fragment, {
51
+ return /*#__PURE__*/_jsx(React.Fragment, {
55
52
  children: empty(function (val) {
56
53
  var newValue = produce(valueArr, function (draft) {
57
54
  draft.push(val);
@@ -60,7 +57,7 @@ var FormFieldSet = function FormFieldSet(props) {
60
57
  context.ids.push(util.generateUUID());
61
58
  formFunc === null || formFunc === void 0 || formFunc.insertError(name, 0);
62
59
  })
63
- }, 'empty'));
60
+ }, 'empty');
64
61
  }
65
62
  var errorList = (Array.isArray(error) ? error : [error]).filter(Boolean);
66
63
  if (context.ids.length !== valueArr.length) {
@@ -68,11 +65,9 @@ var FormFieldSet = function FormFieldSet(props) {
68
65
  return util.generateUUID();
69
66
  });
70
67
  }
71
- valueArr.forEach(function (v, i) {
72
- if (context.lastValues.length !== valueArr.length) {
73
- context.ids[i] = util.generateUUID();
74
- }
75
- result.push( /*#__PURE__*/_jsx(Provider, {
68
+ return valueArr.map(function (v, i) {
69
+ var _context$ids$i;
70
+ return /*#__PURE__*/_jsx(Provider, {
76
71
  value: {
77
72
  path: "".concat(ProviderValue.path, "[").concat(i, "]"),
78
73
  validateFieldSet: validateFieldSet
@@ -118,13 +113,7 @@ var FormFieldSet = function FormFieldSet(props) {
118
113
  formFunc === null || formFunc === void 0 || formFunc.spliceError(name, i);
119
114
  }
120
115
  })
121
- }, context.ids[i]));
122
- });
123
-
124
- // 更新 lastValues
125
- context.lastValues = valueArr;
126
- return /*#__PURE__*/_jsx(_Fragment, {
127
- children: result
116
+ }, (_context$ids$i = context.ids[i]) !== null && _context$ids$i !== void 0 ? _context$ids$i : i);
128
117
  });
129
118
  };
130
119
  export default FormFieldSet;
@@ -1 +1 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["form.tsx"],"names":[],"mappings":";AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,QAAA,MAAM,IAAI,4DAsHT,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["form.tsx"],"names":[],"mappings":";AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,QAAA,MAAM,IAAI,4DAgHT,CAAC;AAEF,eAAe,IAAI,CAAC"}
package/esm/form/form.js CHANGED
@@ -1,11 +1,5 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
2
  var _excluded = ["jssStyle", "className", "style", "children", "formRef"];
3
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
7
- function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
8
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
9
3
  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; }
10
4
  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) { _defineProperty(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; }
11
5
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -16,9 +10,8 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
16
10
  import { FormContext, useForm, useInputAble, useLatestObj, usePersistFn, util } from '@sheinx/hooks';
17
11
  import classNames from 'classnames';
18
12
  import { useFormFooter } from "./form-footer-context";
19
- import React, { useCallback, useEffect, useRef, useState } from 'react';
13
+ import React, { useEffect, useRef } from 'react';
20
14
  import { jsx as _jsx } from "react/jsx-runtime";
21
- import { createElement as _createElement } from "react";
22
15
  var Form = function Form(props) {
23
16
  var _jssStyle$form;
24
17
  var jssStyle = props.jssStyle,
@@ -59,16 +52,6 @@ var Form = function Form(props) {
59
52
  type: 'withValue'
60
53
  });
61
54
  });
62
- var _useState = useState(0),
63
- _useState2 = _slicedToArray(_useState, 2),
64
- renderKey = _useState2[0],
65
- setRenderKey = _useState2[1];
66
- var handleOuterSet = useCallback(function (vals) {
67
- formFunc.setValue(vals);
68
- setRenderKey(function (prev) {
69
- return prev + 1;
70
- });
71
- }, [formFunc]);
72
55
  var formRefObj = useLatestObj({
73
56
  clearValidate: formFunc.clearValidate,
74
57
  getValue: formFunc.getValue,
@@ -78,7 +61,7 @@ var Form = function Form(props) {
78
61
  validateFields: validateFields,
79
62
  validateFieldsWithValue: validateFieldsWithValue,
80
63
  validateFieldsWithError: formFunc.validateFields,
81
- set: handleOuterSet,
64
+ set: formFunc.setValue,
82
65
  scrollToField: formFunc.scrollToField
83
66
  });
84
67
  React.useEffect(function () {
@@ -127,16 +110,16 @@ var Form = function Form(props) {
127
110
  }
128
111
  };
129
112
  }, [formProps.onSubmit]);
130
- return /*#__PURE__*/_createElement("form", _objectSpread(_objectSpread({}, util.removeProps(formProps, {
113
+ return /*#__PURE__*/_jsx("form", _objectSpread(_objectSpread({}, util.removeProps(formProps, {
131
114
  onSubmit: true
132
115
  })), {}, {
133
116
  ref: formElRef,
134
- key: renderKey
135
- }), /*#__PURE__*/_jsx(Provider, _objectSpread(_objectSpread({}, ProviderProps), {}, {
136
- children: /*#__PURE__*/_jsx(FormContext.Provider, {
137
- value: formRefObj,
138
- children: children
139
- })
140
- })));
117
+ children: /*#__PURE__*/_jsx(Provider, _objectSpread(_objectSpread({}, ProviderProps), {}, {
118
+ children: /*#__PURE__*/_jsx(FormContext.Provider, {
119
+ value: formRefObj,
120
+ children: children
121
+ })
122
+ }))
123
+ }));
141
124
  };
142
125
  export default Form;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sheinx/base",
3
- "version": "3.5.4-beta.15",
3
+ "version": "3.5.4-beta.16",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -10,7 +10,7 @@
10
10
  "module": "./esm/index.js",
11
11
  "typings": "./cjs/index.d.ts",
12
12
  "dependencies": {
13
- "@sheinx/hooks": "3.5.4-beta.15",
13
+ "@sheinx/hooks": "3.5.4-beta.16",
14
14
  "immer": "^10.0.0",
15
15
  "classnames": "^2.0.0",
16
16
  "@shined/reactive": "^0.1.3-alpha.0"