@itcase/storybook-config 1.2.72 → 1.2.73

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,247 +0,0 @@
1
- 'use strict';
2
-
3
- var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-D8XyM9rZ.js');
4
- var React = require('react');
5
-
6
- var SUBMIT_TIMEOUT_MS = 5000;
7
- var SUBMIT_POLL_MS = 50;
8
- function getMountRoot() {
9
- var _document$getElementB;
10
- return (_document$getElementB = document.getElementById('storybook-root')) !== null && _document$getElementB !== void 0 ? _document$getElementB : document.body;
11
- }
12
- function sleep() {
13
- var ms = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SUBMIT_POLL_MS;
14
- return new Promise(function (resolve) {
15
- setTimeout(resolve, ms);
16
- });
17
- }
18
- function findSubmitButton(root) {
19
- var _root$querySelector;
20
- if (!root) {
21
- return null;
22
- }
23
- return (_root$querySelector = root.querySelector('button[type="submit"]')) !== null && _root$querySelector !== void 0 ? _root$querySelector : root.querySelector('button.form__button-item');
24
- }
25
- function isSubmitButton(button) {
26
- return (button === null || button === void 0 ? void 0 : button.type) === 'submit';
27
- }
28
- function canUseFormApi(form) {
29
- return typeof (form === null || form === void 0 ? void 0 : form.submit) === 'function';
30
- }
31
- function prepareFormForAutoSubmit(form) {
32
- var _config$field, _form$getFieldState$v, _form$getFieldState, _config$suffix;
33
- var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
34
- if (!canUseFormApi(form) || typeof form.getRegisteredFields !== 'function') {
35
- return;
36
- }
37
- var fieldName = (_config$field = config.field) !== null && _config$field !== void 0 ? _config$field : form.getRegisteredFields()[0];
38
- if (!fieldName) {
39
- return;
40
- }
41
- var value = (_form$getFieldState$v = (_form$getFieldState = form.getFieldState(fieldName)) === null || _form$getFieldState === void 0 ? void 0 : _form$getFieldState.value) !== null && _form$getFieldState$v !== void 0 ? _form$getFieldState$v : '';
42
- var nextValue = "".concat(value).concat((_config$suffix = config.suffix) !== null && _config$suffix !== void 0 ? _config$suffix : "\u200B");
43
- if (nextValue !== value) {
44
- form.change(fieldName, nextValue);
45
- }
46
- }
47
- function triggerFormSubmit(_ref) {
48
- var _submitButton$closest, _submitButton$closest2;
49
- var form = _ref.form,
50
- submitButton = _ref.submitButton;
51
- if (isSubmitButton(submitButton)) {
52
- submitButton.click();
53
- return;
54
- }
55
- if (canUseFormApi(form)) {
56
- form.submit();
57
- return;
58
- }
59
- submitButton === null || submitButton === void 0 || (_submitButton$closest = submitButton.closest('form')) === null || _submitButton$closest === void 0 || (_submitButton$closest2 = _submitButton$closest.requestSubmit) === null || _submitButton$closest2 === void 0 || _submitButton$closest2.call(_submitButton$closest);
60
- }
61
- function getSubmitTarget(formRef) {
62
- var submitButton = findSubmitButton(getMountRoot());
63
- return {
64
- canSubmit: Boolean(submitButton) || canUseFormApi(formRef.current),
65
- form: formRef.current,
66
- submitButton: submitButton
67
- };
68
- }
69
- function bindSubmitButtonClick(formRef, signal) {
70
- var root = getMountRoot();
71
- if (!root) {
72
- return undefined;
73
- }
74
- var handler = function handler(event) {
75
- if (signal.aborted) {
76
- return;
77
- }
78
- var submitButton = findSubmitButton(root);
79
- if (!submitButton || isSubmitButton(submitButton)) {
80
- return;
81
- }
82
- if (event.target !== submitButton && !submitButton.contains(event.target)) {
83
- return;
84
- }
85
- event.preventDefault();
86
- triggerFormSubmit({
87
- form: formRef.current,
88
- submitButton: submitButton
89
- });
90
- };
91
- root.addEventListener('click', handler, true);
92
- return function () {
93
- root.removeEventListener('click', handler, true);
94
- };
95
- }
96
- function autoSubmitForm(_x) {
97
- return _autoSubmitForm.apply(this, arguments);
98
- }
99
- function _autoSubmitForm() {
100
- _autoSubmitForm = _rollupPluginBabelHelpers._asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers._regenerator().m(function _callee(formRef) {
101
- var formSubmitConfig,
102
- signal,
103
- didPrepareUnchangedSubmit,
104
- deadline,
105
- _getSubmitTarget,
106
- canSubmit,
107
- form,
108
- submitButton,
109
- _args = arguments;
110
- return _rollupPluginBabelHelpers._regenerator().w(function (_context) {
111
- while (1) switch (_context.n) {
112
- case 0:
113
- formSubmitConfig = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
114
- signal = _args.length > 2 ? _args[2] : undefined;
115
- didPrepareUnchangedSubmit = false;
116
- deadline = Date.now() + SUBMIT_TIMEOUT_MS;
117
- case 1:
118
- if (!(Date.now() < deadline && !signal.aborted)) {
119
- _context.n = 6;
120
- break;
121
- }
122
- _getSubmitTarget = getSubmitTarget(formRef), canSubmit = _getSubmitTarget.canSubmit, form = _getSubmitTarget.form, submitButton = _getSubmitTarget.submitButton;
123
- if (canSubmit) {
124
- _context.n = 3;
125
- break;
126
- }
127
- _context.n = 2;
128
- return sleep();
129
- case 2:
130
- return _context.a(3, 1);
131
- case 3:
132
- if (!(formSubmitConfig !== null && formSubmitConfig !== void 0 && formSubmitConfig.allowUnchangedSubmit && !didPrepareUnchangedSubmit)) {
133
- _context.n = 5;
134
- break;
135
- }
136
- prepareFormForAutoSubmit(form, formSubmitConfig);
137
- didPrepareUnchangedSubmit = true;
138
- _context.n = 4;
139
- return sleep();
140
- case 4:
141
- return _context.a(3, 1);
142
- case 5:
143
- triggerFormSubmit({
144
- form: form,
145
- submitButton: submitButton
146
- });
147
- return _context.a(2);
148
- case 6:
149
- return _context.a(2);
150
- }
151
- }, _callee);
152
- }));
153
- return _autoSubmitForm.apply(this, arguments);
154
- }
155
-
156
- function wrapRender(component, render, formRef) {
157
- if (!component || typeof render !== 'function') {
158
- return render;
159
- }
160
- return function renderWithRef(storyArgs) {
161
- var args = _rollupPluginBabelHelpers._objectSpread2({}, storyArgs !== null && storyArgs !== void 0 ? storyArgs : {});
162
- delete args.ref;
163
- return /*#__PURE__*/React.createElement(component, _rollupPluginBabelHelpers._objectSpread2({
164
- ref: formRef
165
- }, args));
166
- };
167
- }
168
- function withFormRef(children, formRef, bindings) {
169
- var _ref, _children$props, _ref2, _children$props2, _ref3, _children$props3;
170
- var component = bindings.component,
171
- args = bindings.args,
172
- storyRender = bindings.render,
173
- allArgs = bindings.allArgs,
174
- context = bindings.context;
175
- var storyComponent = (_ref = component !== null && component !== void 0 ? component : context === null || context === void 0 ? void 0 : context.component) !== null && _ref !== void 0 ? _ref : children === null || children === void 0 || (_children$props = children.props) === null || _children$props === void 0 ? void 0 : _children$props.component;
176
- var storyRenderFn = (_ref2 = storyRender !== null && storyRender !== void 0 ? storyRender : context === null || context === void 0 ? void 0 : context.render) !== null && _ref2 !== void 0 ? _ref2 : children === null || children === void 0 || (_children$props2 = children.props) === null || _children$props2 === void 0 ? void 0 : _children$props2.render;
177
- var boundRender = wrapRender(storyComponent, storyRenderFn, formRef);
178
- var addRef = function addRef(value) {
179
- return value ? _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, value), {}, {
180
- ref: formRef
181
- }) : value;
182
- };
183
- return /*#__PURE__*/React.cloneElement(children, {
184
- component: storyComponent,
185
- args: addRef((_ref3 = args !== null && args !== void 0 ? args : context === null || context === void 0 ? void 0 : context.args) !== null && _ref3 !== void 0 ? _ref3 : children === null || children === void 0 || (_children$props3 = children.props) === null || _children$props3 === void 0 ? void 0 : _children$props3.args),
186
- render: boundRender,
187
- allArgs: addRef(allArgs),
188
- context: context ? _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, context), {}, {
189
- component: storyComponent,
190
- args: addRef(context.args),
191
- render: boundRender,
192
- allArgs: addRef(context.allArgs)
193
- }) : context
194
- });
195
- }
196
-
197
- /**
198
- * Авто-submit для интерактивного Storybook (Require / Validation / ServerError).
199
- * При primaryButtonHtmlType="button" вызывает formRef.current.submit() (final-form API)
200
- * и вешает click на кнопку, чтобы ручной submit тоже работал.
201
- * В Vitest не используется — submit делается в play.
202
- */
203
- function FormSubmitWrapper(props) {
204
- var formRef = React.useRef(null);
205
- var component = props.component,
206
- args = props.args,
207
- parameters = props.parameters,
208
- render = props.render,
209
- allArgs = props.allArgs,
210
- context = props.context,
211
- _props$submit = props.submit,
212
- submit = _props$submit === void 0 ? true : _props$submit,
213
- children = props.children;
214
- var formSubmitConfig = parameters === null || parameters === void 0 ? void 0 : parameters.formSubmit;
215
- React.useEffect(function () {
216
- if (!submit) {
217
- return undefined;
218
- }
219
- var abortController = new AbortController();
220
- var unbindClick = bindSubmitButtonClick(formRef, abortController.signal);
221
- return function () {
222
- abortController.abort();
223
- unbindClick === null || unbindClick === void 0 || unbindClick();
224
- };
225
- }, [formSubmitConfig, submit]);
226
- React.useEffect(function () {
227
- if (!submit) {
228
- return undefined;
229
- }
230
- var abortController = new AbortController();
231
- autoSubmitForm(formRef, formSubmitConfig, abortController.signal);
232
- return function () {
233
- abortController.abort();
234
- };
235
- }, [formSubmitConfig, submit]);
236
-
237
- // eslint-disable-next-line react-hooks/refs -- ref уходит в createElement внутри bound render
238
- return withFormRef(children, formRef, {
239
- component: component,
240
- args: args,
241
- render: render,
242
- allArgs: allArgs,
243
- context: context
244
- });
245
- }
246
-
247
- exports.FormSubmitWrapper = FormSubmitWrapper;
@@ -1,245 +0,0 @@
1
- import { a as _asyncToGenerator, b as _regenerator, c as _objectSpread2 } from './_rollupPluginBabelHelpers-OwKVS06F.js';
2
- import React, { useRef, useEffect } from 'react';
3
-
4
- var SUBMIT_TIMEOUT_MS = 5000;
5
- var SUBMIT_POLL_MS = 50;
6
- function getMountRoot() {
7
- var _document$getElementB;
8
- return (_document$getElementB = document.getElementById('storybook-root')) !== null && _document$getElementB !== void 0 ? _document$getElementB : document.body;
9
- }
10
- function sleep() {
11
- var ms = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SUBMIT_POLL_MS;
12
- return new Promise(function (resolve) {
13
- setTimeout(resolve, ms);
14
- });
15
- }
16
- function findSubmitButton(root) {
17
- var _root$querySelector;
18
- if (!root) {
19
- return null;
20
- }
21
- return (_root$querySelector = root.querySelector('button[type="submit"]')) !== null && _root$querySelector !== void 0 ? _root$querySelector : root.querySelector('button.form__button-item');
22
- }
23
- function isSubmitButton(button) {
24
- return (button === null || button === void 0 ? void 0 : button.type) === 'submit';
25
- }
26
- function canUseFormApi(form) {
27
- return typeof (form === null || form === void 0 ? void 0 : form.submit) === 'function';
28
- }
29
- function prepareFormForAutoSubmit(form) {
30
- var _config$field, _form$getFieldState$v, _form$getFieldState, _config$suffix;
31
- var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
32
- if (!canUseFormApi(form) || typeof form.getRegisteredFields !== 'function') {
33
- return;
34
- }
35
- var fieldName = (_config$field = config.field) !== null && _config$field !== void 0 ? _config$field : form.getRegisteredFields()[0];
36
- if (!fieldName) {
37
- return;
38
- }
39
- var value = (_form$getFieldState$v = (_form$getFieldState = form.getFieldState(fieldName)) === null || _form$getFieldState === void 0 ? void 0 : _form$getFieldState.value) !== null && _form$getFieldState$v !== void 0 ? _form$getFieldState$v : '';
40
- var nextValue = "".concat(value).concat((_config$suffix = config.suffix) !== null && _config$suffix !== void 0 ? _config$suffix : "\u200B");
41
- if (nextValue !== value) {
42
- form.change(fieldName, nextValue);
43
- }
44
- }
45
- function triggerFormSubmit(_ref) {
46
- var _submitButton$closest, _submitButton$closest2;
47
- var form = _ref.form,
48
- submitButton = _ref.submitButton;
49
- if (isSubmitButton(submitButton)) {
50
- submitButton.click();
51
- return;
52
- }
53
- if (canUseFormApi(form)) {
54
- form.submit();
55
- return;
56
- }
57
- submitButton === null || submitButton === void 0 || (_submitButton$closest = submitButton.closest('form')) === null || _submitButton$closest === void 0 || (_submitButton$closest2 = _submitButton$closest.requestSubmit) === null || _submitButton$closest2 === void 0 || _submitButton$closest2.call(_submitButton$closest);
58
- }
59
- function getSubmitTarget(formRef) {
60
- var submitButton = findSubmitButton(getMountRoot());
61
- return {
62
- canSubmit: Boolean(submitButton) || canUseFormApi(formRef.current),
63
- form: formRef.current,
64
- submitButton: submitButton
65
- };
66
- }
67
- function bindSubmitButtonClick(formRef, signal) {
68
- var root = getMountRoot();
69
- if (!root) {
70
- return undefined;
71
- }
72
- var handler = function handler(event) {
73
- if (signal.aborted) {
74
- return;
75
- }
76
- var submitButton = findSubmitButton(root);
77
- if (!submitButton || isSubmitButton(submitButton)) {
78
- return;
79
- }
80
- if (event.target !== submitButton && !submitButton.contains(event.target)) {
81
- return;
82
- }
83
- event.preventDefault();
84
- triggerFormSubmit({
85
- form: formRef.current,
86
- submitButton: submitButton
87
- });
88
- };
89
- root.addEventListener('click', handler, true);
90
- return function () {
91
- root.removeEventListener('click', handler, true);
92
- };
93
- }
94
- function autoSubmitForm(_x) {
95
- return _autoSubmitForm.apply(this, arguments);
96
- }
97
- function _autoSubmitForm() {
98
- _autoSubmitForm = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(formRef) {
99
- var formSubmitConfig,
100
- signal,
101
- didPrepareUnchangedSubmit,
102
- deadline,
103
- _getSubmitTarget,
104
- canSubmit,
105
- form,
106
- submitButton,
107
- _args = arguments;
108
- return _regenerator().w(function (_context) {
109
- while (1) switch (_context.n) {
110
- case 0:
111
- formSubmitConfig = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
112
- signal = _args.length > 2 ? _args[2] : undefined;
113
- didPrepareUnchangedSubmit = false;
114
- deadline = Date.now() + SUBMIT_TIMEOUT_MS;
115
- case 1:
116
- if (!(Date.now() < deadline && !signal.aborted)) {
117
- _context.n = 6;
118
- break;
119
- }
120
- _getSubmitTarget = getSubmitTarget(formRef), canSubmit = _getSubmitTarget.canSubmit, form = _getSubmitTarget.form, submitButton = _getSubmitTarget.submitButton;
121
- if (canSubmit) {
122
- _context.n = 3;
123
- break;
124
- }
125
- _context.n = 2;
126
- return sleep();
127
- case 2:
128
- return _context.a(3, 1);
129
- case 3:
130
- if (!(formSubmitConfig !== null && formSubmitConfig !== void 0 && formSubmitConfig.allowUnchangedSubmit && !didPrepareUnchangedSubmit)) {
131
- _context.n = 5;
132
- break;
133
- }
134
- prepareFormForAutoSubmit(form, formSubmitConfig);
135
- didPrepareUnchangedSubmit = true;
136
- _context.n = 4;
137
- return sleep();
138
- case 4:
139
- return _context.a(3, 1);
140
- case 5:
141
- triggerFormSubmit({
142
- form: form,
143
- submitButton: submitButton
144
- });
145
- return _context.a(2);
146
- case 6:
147
- return _context.a(2);
148
- }
149
- }, _callee);
150
- }));
151
- return _autoSubmitForm.apply(this, arguments);
152
- }
153
-
154
- function wrapRender(component, render, formRef) {
155
- if (!component || typeof render !== 'function') {
156
- return render;
157
- }
158
- return function renderWithRef(storyArgs) {
159
- var args = _objectSpread2({}, storyArgs !== null && storyArgs !== void 0 ? storyArgs : {});
160
- delete args.ref;
161
- return /*#__PURE__*/React.createElement(component, _objectSpread2({
162
- ref: formRef
163
- }, args));
164
- };
165
- }
166
- function withFormRef(children, formRef, bindings) {
167
- var _ref, _children$props, _ref2, _children$props2, _ref3, _children$props3;
168
- var component = bindings.component,
169
- args = bindings.args,
170
- storyRender = bindings.render,
171
- allArgs = bindings.allArgs,
172
- context = bindings.context;
173
- var storyComponent = (_ref = component !== null && component !== void 0 ? component : context === null || context === void 0 ? void 0 : context.component) !== null && _ref !== void 0 ? _ref : children === null || children === void 0 || (_children$props = children.props) === null || _children$props === void 0 ? void 0 : _children$props.component;
174
- var storyRenderFn = (_ref2 = storyRender !== null && storyRender !== void 0 ? storyRender : context === null || context === void 0 ? void 0 : context.render) !== null && _ref2 !== void 0 ? _ref2 : children === null || children === void 0 || (_children$props2 = children.props) === null || _children$props2 === void 0 ? void 0 : _children$props2.render;
175
- var boundRender = wrapRender(storyComponent, storyRenderFn, formRef);
176
- var addRef = function addRef(value) {
177
- return value ? _objectSpread2(_objectSpread2({}, value), {}, {
178
- ref: formRef
179
- }) : value;
180
- };
181
- return /*#__PURE__*/React.cloneElement(children, {
182
- component: storyComponent,
183
- args: addRef((_ref3 = args !== null && args !== void 0 ? args : context === null || context === void 0 ? void 0 : context.args) !== null && _ref3 !== void 0 ? _ref3 : children === null || children === void 0 || (_children$props3 = children.props) === null || _children$props3 === void 0 ? void 0 : _children$props3.args),
184
- render: boundRender,
185
- allArgs: addRef(allArgs),
186
- context: context ? _objectSpread2(_objectSpread2({}, context), {}, {
187
- component: storyComponent,
188
- args: addRef(context.args),
189
- render: boundRender,
190
- allArgs: addRef(context.allArgs)
191
- }) : context
192
- });
193
- }
194
-
195
- /**
196
- * Авто-submit для интерактивного Storybook (Require / Validation / ServerError).
197
- * При primaryButtonHtmlType="button" вызывает formRef.current.submit() (final-form API)
198
- * и вешает click на кнопку, чтобы ручной submit тоже работал.
199
- * В Vitest не используется — submit делается в play.
200
- */
201
- function FormSubmitWrapper(props) {
202
- var formRef = useRef(null);
203
- var component = props.component,
204
- args = props.args,
205
- parameters = props.parameters,
206
- render = props.render,
207
- allArgs = props.allArgs,
208
- context = props.context,
209
- _props$submit = props.submit,
210
- submit = _props$submit === void 0 ? true : _props$submit,
211
- children = props.children;
212
- var formSubmitConfig = parameters === null || parameters === void 0 ? void 0 : parameters.formSubmit;
213
- useEffect(function () {
214
- if (!submit) {
215
- return undefined;
216
- }
217
- var abortController = new AbortController();
218
- var unbindClick = bindSubmitButtonClick(formRef, abortController.signal);
219
- return function () {
220
- abortController.abort();
221
- unbindClick === null || unbindClick === void 0 || unbindClick();
222
- };
223
- }, [formSubmitConfig, submit]);
224
- useEffect(function () {
225
- if (!submit) {
226
- return undefined;
227
- }
228
- var abortController = new AbortController();
229
- autoSubmitForm(formRef, formSubmitConfig, abortController.signal);
230
- return function () {
231
- abortController.abort();
232
- };
233
- }, [formSubmitConfig, submit]);
234
-
235
- // eslint-disable-next-line react-hooks/refs -- ref уходит в createElement внутри bound render
236
- return withFormRef(children, formRef, {
237
- component: component,
238
- args: args,
239
- render: render,
240
- allArgs: allArgs,
241
- context: context
242
- });
243
- }
244
-
245
- export { FormSubmitWrapper as F };