@atlaskit/link-create 0.10.0 → 1.0.0
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/controllers/create-field/index.js +12 -0
- package/dist/cjs/controllers/create-field/main.js +62 -0
- package/dist/cjs/index.js +12 -0
- package/dist/cjs/ui/create-form/async-select/main.js +117 -35
- package/dist/cjs/ui/create-form/form-footer/main.js +9 -2
- package/dist/cjs/ui/create-form/form-spy/index.js +27 -0
- package/dist/cjs/ui/create-form/index.js +15 -1
- package/dist/cjs/ui/create-form/main.js +20 -10
- package/dist/cjs/ui/create-form/select/index.js +12 -0
- package/dist/cjs/ui/create-form/select/main.js +50 -0
- package/dist/cjs/ui/create-form/select/types.js +5 -0
- package/dist/cjs/ui/create-form/textfield/main.js +26 -48
- package/dist/cjs/ui/index.js +15 -1
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/controllers/create-field/index.js +1 -0
- package/dist/es2019/controllers/create-field/main.js +57 -0
- package/dist/es2019/index.js +1 -1
- package/dist/es2019/ui/create-form/async-select/main.js +75 -34
- package/dist/es2019/ui/create-form/form-footer/main.js +9 -2
- package/dist/es2019/ui/create-form/form-spy/index.js +18 -0
- package/dist/es2019/ui/create-form/index.js +3 -1
- package/dist/es2019/ui/create-form/main.js +25 -16
- package/dist/es2019/ui/create-form/select/index.js +1 -0
- package/dist/es2019/ui/create-form/select/main.js +40 -0
- package/dist/es2019/ui/create-form/textfield/main.js +24 -48
- package/dist/es2019/ui/index.js +3 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/controllers/create-field/index.js +1 -0
- package/dist/esm/controllers/create-field/main.js +56 -0
- package/dist/esm/controllers/create-field/types.js +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/ui/create-form/async-select/main.js +118 -36
- package/dist/esm/ui/create-form/form-footer/main.js +9 -2
- package/dist/esm/ui/create-form/form-spy/index.js +19 -0
- package/dist/esm/ui/create-form/index.js +3 -1
- package/dist/esm/ui/create-form/main.js +19 -8
- package/dist/esm/ui/create-form/select/index.js +1 -0
- package/dist/esm/ui/create-form/select/main.js +42 -0
- package/dist/esm/ui/create-form/select/types.js +1 -0
- package/dist/esm/ui/create-form/textfield/main.js +25 -47
- package/dist/esm/ui/index.js +3 -1
- package/dist/esm/version.json +1 -1
- package/dist/types/common/utils/form/index.d.ts +2 -2
- package/dist/types/controllers/create-field/index.d.ts +1 -0
- package/dist/types/controllers/create-field/main.d.ts +3 -0
- package/dist/types/controllers/create-field/types.d.ts +24 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/ui/create-form/async-select/main.d.ts +5 -5
- package/dist/types/ui/create-form/async-select/types.d.ts +9 -4
- package/dist/types/ui/create-form/form-spy/index.d.ts +12 -0
- package/dist/types/ui/create-form/index.d.ts +2 -0
- package/dist/types/ui/create-form/main.d.ts +2 -1
- package/dist/types/ui/create-form/select/index.d.ts +1 -0
- package/dist/types/ui/create-form/select/main.d.ts +12 -0
- package/dist/types/ui/create-form/select/types.d.ts +18 -0
- package/dist/types/ui/create-form/textfield/main.d.ts +2 -1
- package/dist/types/ui/index.d.ts +2 -0
- package/dist/types-ts4.5/common/utils/form/index.d.ts +2 -2
- package/dist/types-ts4.5/controllers/create-field/index.d.ts +1 -0
- package/dist/types-ts4.5/controllers/create-field/main.d.ts +3 -0
- package/dist/types-ts4.5/controllers/create-field/types.d.ts +24 -0
- package/dist/types-ts4.5/index.d.ts +1 -1
- package/dist/types-ts4.5/ui/create-form/async-select/main.d.ts +5 -5
- package/dist/types-ts4.5/ui/create-form/async-select/types.d.ts +9 -4
- package/dist/types-ts4.5/ui/create-form/form-spy/index.d.ts +12 -0
- package/dist/types-ts4.5/ui/create-form/index.d.ts +2 -0
- package/dist/types-ts4.5/ui/create-form/main.d.ts +2 -1
- package/dist/types-ts4.5/ui/create-form/select/index.d.ts +1 -0
- package/dist/types-ts4.5/ui/create-form/select/main.d.ts +12 -0
- package/dist/types-ts4.5/ui/create-form/select/types.d.ts +18 -0
- package/dist/types-ts4.5/ui/create-form/textfield/main.d.ts +2 -1
- package/dist/types-ts4.5/ui/index.d.ts +2 -0
- package/example-helpers/mock-plugin-form.tsx +1 -3
- package/package.json +6 -3
- package/report.api.md +54 -11
- package/tmp/api-report-tmp.d.ts +32 -4
- package/dist/cjs/ui/group-selection/index.js +0 -22
- package/dist/es2019/ui/group-selection/index.js +0 -16
- package/dist/esm/ui/group-selection/index.js +0 -15
- package/dist/types/ui/group-selection/index.d.ts +0 -4
- package/dist/types/ui/group-selection/types.d.ts +0 -12
- package/dist/types-ts4.5/ui/group-selection/index.d.ts +0 -4
- package/dist/types-ts4.5/ui/group-selection/types.d.ts +0 -12
- /package/dist/cjs/{ui/group-selection → controllers/create-field}/types.js +0 -0
- /package/dist/es2019/{ui/group-selection → controllers/create-field}/types.js +0 -0
- /package/dist/{esm/ui/group-selection → es2019/ui/create-form/select}/types.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.CreateField = CreateField;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
var _react2 = require("@emotion/react");
|
|
11
|
+
var _reactFinalForm = require("react-final-form");
|
|
12
|
+
var _form = require("@atlaskit/form");
|
|
13
|
+
var _form2 = require("../../common/utils/form");
|
|
14
|
+
var _formContext = require("../form-context");
|
|
15
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
16
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } /** @jsx jsx */
|
|
17
|
+
var fieldWrapperStyles = (0, _react2.css)({
|
|
18
|
+
marginTop: "var(--ds-space-100, 8px)"
|
|
19
|
+
});
|
|
20
|
+
function CreateField(_ref) {
|
|
21
|
+
var id = _ref.id,
|
|
22
|
+
name = _ref.name,
|
|
23
|
+
label = _ref.label,
|
|
24
|
+
isRequired = _ref.isRequired,
|
|
25
|
+
validators = _ref.validators,
|
|
26
|
+
validationHelpText = _ref.validationHelpText,
|
|
27
|
+
testId = _ref.testId,
|
|
28
|
+
children = _ref.children;
|
|
29
|
+
var _useFormContext = (0, _formContext.useFormContext)(),
|
|
30
|
+
assignValidator = _useFormContext.assignValidator;
|
|
31
|
+
(0, _react.useEffect)(function () {
|
|
32
|
+
if (validators) {
|
|
33
|
+
assignValidator(name, validators);
|
|
34
|
+
}
|
|
35
|
+
}, [name, validators, assignValidator]);
|
|
36
|
+
var fieldId = (0, _react.useMemo)(function () {
|
|
37
|
+
return id ? id : "link-create-field-".concat(name);
|
|
38
|
+
}, [id, name]);
|
|
39
|
+
return (0, _react2.jsx)("div", {
|
|
40
|
+
css: fieldWrapperStyles,
|
|
41
|
+
"data-testid": testId
|
|
42
|
+
}, (0, _react2.jsx)(_reactFinalForm.Field, {
|
|
43
|
+
name: name
|
|
44
|
+
}, function (_ref2) {
|
|
45
|
+
var input = _ref2.input,
|
|
46
|
+
meta = _ref2.meta;
|
|
47
|
+
var isInvalid = (0, _form2.validateSubmitErrors)(meta);
|
|
48
|
+
var submitError = meta.submitError;
|
|
49
|
+
return (0, _react2.jsx)(_react.Fragment, null, label && (0, _react2.jsx)(_form.Label, {
|
|
50
|
+
htmlFor: fieldId,
|
|
51
|
+
id: "".concat(fieldId, "-label"),
|
|
52
|
+
testId: "".concat(testId, "-label")
|
|
53
|
+
}, label, isRequired && (0, _react2.jsx)(_form.RequiredAsterisk, null)), children(_objectSpread(_objectSpread({}, input), {}, {
|
|
54
|
+
fieldId: fieldId,
|
|
55
|
+
isInvalid: isInvalid
|
|
56
|
+
})), !submitError && validationHelpText && (0, _react2.jsx)(_form.HelperMessage, {
|
|
57
|
+
testId: "".concat(testId, "-helper-message")
|
|
58
|
+
}, validationHelpText), submitError && isInvalid && (0, _react2.jsx)(_form.ErrorMessage, {
|
|
59
|
+
testId: "".concat(testId, "-error-message")
|
|
60
|
+
}, submitError));
|
|
61
|
+
}));
|
|
62
|
+
}
|
package/dist/cjs/index.js
CHANGED
|
@@ -22,12 +22,24 @@ Object.defineProperty(exports, "CreateFormLoader", {
|
|
|
22
22
|
return _index.CreateFormLoader;
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
|
+
Object.defineProperty(exports, "FormSpy", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function get() {
|
|
28
|
+
return _index.FormSpy;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
25
31
|
Object.defineProperty(exports, "LinkCreateCallbackProvider", {
|
|
26
32
|
enumerable: true,
|
|
27
33
|
get: function get() {
|
|
28
34
|
return _callbackContext.LinkCreateCallbackProvider;
|
|
29
35
|
}
|
|
30
36
|
});
|
|
37
|
+
Object.defineProperty(exports, "Select", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
get: function get() {
|
|
40
|
+
return _index.Select;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
31
43
|
Object.defineProperty(exports, "TextField", {
|
|
32
44
|
enumerable: true,
|
|
33
45
|
get: function get() {
|
|
@@ -6,59 +6,141 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.AsyncSelect = AsyncSelect;
|
|
8
8
|
exports.TEST_ID = void 0;
|
|
9
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
13
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
14
|
var _react = require("react");
|
|
12
15
|
var _react2 = require("@emotion/react");
|
|
13
|
-
var
|
|
16
|
+
var _debouncePromise = _interopRequireDefault(require("debounce-promise"));
|
|
17
|
+
var _reactFinalForm = require("react-final-form");
|
|
14
18
|
var _select = require("@atlaskit/select");
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
|
|
19
|
+
var _createField = require("../../../controllers/create-field");
|
|
20
|
+
var _excluded = ["id", "name", "label", "isRequired", "validators", "validationHelpText", "testId", "defaultOption", "loadOptions"],
|
|
21
|
+
_excluded2 = ["fieldId"];
|
|
18
22
|
/** @jsx jsx */
|
|
19
23
|
var TEST_ID = 'link-create-async-select';
|
|
24
|
+
|
|
20
25
|
/**
|
|
21
|
-
* An async select utilising the Atlaskit AsyncSelect and Field
|
|
22
|
-
* Validation is handled by the form
|
|
23
|
-
* the handleSubmit function passed to the form <Form> that
|
|
24
|
-
* of this
|
|
26
|
+
* An async select utilising the Atlaskit AsyncSelect and Field components from
|
|
27
|
+
* `@atlaskit/form`. Validation is handled by the form on form submission. Any
|
|
28
|
+
* errors returned by the handleSubmit function passed to the form <Form> that
|
|
29
|
+
* have a key matching the `name` of this field are shown below the field.
|
|
25
30
|
*/
|
|
26
31
|
exports.TEST_ID = TEST_ID;
|
|
27
32
|
function AsyncSelect(_ref) {
|
|
28
|
-
var
|
|
33
|
+
var id = _ref.id,
|
|
29
34
|
name = _ref.name,
|
|
30
|
-
|
|
35
|
+
label = _ref.label,
|
|
31
36
|
isRequired = _ref.isRequired,
|
|
37
|
+
validators = _ref.validators,
|
|
38
|
+
validationHelpText = _ref.validationHelpText,
|
|
32
39
|
_ref$testId = _ref.testId,
|
|
33
40
|
testId = _ref$testId === void 0 ? TEST_ID : _ref$testId,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
var
|
|
38
|
-
|
|
41
|
+
propsDefaultValue = _ref.defaultOption,
|
|
42
|
+
loadOptions = _ref.loadOptions,
|
|
43
|
+
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
44
|
+
var _useForm = (0, _reactFinalForm.useForm)(),
|
|
45
|
+
mutators = _useForm.mutators;
|
|
46
|
+
var _useState = (0, _react.useState)(propsDefaultValue),
|
|
47
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
48
|
+
defaultValue = _useState2[0],
|
|
49
|
+
setDefaultValue = _useState2[1];
|
|
50
|
+
var _useState3 = (0, _react.useState)(false),
|
|
51
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
52
|
+
isLoadingDefaultOptions = _useState4[0],
|
|
53
|
+
setIsLoadingDefaultOptions = _useState4[1];
|
|
54
|
+
var _useState5 = (0, _react.useState)([]),
|
|
55
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
56
|
+
defaultOptions = _useState6[0],
|
|
57
|
+
setDefaultOptions = _useState6[1];
|
|
58
|
+
(0, _react.useEffect)(function () {
|
|
59
|
+
var current = true;
|
|
60
|
+
var fetch = /*#__PURE__*/function () {
|
|
61
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
62
|
+
var query,
|
|
63
|
+
options,
|
|
64
|
+
_args = arguments;
|
|
65
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
66
|
+
while (1) switch (_context.prev = _context.next) {
|
|
67
|
+
case 0:
|
|
68
|
+
query = _args.length > 0 && _args[0] !== undefined ? _args[0] : '';
|
|
69
|
+
if (loadOptions) {
|
|
70
|
+
_context.next = 3;
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
return _context.abrupt("return");
|
|
74
|
+
case 3:
|
|
75
|
+
_context.prev = 3;
|
|
76
|
+
/**
|
|
77
|
+
* If we are fetching default options, clear the
|
|
78
|
+
* value the user has set
|
|
79
|
+
*/
|
|
80
|
+
mutators.setField(name, null);
|
|
81
|
+
setIsLoadingDefaultOptions(true);
|
|
82
|
+
setDefaultOptions([]);
|
|
83
|
+
_context.next = 9;
|
|
84
|
+
return loadOptions(query);
|
|
85
|
+
case 9:
|
|
86
|
+
options = _context.sent;
|
|
87
|
+
if (current) {
|
|
88
|
+
setDefaultOptions(options);
|
|
89
|
+
setIsLoadingDefaultOptions(false);
|
|
90
|
+
}
|
|
91
|
+
_context.next = 16;
|
|
92
|
+
break;
|
|
93
|
+
case 13:
|
|
94
|
+
_context.prev = 13;
|
|
95
|
+
_context.t0 = _context["catch"](3);
|
|
96
|
+
if (current) {
|
|
97
|
+
setIsLoadingDefaultOptions(false);
|
|
98
|
+
}
|
|
99
|
+
case 16:
|
|
100
|
+
case "end":
|
|
101
|
+
return _context.stop();
|
|
102
|
+
}
|
|
103
|
+
}, _callee, null, [[3, 13]]);
|
|
104
|
+
}));
|
|
105
|
+
return function fetch() {
|
|
106
|
+
return _ref2.apply(this, arguments);
|
|
107
|
+
};
|
|
108
|
+
}();
|
|
109
|
+
fetch();
|
|
110
|
+
return function () {
|
|
111
|
+
current = false;
|
|
112
|
+
};
|
|
113
|
+
}, [loadOptions, setIsLoadingDefaultOptions, setDefaultOptions, mutators, name]);
|
|
39
114
|
(0, _react.useEffect)(function () {
|
|
40
|
-
|
|
41
|
-
|
|
115
|
+
/**
|
|
116
|
+
* Mutate the form state to set a default value for this field
|
|
117
|
+
* if `defaultOption` is a prop and we have not set a value for it yet
|
|
118
|
+
*/
|
|
119
|
+
if (!defaultValue && propsDefaultValue) {
|
|
120
|
+
setDefaultValue(propsDefaultValue);
|
|
121
|
+
mutators.setField(name, propsDefaultValue);
|
|
42
122
|
}
|
|
43
|
-
}, [
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
},
|
|
123
|
+
}, [defaultValue, propsDefaultValue, name, mutators]);
|
|
124
|
+
var debouncedLoadOptions = (0, _react.useMemo)(function () {
|
|
125
|
+
return loadOptions ? (0, _debouncePromise.default)(loadOptions, 300) : undefined;
|
|
126
|
+
}, [loadOptions]);
|
|
127
|
+
return (0, _react2.jsx)(_createField.CreateField, {
|
|
128
|
+
id: id,
|
|
47
129
|
name: name,
|
|
48
130
|
label: label,
|
|
49
131
|
isRequired: isRequired,
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return (0, _react2.jsx)(
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
})
|
|
132
|
+
validators: validators,
|
|
133
|
+
validationHelpText: validationHelpText,
|
|
134
|
+
testId: testId
|
|
135
|
+
}, function (_ref3) {
|
|
136
|
+
var fieldId = _ref3.fieldId,
|
|
137
|
+
fieldProps = (0, _objectWithoutProperties2.default)(_ref3, _excluded2);
|
|
138
|
+
return (0, _react2.jsx)(_select.AsyncSelect, (0, _extends2.default)({
|
|
139
|
+
inputId: fieldId
|
|
140
|
+
}, fieldProps, restProps, {
|
|
141
|
+
loadOptions: debouncedLoadOptions,
|
|
142
|
+
defaultOptions: defaultOptions,
|
|
143
|
+
isLoading: isLoadingDefaultOptions
|
|
144
|
+
}));
|
|
145
|
+
});
|
|
64
146
|
}
|
|
@@ -10,13 +10,17 @@ var _react = require("@emotion/react");
|
|
|
10
10
|
var _reactIntlNext = require("react-intl-next");
|
|
11
11
|
var _button = _interopRequireWildcard(require("@atlaskit/button"));
|
|
12
12
|
var _loadingButton = _interopRequireDefault(require("@atlaskit/button/loading-button"));
|
|
13
|
-
var _form = require("@atlaskit/form");
|
|
14
13
|
var _error = _interopRequireDefault(require("@atlaskit/icon/glyph/error"));
|
|
15
14
|
var _messages = require("./messages");
|
|
16
15
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
16
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
18
17
|
/** @jsx jsx */
|
|
19
18
|
|
|
19
|
+
var formFooterWrapperStyles = (0, _react.css)({
|
|
20
|
+
display: 'flex',
|
|
21
|
+
marginTop: "var(--ds-space-300, 24px)",
|
|
22
|
+
justifyContent: 'flex-end'
|
|
23
|
+
});
|
|
20
24
|
var errorStyles = (0, _react.css)({
|
|
21
25
|
display: 'flex',
|
|
22
26
|
alignItems: 'center',
|
|
@@ -28,7 +32,10 @@ function CreateFormFooter(_ref) {
|
|
|
28
32
|
submitting = _ref.submitting,
|
|
29
33
|
testId = _ref.testId;
|
|
30
34
|
var intl = (0, _reactIntlNext.useIntl)();
|
|
31
|
-
return (0, _react.jsx)(
|
|
35
|
+
return (0, _react.jsx)("footer", {
|
|
36
|
+
"data-testid": "".concat(testId, "-footer"),
|
|
37
|
+
css: formFooterWrapperStyles
|
|
38
|
+
}, formErrorMessage && (0, _react.jsx)("div", {
|
|
32
39
|
css: errorStyles,
|
|
33
40
|
"data-testid": "".concat(testId, "-error")
|
|
34
41
|
}, (0, _react.jsx)(_error.default, {
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.FormSpy = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _reactFinalForm = require("react-final-form");
|
|
10
|
+
/**
|
|
11
|
+
* Lightweight wrapper around the react-final-form
|
|
12
|
+
* FormSpy component so that we can control selectively
|
|
13
|
+
* how much of the API we are commited to.
|
|
14
|
+
*/
|
|
15
|
+
var FormSpy = function FormSpy(_ref) {
|
|
16
|
+
var children = _ref.children;
|
|
17
|
+
return /*#__PURE__*/_react.default.createElement(_reactFinalForm.FormSpy, {
|
|
18
|
+
subscription: {
|
|
19
|
+
values: true
|
|
20
|
+
}
|
|
21
|
+
}, function (props) {
|
|
22
|
+
return children({
|
|
23
|
+
values: props.values
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
exports.FormSpy = FormSpy;
|
|
@@ -21,6 +21,18 @@ Object.defineProperty(exports, "CreateFormLoader", {
|
|
|
21
21
|
return _formLoader.CreateFormLoader;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
|
+
Object.defineProperty(exports, "FormSpy", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function get() {
|
|
27
|
+
return _formSpy.FormSpy;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "Select", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function get() {
|
|
33
|
+
return _select.Select;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
24
36
|
Object.defineProperty(exports, "TextField", {
|
|
25
37
|
enumerable: true,
|
|
26
38
|
get: function get() {
|
|
@@ -28,6 +40,8 @@ Object.defineProperty(exports, "TextField", {
|
|
|
28
40
|
}
|
|
29
41
|
});
|
|
30
42
|
var _main = require("./main");
|
|
43
|
+
var _select = require("./select");
|
|
31
44
|
var _asyncSelect = require("./async-select");
|
|
32
45
|
var _formLoader = require("./form-loader");
|
|
33
|
-
var _textfield = require("./textfield");
|
|
46
|
+
var _textfield = require("./textfield");
|
|
47
|
+
var _formSpy = require("./form-spy");
|
|
@@ -5,21 +5,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.TEST_ID = exports.CreateForm = void 0;
|
|
8
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
8
9
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
11
|
var _react = require("react");
|
|
12
12
|
var _react2 = require("@emotion/react");
|
|
13
|
+
var _reactFinalForm = require("react-final-form");
|
|
13
14
|
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
14
|
-
var _form = _interopRequireDefault(require("@atlaskit/form"));
|
|
15
15
|
var _constants = require("../../common/constants");
|
|
16
16
|
var _analytics = _interopRequireDefault(require("../../common/utils/analytics/analytics.codegen"));
|
|
17
17
|
var _formContext = require("../../controllers/form-context");
|
|
18
18
|
var _formFooter = require("./form-footer");
|
|
19
19
|
var _formLoader = require("./form-loader");
|
|
20
20
|
var _utils = require("./utils");
|
|
21
|
+
var _excluded = ["submitting"];
|
|
21
22
|
/** @jsx jsx */
|
|
22
|
-
|
|
23
23
|
var formStyles = (0, _react2.css)({
|
|
24
24
|
maxWidth: "".concat(_constants.CREATE_FORM_MAX_WIDTH_IN_PX, "px"),
|
|
25
25
|
padding: "0 0 ".concat("var(--ds-space-300, 24px)", " 0"),
|
|
@@ -34,7 +34,8 @@ var CreateForm = function CreateForm(_ref) {
|
|
|
34
34
|
onSubmit = _ref.onSubmit,
|
|
35
35
|
onCancel = _ref.onCancel,
|
|
36
36
|
isLoading = _ref.isLoading,
|
|
37
|
-
hideFooter = _ref.hideFooter
|
|
37
|
+
hideFooter = _ref.hideFooter,
|
|
38
|
+
initialValues = _ref.initialValues;
|
|
38
39
|
var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
|
|
39
40
|
createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
|
|
40
41
|
var _useFormContext = (0, _formContext.useFormContext)(),
|
|
@@ -76,16 +77,25 @@ var CreateForm = function CreateForm(_ref) {
|
|
|
76
77
|
if (isLoading) {
|
|
77
78
|
return (0, _react2.jsx)(_formLoader.CreateFormLoader, null);
|
|
78
79
|
}
|
|
79
|
-
return (0, _react2.jsx)(
|
|
80
|
-
onSubmit: handleSubmit
|
|
80
|
+
return (0, _react2.jsx)(_reactFinalForm.Form, {
|
|
81
|
+
onSubmit: handleSubmit,
|
|
82
|
+
initialValues: initialValues,
|
|
83
|
+
mutators: {
|
|
84
|
+
setField: function setField(args, state, tools) {
|
|
85
|
+
tools.changeValue(state, args[0], function () {
|
|
86
|
+
return args[1];
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
81
90
|
}, function (_ref3) {
|
|
82
|
-
var
|
|
83
|
-
|
|
84
|
-
return (0, _react2.jsx)("form",
|
|
91
|
+
var submitting = _ref3.submitting,
|
|
92
|
+
formProps = (0, _objectWithoutProperties2.default)(_ref3, _excluded);
|
|
93
|
+
return (0, _react2.jsx)("form", {
|
|
94
|
+
onSubmit: formProps.handleSubmit,
|
|
85
95
|
name: "link-create-form",
|
|
86
96
|
"data-testid": testId,
|
|
87
97
|
css: formStyles
|
|
88
|
-
}
|
|
98
|
+
}, (0, _react2.jsx)("div", null, children), !hideFooter && (0, _react2.jsx)(_formFooter.CreateFormFooter, {
|
|
89
99
|
formErrorMessage: formErrorMessage,
|
|
90
100
|
handleCancel: handleCancel,
|
|
91
101
|
submitting: submitting,
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.Select = Select;
|
|
8
|
+
exports.TEST_ID = void 0;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
+
var _react = require("@emotion/react");
|
|
12
|
+
var _select = _interopRequireDefault(require("@atlaskit/select"));
|
|
13
|
+
var _createField = require("../../../controllers/create-field");
|
|
14
|
+
var _excluded = ["id", "name", "label", "isRequired", "validators", "validationHelpText", "testId"],
|
|
15
|
+
_excluded2 = ["fieldId"];
|
|
16
|
+
/** @jsx jsx */
|
|
17
|
+
var TEST_ID = 'link-create-select';
|
|
18
|
+
/**
|
|
19
|
+
* A select utilising the Atlaskit Select and Field components from
|
|
20
|
+
* `@atlaskit/form`. Validation is handled by the form on form submission. Any
|
|
21
|
+
* errors returned by the handleSubmit function passed to the form <Form> that
|
|
22
|
+
* have a key matching the `name` of this field are shown below the field.
|
|
23
|
+
*/
|
|
24
|
+
exports.TEST_ID = TEST_ID;
|
|
25
|
+
function Select(_ref) {
|
|
26
|
+
var id = _ref.id,
|
|
27
|
+
name = _ref.name,
|
|
28
|
+
label = _ref.label,
|
|
29
|
+
isRequired = _ref.isRequired,
|
|
30
|
+
validators = _ref.validators,
|
|
31
|
+
validationHelpText = _ref.validationHelpText,
|
|
32
|
+
_ref$testId = _ref.testId,
|
|
33
|
+
testId = _ref$testId === void 0 ? TEST_ID : _ref$testId,
|
|
34
|
+
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
35
|
+
return (0, _react.jsx)(_createField.CreateField, {
|
|
36
|
+
id: id,
|
|
37
|
+
name: name,
|
|
38
|
+
label: label,
|
|
39
|
+
isRequired: isRequired,
|
|
40
|
+
validators: validators,
|
|
41
|
+
validationHelpText: validationHelpText,
|
|
42
|
+
testId: testId
|
|
43
|
+
}, function (_ref2) {
|
|
44
|
+
var fieldId = _ref2.fieldId,
|
|
45
|
+
fieldProps = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
|
|
46
|
+
return (0, _react.jsx)(_select.default, (0, _extends2.default)({
|
|
47
|
+
inputId: fieldId
|
|
48
|
+
}, fieldProps, restProps));
|
|
49
|
+
});
|
|
50
|
+
}
|
|
@@ -8,13 +8,11 @@ exports.TEST_ID = void 0;
|
|
|
8
8
|
exports.TextField = TextField;
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
-
var _react = require("react");
|
|
12
|
-
var _react2 = require("@emotion/react");
|
|
13
|
-
var _form = require("@atlaskit/form");
|
|
11
|
+
var _react = require("@emotion/react");
|
|
14
12
|
var _textfield = _interopRequireDefault(require("@atlaskit/textfield"));
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
|
|
13
|
+
var _createField = require("../../../controllers/create-field");
|
|
14
|
+
var _excluded = ["id", "name", "label", "isRequired", "validators", "validationHelpText", "testId"],
|
|
15
|
+
_excluded2 = ["fieldId"];
|
|
18
16
|
/** @jsx jsx */
|
|
19
17
|
var TEST_ID = 'link-create-text-field';
|
|
20
18
|
|
|
@@ -26,50 +24,30 @@ var TEST_ID = 'link-create-text-field';
|
|
|
26
24
|
*/
|
|
27
25
|
exports.TEST_ID = TEST_ID;
|
|
28
26
|
function TextField(_ref) {
|
|
29
|
-
var
|
|
27
|
+
var id = _ref.id,
|
|
30
28
|
name = _ref.name,
|
|
29
|
+
label = _ref.label,
|
|
30
|
+
isRequired = _ref.isRequired,
|
|
31
|
+
validators = _ref.validators,
|
|
32
|
+
validationHelpText = _ref.validationHelpText,
|
|
31
33
|
_ref$testId = _ref.testId,
|
|
32
34
|
testId = _ref$testId === void 0 ? TEST_ID : _ref$testId,
|
|
33
|
-
validationHelpText = _ref.validationHelpText,
|
|
34
|
-
validators = _ref.validators,
|
|
35
|
-
defaultValue = _ref.defaultValue,
|
|
36
|
-
isRequired = _ref.isRequired,
|
|
37
35
|
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
name: name,
|
|
56
|
-
label: label,
|
|
57
|
-
isRequired: isRequired,
|
|
58
|
-
defaultValue: defaultValue !== null && defaultValue !== void 0 ? defaultValue : ''
|
|
59
|
-
}, function (_ref2) {
|
|
60
|
-
var fieldProps = _ref2.fieldProps,
|
|
61
|
-
meta = _ref2.meta,
|
|
62
|
-
error = _ref2.error;
|
|
63
|
-
var isInvalid = (0, _form2.validateSubmitErrors)(meta);
|
|
64
|
-
return (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(_textfield.default, (0, _extends2.default)({}, fieldProps, restProps, {
|
|
65
|
-
testId: testId,
|
|
66
|
-
isInvalid: isInvalid,
|
|
67
|
-
isRequired: false // Remove the default browser validation
|
|
68
|
-
})), !error && validationHelpText && (0, _react2.jsx)(_form.HelperMessage, {
|
|
69
|
-
testId: "".concat(testId, "-helper-message")
|
|
70
|
-
}, validationHelpText), error && isInvalid && (0, _react2.jsx)(_form.ErrorMessage, {
|
|
71
|
-
testId: "".concat(testId, "-error-message")
|
|
72
|
-
}, error));
|
|
73
|
-
})
|
|
74
|
-
);
|
|
36
|
+
return (0, _react.jsx)(_createField.CreateField, {
|
|
37
|
+
id: id,
|
|
38
|
+
name: name,
|
|
39
|
+
label: label,
|
|
40
|
+
isRequired: isRequired,
|
|
41
|
+
validators: validators,
|
|
42
|
+
validationHelpText: validationHelpText,
|
|
43
|
+
testId: testId
|
|
44
|
+
}, function (_ref2) {
|
|
45
|
+
var fieldId = _ref2.fieldId,
|
|
46
|
+
fieldProps = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
|
|
47
|
+
return (0, _react.jsx)(_textfield.default, (0, _extends2.default)({
|
|
48
|
+
id: fieldId
|
|
49
|
+
}, fieldProps, restProps, {
|
|
50
|
+
isRequired: false // Remove the default browser validation
|
|
51
|
+
}));
|
|
52
|
+
});
|
|
75
53
|
}
|
package/dist/cjs/ui/index.js
CHANGED
|
@@ -22,6 +22,18 @@ Object.defineProperty(exports, "CreateFormLoader", {
|
|
|
22
22
|
return _formLoader.CreateFormLoader;
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
|
+
Object.defineProperty(exports, "FormSpy", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function get() {
|
|
28
|
+
return _formSpy.FormSpy;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(exports, "Select", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function get() {
|
|
34
|
+
return _select.Select;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
25
37
|
Object.defineProperty(exports, "TextField", {
|
|
26
38
|
enumerable: true,
|
|
27
39
|
get: function get() {
|
|
@@ -38,4 +50,6 @@ var _main = _interopRequireDefault(require("./main"));
|
|
|
38
50
|
var _textfield = require("./create-form/textfield");
|
|
39
51
|
var _main2 = require("./create-form/main");
|
|
40
52
|
var _formLoader = require("./create-form/form-loader");
|
|
41
|
-
var
|
|
53
|
+
var _select = require("./create-form/select");
|
|
54
|
+
var _asyncSelect = require("./create-form/async-select");
|
|
55
|
+
var _formSpy = require("./create-form/form-spy");
|
package/dist/cjs/version.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CreateField } from './main';
|