@brilo/base-blocks 0.1.55 → 0.1.56
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/build/.tsbuildinfo +1 -1
- package/build/blocks/core/basic-icon/factory.d.ts.map +1 -1
- package/build/blocks/core/basic-icon/factory.js +2 -1
- package/build/blocks/faq/faq-group/factory.d.ts.map +1 -1
- package/build/blocks/faq/faq-group/factory.js +2 -1
- package/build/blocks/groups/banner-group/factory.d.ts.map +1 -1
- package/build/blocks/groups/banner-group/factory.js +2 -1
- package/build/blocks/groups/basic-header-group/factory.d.ts.map +1 -1
- package/build/blocks/groups/basic-header-group/factory.js +2 -1
- package/build/blocks/groups/text-and-media-group/factory.d.ts.map +1 -1
- package/build/blocks/groups/text-and-media-group/factory.js +2 -1
- package/build/blocks/map/map-group/factory.d.ts.map +1 -1
- package/build/blocks/map/map-group/factory.js +2 -1
- package/build/blocks/newsletter/newsletter-form/factory.d.ts.map +1 -1
- package/build/blocks/newsletter/newsletter-form/factory.js +2 -1
- package/build/blocks/text-and-form/text-and-form-text-column/factory.d.ts.map +1 -1
- package/build/blocks/text-and-form/text-and-form-text-column/factory.js +2 -1
- package/build/blocks/usp/usp-group/factory.d.ts.map +1 -1
- package/build/blocks/usp/usp-group/factory.js +2 -1
- package/build/utils/withObjectDefaults.d.ts +12 -0
- package/build/utils/withObjectDefaults.d.ts.map +1 -0
- package/build/utils/withObjectDefaults.js +37 -0
- package/package.json +1 -1
- package/src/blocks/core/basic-icon/factory.tsx +2 -1
- package/src/blocks/faq/faq-group/factory.tsx +2 -1
- package/src/blocks/groups/banner-group/factory.tsx +2 -1
- package/src/blocks/groups/basic-header-group/factory.tsx +2 -1
- package/src/blocks/groups/text-and-media-group/factory.tsx +2 -1
- package/src/blocks/map/map-group/factory.tsx +2 -1
- package/src/blocks/newsletter/newsletter-form/factory.tsx +2 -1
- package/src/blocks/text-and-form/text-and-form-text-column/factory.tsx +2 -1
- package/src/blocks/usp/usp-group/factory.tsx +2 -1
- package/src/utils/withObjectDefaults.tsx +37 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/core/basic-icon/factory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/core/basic-icon/factory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAKzD,OAAO,KAAK,EAAC,mBAAmB,EAAE,gBAAgB,EAAC,MAAM,SAAS,CAAA;AAElE,YAAY,EAAC,mBAAmB,EAAE,gBAAgB,EAAC,CAAA;AAEnD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAiCvG"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { withObjectDefaults } from '../../../utils/withObjectDefaults';
|
|
1
2
|
import { __ } from '@wordpress/i18n';
|
|
2
3
|
import { DEFAULT_ALIGNMENTS, DEFAULT_ICON_BACKGROUND_SHAPES, DEFAULT_ICON_BACKGROUND_SIZE, DEFAULT_ICON_SIZE, ICON_TYPES } from './constants';
|
|
3
4
|
import { createBasicIconEdit } from './edit';
|
|
@@ -32,7 +33,7 @@ export function createBasicIconBlock(options) {
|
|
|
32
33
|
},
|
|
33
34
|
},
|
|
34
35
|
},
|
|
35
|
-
edit: createBasicIconEdit(options),
|
|
36
|
+
edit: withObjectDefaults(createBasicIconEdit(options)),
|
|
36
37
|
save: () => null,
|
|
37
38
|
};
|
|
38
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/faq/faq-group/factory.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/faq/faq-group/factory.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAGzD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAA;AAExC,OAAO,EAAoB,qBAAqB,EAAqB,MAAM,aAAa,CAAA;AAExF,OAAO,KAAK,EAAC,kBAAkB,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAEhE,YAAY,EAAC,kBAAkB,EAAE,eAAe,EAAC,CAAA;AAEjD,wBAAgB,mBAAmB,CAAC,aAAa,SAAS,WAAW,GAAG,OAAO,qBAAqB,EAClG,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,GACtC,kBAAkB,CAAC,kBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CA8CxE"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { InnerBlocks } from '@wordpress/block-editor';
|
|
3
|
+
import { withObjectDefaults } from '../../../utils/withObjectDefaults';
|
|
3
4
|
import { __ } from '@wordpress/i18n';
|
|
4
5
|
import { ITEM_SPACING_ATTRIBUTE } from '../../../components/ItemSpacingControl';
|
|
5
6
|
import { DEFAULT_SURFACE_SHADOWS, surfaceStyleAttribute } from '../../../components/SurfaceStyleControl';
|
|
@@ -46,7 +47,7 @@ export function createFaqGroupBlock(options) {
|
|
|
46
47
|
icon: (_h = options.icon) !== null && _h !== void 0 ? _h : 'editor-help',
|
|
47
48
|
supports: { html: false, customClassName: false },
|
|
48
49
|
attributes,
|
|
49
|
-
edit: createFaqGroupEdit(options),
|
|
50
|
+
edit: withObjectDefaults(createFaqGroupEdit(options)),
|
|
50
51
|
save: () => _jsx(InnerBlocks.Content, {}),
|
|
51
52
|
};
|
|
52
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/groups/banner-group/factory.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/groups/banner-group/factory.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAEzD,OAAO,KAAK,EAAC,WAAW,EAAE,WAAW,EAAC,MAAM,SAAS,CAAA;AACrD,OAAO,EAAC,gBAAgB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAA;AAEpE,OAAO,KAAK,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAItE,YAAY,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,CAAA;AAEvD,wBAAgB,sBAAsB,CACpC,SAAS,SAAS,WAAW,GAAG,OAAO,gBAAgB,EACvD,cAAc,SAAS,WAAW,GAAG,OAAO,sBAAsB,EAElE,OAAO,EAAE,kBAAkB,CAAC,SAAS,EAAE,cAAc,CAAC,GACrD,kBAAkB,CAAC,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CA8C/F"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { InnerBlocks } from '@wordpress/block-editor';
|
|
3
|
+
import { withObjectDefaults } from '../../../utils/withObjectDefaults';
|
|
3
4
|
import { __ } from '@wordpress/i18n';
|
|
4
5
|
import { DEFAULT_VARIANTS, DEFAULT_HEADING_STYLES } from './constants';
|
|
5
6
|
import { createBannerGroupEdit } from './edit';
|
|
@@ -48,7 +49,7 @@ export function createBannerGroupBlock(options) {
|
|
|
48
49
|
backgroundColor: { type: 'string', default: '' },
|
|
49
50
|
textColor: { type: 'string', default: '' },
|
|
50
51
|
},
|
|
51
|
-
edit: createBannerGroupEdit(options),
|
|
52
|
+
edit: withObjectDefaults(createBannerGroupEdit(options)),
|
|
52
53
|
save: () => _jsx(InnerBlocks.Content, {}),
|
|
53
54
|
};
|
|
54
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/groups/basic-header-group/factory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/groups/basic-header-group/factory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAGzD,OAAO,KAAK,EAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAC,MAAM,SAAS,CAAA;AAClE,OAAO,EAAC,kBAAkB,EAAE,cAAc,EAAE,cAAc,EAAC,MAAM,aAAa,CAAA;AAG9E,OAAO,KAAK,EAAC,0BAA0B,EAAE,uBAAuB,EAAC,MAAM,SAAS,CAAA;AAEhF,YAAY,EAAC,0BAA0B,EAAE,uBAAuB,EAAC,CAAA;AAEjE,wBAAgB,2BAA2B,CACzC,OAAO,SAAS,WAAW,GAAG,OAAO,cAAc,EACnD,OAAO,SAAS,WAAW,GAAG,OAAO,cAAc,EACnD,WAAW,SAAS,WAAW,GAAG,OAAO,kBAAkB,EAE3D,OAAO,EAAE,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,GAC9D,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CA6BhH"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { withObjectDefaults } from '../../../utils/withObjectDefaults';
|
|
1
2
|
import { __ } from '@wordpress/i18n';
|
|
2
3
|
import { DEFAULT_ALIGNMENTS, DEFAULT_LEVELS, DEFAULT_STYLES } from './constants';
|
|
3
4
|
import { createBasicHeaderGroupEdit } from './edit';
|
|
@@ -29,7 +30,7 @@ export function createBasicHeaderGroupBlock(options) {
|
|
|
29
30
|
enum: alignments.map((a) => a.value),
|
|
30
31
|
},
|
|
31
32
|
},
|
|
32
|
-
edit: createBasicHeaderGroupEdit(options),
|
|
33
|
+
edit: withObjectDefaults(createBasicHeaderGroupEdit(options)),
|
|
33
34
|
save: () => null,
|
|
34
35
|
};
|
|
35
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/groups/text-and-media-group/factory.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/groups/text-and-media-group/factory.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAEzD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAA;AACxC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EAEf,MAAM,aAAa,CAAA;AAGpB,OAAO,KAAK,EAAC,2BAA2B,EAAE,wBAAwB,EAAC,MAAM,SAAS,CAAA;AAElF,YAAY,EAAC,2BAA2B,EAAE,wBAAwB,EAAC,CAAA;AAEnE,wBAAgB,4BAA4B,CAC1C,OAAO,SAAS,WAAW,GAAG,OAAO,cAAc,EACnD,eAAe,SAAS,WAAW,GAAG,OAAO,uBAAuB,EACpE,WAAW,SAAS,WAAW,GAAG,OAAO,mBAAmB,EAC5D,cAAc,SAAS,WAAW,GAAG,OAAO,sBAAsB,EAClE,aAAa,SAAS,WAAW,GAAG,OAAO,qBAAqB,EAChE,aAAa,SAAS,WAAW,GAAG,OAAO,qBAAqB,EAChE,eAAe,SAAS,WAAW,GAAG,OAAO,wBAAwB,EAErE,OAAO,EAAE,wBAAwB,CAAC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,CAAC,GACtI,kBAAkB,CACnB,2BAA2B,CACzB,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EACxB,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAChC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC5B,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC/B,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC9B,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC9B,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CACjC,CACF,CAiEA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { InnerBlocks } from '@wordpress/block-editor';
|
|
3
|
+
import { withObjectDefaults } from '../../../utils/withObjectDefaults';
|
|
3
4
|
import { __ } from '@wordpress/i18n';
|
|
4
5
|
import { DEFAULT_CHIP_VARIANTS, DEFAULT_CONTENT_SIZES, DEFAULT_GRID_STYLES, DEFAULT_HEADING_STYLES, DEFAULT_IMAGE_CLIP_PATHS, DEFAULT_MEDIA_POSITIONS, DEFAULT_RATIOS, HEADING_LEVELS, } from './constants';
|
|
5
6
|
import { createTextAndMediaGroupEdit } from './edit';
|
|
@@ -57,7 +58,7 @@ export function createTextAndMediaGroupBlock(options) {
|
|
|
57
58
|
},
|
|
58
59
|
content: { type: 'object', default: { size: (_t = (_d = contentSizes[1]) === null || _d === void 0 ? void 0 : _d.value) !== null && _t !== void 0 ? _t : contentSizes[0].value } },
|
|
59
60
|
},
|
|
60
|
-
edit: createTextAndMediaGroupEdit(options),
|
|
61
|
+
edit: withObjectDefaults(createTextAndMediaGroupEdit(options)),
|
|
61
62
|
save: () => _jsx(InnerBlocks.Content, {}),
|
|
62
63
|
};
|
|
63
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/map/map-group/factory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/map/map-group/factory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAIzD,OAAO,KAAK,EAAC,kBAAkB,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAEhE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAA;AACxC,OAAO,EAAC,sBAAsB,EAAmB,MAAM,wCAAwC,CAAA;AAI/F,YAAY,EAAC,kBAAkB,EAAE,eAAe,EAAC,CAAA;AAEjD,wBAAgB,mBAAmB,CAAC,cAAc,SAAS,WAAW,GAAG,OAAO,sBAAsB,EACpG,OAAO,EAAE,eAAe,CAAC,cAAc,CAAC,GACvC,kBAAkB,CAAC,kBAAkB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CA0DhE"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { withObjectDefaults } from '../../../utils/withObjectDefaults';
|
|
2
3
|
import { __ } from '@wordpress/i18n';
|
|
3
4
|
import { createMapGroupEdit } from './edit';
|
|
4
5
|
import { MAP_TYPES } from './constants';
|
|
@@ -60,7 +61,7 @@ export function createMapGroupBlock(options) {
|
|
|
60
61
|
default: '',
|
|
61
62
|
},
|
|
62
63
|
},
|
|
63
|
-
edit: createMapGroupEdit(options),
|
|
64
|
+
edit: withObjectDefaults(createMapGroupEdit(options)),
|
|
64
65
|
save: () => _jsx(InnerBlocks.Content, {}),
|
|
65
66
|
};
|
|
66
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/newsletter/newsletter-form/factory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/newsletter/newsletter-form/factory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAKzD,OAAO,KAAK,EAAC,wBAAwB,EAAE,qBAAqB,EAAC,MAAM,SAAS,CAAA;AAE5E,YAAY,EAAC,wBAAwB,EAAE,qBAAqB,EAAC,CAAA;AAE7D,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,kBAAkB,CAAC,wBAAwB,CAAC,CAkDtH"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { withObjectDefaults } from '../../../utils/withObjectDefaults';
|
|
1
2
|
import { __ } from '@wordpress/i18n';
|
|
2
3
|
import { DEFAULT_HEADING_STYLES, NEWSLETTER_LEVELS } from './constants';
|
|
3
4
|
import { createNewsletterFormEdit } from './edit';
|
|
@@ -48,7 +49,7 @@ export function createNewsletterFormBlock(options) {
|
|
|
48
49
|
},
|
|
49
50
|
},
|
|
50
51
|
},
|
|
51
|
-
edit: createNewsletterFormEdit(options),
|
|
52
|
+
edit: withObjectDefaults(createNewsletterFormEdit(options)),
|
|
52
53
|
save: () => null,
|
|
53
54
|
};
|
|
54
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/text-and-form/text-and-form-text-column/factory.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/text-and-form/text-and-form-text-column/factory.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAEzD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAA;AACxC,OAAO,EAAC,qBAAqB,EAAE,sBAAsB,EAAiB,MAAM,aAAa,CAAA;AAEzF,OAAO,KAAK,EAAC,+BAA+B,EAAE,4BAA4B,EAAC,MAAM,SAAS,CAAA;AAE1F,YAAY,EAAC,+BAA+B,EAAE,4BAA4B,EAAC,CAAA;AAE3E,wBAAgB,gCAAgC,CAC9C,cAAc,SAAS,WAAW,GAAG,OAAO,sBAAsB,EAClE,aAAa,SAAS,WAAW,GAAG,OAAO,qBAAqB,EAEhE,OAAO,EAAE,4BAA4B,CAAC,cAAc,EAAE,aAAa,CAAC,GACnE,kBAAkB,CAAC,+BAA+B,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAyBtH"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { InnerBlocks } from '@wordpress/block-editor';
|
|
3
|
+
import { withObjectDefaults } from '../../../utils/withObjectDefaults';
|
|
3
4
|
import { __ } from '@wordpress/i18n';
|
|
4
5
|
import { DEFAULT_CONTENT_SIZES, DEFAULT_HEADING_STYLES, HEADING_LEVELS } from './constants';
|
|
5
6
|
import { createTextAndFormTextColumnEdit } from './edit';
|
|
@@ -26,7 +27,7 @@ export function createTextAndFormTextColumnBlock(options) {
|
|
|
26
27
|
},
|
|
27
28
|
content: { type: 'object', default: { size: (_j = (_b = contentSizes[1]) === null || _b === void 0 ? void 0 : _b.value) !== null && _j !== void 0 ? _j : contentSizes[0].value } },
|
|
28
29
|
},
|
|
29
|
-
edit: createTextAndFormTextColumnEdit(options),
|
|
30
|
+
edit: withObjectDefaults(createTextAndFormTextColumnEdit(options)),
|
|
30
31
|
save: () => _jsx(InnerBlocks.Content, {}),
|
|
31
32
|
};
|
|
32
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/usp/usp-group/factory.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/usp/usp-group/factory.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAGzD,OAAO,KAAK,EAAC,WAAW,EAAE,WAAW,EAAC,MAAM,SAAS,CAAA;AACrD,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,8BAA8B,EAG9B,eAAe,EAEhB,MAAM,aAAa,CAAA;AAGpB,OAAO,KAAK,EAAC,kBAAkB,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAEhE,YAAY,EAAC,kBAAkB,EAAE,eAAe,EAAC,CAAA;AAEjD,wBAAgB,mBAAmB,CACjC,QAAQ,SAAS,WAAW,GAAG,OAAO,eAAe,EACrD,WAAW,SAAS,WAAW,GAAG,OAAO,kBAAkB,EAC3D,cAAc,SAAS,WAAW,GAAG,OAAO,sBAAsB,EAClE,QAAQ,SAAS,WAAW,GAAG,OAAO,eAAe,EACrD,qBAAqB,SAAS,WAAW,GAAG,OAAO,8BAA8B,EACjF,WAAW,SAAS,WAAW,GAAG,OAAO,kBAAkB,EAC3D,aAAa,SAAS,WAAW,GAAG,OAAO,qBAAqB,EAEhE,OAAO,EAAE,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,qBAAqB,EAAE,WAAW,EAAE,aAAa,CAAC,GAC3H,kBAAkB,CACnB,kBAAkB,CAChB,QAAQ,CAAC,MAAM,CAAC,EAChB,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC5B,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC/B,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EACzB,qBAAqB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EACtC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC5B,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAC/B,CACF,CAkEA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { InnerBlocks } from '@wordpress/block-editor';
|
|
3
|
+
import { withObjectDefaults } from '../../../utils/withObjectDefaults';
|
|
3
4
|
import { __ } from '@wordpress/i18n';
|
|
4
5
|
import { ITEM_SPACING_ATTRIBUTE } from '../../../components/ItemSpacingControl';
|
|
5
6
|
import { DEFAULT_ALIGNMENTS, DEFAULT_COLUMNS, DEFAULT_CONTENT_SIZES, DEFAULT_DIRECTIONS, DEFAULT_HEADING_STYLES, DEFAULT_ICON_BACKGROUND_SHAPES, DEFAULT_ICON_BACKGROUND_SIZE, DEFAULT_ICON_SIZE, DEFAULT_SHADOWS, HEADING_LEVELS, } from './constants';
|
|
@@ -59,7 +60,7 @@ export function createUspGroupBlock(options) {
|
|
|
59
60
|
},
|
|
60
61
|
...ITEM_SPACING_ATTRIBUTE,
|
|
61
62
|
},
|
|
62
|
-
edit: createUspGroupEdit(options),
|
|
63
|
+
edit: withObjectDefaults(createUspGroupEdit(options)),
|
|
63
64
|
save: () => _jsx(InnerBlocks.Content, {}),
|
|
64
65
|
};
|
|
65
66
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ComponentType } from 'react';
|
|
2
|
+
type PlainObject = Record<string, unknown>;
|
|
3
|
+
/**
|
|
4
|
+
* Block markup can carry partial object attributes (e.g. generated content) and WP does not deep-merge
|
|
5
|
+
* them with the attribute default, so edit code reading nested keys would crash. Fills the missing
|
|
6
|
+
* nested keys from the registered defaults before the edit component reads them.
|
|
7
|
+
*/
|
|
8
|
+
export declare function withObjectDefaults<Props extends {
|
|
9
|
+
attributes: PlainObject;
|
|
10
|
+
}>(Edit: ComponentType<Props>): (props: Props) => import("react").JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=withObjectDefaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withObjectDefaults.d.ts","sourceRoot":"","sources":["../../src/utils/withObjectDefaults.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAA;AAExC,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAa1C;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,SAAS;IAAC,UAAU,EAAE,WAAW,CAAA;CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,WACtD,KAAK,iCAapD"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { getBlockType } from '@wordpress/blocks';
|
|
3
|
+
import { useMemo } from '@wordpress/element';
|
|
4
|
+
const isPlainObject = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
5
|
+
// keys present in the value win, missing ones are taken from the fallback (recursively)
|
|
6
|
+
function mergeMissing(fallback, value) {
|
|
7
|
+
if (value === undefined)
|
|
8
|
+
return fallback;
|
|
9
|
+
if (!isPlainObject(fallback) || !isPlainObject(value))
|
|
10
|
+
return value;
|
|
11
|
+
const merged = { ...value };
|
|
12
|
+
for (const [key, fallbackValue] of Object.entries(fallback))
|
|
13
|
+
merged[key] = mergeMissing(fallbackValue, value[key]);
|
|
14
|
+
return merged;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Block markup can carry partial object attributes (e.g. generated content) and WP does not deep-merge
|
|
18
|
+
* them with the attribute default, so edit code reading nested keys would crash. Fills the missing
|
|
19
|
+
* nested keys from the registered defaults before the edit component reads them.
|
|
20
|
+
*/
|
|
21
|
+
export function withObjectDefaults(Edit) {
|
|
22
|
+
return function EditWithObjectDefaults(props) {
|
|
23
|
+
const { name } = props;
|
|
24
|
+
const attributes = useMemo(() => {
|
|
25
|
+
var _a;
|
|
26
|
+
var _b;
|
|
27
|
+
const definitions = (_b = (name ? (_a = getBlockType(name)) === null || _a === void 0 ? void 0 : _a.attributes : undefined)) !== null && _b !== void 0 ? _b : {};
|
|
28
|
+
const filled = { ...props.attributes };
|
|
29
|
+
for (const [key, definition] of Object.entries(definitions)) {
|
|
30
|
+
if (definition.type === 'object' && isPlainObject(definition.default))
|
|
31
|
+
filled[key] = mergeMissing(definition.default, filled[key]);
|
|
32
|
+
}
|
|
33
|
+
return filled;
|
|
34
|
+
}, [name, props.attributes]);
|
|
35
|
+
return _jsx(Edit, { ...props, attributes: attributes });
|
|
36
|
+
};
|
|
37
|
+
}
|
package/package.json
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type {BlockConfiguration} from '@wordpress/blocks'
|
|
2
|
+
import {withObjectDefaults} from '~/utils/withObjectDefaults'
|
|
2
3
|
import {__} from '@wordpress/i18n'
|
|
3
4
|
import {DEFAULT_ALIGNMENTS, DEFAULT_ICON_BACKGROUND_SHAPES, DEFAULT_ICON_BACKGROUND_SIZE, DEFAULT_ICON_SIZE, ICON_TYPES} from './constants'
|
|
4
5
|
import {createBasicIconEdit} from './edit'
|
|
@@ -36,7 +37,7 @@ export function createBasicIconBlock(options: BasicIconOptions): BlockConfigurat
|
|
|
36
37
|
},
|
|
37
38
|
},
|
|
38
39
|
},
|
|
39
|
-
edit: createBasicIconEdit(options),
|
|
40
|
+
edit: withObjectDefaults(createBasicIconEdit(options)),
|
|
40
41
|
save: () => null,
|
|
41
42
|
} as unknown as BlockConfiguration<BasicIconAttributes>
|
|
42
43
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {InnerBlocks} from '@wordpress/block-editor'
|
|
2
|
+
import {withObjectDefaults} from '~/utils/withObjectDefaults'
|
|
2
3
|
import type {BlockConfiguration} from '@wordpress/blocks'
|
|
3
4
|
import {__} from '@wordpress/i18n'
|
|
4
5
|
import {ITEM_SPACING_ATTRIBUTE} from '~/components/ItemSpacingControl'
|
|
@@ -55,7 +56,7 @@ export function createFaqGroupBlock<TIconVariants extends OptionArray = typeof D
|
|
|
55
56
|
icon: options.icon ?? 'editor-help',
|
|
56
57
|
supports: {html: false, customClassName: false},
|
|
57
58
|
attributes,
|
|
58
|
-
edit: createFaqGroupEdit(options as unknown as FaqGroupOptions),
|
|
59
|
+
edit: withObjectDefaults(createFaqGroupEdit(options as unknown as FaqGroupOptions)),
|
|
59
60
|
save: () => <InnerBlocks.Content />,
|
|
60
61
|
} as unknown as BlockConfiguration<FaqGroupAttributes<TIconVariants[number]['value']>>
|
|
61
62
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {InnerBlocks} from '@wordpress/block-editor'
|
|
2
|
+
import {withObjectDefaults} from '~/utils/withObjectDefaults'
|
|
2
3
|
import type {BlockConfiguration} from '@wordpress/blocks'
|
|
3
4
|
import {__} from '@wordpress/i18n'
|
|
4
5
|
import type {OptionArray, StringArray} from '~/types'
|
|
@@ -58,7 +59,7 @@ export function createBannerGroupBlock<
|
|
|
58
59
|
backgroundColor: {type: 'string', default: ''},
|
|
59
60
|
textColor: {type: 'string', default: ''},
|
|
60
61
|
},
|
|
61
|
-
edit: createBannerGroupEdit(options as unknown as BannerGroupOptions),
|
|
62
|
+
edit: withObjectDefaults(createBannerGroupEdit(options as unknown as BannerGroupOptions)),
|
|
62
63
|
save: () => <InnerBlocks.Content />,
|
|
63
64
|
} as unknown as BlockConfiguration<BannerGroupAttributes<TVariants[number]['value'], THeadingStyles[number]>>
|
|
64
65
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type {BlockConfiguration} from '@wordpress/blocks'
|
|
2
|
+
import {withObjectDefaults} from '~/utils/withObjectDefaults'
|
|
2
3
|
import {__} from '@wordpress/i18n'
|
|
3
4
|
import type {NumberArray, OptionArray, StringArray} from '~/types'
|
|
4
5
|
import {DEFAULT_ALIGNMENTS, DEFAULT_LEVELS, DEFAULT_STYLES} from './constants'
|
|
@@ -40,7 +41,7 @@ export function createBasicHeaderGroupBlock<
|
|
|
40
41
|
enum: alignments.map((a) => a.value),
|
|
41
42
|
},
|
|
42
43
|
},
|
|
43
|
-
edit: createBasicHeaderGroupEdit(options as unknown as BasicHeaderGroupOptions),
|
|
44
|
+
edit: withObjectDefaults(createBasicHeaderGroupEdit(options as unknown as BasicHeaderGroupOptions)),
|
|
44
45
|
save: () => null,
|
|
45
46
|
} as unknown as BlockConfiguration<BasicHeaderGroupAttributes<TLevels[number], TStyles[number], TAlignments[number]['value']>>
|
|
46
47
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {InnerBlocks} from '@wordpress/block-editor'
|
|
2
|
+
import {withObjectDefaults} from '~/utils/withObjectDefaults'
|
|
2
3
|
import type {BlockConfiguration} from '@wordpress/blocks'
|
|
3
4
|
import {__} from '@wordpress/i18n'
|
|
4
5
|
import type {OptionArray} from '~/types'
|
|
@@ -90,7 +91,7 @@ export function createTextAndMediaGroupBlock<
|
|
|
90
91
|
},
|
|
91
92
|
content: {type: 'object', default: {size: contentSizes[1]?.value ?? contentSizes[0].value}},
|
|
92
93
|
},
|
|
93
|
-
edit: createTextAndMediaGroupEdit(options as unknown as TextAndMediaGroupOptions),
|
|
94
|
+
edit: withObjectDefaults(createTextAndMediaGroupEdit(options as unknown as TextAndMediaGroupOptions)),
|
|
94
95
|
save: () => <InnerBlocks.Content />,
|
|
95
96
|
} as unknown as BlockConfiguration<
|
|
96
97
|
TextAndMediaGroupAttributes<
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type {BlockConfiguration} from '@wordpress/blocks'
|
|
2
|
+
import {withObjectDefaults} from '~/utils/withObjectDefaults'
|
|
2
3
|
import {__} from '@wordpress/i18n'
|
|
3
4
|
import {createMapGroupEdit} from './edit'
|
|
4
5
|
import type {MapGroupAttributes, MapGroupOptions} from './types'
|
|
@@ -67,7 +68,7 @@ export function createMapGroupBlock<THeadingStyles extends StringArray = typeof
|
|
|
67
68
|
default: '',
|
|
68
69
|
},
|
|
69
70
|
},
|
|
70
|
-
edit: createMapGroupEdit(options as unknown as MapGroupOptions),
|
|
71
|
+
edit: withObjectDefaults(createMapGroupEdit(options as unknown as MapGroupOptions)),
|
|
71
72
|
save: () => <InnerBlocks.Content />,
|
|
72
73
|
} as unknown as BlockConfiguration<MapGroupAttributes<THeadingStyles[number]>>
|
|
73
74
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type {BlockConfiguration} from '@wordpress/blocks'
|
|
2
|
+
import {withObjectDefaults} from '~/utils/withObjectDefaults'
|
|
2
3
|
import {__} from '@wordpress/i18n'
|
|
3
4
|
import {DEFAULT_HEADING_STYLES, NEWSLETTER_LEVELS} from './constants'
|
|
4
5
|
import {createNewsletterFormEdit} from './edit'
|
|
@@ -53,7 +54,7 @@ export function createNewsletterFormBlock(options: NewsletterFormOptions): Block
|
|
|
53
54
|
},
|
|
54
55
|
},
|
|
55
56
|
},
|
|
56
|
-
edit: createNewsletterFormEdit(options),
|
|
57
|
+
edit: withObjectDefaults(createNewsletterFormEdit(options)),
|
|
57
58
|
save: () => null,
|
|
58
59
|
} as unknown as BlockConfiguration<NewsletterFormAttributes>
|
|
59
60
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {InnerBlocks} from '@wordpress/block-editor'
|
|
2
|
+
import {withObjectDefaults} from '~/utils/withObjectDefaults'
|
|
2
3
|
import type {BlockConfiguration} from '@wordpress/blocks'
|
|
3
4
|
import {__} from '@wordpress/i18n'
|
|
4
5
|
import type {OptionArray} from '~/types'
|
|
@@ -35,7 +36,7 @@ export function createTextAndFormTextColumnBlock<
|
|
|
35
36
|
},
|
|
36
37
|
content: {type: 'object', default: {size: contentSizes[1]?.value ?? contentSizes[0].value}},
|
|
37
38
|
},
|
|
38
|
-
edit: createTextAndFormTextColumnEdit(options as unknown as TextAndFormTextColumnOptions),
|
|
39
|
+
edit: withObjectDefaults(createTextAndFormTextColumnEdit(options as unknown as TextAndFormTextColumnOptions)),
|
|
39
40
|
save: () => <InnerBlocks.Content />,
|
|
40
41
|
} as unknown as BlockConfiguration<TextAndFormTextColumnAttributes<THeadingStyles[number]['value'], TContentSizes[number]['value']>>
|
|
41
42
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {InnerBlocks} from '@wordpress/block-editor'
|
|
2
|
+
import {withObjectDefaults} from '~/utils/withObjectDefaults'
|
|
2
3
|
import type {BlockConfiguration} from '@wordpress/blocks'
|
|
3
4
|
import {__} from '@wordpress/i18n'
|
|
4
5
|
import {ITEM_SPACING_ATTRIBUTE} from '~/components/ItemSpacingControl'
|
|
@@ -94,7 +95,7 @@ export function createUspGroupBlock<
|
|
|
94
95
|
},
|
|
95
96
|
...ITEM_SPACING_ATTRIBUTE,
|
|
96
97
|
},
|
|
97
|
-
edit: createUspGroupEdit(options as unknown as UspGroupOptions),
|
|
98
|
+
edit: withObjectDefaults(createUspGroupEdit(options as unknown as UspGroupOptions)),
|
|
98
99
|
save: () => <InnerBlocks.Content />,
|
|
99
100
|
} as unknown as BlockConfiguration<
|
|
100
101
|
UspGroupAttributes<
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import {getBlockType} from '@wordpress/blocks'
|
|
2
|
+
import {useMemo} from '@wordpress/element'
|
|
3
|
+
import type {ComponentType} from 'react'
|
|
4
|
+
|
|
5
|
+
type PlainObject = Record<string, unknown>
|
|
6
|
+
|
|
7
|
+
const isPlainObject = (value: unknown): value is PlainObject => typeof value === 'object' && value !== null && !Array.isArray(value)
|
|
8
|
+
|
|
9
|
+
// keys present in the value win, missing ones are taken from the fallback (recursively)
|
|
10
|
+
function mergeMissing(fallback: unknown, value: unknown): unknown {
|
|
11
|
+
if (value === undefined) return fallback
|
|
12
|
+
if (!isPlainObject(fallback) || !isPlainObject(value)) return value
|
|
13
|
+
const merged: PlainObject = {...value}
|
|
14
|
+
for (const [key, fallbackValue] of Object.entries(fallback)) merged[key] = mergeMissing(fallbackValue, value[key])
|
|
15
|
+
return merged
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Block markup can carry partial object attributes (e.g. generated content) and WP does not deep-merge
|
|
20
|
+
* them with the attribute default, so edit code reading nested keys would crash. Fills the missing
|
|
21
|
+
* nested keys from the registered defaults before the edit component reads them.
|
|
22
|
+
*/
|
|
23
|
+
export function withObjectDefaults<Props extends {attributes: PlainObject}>(Edit: ComponentType<Props>) {
|
|
24
|
+
return function EditWithObjectDefaults(props: Props) {
|
|
25
|
+
const {name} = props as Props & {name?: string}
|
|
26
|
+
const attributes = useMemo(() => {
|
|
27
|
+
const definitions = (name ? getBlockType(name)?.attributes : undefined) ?? {}
|
|
28
|
+
const filled: PlainObject = {...props.attributes}
|
|
29
|
+
for (const [key, definition] of Object.entries(definitions as Record<string, {type?: unknown; default?: unknown}>)) {
|
|
30
|
+
if (definition.type === 'object' && isPlainObject(definition.default)) filled[key] = mergeMissing(definition.default, filled[key])
|
|
31
|
+
}
|
|
32
|
+
return filled as Props['attributes']
|
|
33
|
+
}, [name, props.attributes])
|
|
34
|
+
|
|
35
|
+
return <Edit {...props} attributes={attributes} />
|
|
36
|
+
}
|
|
37
|
+
}
|