eddev 0.1.44-beta-2 → 0.1.45
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 +55 -16
- 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/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/package.json +1 -1
- package/style/createStitches.d.ts +1 -0
- package/gravityforms/GravityForm.d.ts +0 -2
- package/gravityforms/GravityForm.js +0 -33
- package/gravityforms/GravityFormDynamic.d.ts +0 -7
- package/gravityforms/GravityFormDynamic.js +0 -5
|
@@ -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 = {};
|
|
@@ -283,15 +283,53 @@ function getWebpackConfig(opts) {
|
|
|
283
283
|
if (!isDev) return [3 /*break*/, 3];
|
|
284
284
|
return [4 /*yield*/, (0, file_tree_1.watchFileTree)(templateLookupPattern, updateTemplateRouter)];
|
|
285
285
|
case 2:
|
|
286
|
-
|
|
286
|
+
_d.sent();
|
|
287
287
|
return [3 /*break*/, 5];
|
|
288
288
|
case 3:
|
|
289
289
|
_a = updateTemplateRouter;
|
|
290
290
|
return [4 /*yield*/, (0, file_tree_1.getFileTree)(templateLookupPattern)];
|
|
291
291
|
case 4:
|
|
292
|
-
_a.apply(void 0, [
|
|
293
|
-
|
|
292
|
+
_a.apply(void 0, [_d.sent()]);
|
|
293
|
+
_d.label = 5;
|
|
294
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:
|
|
295
333
|
ALIAS["@manifest/blocks"] = path_1.default.resolve(opts.baseDirectory, "_blocks_manifest.js");
|
|
296
334
|
updateBlocksManifest = function (fileNames) {
|
|
297
335
|
var files = fileNames
|
|
@@ -333,18 +371,18 @@ function getWebpackConfig(opts) {
|
|
|
333
371
|
}
|
|
334
372
|
};
|
|
335
373
|
blockLookupManifest = path_1.default.resolve(opts.baseDirectory, "blocks/**/*.tsx");
|
|
336
|
-
if (!isDev) return [3 /*break*/,
|
|
374
|
+
if (!isDev) return [3 /*break*/, 12];
|
|
337
375
|
return [4 /*yield*/, (0, file_tree_1.watchFileTree)(blockLookupManifest, updateBlocksManifest)];
|
|
338
|
-
case
|
|
339
|
-
|
|
340
|
-
return [3 /*break*/,
|
|
341
|
-
case
|
|
342
|
-
|
|
376
|
+
case 11:
|
|
377
|
+
_d.sent();
|
|
378
|
+
return [3 /*break*/, 14];
|
|
379
|
+
case 12:
|
|
380
|
+
_c = updateBlocksManifest;
|
|
343
381
|
return [4 /*yield*/, (0, file_tree_1.getFileTree)(blockLookupManifest)];
|
|
344
|
-
case
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
case
|
|
382
|
+
case 13:
|
|
383
|
+
_c.apply(void 0, [_d.sent()]);
|
|
384
|
+
_d.label = 14;
|
|
385
|
+
case 14:
|
|
348
386
|
// External Gutenberg
|
|
349
387
|
EXTERNALS["@wordpress/components"] = ["wp", "components"];
|
|
350
388
|
EXTERNALS["@wordpress/element"] = ["wp", "element"];
|
|
@@ -355,6 +393,7 @@ function getWebpackConfig(opts) {
|
|
|
355
393
|
EXTERNALS["@wordpress/block-editor"] = ["wp", "blockEditor"];
|
|
356
394
|
if (opts.isAdmin) {
|
|
357
395
|
EXTERNALS["react"] = "React";
|
|
396
|
+
EXTERNALS["react-dom"] = "ReactDOM";
|
|
358
397
|
}
|
|
359
398
|
// Define some values
|
|
360
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
|
}
|
|
@@ -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 {};
|
package/package.json
CHANGED
|
@@ -1,33 +0,0 @@
|
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.GravityForm = void 0;
|
|
23
|
-
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
24
|
-
var react_1 = require("react");
|
|
25
|
-
var react_2 = require("react");
|
|
26
|
-
function GravityForm(props) {
|
|
27
|
-
var _a = (0, react_1.useState)(null), FormComponent = _a[0], setFormComponent = _a[1];
|
|
28
|
-
(0, react_2.useEffect)(function () {
|
|
29
|
-
Promise.resolve().then(function () { return __importStar(require("./GravityFormDynamic")); }).then(function (module) { return setFormComponent(module.GravityFormDynamic); });
|
|
30
|
-
});
|
|
31
|
-
return (0, jsx_runtime_1.jsx)("div", {}, void 0);
|
|
32
|
-
}
|
|
33
|
-
exports.GravityForm = GravityForm;
|