itmar-block-packages 1.10.1 → 2.0.1
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/README.md +1445 -1369
- package/build/cjs/AnimationBlock.js +107 -0
- package/build/cjs/AnimationBlock.js.map +1 -0
- package/build/cjs/BlockEditWrapper.js +20 -0
- package/build/cjs/BlockEditWrapper.js.map +1 -0
- package/build/cjs/BlockPlace.js +509 -0
- package/build/cjs/BlockPlace.js.map +1 -0
- package/build/cjs/BrockInserter.js +204 -0
- package/build/cjs/BrockInserter.js.map +1 -0
- package/build/cjs/DateElm.js +321 -0
- package/build/cjs/DateElm.js.map +1 -0
- package/build/cjs/DraggableBox.js +143 -0
- package/build/cjs/DraggableBox.js.map +1 -0
- package/build/cjs/GridControls.js +421 -0
- package/build/cjs/GridControls.js.map +1 -0
- package/build/cjs/IconSelectControl.js +167 -0
- package/build/cjs/IconSelectControl.js.map +1 -0
- package/build/cjs/JapaneseHolidays.js +99 -0
- package/build/cjs/JapaneseHolidays.js.map +1 -0
- package/build/cjs/MasonryControl.js +124 -0
- package/build/cjs/MasonryControl.js.map +1 -0
- package/build/cjs/PseudoElm.js +66 -0
- package/build/cjs/PseudoElm.js.map +1 -0
- package/build/cjs/ShadowStyle.js +453 -0
- package/build/cjs/ShadowStyle.js.map +1 -0
- package/build/cjs/SwiperControl.js +267 -0
- package/build/cjs/SwiperControl.js.map +1 -0
- package/build/cjs/ToggleElement.js +17 -0
- package/build/cjs/ToggleElement.js.map +1 -0
- package/build/cjs/TypographyControls.js +151 -0
- package/build/cjs/TypographyControls.js.map +1 -0
- package/build/cjs/UpdateAllPostsBlockAttributes.js +137 -0
- package/build/cjs/UpdateAllPostsBlockAttributes.js.map +1 -0
- package/build/cjs/ZipAddress.js +34 -0
- package/build/cjs/ZipAddress.js.map +1 -0
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +117 -0
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
- package/build/cjs/blockStore.js +65 -0
- package/build/cjs/blockStore.js.map +1 -0
- package/build/cjs/cssPropertes.js +157 -0
- package/build/cjs/cssPropertes.js.map +1 -0
- package/build/cjs/customFooks.js +300 -0
- package/build/cjs/customFooks.js.map +1 -0
- package/build/cjs/formatCreate.js +160 -0
- package/build/cjs/formatCreate.js.map +1 -0
- package/build/cjs/hslToRgb.js +133 -0
- package/build/cjs/hslToRgb.js.map +1 -0
- package/build/cjs/index.js +115 -0
- package/build/cjs/index.js.map +1 -0
- package/build/cjs/mediaUpload.js +182 -0
- package/build/cjs/mediaUpload.js.map +1 -0
- package/build/cjs/node_modules/nanoid/index.js +30 -0
- package/build/cjs/node_modules/nanoid/index.js.map +1 -0
- package/build/cjs/node_modules/nanoid/url-alphabet/index.js +7 -0
- package/build/cjs/node_modules/nanoid/url-alphabet/index.js.map +1 -0
- package/build/cjs/shopfiApi.js +188 -0
- package/build/cjs/shopfiApi.js.map +1 -0
- package/build/cjs/validationCheck.js +15 -0
- package/build/cjs/validationCheck.js.map +1 -0
- package/build/cjs/wordpressApi.js +631 -0
- package/build/cjs/wordpressApi.js.map +1 -0
- package/build/esm/AnimationBlock.js +102 -0
- package/build/esm/AnimationBlock.js.map +1 -0
- package/build/esm/BlockEditWrapper.js +16 -0
- package/build/esm/BlockEditWrapper.js.map +1 -0
- package/build/esm/BlockPlace.js +503 -0
- package/build/esm/BlockPlace.js.map +1 -0
- package/build/esm/BrockInserter.js +202 -0
- package/build/esm/BrockInserter.js.map +1 -0
- package/build/esm/DateElm.js +309 -0
- package/build/esm/DateElm.js.map +1 -0
- package/build/esm/DraggableBox.js +138 -0
- package/build/esm/DraggableBox.js.map +1 -0
- package/build/esm/GridControls.js +417 -0
- package/build/esm/GridControls.js.map +1 -0
- package/build/esm/IconSelectControl.js +163 -0
- package/build/esm/IconSelectControl.js.map +1 -0
- package/build/esm/JapaneseHolidays.js +97 -0
- package/build/esm/JapaneseHolidays.js.map +1 -0
- package/{src → build/esm}/MasonryControl.js +120 -125
- package/build/esm/MasonryControl.js.map +1 -0
- package/build/esm/PseudoElm.js +61 -0
- package/build/esm/PseudoElm.js.map +1 -0
- package/build/esm/ShadowStyle.js +448 -0
- package/build/esm/ShadowStyle.js.map +1 -0
- package/{src → build/esm}/SwiperControl.js +265 -265
- package/build/esm/SwiperControl.js.map +1 -0
- package/build/esm/ToggleElement.js +13 -0
- package/build/esm/ToggleElement.js.map +1 -0
- package/build/esm/TypographyControls.js +147 -0
- package/build/esm/TypographyControls.js.map +1 -0
- package/build/esm/UpdateAllPostsBlockAttributes.js +133 -0
- package/build/esm/UpdateAllPostsBlockAttributes.js.map +1 -0
- package/build/esm/ZipAddress.js +32 -0
- package/build/esm/ZipAddress.js.map +1 -0
- package/build/esm/_virtual/_rollupPluginBabelHelpers.js +107 -0
- package/build/esm/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
- package/build/esm/blockStore.js +60 -0
- package/build/esm/blockStore.js.map +1 -0
- package/build/esm/cssPropertes.js +144 -0
- package/build/esm/cssPropertes.js.map +1 -0
- package/{src → build/esm}/customFooks.js +290 -337
- package/build/esm/customFooks.js.map +1 -0
- package/build/esm/formatCreate.js +157 -0
- package/build/esm/formatCreate.js.map +1 -0
- package/build/esm/hslToRgb.js +129 -0
- package/build/esm/hslToRgb.js.map +1 -0
- package/build/esm/index.js +27 -0
- package/build/esm/index.js.map +1 -0
- package/build/esm/mediaUpload.js +176 -0
- package/build/esm/mediaUpload.js.map +1 -0
- package/build/esm/node_modules/nanoid/index.js +27 -0
- package/build/esm/node_modules/nanoid/index.js.map +1 -0
- package/build/esm/node_modules/nanoid/url-alphabet/index.js +5 -0
- package/build/esm/node_modules/nanoid/url-alphabet/index.js.map +1 -0
- package/build/esm/shopfiApi.js +184 -0
- package/build/esm/shopfiApi.js.map +1 -0
- package/build/esm/validationCheck.js +13 -0
- package/build/esm/validationCheck.js.map +1 -0
- package/build/esm/wordpressApi.js +618 -0
- package/build/esm/wordpressApi.js.map +1 -0
- package/package.json +22 -6
- package/build/index.asset.php +0 -1
- package/build/index.js +0 -25
- package/css/editor.css +0 -23
- package/css/editor.css.map +0 -1
- package/img/animation.png +0 -0
- package/img/blockplace.png +0 -0
- package/img/grid.png +0 -0
- package/img/iconControl.png +0 -0
- package/img/pseudo.png +0 -0
- package/img/shadow.png +0 -0
- package/img/typography.png +0 -0
- package/src/AnimationBlock.js +0 -112
- package/src/BlockEditWrapper.js +0 -11
- package/src/BlockPlace.js +0 -904
- package/src/BrockInserter.js +0 -247
- package/src/DateElm.js +0 -354
- package/src/DraggableBox.js +0 -143
- package/src/GridControls.js +0 -462
- package/src/IconSelectControl.js +0 -186
- package/src/PseudoElm.js +0 -54
- package/src/ShadowStyle.js +0 -520
- package/src/ToggleElement.js +0 -18
- package/src/TypographyControls.js +0 -145
- package/src/UpdateAllPostsBlockAttributes.js +0 -127
- package/src/ZipAddress.js +0 -35
- package/src/blockStore.js +0 -75
- package/src/cssPropertes.js +0 -212
- package/src/formatCreate.js +0 -179
- package/src/hslToRgb.js +0 -162
- package/src/index.js +0 -131
- package/src/mediaUpload.js +0 -178
- package/src/shopfiApi.js +0 -187
- package/src/validationCheck.js +0 -10
- package/src/wordpressApi.js +0 -707
- package/webpack.config.js +0 -10
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { PanelBody, __experimentalUnitControl, PanelRow, RadioControl, ToggleControl } from '@wordpress/components';
|
|
3
|
+
import Select from 'react-select';
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
5
|
+
|
|
6
|
+
var TypographyControls = _ref => {
|
|
7
|
+
var {
|
|
8
|
+
title,
|
|
9
|
+
fontStyle,
|
|
10
|
+
initialOpen,
|
|
11
|
+
isMobile,
|
|
12
|
+
onChange: _onChange2
|
|
13
|
+
} = _ref;
|
|
14
|
+
var {
|
|
15
|
+
default_fontSize,
|
|
16
|
+
mobile_fontSize,
|
|
17
|
+
fontSize,
|
|
18
|
+
fontFamily,
|
|
19
|
+
fontWeight,
|
|
20
|
+
isItalic
|
|
21
|
+
} = fontStyle;
|
|
22
|
+
var fontFamilyOptions = [{
|
|
23
|
+
value: "Arial, sans-serif",
|
|
24
|
+
label: "Arial",
|
|
25
|
+
fontFamily: "Arial, sans-serif"
|
|
26
|
+
}, {
|
|
27
|
+
value: "Courier New, monospace",
|
|
28
|
+
label: "Courier New",
|
|
29
|
+
fontFamily: "Courier New, monospace"
|
|
30
|
+
}, {
|
|
31
|
+
value: "Georgia, serif",
|
|
32
|
+
label: "Georgia",
|
|
33
|
+
fontFamily: "Georgia, serif"
|
|
34
|
+
}, {
|
|
35
|
+
label: "Noto Sans JP",
|
|
36
|
+
value: "Noto Sans JP, sans-serif",
|
|
37
|
+
fontFamily: "Noto Sans JP, sans-serif"
|
|
38
|
+
}, {
|
|
39
|
+
label: "Texturina",
|
|
40
|
+
value: "Texturina, serif",
|
|
41
|
+
fontFamily: "Texturina, serif"
|
|
42
|
+
}];
|
|
43
|
+
var units = [{
|
|
44
|
+
value: "px",
|
|
45
|
+
label: "px"
|
|
46
|
+
}, {
|
|
47
|
+
value: "em",
|
|
48
|
+
label: "em"
|
|
49
|
+
}, {
|
|
50
|
+
value: "rem",
|
|
51
|
+
label: "rem"
|
|
52
|
+
}];
|
|
53
|
+
var customStyles = {
|
|
54
|
+
option: (provided, state) => _objectSpread2(_objectSpread2({}, provided), {}, {
|
|
55
|
+
fontFamily: state.data.fontFamily
|
|
56
|
+
})
|
|
57
|
+
};
|
|
58
|
+
var FontSelect = _ref2 => {
|
|
59
|
+
var {
|
|
60
|
+
label,
|
|
61
|
+
value,
|
|
62
|
+
onChange: _onChange
|
|
63
|
+
} = _ref2;
|
|
64
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, label && /*#__PURE__*/React.createElement("label", {
|
|
65
|
+
className: "components-base-control__label"
|
|
66
|
+
}, label), /*#__PURE__*/React.createElement(Select, {
|
|
67
|
+
options: fontFamilyOptions,
|
|
68
|
+
value: fontFamilyOptions.find(option => option.value === value),
|
|
69
|
+
onChange: newValue => {
|
|
70
|
+
_onChange(newValue.value);
|
|
71
|
+
},
|
|
72
|
+
styles: customStyles
|
|
73
|
+
}));
|
|
74
|
+
};
|
|
75
|
+
return /*#__PURE__*/React.createElement(PanelBody, {
|
|
76
|
+
title: title,
|
|
77
|
+
initialOpen: initialOpen
|
|
78
|
+
}, /*#__PURE__*/React.createElement(__experimentalUnitControl, {
|
|
79
|
+
dragDirection: "e",
|
|
80
|
+
onChange: newValue => {
|
|
81
|
+
newValue = newValue != "" ? newValue : "0px";
|
|
82
|
+
var set_size = !isMobile ? {
|
|
83
|
+
default_fontSize: newValue
|
|
84
|
+
} : {
|
|
85
|
+
mobile_fontSize: newValue
|
|
86
|
+
};
|
|
87
|
+
var newStyle = _objectSpread2(_objectSpread2({}, fontStyle), set_size);
|
|
88
|
+
_onChange2(newStyle);
|
|
89
|
+
},
|
|
90
|
+
label: !isMobile ? __("Size(desk top)", "block-collections") : __("Size(mobile)", "block-collections"),
|
|
91
|
+
value: !isMobile ? default_fontSize : mobile_fontSize,
|
|
92
|
+
units: units
|
|
93
|
+
}), /*#__PURE__*/React.createElement(FontSelect, {
|
|
94
|
+
label: __("font family", "block-collections"),
|
|
95
|
+
value: fontFamily,
|
|
96
|
+
onChange: newValue => {
|
|
97
|
+
var newStyle = _objectSpread2(_objectSpread2({}, fontStyle), {}, {
|
|
98
|
+
fontFamily: newValue
|
|
99
|
+
});
|
|
100
|
+
_onChange2(newStyle);
|
|
101
|
+
}
|
|
102
|
+
}), /*#__PURE__*/React.createElement("label", {
|
|
103
|
+
className: "components-base-control__label"
|
|
104
|
+
}, __("font weight", "block-collections")), /*#__PURE__*/React.createElement(PanelRow, {
|
|
105
|
+
className: "itmar_weight_row"
|
|
106
|
+
}, /*#__PURE__*/React.createElement(RadioControl, {
|
|
107
|
+
selected: fontWeight,
|
|
108
|
+
options: [{
|
|
109
|
+
label: "LIGHT",
|
|
110
|
+
value: "300"
|
|
111
|
+
}, {
|
|
112
|
+
label: "REGULAR",
|
|
113
|
+
value: "400"
|
|
114
|
+
}, {
|
|
115
|
+
label: "MEDIUM",
|
|
116
|
+
value: "500"
|
|
117
|
+
}, {
|
|
118
|
+
label: "S-BOLD",
|
|
119
|
+
value: "600"
|
|
120
|
+
}, {
|
|
121
|
+
label: "BOLD",
|
|
122
|
+
value: "700"
|
|
123
|
+
}, {
|
|
124
|
+
label: "BLACK",
|
|
125
|
+
value: "900"
|
|
126
|
+
}],
|
|
127
|
+
onChange: newValue => {
|
|
128
|
+
var newStyle = _objectSpread2(_objectSpread2({}, fontStyle), {}, {
|
|
129
|
+
fontWeight: newValue
|
|
130
|
+
});
|
|
131
|
+
_onChange2(newStyle);
|
|
132
|
+
}
|
|
133
|
+
})), /*#__PURE__*/React.createElement("label", {
|
|
134
|
+
className: "components-base-control__label"
|
|
135
|
+
}, __("Italic display", "block-collections")), /*#__PURE__*/React.createElement(ToggleControl, {
|
|
136
|
+
checked: isItalic,
|
|
137
|
+
onChange: newValue => {
|
|
138
|
+
var newStyle = _objectSpread2(_objectSpread2({}, fontStyle), {}, {
|
|
139
|
+
isItalic: newValue
|
|
140
|
+
});
|
|
141
|
+
_onChange2(newStyle);
|
|
142
|
+
}
|
|
143
|
+
}));
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
export { TypographyControls as default };
|
|
147
|
+
//# sourceMappingURL=TypographyControls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypographyControls.js","sources":["../../src/TypographyControls.js"],"sourcesContent":["import {\n PanelBody,\n PanelRow,\n RadioControl,\n ToggleControl,\n __experimentalUnitControl as UnitControl,\n} from \"@wordpress/components\";\n\nimport Select from \"react-select\";\nimport { __ } from \"@wordpress/i18n\";\n\nconst TypographyControls = ({\n title,\n fontStyle,\n initialOpen,\n isMobile,\n onChange,\n}) => {\n const {\n default_fontSize,\n mobile_fontSize,\n fontSize,\n fontFamily,\n fontWeight,\n isItalic,\n } = fontStyle;\n\n const fontFamilyOptions = [\n {\n value: \"Arial, sans-serif\",\n label: \"Arial\",\n fontFamily: \"Arial, sans-serif\",\n },\n {\n value: \"Courier New, monospace\",\n label: \"Courier New\",\n fontFamily: \"Courier New, monospace\",\n },\n { value: \"Georgia, serif\", label: \"Georgia\", fontFamily: \"Georgia, serif\" },\n {\n label: \"Noto Sans JP\",\n value: \"Noto Sans JP, sans-serif\",\n fontFamily: \"Noto Sans JP, sans-serif\",\n },\n {\n label: \"Texturina\",\n value: \"Texturina, serif\",\n fontFamily: \"Texturina, serif\",\n },\n ];\n\n const units = [\n { value: \"px\", label: \"px\" },\n { value: \"em\", label: \"em\" },\n { value: \"rem\", label: \"rem\" },\n ];\n\n const customStyles = {\n option: (provided, state) => ({\n ...provided,\n fontFamily: state.data.fontFamily,\n }),\n };\n\n const FontSelect = ({ label, value, onChange }) => (\n <>\n {label && (\n <label className=\"components-base-control__label\">{label}</label>\n )}\n <Select\n options={fontFamilyOptions}\n value={fontFamilyOptions.find((option) => option.value === value)}\n onChange={(newValue) => {\n onChange(newValue.value);\n }}\n styles={customStyles}\n />\n </>\n );\n\n return (\n <PanelBody title={title} initialOpen={initialOpen}>\n <UnitControl\n dragDirection=\"e\"\n onChange={(newValue) => {\n newValue = newValue != \"\" ? newValue : \"0px\";\n const set_size = !isMobile\n ? { default_fontSize: newValue }\n : { mobile_fontSize: newValue };\n const newStyle = { ...fontStyle, ...set_size };\n onChange(newStyle);\n }}\n label={\n !isMobile\n ? __(\"Size(desk top)\", \"block-collections\")\n : __(\"Size(mobile)\", \"block-collections\")\n }\n value={!isMobile ? default_fontSize : mobile_fontSize}\n units={units}\n />\n\n <FontSelect\n label={__(\"font family\", \"block-collections\")}\n value={fontFamily}\n onChange={(newValue) => {\n const newStyle = { ...fontStyle, fontFamily: newValue };\n onChange(newStyle);\n }}\n />\n\n <label className=\"components-base-control__label\">\n {__(\"font weight\", \"block-collections\")}\n </label>\n <PanelRow className=\"itmar_weight_row\">\n <RadioControl\n selected={fontWeight}\n options={[\n { label: \"LIGHT\", value: \"300\" },\n { label: \"REGULAR\", value: \"400\" },\n { label: \"MEDIUM\", value: \"500\" },\n { label: \"S-BOLD\", value: \"600\" },\n { label: \"BOLD\", value: \"700\" },\n { label: \"BLACK\", value: \"900\" },\n ]}\n onChange={(newValue) => {\n const newStyle = { ...fontStyle, fontWeight: newValue };\n onChange(newStyle);\n }}\n />\n </PanelRow>\n\n <label className=\"components-base-control__label\">\n {__(\"Italic display\", \"block-collections\")}\n </label>\n <ToggleControl\n checked={isItalic}\n onChange={(newValue) => {\n const newStyle = { ...fontStyle, isItalic: newValue };\n onChange(newStyle);\n }}\n />\n </PanelBody>\n );\n};\nexport default TypographyControls;\n"],"names":["TypographyControls","_ref","title","fontStyle","initialOpen","isMobile","onChange","default_fontSize","mobile_fontSize","fontSize","fontFamily","fontWeight","isItalic","fontFamilyOptions","value","label","units","customStyles","option","provided","state","_objectSpread","data","FontSelect","_ref2","React","createElement","Fragment","className","Select","options","find","newValue","styles","PanelBody","UnitControl","dragDirection","set_size","newStyle","__","PanelRow","RadioControl","selected","ToggleControl","checked"],"mappings":"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"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { asyncToGenerator as _asyncToGenerator, objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { useState, useRef } from '@wordpress/element';
|
|
3
|
+
import { __ } from '@wordpress/i18n';
|
|
4
|
+
import { ProgressBar, Button } from '@wordpress/components';
|
|
5
|
+
import { parse, serialize } from '@wordpress/blocks';
|
|
6
|
+
import apiFetch from '@wordpress/api-fetch';
|
|
7
|
+
|
|
8
|
+
//特定の投稿タイプの投稿に含まれる本ブロックの属性を書き換える
|
|
9
|
+
|
|
10
|
+
function UpdateAllPostsBlockAttributes(_ref) {
|
|
11
|
+
var {
|
|
12
|
+
postType,
|
|
13
|
+
blockName,
|
|
14
|
+
newAttributes,
|
|
15
|
+
onProcessStart,
|
|
16
|
+
onProcessEnd,
|
|
17
|
+
onProcessCancel
|
|
18
|
+
} = _ref;
|
|
19
|
+
var [progress, setProgress] = useState(0);
|
|
20
|
+
// stateではなくrefを使用してキャンセル状態を管理する
|
|
21
|
+
var cancelRef = useRef(false);
|
|
22
|
+
var updatePostBlockAttributes = /*#__PURE__*/function () {
|
|
23
|
+
var _ref2 = _asyncToGenerator(function* () {
|
|
24
|
+
try {
|
|
25
|
+
var allPosts = [];
|
|
26
|
+
var page = 1;
|
|
27
|
+
var hasMore = true;
|
|
28
|
+
while (hasMore) {
|
|
29
|
+
// REST APIを使ってすべての投稿を取得(投稿タイプを指定)
|
|
30
|
+
var path = "/wp/v2/".concat(postType, "?per_page=100&page=").concat(page, "&context=edit");
|
|
31
|
+
var posts = yield apiFetch({
|
|
32
|
+
path
|
|
33
|
+
});
|
|
34
|
+
allPosts.push(...posts);
|
|
35
|
+
// 投稿が100件未満の場合、次のページは存在しない
|
|
36
|
+
if (posts.length < 100) {
|
|
37
|
+
hasMore = false;
|
|
38
|
+
} else {
|
|
39
|
+
page += 1; // 次のページに進む
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
var allCount = allPosts.length;
|
|
43
|
+
var processCount = 0;
|
|
44
|
+
// キャンセルフラグをリセット
|
|
45
|
+
cancelRef.current = false;
|
|
46
|
+
for (var post of allPosts) {
|
|
47
|
+
if (!post.content || !post.content.raw) {
|
|
48
|
+
console.warn("Post ID ".concat(post.id, " does not contain raw content."));
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
// ループの各回でキャンセルがリクエストされているかチェック
|
|
52
|
+
if (cancelRef.current) {
|
|
53
|
+
console.log("処理がキャンセルされました。");
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
var content = post.content.raw;
|
|
57
|
+
var blocks = parse(content);
|
|
58
|
+
// 特定のブロックの属性を更新
|
|
59
|
+
var updatedBlocks = blocks.map(block => {
|
|
60
|
+
if (block.name === blockName) {
|
|
61
|
+
// 属性をマージして更新
|
|
62
|
+
block.attributes = _objectSpread2(_objectSpread2({}, block.attributes), newAttributes);
|
|
63
|
+
}
|
|
64
|
+
return block;
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
// 更新後のブロックをシリアライズ
|
|
68
|
+
var updatedContent = serialize(updatedBlocks);
|
|
69
|
+
|
|
70
|
+
// REST APIを使って投稿を更新
|
|
71
|
+
try {
|
|
72
|
+
yield apiFetch({
|
|
73
|
+
path: "/wp/v2/".concat(postType, "/").concat(post.id),
|
|
74
|
+
method: "POST",
|
|
75
|
+
data: {
|
|
76
|
+
content: updatedContent
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
} catch (error) {
|
|
80
|
+
console.error("Failed to update post ID ".concat(post.id, ":"), error.message);
|
|
81
|
+
if (error.data) {
|
|
82
|
+
console.error("Error details:", error.data);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//カウンターセットとプログレスバーの処理
|
|
86
|
+
processCount++;
|
|
87
|
+
setProgress(Math.round(processCount / allCount * 100));
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
//終了処理
|
|
91
|
+
onProcessEnd();
|
|
92
|
+
} catch (error) {
|
|
93
|
+
console.error("Error updating block attributes:", error);
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
return function updatePostBlockAttributes() {
|
|
97
|
+
return _ref2.apply(this, arguments);
|
|
98
|
+
};
|
|
99
|
+
}();
|
|
100
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ProgressBar, {
|
|
101
|
+
value: progress,
|
|
102
|
+
className: "markdown_copy_progress"
|
|
103
|
+
}), /*#__PURE__*/React.createElement("p", null, progress, "%"), /*#__PURE__*/React.createElement("div", {
|
|
104
|
+
style: {
|
|
105
|
+
width: "fit-content",
|
|
106
|
+
margin: "20px auto 0"
|
|
107
|
+
}
|
|
108
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
109
|
+
variant: "primary",
|
|
110
|
+
onClick: () => {
|
|
111
|
+
onProcessStart(); //親コンポーネントでスタート処理
|
|
112
|
+
updatePostBlockAttributes();
|
|
113
|
+
},
|
|
114
|
+
disabled: progress > 0 && progress < 100
|
|
115
|
+
}, __("Start Process", "markdown-block")), /*#__PURE__*/React.createElement(Button, {
|
|
116
|
+
variant: "secondary",
|
|
117
|
+
onClick: () => {
|
|
118
|
+
if (progress === 0 || cancelRef.current) {
|
|
119
|
+
onProcessEnd(); // 処理が始まる前ならすぐに終了処理を実行
|
|
120
|
+
} else {
|
|
121
|
+
// キャンセルフラグを更新(refならすぐに反映される)
|
|
122
|
+
cancelRef.current = true;
|
|
123
|
+
onProcessCancel(); //親コンポーネントでキャンセル処理
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
style: {
|
|
127
|
+
marginLeft: "10px"
|
|
128
|
+
}
|
|
129
|
+
}, __("Cancel", "markdown-block"))));
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export { UpdateAllPostsBlockAttributes as default };
|
|
133
|
+
//# sourceMappingURL=UpdateAllPostsBlockAttributes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UpdateAllPostsBlockAttributes.js","sources":["../../src/UpdateAllPostsBlockAttributes.js"],"sourcesContent":["import { useState, useRef } from \"@wordpress/element\";\nimport { __ } from \"@wordpress/i18n\";\nimport { ProgressBar, Button } from \"@wordpress/components\";\nimport { parse, serialize } from \"@wordpress/blocks\";\nimport apiFetch from \"@wordpress/api-fetch\";\n\n//特定の投稿タイプの投稿に含まれる本ブロックの属性を書き換える\n\nexport default function UpdateAllPostsBlockAttributes({\n postType,\n blockName,\n newAttributes,\n onProcessStart,\n onProcessEnd,\n onProcessCancel,\n}) {\n const [progress, setProgress] = useState(0);\n // stateではなくrefを使用してキャンセル状態を管理する\n const cancelRef = useRef(false);\n const updatePostBlockAttributes = async () => {\n try {\n const allPosts = [];\n let page = 1;\n let hasMore = true;\n while (hasMore) {\n // REST APIを使ってすべての投稿を取得(投稿タイプを指定)\n const path = `/wp/v2/${postType}?per_page=100&page=${page}&context=edit`;\n const posts = await apiFetch({ path });\n allPosts.push(...posts);\n // 投稿が100件未満の場合、次のページは存在しない\n if (posts.length < 100) {\n hasMore = false;\n } else {\n page += 1; // 次のページに進む\n }\n }\n let allCount = allPosts.length;\n let processCount = 0;\n // キャンセルフラグをリセット\n cancelRef.current = false;\n\n for (const post of allPosts) {\n if (!post.content || !post.content.raw) {\n console.warn(`Post ID ${post.id} does not contain raw content.`);\n continue;\n }\n // ループの各回でキャンセルがリクエストされているかチェック\n if (cancelRef.current) {\n console.log(\"処理がキャンセルされました。\");\n return;\n }\n\n const content = post.content.raw;\n const blocks = parse(content);\n // 特定のブロックの属性を更新\n const updatedBlocks = blocks.map((block) => {\n if (block.name === blockName) {\n // 属性をマージして更新\n block.attributes = {\n ...block.attributes,\n ...newAttributes,\n };\n }\n return block;\n });\n\n // 更新後のブロックをシリアライズ\n const updatedContent = serialize(updatedBlocks);\n\n // REST APIを使って投稿を更新\n try {\n await apiFetch({\n path: `/wp/v2/${postType}/${post.id}`,\n method: \"POST\",\n data: { content: updatedContent },\n });\n } catch (error) {\n console.error(`Failed to update post ID ${post.id}:`, error.message);\n if (error.data) {\n console.error(\"Error details:\", error.data);\n }\n }\n //カウンターセットとプログレスバーの処理\n processCount++;\n setProgress(Math.round((processCount / allCount) * 100));\n }\n\n //終了処理\n onProcessEnd();\n } catch (error) {\n console.error(\"Error updating block attributes:\", error);\n }\n };\n return (\n <>\n <ProgressBar value={progress} className=\"markdown_copy_progress\" />\n <p>{progress}%</p>\n <div style={{ width: \"fit-content\", margin: \"20px auto 0\" }}>\n <Button\n variant=\"primary\"\n onClick={() => {\n onProcessStart(); //親コンポーネントでスタート処理\n updatePostBlockAttributes();\n }}\n disabled={progress > 0 && progress < 100}\n >\n {__(\"Start Process\", \"markdown-block\")}\n </Button>\n <Button\n variant=\"secondary\"\n onClick={() => {\n if (progress === 0 || cancelRef.current) {\n onProcessEnd(); // 処理が始まる前ならすぐに終了処理を実行\n } else {\n // キャンセルフラグを更新(refならすぐに反映される)\n cancelRef.current = true;\n onProcessCancel(); //親コンポーネントでキャンセル処理\n }\n }}\n style={{ marginLeft: \"10px\" }}\n >\n {__(\"Cancel\", \"markdown-block\")}\n </Button>\n </div>\n </>\n );\n}\n"],"names":["UpdateAllPostsBlockAttributes","_ref","postType","blockName","newAttributes","onProcessStart","onProcessEnd","onProcessCancel","progress","setProgress","useState","cancelRef","useRef","updatePostBlockAttributes","_ref2","_asyncToGenerator","allPosts","page","hasMore","path","concat","posts","apiFetch","push","length","allCount","processCount","current","post","content","raw","console","warn","id","log","blocks","parse","updatedBlocks","map","block","name","attributes","_objectSpread","updatedContent","serialize","method","data","error","message","Math","round","apply","arguments","React","createElement","Fragment","ProgressBar","value","className","style","width","margin","Button","variant","onClick","disabled","__","marginLeft"],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { asyncToGenerator as _asyncToGenerator } from './_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { __ } from '@wordpress/i18n';
|
|
3
|
+
|
|
4
|
+
//郵便番号検索のデータと関数
|
|
5
|
+
var fetchZipToAddress = /*#__PURE__*/function () {
|
|
6
|
+
var _ref = _asyncToGenerator(function* (zipNum) {
|
|
7
|
+
if (!/^\d{7}$/.test(zipNum)) {
|
|
8
|
+
alert(__("Please enter your postal code as 7 digits without hyphens.", "block-collections"));
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
try {
|
|
12
|
+
var response = yield fetch("https://zipcloud.ibsnet.co.jp/api/search?zipcode=".concat(zipNum.replace("-", "")));
|
|
13
|
+
var data = yield response.json();
|
|
14
|
+
if (data.results && data.results.length > 0) {
|
|
15
|
+
var result = data.results[0];
|
|
16
|
+
return result;
|
|
17
|
+
} else {
|
|
18
|
+
alert(__("No matching address found", "block-collections"));
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
} catch (error) {
|
|
22
|
+
alert(__("Communication failed", "block-collections"));
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
return function fetchZipToAddress(_x) {
|
|
27
|
+
return _ref.apply(this, arguments);
|
|
28
|
+
};
|
|
29
|
+
}();
|
|
30
|
+
|
|
31
|
+
export { fetchZipToAddress };
|
|
32
|
+
//# sourceMappingURL=ZipAddress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZipAddress.js","sources":["../../src/ZipAddress.js"],"sourcesContent":["import { __ } from \"@wordpress/i18n\";\n\n//郵便番号検索のデータと関数\nexport const fetchZipToAddress = async (zipNum) => {\n if (!/^\\d{7}$/.test(zipNum)) {\n alert(\n __(\n \"Please enter your postal code as 7 digits without hyphens.\",\n \"block-collections\"\n )\n );\n return null;\n }\n\n try {\n const response = await fetch(\n `https://zipcloud.ibsnet.co.jp/api/search?zipcode=${zipNum.replace(\n \"-\",\n \"\"\n )}`\n );\n const data = await response.json();\n\n if (data.results && data.results.length > 0) {\n const result = data.results[0];\n return result;\n } else {\n alert(__(\"No matching address found\", \"block-collections\"));\n return null;\n }\n } catch (error) {\n alert(__(\"Communication failed\", \"block-collections\"));\n return null;\n }\n};\n"],"names":["fetchZipToAddress","_ref","_asyncToGenerator","zipNum","test","alert","__","response","fetch","concat","replace","data","json","results","length","result","error","_x","apply","arguments"],"mappings":";;;AAEA;IACaA,iBAAiB,gBAAA,YAAA;AAAA,EAAA,IAAAC,IAAA,GAAAC,iBAAA,CAAG,WAAOC,MAAM,EAAK;AACjD,IAAA,IAAI,CAAC,SAAS,CAACC,IAAI,CAACD,MAAM,CAAC,EAAE;AAC3BE,MAAAA,KAAK,CACHC,EAAE,CACA,4DAA4D,EAC5D,mBACF,CACF,CAAC;AACD,MAAA,OAAO,IAAI;AACb,IAAA;IAEA,IAAI;AACF,MAAA,IAAMC,QAAQ,GAAA,MAASC,KAAK,CAAA,mDAAA,CAAAC,MAAA,CAC0BN,MAAM,CAACO,OAAO,CAChE,GAAG,EACH,EACF,CAAC,CACH,CAAC;AACD,MAAA,IAAMC,IAAI,GAAA,MAASJ,QAAQ,CAACK,IAAI,EAAE;MAElC,IAAID,IAAI,CAACE,OAAO,IAAIF,IAAI,CAACE,OAAO,CAACC,MAAM,GAAG,CAAC,EAAE;AAC3C,QAAA,IAAMC,MAAM,GAAGJ,IAAI,CAACE,OAAO,CAAC,CAAC,CAAC;AAC9B,QAAA,OAAOE,MAAM;AACf,MAAA,CAAC,MAAM;AACLV,QAAAA,KAAK,CAACC,EAAE,CAAC,2BAA2B,EAAE,mBAAmB,CAAC,CAAC;AAC3D,QAAA,OAAO,IAAI;AACb,MAAA;IACF,CAAC,CAAC,OAAOU,KAAK,EAAE;AACdX,MAAAA,KAAK,CAACC,EAAE,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,CAAC;AACtD,MAAA,OAAO,IAAI;AACb,IAAA;EACF,CAAC,CAAA;EAAA,OAAA,SA/BYN,iBAAiBA,CAAAiB,EAAA,EAAA;AAAA,IAAA,OAAAhB,IAAA,CAAAiB,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;AAAA,EAAA,CAAA;AAAA,CAAA;;;;"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) {
|
|
2
|
+
try {
|
|
3
|
+
var i = n[a](c),
|
|
4
|
+
u = i.value;
|
|
5
|
+
} catch (n) {
|
|
6
|
+
return void e(n);
|
|
7
|
+
}
|
|
8
|
+
i.done ? t(u) : Promise.resolve(u).then(r, o);
|
|
9
|
+
}
|
|
10
|
+
function _asyncToGenerator(n) {
|
|
11
|
+
return function () {
|
|
12
|
+
var t = this,
|
|
13
|
+
e = arguments;
|
|
14
|
+
return new Promise(function (r, o) {
|
|
15
|
+
var a = n.apply(t, e);
|
|
16
|
+
function _next(n) {
|
|
17
|
+
asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
|
|
18
|
+
}
|
|
19
|
+
function _throw(n) {
|
|
20
|
+
asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
|
|
21
|
+
}
|
|
22
|
+
_next(void 0);
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function _defineProperty(e, r, t) {
|
|
27
|
+
return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
28
|
+
value: t,
|
|
29
|
+
enumerable: true,
|
|
30
|
+
configurable: true,
|
|
31
|
+
writable: true
|
|
32
|
+
}) : e[r] = t, e;
|
|
33
|
+
}
|
|
34
|
+
function _extends() {
|
|
35
|
+
return _extends = Object.assign ? Object.assign.bind() : function (n) {
|
|
36
|
+
for (var e = 1; e < arguments.length; e++) {
|
|
37
|
+
var t = arguments[e];
|
|
38
|
+
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
|
|
39
|
+
}
|
|
40
|
+
return n;
|
|
41
|
+
}, _extends.apply(null, arguments);
|
|
42
|
+
}
|
|
43
|
+
function ownKeys(e, r) {
|
|
44
|
+
var t = Object.keys(e);
|
|
45
|
+
if (Object.getOwnPropertySymbols) {
|
|
46
|
+
var o = Object.getOwnPropertySymbols(e);
|
|
47
|
+
r && (o = o.filter(function (r) {
|
|
48
|
+
return Object.getOwnPropertyDescriptor(e, r).enumerable;
|
|
49
|
+
})), t.push.apply(t, o);
|
|
50
|
+
}
|
|
51
|
+
return t;
|
|
52
|
+
}
|
|
53
|
+
function _objectSpread2(e) {
|
|
54
|
+
for (var r = 1; r < arguments.length; r++) {
|
|
55
|
+
var t = null != arguments[r] ? arguments[r] : {};
|
|
56
|
+
r % 2 ? ownKeys(Object(t), true).forEach(function (r) {
|
|
57
|
+
_defineProperty(e, r, t[r]);
|
|
58
|
+
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
|
|
59
|
+
Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
return e;
|
|
63
|
+
}
|
|
64
|
+
function _objectWithoutProperties(e, t) {
|
|
65
|
+
if (null == e) return {};
|
|
66
|
+
var o,
|
|
67
|
+
r,
|
|
68
|
+
i = _objectWithoutPropertiesLoose(e, t);
|
|
69
|
+
if (Object.getOwnPropertySymbols) {
|
|
70
|
+
var n = Object.getOwnPropertySymbols(e);
|
|
71
|
+
for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
|
|
72
|
+
}
|
|
73
|
+
return i;
|
|
74
|
+
}
|
|
75
|
+
function _objectWithoutPropertiesLoose(r, e) {
|
|
76
|
+
if (null == r) return {};
|
|
77
|
+
var t = {};
|
|
78
|
+
for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
|
|
79
|
+
if (-1 !== e.indexOf(n)) continue;
|
|
80
|
+
t[n] = r[n];
|
|
81
|
+
}
|
|
82
|
+
return t;
|
|
83
|
+
}
|
|
84
|
+
function _taggedTemplateLiteral(e, t) {
|
|
85
|
+
return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, {
|
|
86
|
+
raw: {
|
|
87
|
+
value: Object.freeze(t)
|
|
88
|
+
}
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
91
|
+
function _toPrimitive(t, r) {
|
|
92
|
+
if ("object" != typeof t || !t) return t;
|
|
93
|
+
var e = t[Symbol.toPrimitive];
|
|
94
|
+
if (void 0 !== e) {
|
|
95
|
+
var i = e.call(t, r);
|
|
96
|
+
if ("object" != typeof i) return i;
|
|
97
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
98
|
+
}
|
|
99
|
+
return ("string" === r ? String : Number)(t);
|
|
100
|
+
}
|
|
101
|
+
function _toPropertyKey(t) {
|
|
102
|
+
var i = _toPrimitive(t, "string");
|
|
103
|
+
return "symbol" == typeof i ? i : i + "";
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export { _asyncToGenerator as asyncToGenerator, _defineProperty as defineProperty, _extends as extends, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _taggedTemplateLiteral as taggedTemplateLiteral, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey };
|
|
107
|
+
//# sourceMappingURL=_rollupPluginBabelHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_rollupPluginBabelHelpers.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { useSelect } from '@wordpress/data';
|
|
2
|
+
import { store } from '@wordpress/block-editor';
|
|
3
|
+
import { createBlock } from '@wordpress/blocks';
|
|
4
|
+
|
|
5
|
+
var useTargetBlocks = function useTargetBlocks(clientId, blockName) {
|
|
6
|
+
var attributeFilter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
7
|
+
var includeNested = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
8
|
+
var targetblocks = useSelect(select => {
|
|
9
|
+
var {
|
|
10
|
+
getBlockRootClientId,
|
|
11
|
+
getBlock
|
|
12
|
+
} = select(store);
|
|
13
|
+
var parentId = getBlockRootClientId(clientId); // 自分の親の clientId を取得
|
|
14
|
+
if (!parentId) return attributeFilter ? null : [];
|
|
15
|
+
var parentBlock = getBlock(parentId);
|
|
16
|
+
if (!parentBlock) return attributeFilter ? null : [];
|
|
17
|
+
var siblingBlocks = includeNested ? flattenBlocks(parentBlock.innerBlocks || []) //ネストされたブロックも含んで検索
|
|
18
|
+
: parentBlock.innerBlocks || []; //兄弟ブロックのみ
|
|
19
|
+
|
|
20
|
+
var filtered = siblingBlocks.filter(block => block.name === blockName && block.clientId !== clientId);
|
|
21
|
+
if (attributeFilter) {
|
|
22
|
+
return filtered.find(block => {
|
|
23
|
+
return Object.entries(attributeFilter).every(_ref => {
|
|
24
|
+
var [key, value] = _ref;
|
|
25
|
+
return block.attributes[key] === value;
|
|
26
|
+
});
|
|
27
|
+
}) || null;
|
|
28
|
+
}
|
|
29
|
+
return filtered;
|
|
30
|
+
}, [clientId, blockName, JSON.stringify(attributeFilter), includeNested]);
|
|
31
|
+
return targetblocks;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
//ネストしたブロックを平坦化
|
|
35
|
+
var flattenBlocks = blocks => {
|
|
36
|
+
return blocks.reduce((acc, block) => {
|
|
37
|
+
acc.push(block);
|
|
38
|
+
if (block.innerBlocks && block.innerBlocks.length > 0) {
|
|
39
|
+
acc.push(...flattenBlocks(block.innerBlocks));
|
|
40
|
+
}
|
|
41
|
+
return acc;
|
|
42
|
+
}, []);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
// 再帰的にブロック構造をシリアライズする関数
|
|
46
|
+
var serializeBlockTree = block => {
|
|
47
|
+
return {
|
|
48
|
+
blockName: block.name,
|
|
49
|
+
attributes: block.attributes,
|
|
50
|
+
innerBlocks: block.innerBlocks.length > 0 ? block.innerBlocks.map(serializeBlockTree) : []
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
// シリアライズしたブロックデータをもとの階層構造に戻す関数
|
|
54
|
+
var createBlockTree = blockData => {
|
|
55
|
+
var inner = Array.isArray(blockData.innerBlocks) ? blockData.innerBlocks.map(createBlockTree) : [];
|
|
56
|
+
return createBlock(blockData.blockName, blockData.attributes, inner);
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export { createBlockTree, flattenBlocks, serializeBlockTree, useTargetBlocks };
|
|
60
|
+
//# sourceMappingURL=blockStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockStore.js","sources":["../../src/blockStore.js"],"sourcesContent":["import { useSelect } from \"@wordpress/data\";\nimport { store as blockEditorStore } from \"@wordpress/block-editor\";\nimport { createBlock } from \"@wordpress/blocks\";\n\nexport const useTargetBlocks = (\n clientId,\n blockName,\n attributeFilter = null,\n includeNested = false\n) => {\n const targetblocks = useSelect(\n (select) => {\n const { getBlockRootClientId, getBlock } = select(blockEditorStore);\n\n const parentId = getBlockRootClientId(clientId); // 自分の親の clientId を取得\n if (!parentId) return attributeFilter ? null : [];\n\n const parentBlock = getBlock(parentId);\n if (!parentBlock) return attributeFilter ? null : [];\n\n const siblingBlocks = includeNested\n ? flattenBlocks(parentBlock.innerBlocks || []) //ネストされたブロックも含んで検索\n : parentBlock.innerBlocks || []; //兄弟ブロックのみ\n\n const filtered = siblingBlocks.filter(\n (block) => block.name === blockName && block.clientId !== clientId\n );\n\n if (attributeFilter) {\n return (\n filtered.find((block) => {\n return Object.entries(attributeFilter).every(\n ([key, value]) => block.attributes[key] === value\n );\n }) || null\n );\n }\n\n return filtered;\n },\n [clientId, blockName, JSON.stringify(attributeFilter), includeNested]\n );\n return targetblocks;\n};\n\n//ネストしたブロックを平坦化\nexport const flattenBlocks = (blocks) => {\n return blocks.reduce((acc, block) => {\n acc.push(block);\n if (block.innerBlocks && block.innerBlocks.length > 0) {\n acc.push(...flattenBlocks(block.innerBlocks));\n }\n return acc;\n }, []);\n};\n\n// 再帰的にブロック構造をシリアライズする関数\nexport const serializeBlockTree = (block) => {\n return {\n blockName: block.name,\n attributes: block.attributes,\n innerBlocks:\n block.innerBlocks.length > 0\n ? block.innerBlocks.map(serializeBlockTree)\n : [],\n };\n};\n// シリアライズしたブロックデータをもとの階層構造に戻す関数\nexport const createBlockTree = (blockData) => {\n const inner = Array.isArray(blockData.innerBlocks)\n ? blockData.innerBlocks.map(createBlockTree)\n : [];\n\n return createBlock(blockData.blockName, blockData.attributes, inner);\n};\n"],"names":["useTargetBlocks","clientId","blockName","attributeFilter","arguments","length","undefined","includeNested","targetblocks","useSelect","select","getBlockRootClientId","getBlock","blockEditorStore","parentId","parentBlock","siblingBlocks","flattenBlocks","innerBlocks","filtered","filter","block","name","find","Object","entries","every","_ref","key","value","attributes","JSON","stringify","blocks","reduce","acc","push","serializeBlockTree","map","createBlockTree","blockData","inner","Array","isArray","createBlock"],"mappings":"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"}
|