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.
Files changed (38) hide show
  1. package/blocks/ContentBlocks.d.ts +1 -0
  2. package/blocks/InspectorControls.d.ts +2 -0
  3. package/blocks/InspectorControls.js +13 -0
  4. package/blocks/defineBlock.d.ts +1 -1
  5. package/blocks/index.d.ts +1 -0
  6. package/blocks/index.js +1 -0
  7. package/blocks/installGutenbergHooks.js +6 -1
  8. package/build/get-webpack-config.js +59 -19
  9. package/cli/display/components/BundleDisplay.d.ts +1 -0
  10. package/cli/display/components/CodegenDisplay.d.ts +1 -0
  11. package/cli/display/components/DevCLIDisplay.d.ts +1 -0
  12. package/cli/display/components/StatusIcon.d.ts +1 -0
  13. package/components/AdminBar.d.ts +1 -0
  14. package/entry/Root.d.ts +1 -0
  15. package/entry/entry.admin.dev.js +2 -0
  16. package/entry/entry.admin.prod.js +2 -0
  17. package/entry/entry.monolith.dev.js +12 -2
  18. package/entry/entry.monolith.prod.js +10 -2
  19. package/fields/ImageWell.d.ts +8 -0
  20. package/fields/ImageWell.js +64 -0
  21. package/fields/components/ImageWell.d.ts +10 -0
  22. package/fields/components/ImageWell.js +209 -0
  23. package/fields/defineFIeld.d.ts +14 -0
  24. package/fields/defineFIeld.js +7 -0
  25. package/fields/index.d.ts +2 -0
  26. package/fields/index.js +14 -0
  27. package/fields/installFieldTypes.d.ts +1 -0
  28. package/fields/installFieldTypes.js +60 -0
  29. package/fields/selectMedia.d.ts +31 -0
  30. package/fields/selectMedia.js +9 -0
  31. package/gravityforms/gravity-forms.d.ts +16 -0
  32. package/gravityforms/gravity-forms.js +2 -0
  33. package/gravityforms/index.d.ts +2 -0
  34. package/gravityforms/index.js +14 -0
  35. package/gravityforms/useGravityForm.d.ts +30 -0
  36. package/gravityforms/useGravityForm.js +181 -0
  37. package/package.json +7 -7
  38. package/style/createStitches.d.ts +1 -0
@@ -1,5 +1,6 @@
1
1
  import { ReactElement } from "react";
2
2
  export declare type ContentBlock<T extends keyof BlockProps | string = any> = {
3
+ attrs: any;
3
4
  blockName: T;
4
5
  props: BlockProps extends keyof BlockProps ? BlockProps[T] : any;
5
6
  innerBlocks: ContentBlock[];
@@ -0,0 +1,2 @@
1
+ import { PropsWithChildren } from "react";
2
+ export declare function InspectorControls(props: PropsWithChildren<{}>): JSX.Element | null;
@@ -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;
@@ -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
@@ -1,4 +1,5 @@
1
1
  export * from "./defineBlock";
2
2
  export * from "./inlineEditing";
3
3
  export * from "./ContentBlocks";
4
+ export * from "./InspectorControls";
4
5
  export { useInlineEditableValue, useInnerBlocks } from "./blockAttributes";
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
- return item.tags.reduce(function (acc, tag) {
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, _b, buildID;
82
- return __generator(this, function (_c) {
83
- switch (_c.label) {
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
- writeVirtualModule(ALIAS["@manifest/views"], "\n ".concat(!isServerless && "import loadable from '".concat(require.resolve("@loadable/component"), "';"), "\n import App from ").concat(JSON.stringify("./views/_app.tsx"), "\n\n ").concat(isServerless
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 (!isServerless) {
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
- _c.sent();
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, [_c.sent()]);
292
- _c.label = 5;
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*/, 7];
374
+ if (!isDev) return [3 /*break*/, 12];
336
375
  return [4 /*yield*/, (0, file_tree_1.watchFileTree)(blockLookupManifest, updateBlocksManifest)];
337
- case 6:
338
- _c.sent();
339
- return [3 /*break*/, 9];
340
- case 7:
341
- _b = updateBlocksManifest;
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 8:
344
- _b.apply(void 0, [_c.sent()]);
345
- _c.label = 9;
346
- case 9:
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);
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { CompilerState } from "../../../build/state/compiler-state";
2
3
  import { Observable } from "../../../utils/Observable";
3
4
  export declare function BundleDisplay(props: {
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { CodegenState } from "../../../build/state/codegen-state";
2
3
  import { Observable } from "../../../utils/Observable";
3
4
  export declare function CodegenDisplay(props: {
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { CodegenState } from "../../../build/state/codegen-state";
2
3
  import { CompilerState } from "../../../build/state/compiler-state";
3
4
  import { Observable } from "../../../utils/Observable";
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  declare type Props = {
2
3
  icon: "loading" | "tick" | "error" | "none";
3
4
  };
@@ -1 +1,2 @@
1
+ /// <reference types="react" />
1
2
  export declare function AdminBar(): JSX.Element;
package/entry/Root.d.ts CHANGED
@@ -1 +1,2 @@
1
+ /// <reference types="react" />
1
2
  export default function Root(): JSX.Element;
@@ -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
- (0, react_dom_1.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"));
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
- var react_dom_1 = require("react-dom");
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
- (0, react_dom_1.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"));
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,8 @@
1
+ /// <reference types="react" />
2
+ declare type Props = {
3
+ previewSize: string;
4
+ value: number;
5
+ onChange: (value: number | null) => void;
6
+ };
7
+ export declare function ImageWell(props: Props): JSX.Element;
8
+ export {};
@@ -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>;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineField = void 0;
4
+ function defineField(args) {
5
+ return args;
6
+ }
7
+ exports.defineField = defineField;
@@ -0,0 +1,2 @@
1
+ export * from "./defineFIeld";
2
+ export * from "./components/ImageWell";
@@ -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,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.selectMedia = void 0;
4
+ function selectMedia(args) {
5
+ // @ts-ignore
6
+ var acf = window.acf;
7
+ return acf.newMediaPopup(args);
8
+ }
9
+ exports.selectMedia = selectMedia;
@@ -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,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ export * from "./useGravityForm";
2
+ export * from "./gravity-forms";
@@ -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.43",
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.0",
46
- "@loadable/webpack-plugin": "^5.15.1",
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.5",
50
- "@stitches/react": "^1.2.5",
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": "^17.0.2",
91
- "react-dom": "^17.0.2"
90
+ "react": "^18.0.0-rc.0",
91
+ "react-dom": "^18.0.0-rc.0"
92
92
  }
93
93
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { DefaultThemeMap } from "@stitches/react";
2
3
  import { ConfigType } from "@stitches/core/types/config";
3
4
  import { Properties as CSS } from "csstype";