eddev 0.1.43 → 0.1.46
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/blocks/ContentBlocks.d.ts +1 -0
- package/blocks/InspectorControls.d.ts +2 -0
- package/blocks/InspectorControls.js +13 -0
- package/blocks/defineBlock.d.ts +1 -1
- package/blocks/index.d.ts +1 -0
- package/blocks/index.js +1 -0
- package/blocks/installGutenbergHooks.js +6 -1
- package/build/get-webpack-config.js +59 -19
- package/cli/display/components/BundleDisplay.d.ts +1 -0
- package/cli/display/components/CodegenDisplay.d.ts +1 -0
- package/cli/display/components/DevCLIDisplay.d.ts +1 -0
- package/cli/display/components/StatusIcon.d.ts +1 -0
- package/components/AdminBar.d.ts +1 -0
- package/entry/Root.d.ts +1 -0
- package/entry/entry.admin.dev.js +2 -0
- package/entry/entry.admin.prod.js +2 -0
- package/entry/entry.monolith.dev.js +12 -2
- package/entry/entry.monolith.prod.js +10 -2
- package/fields/ImageWell.d.ts +8 -0
- package/fields/ImageWell.js +64 -0
- package/fields/components/ImageWell.d.ts +10 -0
- package/fields/components/ImageWell.js +209 -0
- package/fields/defineFIeld.d.ts +14 -0
- package/fields/defineFIeld.js +7 -0
- package/fields/index.d.ts +2 -0
- package/fields/index.js +14 -0
- package/fields/installFieldTypes.d.ts +1 -0
- package/fields/installFieldTypes.js +60 -0
- package/fields/selectMedia.d.ts +31 -0
- package/fields/selectMedia.js +9 -0
- package/gravityforms/gravity-forms.d.ts +16 -0
- package/gravityforms/gravity-forms.js +2 -0
- package/gravityforms/index.d.ts +2 -0
- package/gravityforms/index.js +14 -0
- package/gravityforms/useGravityForm.d.ts +30 -0
- package/gravityforms/useGravityForm.js +181 -0
- package/package.json +7 -7
- package/style/createStitches.d.ts +1 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InspectorControls = void 0;
|
|
4
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
// @ts-ignore
|
|
6
|
+
var block_editor_1 = require("@wordpress/block-editor");
|
|
7
|
+
function InspectorControls(props) {
|
|
8
|
+
if (process.admin) {
|
|
9
|
+
return (0, jsx_runtime_1.jsx)(block_editor_1.InspectorControls, { children: props.children }, void 0);
|
|
10
|
+
}
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
exports.InspectorControls = InspectorControls;
|
package/blocks/defineBlock.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ComponentType, ReactElement } from "react";
|
|
2
|
-
export declare function defineBlock<Name extends keyof BlockProps>(name: Name, component: (props: BlockProps[Name]) => ReactElement): ComponentType<BlockProps[Name]>;
|
|
2
|
+
export declare function defineBlock<Name extends keyof BlockProps>(name: Name, component: (props: BlockProps[Name]) => ReactElement | null): ComponentType<BlockProps[Name]>;
|
package/blocks/index.d.ts
CHANGED
package/blocks/index.js
CHANGED
|
@@ -14,6 +14,7 @@ exports.useInnerBlocks = exports.useInlineEditableValue = void 0;
|
|
|
14
14
|
__exportStar(require("./defineBlock"), exports);
|
|
15
15
|
__exportStar(require("./inlineEditing"), exports);
|
|
16
16
|
__exportStar(require("./ContentBlocks"), exports);
|
|
17
|
+
__exportStar(require("./InspectorControls"), exports);
|
|
17
18
|
var blockAttributes_1 = require("./blockAttributes");
|
|
18
19
|
Object.defineProperty(exports, "useInlineEditableValue", { enumerable: true, get: function () { return blockAttributes_1.useInlineEditableValue; } });
|
|
19
20
|
Object.defineProperty(exports, "useInnerBlocks", { enumerable: true, get: function () { return blockAttributes_1.useInnerBlocks; } });
|
|
@@ -40,6 +40,10 @@ var BlockContext = (0, react_1.createContext)(undefined);
|
|
|
40
40
|
// Store the block manifest as a local variable
|
|
41
41
|
var blocksManifest = new Observable_1.Observable(blocks_1.default);
|
|
42
42
|
function installEDGutenbergHooks() {
|
|
43
|
+
// Skip this if we're not in the block editor
|
|
44
|
+
// @ts-ignore
|
|
45
|
+
if (!window.wp.blockEditor)
|
|
46
|
+
return;
|
|
43
47
|
(0, react_2.globalCss)({
|
|
44
48
|
".block-editor-block-list__block:hover": {
|
|
45
49
|
outline: "1px solid #e1e1e1",
|
|
@@ -125,9 +129,10 @@ function installEDGutenbergHooks() {
|
|
|
125
129
|
if (item.tags.length) {
|
|
126
130
|
Object.defineProperty(item, "parent", {
|
|
127
131
|
get: function () {
|
|
128
|
-
|
|
132
|
+
var result = item.tags.reduce(function (acc, tag) {
|
|
129
133
|
return __spreadArray(__spreadArray([], acc, true), getParentsForTag(tag), true);
|
|
130
134
|
}, []);
|
|
135
|
+
return result;
|
|
131
136
|
},
|
|
132
137
|
});
|
|
133
138
|
}
|
|
@@ -78,9 +78,9 @@ var autoprefixer_1 = __importDefault(require("autoprefixer"));
|
|
|
78
78
|
var plugin_name_defined_components_1 = __importDefault(require("./babel/plugin-name-defined-components"));
|
|
79
79
|
function getWebpackConfig(opts) {
|
|
80
80
|
return __awaiter(this, void 0, void 0, function () {
|
|
81
|
-
var compiling, ALIAS, ENTRY, PLUGINS, RULES, DEFINES, VIRTUAL_MODULES, EXTERNALS, virtualModules, isServerless, isBrowser, isSSR, isDev, entryDir, distSuffix, outputFolder, loadableManifestFile, writeVirtualModule, updateTemplateRouter, templateLookupPattern, _a, updateBlocksManifest, blockLookupManifest,
|
|
82
|
-
return __generator(this, function (
|
|
83
|
-
switch (
|
|
81
|
+
var compiling, ALIAS, ENTRY, PLUGINS, RULES, DEFINES, VIRTUAL_MODULES, EXTERNALS, virtualModules, isServerless, isBrowser, isSSR, isDev, entryDir, distSuffix, outputFolder, loadableManifestFile, writeVirtualModule, updateTemplateRouter, templateLookupPattern, _a, updateFieldManifest, fieldTypeLookupPattern, _b, updateBlocksManifest, blockLookupManifest, _c, buildID;
|
|
82
|
+
return __generator(this, function (_d) {
|
|
83
|
+
switch (_d.label) {
|
|
84
84
|
case 0:
|
|
85
85
|
compiling = false;
|
|
86
86
|
ALIAS = {};
|
|
@@ -251,10 +251,11 @@ function getWebpackConfig(opts) {
|
|
|
251
251
|
var relative = path_1.default.relative(opts.baseDirectory, file);
|
|
252
252
|
var name = path_1.default.basename(file).replace(/\.(jsx|tsx|ts|js)$/i, "");
|
|
253
253
|
var module = JSON.stringify("./" + relative);
|
|
254
|
-
var componentName = (0, change_case_1.pascalCase)(name);
|
|
254
|
+
var componentName = "View" + (0, change_case_1.pascalCase)(name);
|
|
255
255
|
return { relative: relative, name: name, module: module, componentName: componentName };
|
|
256
256
|
});
|
|
257
|
-
|
|
257
|
+
var useLoadableViews = false;
|
|
258
|
+
writeVirtualModule(ALIAS["@manifest/views"], "\n ".concat(useLoadableViews && "import loadable from '".concat(require.resolve("@loadable/component"), "';"), "\n import App from ").concat(JSON.stringify("./views/_app.tsx"), "\n\n ").concat(!useLoadableViews
|
|
258
259
|
? files.map(function (_a) {
|
|
259
260
|
var componentName = _a.componentName, module = _a.module;
|
|
260
261
|
return "import ".concat(componentName, " from ").concat(module);
|
|
@@ -262,7 +263,7 @@ function getWebpackConfig(opts) {
|
|
|
262
263
|
: "", "\n\n export { App }\n\n export default {\n ").concat(files
|
|
263
264
|
.map(function (_a) {
|
|
264
265
|
var relative = _a.relative, componentName = _a.componentName, module = _a.module;
|
|
265
|
-
if (
|
|
266
|
+
if (useLoadableViews) {
|
|
266
267
|
// In serverless mode, export @loadable components. Script tags will be
|
|
267
268
|
// auto-included in output HTML
|
|
268
269
|
return "\"".concat(relative, "\": loadable(() => import(").concat(module, "))");
|
|
@@ -282,15 +283,53 @@ function getWebpackConfig(opts) {
|
|
|
282
283
|
if (!isDev) return [3 /*break*/, 3];
|
|
283
284
|
return [4 /*yield*/, (0, file_tree_1.watchFileTree)(templateLookupPattern, updateTemplateRouter)];
|
|
284
285
|
case 2:
|
|
285
|
-
|
|
286
|
+
_d.sent();
|
|
286
287
|
return [3 /*break*/, 5];
|
|
287
288
|
case 3:
|
|
288
289
|
_a = updateTemplateRouter;
|
|
289
290
|
return [4 /*yield*/, (0, file_tree_1.getFileTree)(templateLookupPattern)];
|
|
290
291
|
case 4:
|
|
291
|
-
_a.apply(void 0, [
|
|
292
|
-
|
|
292
|
+
_a.apply(void 0, [_d.sent()]);
|
|
293
|
+
_d.label = 5;
|
|
293
294
|
case 5:
|
|
295
|
+
ALIAS["@manifest/fields"] = path_1.default.resolve(opts.baseDirectory, "_fields_manifest.js");
|
|
296
|
+
updateFieldManifest = function (fileNames) {
|
|
297
|
+
var files = fileNames
|
|
298
|
+
.filter(function (file) { return !file.includes("/_app"); })
|
|
299
|
+
.map(function (file) {
|
|
300
|
+
var relative = path_1.default.relative(opts.baseDirectory, file);
|
|
301
|
+
var name = path_1.default.basename(file).replace(/\.(jsx|tsx|ts|js)$/i, "");
|
|
302
|
+
var module = JSON.stringify("./" + relative);
|
|
303
|
+
var componentName = "FieldType" + (0, change_case_1.pascalCase)(name);
|
|
304
|
+
return { relative: relative, name: name, module: module, componentName: componentName };
|
|
305
|
+
});
|
|
306
|
+
writeVirtualModule(ALIAS["@manifest/fields"], "\n ".concat(files.map(function (_a) {
|
|
307
|
+
var componentName = _a.componentName, module = _a.module;
|
|
308
|
+
return "import ".concat(componentName, " from ").concat(module);
|
|
309
|
+
}).join("\n"), "\n\n export default {\n ").concat(files
|
|
310
|
+
.map(function (_a) {
|
|
311
|
+
var relative = _a.relative, componentName = _a.componentName, module = _a.module, name = _a.name;
|
|
312
|
+
return "\"".concat(name, "\": ").concat(componentName);
|
|
313
|
+
})
|
|
314
|
+
.join(",\n"), "\n }\n "));
|
|
315
|
+
};
|
|
316
|
+
fieldTypeLookupPattern = path_1.default.resolve(opts.baseDirectory, "backend/fields/**.tsx");
|
|
317
|
+
if (!!opts.isAdmin) return [3 /*break*/, 6];
|
|
318
|
+
writeVirtualModule(ALIAS["@manifest/fields"], "\n export default {}\n ");
|
|
319
|
+
return [3 /*break*/, 10];
|
|
320
|
+
case 6:
|
|
321
|
+
if (!isDev) return [3 /*break*/, 8];
|
|
322
|
+
return [4 /*yield*/, (0, file_tree_1.watchFileTree)(fieldTypeLookupPattern, updateFieldManifest)];
|
|
323
|
+
case 7:
|
|
324
|
+
_d.sent();
|
|
325
|
+
return [3 /*break*/, 10];
|
|
326
|
+
case 8:
|
|
327
|
+
_b = updateFieldManifest;
|
|
328
|
+
return [4 /*yield*/, (0, file_tree_1.getFileTree)(templateLookupPattern)];
|
|
329
|
+
case 9:
|
|
330
|
+
_b.apply(void 0, [_d.sent()]);
|
|
331
|
+
_d.label = 10;
|
|
332
|
+
case 10:
|
|
294
333
|
ALIAS["@manifest/blocks"] = path_1.default.resolve(opts.baseDirectory, "_blocks_manifest.js");
|
|
295
334
|
updateBlocksManifest = function (fileNames) {
|
|
296
335
|
var files = fileNames
|
|
@@ -332,18 +371,18 @@ function getWebpackConfig(opts) {
|
|
|
332
371
|
}
|
|
333
372
|
};
|
|
334
373
|
blockLookupManifest = path_1.default.resolve(opts.baseDirectory, "blocks/**/*.tsx");
|
|
335
|
-
if (!isDev) return [3 /*break*/,
|
|
374
|
+
if (!isDev) return [3 /*break*/, 12];
|
|
336
375
|
return [4 /*yield*/, (0, file_tree_1.watchFileTree)(blockLookupManifest, updateBlocksManifest)];
|
|
337
|
-
case
|
|
338
|
-
|
|
339
|
-
return [3 /*break*/,
|
|
340
|
-
case
|
|
341
|
-
|
|
376
|
+
case 11:
|
|
377
|
+
_d.sent();
|
|
378
|
+
return [3 /*break*/, 14];
|
|
379
|
+
case 12:
|
|
380
|
+
_c = updateBlocksManifest;
|
|
342
381
|
return [4 /*yield*/, (0, file_tree_1.getFileTree)(blockLookupManifest)];
|
|
343
|
-
case
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
case
|
|
382
|
+
case 13:
|
|
383
|
+
_c.apply(void 0, [_d.sent()]);
|
|
384
|
+
_d.label = 14;
|
|
385
|
+
case 14:
|
|
347
386
|
// External Gutenberg
|
|
348
387
|
EXTERNALS["@wordpress/components"] = ["wp", "components"];
|
|
349
388
|
EXTERNALS["@wordpress/element"] = ["wp", "element"];
|
|
@@ -354,6 +393,7 @@ function getWebpackConfig(opts) {
|
|
|
354
393
|
EXTERNALS["@wordpress/block-editor"] = ["wp", "blockEditor"];
|
|
355
394
|
if (opts.isAdmin) {
|
|
356
395
|
EXTERNALS["react"] = "React";
|
|
396
|
+
EXTERNALS["react-dom"] = "ReactDOM";
|
|
357
397
|
}
|
|
358
398
|
// Define some values
|
|
359
399
|
DEFINES["process.browser"] = JSON.stringify(isBrowser);
|
package/components/AdminBar.d.ts
CHANGED
package/entry/Root.d.ts
CHANGED
package/entry/entry.admin.dev.js
CHANGED
|
@@ -3,7 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
var installGutenbergHooks_1 = require("../blocks/installGutenbergHooks");
|
|
4
4
|
// @ts-ignore
|
|
5
5
|
var _theme_1 = require("@theme");
|
|
6
|
+
var installFieldTypes_1 = require("../fields/installFieldTypes");
|
|
6
7
|
(0, installGutenbergHooks_1.installEDGutenbergHooks)();
|
|
8
|
+
(0, installFieldTypes_1.installFieldTypes)();
|
|
7
9
|
if (_theme_1.editorGlobalStyles) {
|
|
8
10
|
(0, _theme_1.editorGlobalStyles)();
|
|
9
11
|
}
|
|
@@ -3,7 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
var installGutenbergHooks_1 = require("../blocks/installGutenbergHooks");
|
|
4
4
|
// @ts-ignore
|
|
5
5
|
var _theme_1 = require("@theme");
|
|
6
|
+
var installFieldTypes_1 = require("../fields/installFieldTypes");
|
|
6
7
|
(0, installGutenbergHooks_1.installEDGutenbergHooks)();
|
|
8
|
+
(0, installFieldTypes_1.installFieldTypes)();
|
|
7
9
|
if (_theme_1.editorGlobalStyles) {
|
|
8
10
|
(0, _theme_1.editorGlobalStyles)();
|
|
9
11
|
}
|
|
@@ -9,7 +9,17 @@ var jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
9
9
|
* It also assumes that it's being run from a theme directory in WordPress, and
|
|
10
10
|
* that it's not being run in the Admin panel, but the user may be logged in.
|
|
11
11
|
*/
|
|
12
|
-
var react_dom_1 = require("react-dom");
|
|
12
|
+
var react_dom_1 = __importDefault(require("react-dom"));
|
|
13
13
|
var BrowserRouter_1 = require("../components/BrowserRouter");
|
|
14
14
|
var Root_1 = __importDefault(require("./Root"));
|
|
15
|
-
|
|
15
|
+
// @ts-ignore
|
|
16
|
+
if (!window.wp)
|
|
17
|
+
window.wp = {};
|
|
18
|
+
// @ts-ignore
|
|
19
|
+
if (react_dom_1.default.createRoot) {
|
|
20
|
+
// @ts-ignore
|
|
21
|
+
react_dom_1.default.createRoot(document.getElementById("root")).render((0, jsx_runtime_1.jsx)(BrowserRouter_1.BrowserRouter, { children: (0, jsx_runtime_1.jsx)(Root_1.default, {}, void 0) }, void 0));
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
react_dom_1.default.render((0, jsx_runtime_1.jsx)(BrowserRouter_1.BrowserRouter, { children: (0, jsx_runtime_1.jsx)(Root_1.default, {}, void 0) }, void 0), document.getElementById("root"));
|
|
25
|
+
}
|
|
@@ -9,7 +9,15 @@ var jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
9
9
|
* It also assumes that it's being run from a theme directory in WordPress, and
|
|
10
10
|
* that it's not being run in the Admin panel, but the user may be logged in.
|
|
11
11
|
*/
|
|
12
|
-
|
|
12
|
+
// @ts-ignore
|
|
13
|
+
var react_dom_1 = __importDefault(require("react-dom"));
|
|
13
14
|
var BrowserRouter_1 = require("../components/BrowserRouter");
|
|
14
15
|
var Root_1 = __importDefault(require("./Root"));
|
|
15
|
-
|
|
16
|
+
// @ts-ignore
|
|
17
|
+
if (react_dom_1.default.createRoot) {
|
|
18
|
+
// @ts-ignore
|
|
19
|
+
react_dom_1.default.createRoot(document.getElementById("root")).render((0, jsx_runtime_1.jsx)(BrowserRouter_1.BrowserRouter, { children: (0, jsx_runtime_1.jsx)(Root_1.default, {}, void 0) }, void 0));
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
react_dom_1.default.render((0, jsx_runtime_1.jsx)(BrowserRouter_1.BrowserRouter, { children: (0, jsx_runtime_1.jsx)(Root_1.default, {}, void 0) }, void 0), document.getElementById("root"));
|
|
23
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ImageWell = void 0;
|
|
4
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
var react_1 = require("@stitches/react");
|
|
6
|
+
var react_2 = require("react");
|
|
7
|
+
function ImageWell(props) {
|
|
8
|
+
var _a = (0, react_2.useState)(null), selectedImage = _a[0], setSelectedImage = _a[1];
|
|
9
|
+
var _b = (0, react_2.useState)(false), imageIsLoading = _b[0], setImageIsLoading = _b[1];
|
|
10
|
+
(0, react_2.useEffect)(function () {
|
|
11
|
+
if (props.value) {
|
|
12
|
+
var cancelled = false;
|
|
13
|
+
setImageIsLoading(true);
|
|
14
|
+
fetch("/wp-json/ed/v1/media/" + Number(props.value))
|
|
15
|
+
.then(function (response) { return response.json(); })
|
|
16
|
+
.then(function (image) {
|
|
17
|
+
setImageIsLoading(false);
|
|
18
|
+
setSelectedImage(image);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}, [props.value]);
|
|
22
|
+
return ((0, jsx_runtime_1.jsxs)(Wrapper, { children: [imageIsLoading ? ((0, jsx_runtime_1.jsx)(Loading, { children: (0, jsx_runtime_1.jsx)(Spinner, {}, void 0) }, void 0)) : selectedImage ? ((0, jsx_runtime_1.jsx)(ImageContainer, { children: (0, jsx_runtime_1.jsx)("img", { src: selectedImage.sizes[props.previewSize] || selectedImage.sizes["thumbnail"] }, void 0) }, void 0)) : null, (0, jsx_runtime_1.jsx)(Toolbar, { children: selectedImage || imageIsLoading ? ((0, jsx_runtime_1.jsxs)(react_2.Fragment, { children: [(0, jsx_runtime_1.jsx)(Button, { children: "Remove" }, void 0), (0, jsx_runtime_1.jsx)(Button, { children: "Edit" }, void 0), (0, jsx_runtime_1.jsx)(Button, { children: "View" }, void 0)] }, void 0)) : null }, void 0)] }, void 0));
|
|
23
|
+
}
|
|
24
|
+
exports.ImageWell = ImageWell;
|
|
25
|
+
var Wrapper = (0, react_1.styled)("div", {
|
|
26
|
+
position: "relative",
|
|
27
|
+
display: "block",
|
|
28
|
+
width: "100%",
|
|
29
|
+
border: "1px solid #aaaaaa",
|
|
30
|
+
});
|
|
31
|
+
var ImageContainer = (0, react_1.styled)("div", {
|
|
32
|
+
padding: "4px",
|
|
33
|
+
img: {
|
|
34
|
+
maxWidth: "100%",
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
var spin = (0, react_1.keyframes)({
|
|
38
|
+
from: {
|
|
39
|
+
transform: "rotate(0deg)",
|
|
40
|
+
},
|
|
41
|
+
to: {
|
|
42
|
+
transform: "rotate(360deg)",
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
var Spinner = (0, react_1.styled)("div", {
|
|
46
|
+
display: "block",
|
|
47
|
+
width: "32px",
|
|
48
|
+
height: "32px",
|
|
49
|
+
border: "4px solid transparent",
|
|
50
|
+
borderTop: "currentColor",
|
|
51
|
+
animation: "".concat(spin, " 1s linear infinite"),
|
|
52
|
+
});
|
|
53
|
+
var Loading = (0, react_1.styled)("div", {
|
|
54
|
+
display: "flex",
|
|
55
|
+
justifyContent: "center",
|
|
56
|
+
alignItems: "center",
|
|
57
|
+
padding: "8px",
|
|
58
|
+
});
|
|
59
|
+
var Toolbar = (0, react_1.styled)("div", {
|
|
60
|
+
position: "absolute",
|
|
61
|
+
top: 0,
|
|
62
|
+
right: 0,
|
|
63
|
+
padding: "4px",
|
|
64
|
+
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
declare type Props = {
|
|
3
|
+
previewSize: string;
|
|
4
|
+
aspects: string[];
|
|
5
|
+
value: number | null | undefined;
|
|
6
|
+
noBorder?: boolean;
|
|
7
|
+
onChange: (value: number | null) => void;
|
|
8
|
+
};
|
|
9
|
+
export declare function ImageWell(props: Props): JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.ImageWell = void 0;
|
|
15
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
|
+
var react_1 = require("@stitches/react");
|
|
17
|
+
var react_2 = require("react");
|
|
18
|
+
var selectMedia_1 = require("../selectMedia");
|
|
19
|
+
var react_use_1 = require("react-use");
|
|
20
|
+
function ImageWell(props) {
|
|
21
|
+
// @ts-ignore
|
|
22
|
+
var acf = window.acf;
|
|
23
|
+
var _a = (0, react_2.useState)(null), selectedImage = _a[0], setSelectedImage = _a[1];
|
|
24
|
+
var _b = (0, react_2.useState)(false), imageIsLoading = _b[0], setImageIsLoading = _b[1];
|
|
25
|
+
(0, react_2.useEffect)(function () {
|
|
26
|
+
if (props.value) {
|
|
27
|
+
var cancelled_1 = false;
|
|
28
|
+
setImageIsLoading(true);
|
|
29
|
+
fetch("/wp-json/ed/v1/media/" + Number(props.value))
|
|
30
|
+
.then(function (response) { return response.json(); })
|
|
31
|
+
.then(function (image) {
|
|
32
|
+
if (cancelled_1)
|
|
33
|
+
return;
|
|
34
|
+
setImageIsLoading(false);
|
|
35
|
+
setSelectedImage(image);
|
|
36
|
+
});
|
|
37
|
+
return function () {
|
|
38
|
+
cancelled_1 = true;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
setSelectedImage(null);
|
|
43
|
+
setImageIsLoading(false);
|
|
44
|
+
}
|
|
45
|
+
}, [props.value]);
|
|
46
|
+
var _c = (0, react_use_1.useMeasure)(), imgRef = _c[0], size = _c[1];
|
|
47
|
+
return ((0, jsx_runtime_1.jsxs)(Wrapper, __assign({ noBorder: props.noBorder }, { children: [imageIsLoading ? ((0, jsx_runtime_1.jsx)(Loading, { children: (0, jsx_runtime_1.jsx)(Spinner, {}, void 0) }, void 0)) : selectedImage ? ((0, jsx_runtime_1.jsxs)(ImageContainer, { children: [(0, jsx_runtime_1.jsx)("img", { ref: imgRef, src: selectedImage.sizes[props.previewSize] || selectedImage.sizes["thumbnail"] }, void 0), (0, jsx_runtime_1.jsx)(AspectWrapper, __assign({ css: {
|
|
48
|
+
width: size.width,
|
|
49
|
+
height: size.height,
|
|
50
|
+
} }, { children: props.aspects &&
|
|
51
|
+
props.aspects.map(function (aspect) {
|
|
52
|
+
var _a;
|
|
53
|
+
var x, y, width, height, originalAspect = 0, ownAspect = 0;
|
|
54
|
+
try {
|
|
55
|
+
;
|
|
56
|
+
_a = aspect.split(/\s*\/\s*/), x = _a[0], y = _a[1];
|
|
57
|
+
originalAspect = size.width / size.height;
|
|
58
|
+
ownAspect = Number(x) / Number(y);
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
width = ownAspect > originalAspect ? size.width : size.height * ownAspect;
|
|
64
|
+
height = ownAspect > originalAspect ? size.width / ownAspect : size.height;
|
|
65
|
+
return (0, jsx_runtime_1.jsx)(AspectDisplay, { style: { width: width + "px", height: height + "px" } }, aspect);
|
|
66
|
+
}) }), void 0)] }, void 0)) : ((0, jsx_runtime_1.jsx)(NoSelection, { children: (0, jsx_runtime_1.jsx)(ChooseButton, __assign({ onClick: function (e) {
|
|
67
|
+
e.preventDefault();
|
|
68
|
+
(0, selectMedia_1.selectMedia)({
|
|
69
|
+
mode: "select",
|
|
70
|
+
type: "image",
|
|
71
|
+
title: "Select an image",
|
|
72
|
+
select: function (selected) {
|
|
73
|
+
if (selected) {
|
|
74
|
+
props.onChange(selected.id);
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
// acf.newMediaPopup({
|
|
79
|
+
// mode: "edit",
|
|
80
|
+
// type: "image",
|
|
81
|
+
// title: "Select Image",
|
|
82
|
+
// attachment: [props.value],
|
|
83
|
+
// select: (selected: any) => console.log("Selected", selected),
|
|
84
|
+
// })
|
|
85
|
+
} }, { children: "Choose an image" }), void 0) }, void 0)), (0, jsx_runtime_1.jsx)(Toolbar, { children: selectedImage || imageIsLoading ? ((0, jsx_runtime_1.jsxs)(react_2.Fragment, { children: [(0, jsx_runtime_1.jsx)(ToolbarButton, __assign({ onClick: function (e) {
|
|
86
|
+
e.preventDefault();
|
|
87
|
+
props.onChange(null);
|
|
88
|
+
} }, { children: (0, jsx_runtime_1.jsx)("span", { className: "dashicons dashicons-trash" }, void 0) }), void 0), (0, jsx_runtime_1.jsx)(ToolbarButton, __assign({ onClick: function (e) {
|
|
89
|
+
e.preventDefault();
|
|
90
|
+
(0, selectMedia_1.selectMedia)({
|
|
91
|
+
mode: "edit",
|
|
92
|
+
type: "image",
|
|
93
|
+
attachment: Number(props.value),
|
|
94
|
+
title: "Edit Image",
|
|
95
|
+
});
|
|
96
|
+
} }, { children: (0, jsx_runtime_1.jsx)("span", { className: "dashicons dashicons-edit" }, void 0) }), void 0), selectedImage && ((0, jsx_runtime_1.jsx)(ToolbarButton, __assign({ onClick: function (e) {
|
|
97
|
+
e.preventDefault();
|
|
98
|
+
window.open(selectedImage.url);
|
|
99
|
+
} }, { children: (0, jsx_runtime_1.jsx)("span", { className: "dashicons dashicons-external" }, void 0) }), void 0))] }, void 0)) : null }, void 0)] }), void 0));
|
|
100
|
+
}
|
|
101
|
+
exports.ImageWell = ImageWell;
|
|
102
|
+
var Wrapper = (0, react_1.styled)("div", {
|
|
103
|
+
position: "relative",
|
|
104
|
+
display: "block",
|
|
105
|
+
width: "100%",
|
|
106
|
+
border: "1px solid #eeeeee",
|
|
107
|
+
borderRadius: "4px",
|
|
108
|
+
variants: {
|
|
109
|
+
noBorder: {
|
|
110
|
+
true: {
|
|
111
|
+
border: "0px",
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
});
|
|
116
|
+
var ImageContainer = (0, react_1.styled)("div", {
|
|
117
|
+
margin: "4px",
|
|
118
|
+
display: "block",
|
|
119
|
+
position: "relative",
|
|
120
|
+
img: {
|
|
121
|
+
maxWidth: "min(100%, 300px)",
|
|
122
|
+
display: "block",
|
|
123
|
+
},
|
|
124
|
+
});
|
|
125
|
+
var spin = (0, react_1.keyframes)({
|
|
126
|
+
from: {
|
|
127
|
+
transform: "rotate(0deg)",
|
|
128
|
+
},
|
|
129
|
+
to: {
|
|
130
|
+
transform: "rotate(360deg)",
|
|
131
|
+
},
|
|
132
|
+
});
|
|
133
|
+
var Spinner = (0, react_1.styled)("div", {
|
|
134
|
+
display: "block",
|
|
135
|
+
width: "16px",
|
|
136
|
+
height: "16px",
|
|
137
|
+
borderRadius: "100px",
|
|
138
|
+
border: "4px solid transparent",
|
|
139
|
+
borderTopColor: "currentColor",
|
|
140
|
+
animation: "".concat(spin, " 0.5s linear infinite"),
|
|
141
|
+
});
|
|
142
|
+
var Loading = (0, react_1.styled)("div", {
|
|
143
|
+
display: "flex",
|
|
144
|
+
justifyContent: "center",
|
|
145
|
+
alignItems: "center",
|
|
146
|
+
padding: "10px",
|
|
147
|
+
});
|
|
148
|
+
var Toolbar = (0, react_1.styled)("div", {
|
|
149
|
+
position: "absolute",
|
|
150
|
+
top: "0",
|
|
151
|
+
right: "6px",
|
|
152
|
+
bottom: "0",
|
|
153
|
+
padding: "4px",
|
|
154
|
+
display: "flex",
|
|
155
|
+
flexDirection: "column",
|
|
156
|
+
justifyContent: "center",
|
|
157
|
+
});
|
|
158
|
+
var ToolbarButton = (0, react_1.styled)("button", {
|
|
159
|
+
width: "24px",
|
|
160
|
+
height: "24px",
|
|
161
|
+
fontSize: "12px",
|
|
162
|
+
borderRadius: "100px",
|
|
163
|
+
background: "white",
|
|
164
|
+
border: "none",
|
|
165
|
+
color: "black",
|
|
166
|
+
cursor: "pointer",
|
|
167
|
+
appearance: "none",
|
|
168
|
+
boxShadow: "rgba(0,0,0,0.2) 0px 1px 3px",
|
|
169
|
+
display: "flex",
|
|
170
|
+
alignItems: "center",
|
|
171
|
+
justifyContent: "center",
|
|
172
|
+
margin: "4px 0",
|
|
173
|
+
});
|
|
174
|
+
ToolbarButton.defaultProps = {
|
|
175
|
+
className: "dashicons",
|
|
176
|
+
};
|
|
177
|
+
var NoSelection = (0, react_1.styled)("div", {
|
|
178
|
+
display: "flex",
|
|
179
|
+
justifyContent: "center",
|
|
180
|
+
padding: "10px 0px",
|
|
181
|
+
});
|
|
182
|
+
var ChooseButton = (0, react_1.styled)("button", {
|
|
183
|
+
appearance: "none",
|
|
184
|
+
border: "0px",
|
|
185
|
+
background: "#f6f6f6",
|
|
186
|
+
color: "black",
|
|
187
|
+
padding: "10px 16px",
|
|
188
|
+
borderRadius: "100px",
|
|
189
|
+
cursor: "pointer",
|
|
190
|
+
});
|
|
191
|
+
var AspectWrapper = (0, react_1.styled)("div", {
|
|
192
|
+
position: "absolute",
|
|
193
|
+
left: 0,
|
|
194
|
+
top: 0,
|
|
195
|
+
width: "100%",
|
|
196
|
+
height: "100%",
|
|
197
|
+
opacity: 0.3,
|
|
198
|
+
transition: "opacity 0.3s",
|
|
199
|
+
"&:hover": {
|
|
200
|
+
opacity: 1,
|
|
201
|
+
},
|
|
202
|
+
});
|
|
203
|
+
var AspectDisplay = (0, react_1.styled)("div", {
|
|
204
|
+
position: "absolute",
|
|
205
|
+
border: "1px solid white",
|
|
206
|
+
left: "50%",
|
|
207
|
+
top: "50%",
|
|
208
|
+
transform: "translate(-50%, -50%)",
|
|
209
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ReactElement } from "react";
|
|
2
|
+
export declare type FieldProps<T> = {
|
|
3
|
+
value: T;
|
|
4
|
+
onChange: (value: T) => void;
|
|
5
|
+
settings: {
|
|
6
|
+
[key: string]: any;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
export declare type FieldTypeDefinition<T> = {
|
|
10
|
+
render: (props: FieldProps<T>) => ReactElement;
|
|
11
|
+
defaultValue?: T;
|
|
12
|
+
validate?: (value: T) => boolean | string;
|
|
13
|
+
};
|
|
14
|
+
export declare function defineField<T>(args: FieldTypeDefinition<T>): FieldTypeDefinition<T>;
|
package/fields/index.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./defineFIeld"), exports);
|
|
14
|
+
__exportStar(require("./components/ImageWell"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function installFieldTypes(): void;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.installFieldTypes = void 0;
|
|
26
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
27
|
+
// @ts-ignore
|
|
28
|
+
var fields_1 = __importDefault(require("@manifest/fields"));
|
|
29
|
+
var ReactDOM = __importStar(require("react-dom"));
|
|
30
|
+
var react_1 = require("react");
|
|
31
|
+
function installFieldTypes() {
|
|
32
|
+
// @ts-ignore
|
|
33
|
+
var acf = window.acf;
|
|
34
|
+
var _loop_1 = function (name_1) {
|
|
35
|
+
var type = fields_1.default[name_1];
|
|
36
|
+
var Component = type.render;
|
|
37
|
+
var init = function (_a) {
|
|
38
|
+
var $el = _a.$el, cid = _a.cid, data = _a.data;
|
|
39
|
+
var input = $el.find("input[type='hidden']");
|
|
40
|
+
var container = document.createElement("div");
|
|
41
|
+
$el.append(container);
|
|
42
|
+
ReactDOM.render((0, jsx_runtime_1.jsx)(FieldWrapper, { defaultValue: type.defaultValue, validate: type.validate, field: data, input: input[0], settings: input.data("settings"), Component: Component }, void 0), container);
|
|
43
|
+
};
|
|
44
|
+
acf.addAction("ready_field/type=" + name_1, init);
|
|
45
|
+
acf.addAction("append_field/type=" + name_1, init);
|
|
46
|
+
};
|
|
47
|
+
for (var name_1 in fields_1.default) {
|
|
48
|
+
_loop_1(name_1);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.installFieldTypes = installFieldTypes;
|
|
52
|
+
function FieldWrapper(_a) {
|
|
53
|
+
var input = _a.input, defaultValue = _a.defaultValue, Component = _a.Component, settings = _a.settings;
|
|
54
|
+
var _b = (0, react_1.useState)(function () { var _a; return (_a = (input.value ? JSON.parse(input.value) : null)) !== null && _a !== void 0 ? _a : defaultValue; }), value = _b[0], setValue = _b[1];
|
|
55
|
+
(0, react_1.useEffect)(function () {
|
|
56
|
+
input.value = JSON.stringify(value);
|
|
57
|
+
console.log(input.value);
|
|
58
|
+
}, [value]);
|
|
59
|
+
return (0, jsx_runtime_1.jsx)(Component, { value: value, onChange: setValue, settings: settings }, void 0);
|
|
60
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
declare type Attachment = {
|
|
2
|
+
id: number;
|
|
3
|
+
filename: string;
|
|
4
|
+
mime: string;
|
|
5
|
+
height: number;
|
|
6
|
+
width: number;
|
|
7
|
+
attributes: any;
|
|
8
|
+
url: string;
|
|
9
|
+
sizes: {
|
|
10
|
+
[key: string]: {
|
|
11
|
+
width: number;
|
|
12
|
+
height: number;
|
|
13
|
+
url: string;
|
|
14
|
+
orientation: string;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
declare type MediaPopupArgs = {
|
|
19
|
+
mode?: "select" | "edit";
|
|
20
|
+
type?: string;
|
|
21
|
+
title?: string;
|
|
22
|
+
button?: string;
|
|
23
|
+
allowedTypes?: string;
|
|
24
|
+
library?: string;
|
|
25
|
+
attachment?: number;
|
|
26
|
+
multiple?: boolean;
|
|
27
|
+
value?: string | string[];
|
|
28
|
+
select?: (attachments: Attachment[]) => void;
|
|
29
|
+
};
|
|
30
|
+
export declare function selectMedia(args: MediaPopupArgs): any;
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare type GravityFormsField = {
|
|
2
|
+
type: string;
|
|
3
|
+
id: number;
|
|
4
|
+
label: string;
|
|
5
|
+
isRequired: boolean;
|
|
6
|
+
} & {
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
};
|
|
9
|
+
export declare type GravityFormData = {
|
|
10
|
+
id: number;
|
|
11
|
+
fields: GravityFormsField[];
|
|
12
|
+
title: string;
|
|
13
|
+
button: {
|
|
14
|
+
text: string;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./useGravityForm"), exports);
|
|
14
|
+
__exportStar(require("./gravity-forms"), exports);
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { GravityFormsField } from ".";
|
|
2
|
+
import { GravityFormData } from "./gravity-forms";
|
|
3
|
+
declare type Options = {
|
|
4
|
+
form: GravityFormData;
|
|
5
|
+
};
|
|
6
|
+
export declare type GravityFormsFieldState<T = any> = GravityFormsField & {
|
|
7
|
+
value: T | undefined;
|
|
8
|
+
error: string | undefined;
|
|
9
|
+
set(value: T | undefined): void;
|
|
10
|
+
};
|
|
11
|
+
export declare function useGravityForm(opts: Options): {
|
|
12
|
+
fields: GravityFormsFieldState<any>[];
|
|
13
|
+
submit(): void;
|
|
14
|
+
updateField(id: number, value: any): void;
|
|
15
|
+
submitting: boolean;
|
|
16
|
+
complete: boolean;
|
|
17
|
+
successMessage: string | null;
|
|
18
|
+
mainError: string | null;
|
|
19
|
+
hasErrors: boolean;
|
|
20
|
+
values: {
|
|
21
|
+
[key: number]: any;
|
|
22
|
+
};
|
|
23
|
+
errors: {
|
|
24
|
+
[key: number]: string | undefined;
|
|
25
|
+
};
|
|
26
|
+
validity: {
|
|
27
|
+
[key: number]: boolean;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (_) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
exports.useGravityForm = void 0;
|
|
51
|
+
var react_1 = require("react");
|
|
52
|
+
var react_2 = require("react");
|
|
53
|
+
var react_3 = require("react");
|
|
54
|
+
var reducer = function (state, action) {
|
|
55
|
+
var _a, _b, _c;
|
|
56
|
+
switch (action.type) {
|
|
57
|
+
case "field":
|
|
58
|
+
return __assign(__assign({}, state), { errors: __assign(__assign({}, state.errors), (_a = {}, _a[action.id] = undefined, _a)), values: __assign(__assign({}, state.values), (_b = {}, _b[action.id] = action.value, _b)) });
|
|
59
|
+
case "submitting":
|
|
60
|
+
return __assign(__assign({}, state), { errors: {}, validity: {}, hasErrors: false, submitting: true });
|
|
61
|
+
case "success":
|
|
62
|
+
return __assign(__assign({}, state), { submitting: false, complete: true, errors: {}, validity: {}, hasErrors: false, successMessage: action.message });
|
|
63
|
+
case "mainError":
|
|
64
|
+
return __assign(__assign({}, state), { submitting: false, hasErrors: true, mainError: action.message });
|
|
65
|
+
case "errors":
|
|
66
|
+
return __assign(__assign({}, state), { submitting: false, hasErrors: true, errors: action.errors });
|
|
67
|
+
case "clearError":
|
|
68
|
+
return __assign(__assign({}, state), { submitting: false, errors: __assign(__assign({}, state.errors), (_c = {}, _c[action.id] = undefined, _c)) });
|
|
69
|
+
default:
|
|
70
|
+
throw new Error("Unknown GravityForms action ".concat(JSON.stringify(action)));
|
|
71
|
+
}
|
|
72
|
+
return state;
|
|
73
|
+
};
|
|
74
|
+
var initializer = function (form) {
|
|
75
|
+
return {
|
|
76
|
+
submitting: false,
|
|
77
|
+
mainError: null,
|
|
78
|
+
complete: false,
|
|
79
|
+
successMessage: null,
|
|
80
|
+
hasErrors: false,
|
|
81
|
+
values: {},
|
|
82
|
+
errors: {},
|
|
83
|
+
validity: {},
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
function useGravityForm(opts) {
|
|
87
|
+
var form = opts.form;
|
|
88
|
+
var _a = (0, react_3.useReducer)(reducer, form, initializer), state = _a[0], dispatch = _a[1];
|
|
89
|
+
var fields = form.fields.map(function (field) { return (__assign(__assign({}, field), { value: state.values[field.id], error: state.errors[field.id], set: function (value) {
|
|
90
|
+
dispatch({ type: "field", id: field.id, value: value });
|
|
91
|
+
} })); });
|
|
92
|
+
var _b = (0, react_2.useState)(null), submitter = _b[0], setSubmitter = _b[1];
|
|
93
|
+
(0, react_1.useEffect)(function () {
|
|
94
|
+
var cancelled = false;
|
|
95
|
+
setSubmitter({
|
|
96
|
+
submit: function (state) {
|
|
97
|
+
dispatch({ type: "submitting" });
|
|
98
|
+
submit(form, state).then(function (result) {
|
|
99
|
+
console.log("RESULT", result);
|
|
100
|
+
if (cancelled)
|
|
101
|
+
return;
|
|
102
|
+
if (result.success) {
|
|
103
|
+
dispatch({ type: "success", message: result.successMessage || "" });
|
|
104
|
+
}
|
|
105
|
+
else if (result.errors) {
|
|
106
|
+
dispatch({ type: "errors", errors: result.errors });
|
|
107
|
+
}
|
|
108
|
+
else if (result.mainError) {
|
|
109
|
+
dispatch({ type: "mainError", message: result.mainError });
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
return function () {
|
|
115
|
+
cancelled = true;
|
|
116
|
+
};
|
|
117
|
+
}, []);
|
|
118
|
+
return __assign(__assign({}, state), { fields: fields, submit: function () {
|
|
119
|
+
submitter === null || submitter === void 0 ? void 0 : submitter.submit(state);
|
|
120
|
+
}, updateField: function (id, value) {
|
|
121
|
+
dispatch({ type: "field", id: id, value: value });
|
|
122
|
+
} });
|
|
123
|
+
}
|
|
124
|
+
exports.useGravityForm = useGravityForm;
|
|
125
|
+
function prepareValuesPayload(form, state, data) {
|
|
126
|
+
for (var _i = 0, _a = form.fields; _i < _a.length; _i++) {
|
|
127
|
+
var field = _a[_i];
|
|
128
|
+
var value = state.values[field.id];
|
|
129
|
+
data["input_" + field.id] = value;
|
|
130
|
+
}
|
|
131
|
+
return data;
|
|
132
|
+
}
|
|
133
|
+
function submit(form, state) {
|
|
134
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
135
|
+
var url, params, result, payload, err_1;
|
|
136
|
+
return __generator(this, function (_a) {
|
|
137
|
+
switch (_a.label) {
|
|
138
|
+
case 0:
|
|
139
|
+
_a.trys.push([0, 3, , 4]);
|
|
140
|
+
console.log("Submitting", { form: form, state: state });
|
|
141
|
+
url = "/wp-json/ed/v1/gf/submit";
|
|
142
|
+
params = {
|
|
143
|
+
formID: form.id,
|
|
144
|
+
values: prepareValuesPayload(form, state, {}),
|
|
145
|
+
};
|
|
146
|
+
return [4 /*yield*/, fetch(url, {
|
|
147
|
+
method: "POST",
|
|
148
|
+
headers: {
|
|
149
|
+
"Content-type": "application/json",
|
|
150
|
+
},
|
|
151
|
+
credentials: "include",
|
|
152
|
+
body: JSON.stringify(params),
|
|
153
|
+
})];
|
|
154
|
+
case 1:
|
|
155
|
+
result = _a.sent();
|
|
156
|
+
return [4 /*yield*/, result.json()];
|
|
157
|
+
case 2:
|
|
158
|
+
payload = _a.sent();
|
|
159
|
+
if (!payload.is_valid) {
|
|
160
|
+
return [2 /*return*/, __assign(__assign({}, payload), { success: false, errors: payload.validation_messages })];
|
|
161
|
+
}
|
|
162
|
+
else if (payload.is_valid) {
|
|
163
|
+
return [2 /*return*/, __assign(__assign({}, payload), { success: true, successMessage: payload.confirmation_message })];
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
console.error("Not sure what to do with GF response", payload);
|
|
167
|
+
return [2 /*return*/, __assign({}, payload)];
|
|
168
|
+
}
|
|
169
|
+
return [3 /*break*/, 4];
|
|
170
|
+
case 3:
|
|
171
|
+
err_1 = _a.sent();
|
|
172
|
+
console.error(err_1);
|
|
173
|
+
return [2 /*return*/, {
|
|
174
|
+
success: false,
|
|
175
|
+
mainError: "An error occurred while submitting this form. Please contact us directly if the issue persists.",
|
|
176
|
+
}];
|
|
177
|
+
case 4: return [2 /*return*/];
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eddev",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.46",
|
|
4
4
|
"main": "./index.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"bin": {
|
|
@@ -42,12 +42,12 @@
|
|
|
42
42
|
"@graphql-tools/load": "^7.4.1",
|
|
43
43
|
"@graphql-tools/url-loader": "^7.1.0",
|
|
44
44
|
"@loadable/babel-plugin": "^5.13.2",
|
|
45
|
-
"@loadable/component": "^5.15.
|
|
46
|
-
"@loadable/webpack-plugin": "^5.15.
|
|
45
|
+
"@loadable/component": "^5.15.2",
|
|
46
|
+
"@loadable/webpack-plugin": "^5.15.2",
|
|
47
47
|
"@pmmmwh/react-refresh-webpack-plugin": "^0.4.3",
|
|
48
48
|
"@soda/friendly-errors-webpack-plugin": "^1.8.0",
|
|
49
|
-
"@stitches/core": "^1.2.
|
|
50
|
-
"@stitches/react": "^1.2.
|
|
49
|
+
"@stitches/core": "^1.2.6",
|
|
50
|
+
"@stitches/react": "^1.2.6",
|
|
51
51
|
"autoprefixer": "^10.3.4",
|
|
52
52
|
"babel-loader": "^8.2.2",
|
|
53
53
|
"chalk": "^4.1.2",
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"zustand": "^3.5.10"
|
|
88
88
|
},
|
|
89
89
|
"peerDependencies": {
|
|
90
|
-
"react": "^
|
|
91
|
-
"react-dom": "^
|
|
90
|
+
"react": "^18.0.0-rc.0",
|
|
91
|
+
"react-dom": "^18.0.0-rc.0"
|
|
92
92
|
}
|
|
93
93
|
}
|