itmar-block-packages 1.10.1 → 2.0.0
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 +78 -2
- 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 +108 -113
- 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,321 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
|
|
4
|
+
var i18n = require('@wordpress/i18n');
|
|
5
|
+
var index = require('./node_modules/nanoid/index.js');
|
|
6
|
+
var components = require('@wordpress/components');
|
|
7
|
+
|
|
8
|
+
//期間の設定から選択できる月の情報オブジェクトを配列にする関数
|
|
9
|
+
var generateDateArray = (dateObj, isMonth) => {
|
|
10
|
+
var {
|
|
11
|
+
startYear,
|
|
12
|
+
startMonth,
|
|
13
|
+
endYear,
|
|
14
|
+
endMonth
|
|
15
|
+
} = dateObj;
|
|
16
|
+
var result = [];
|
|
17
|
+
for (var year = startYear; year <= endYear; year++) {
|
|
18
|
+
if (isMonth) {
|
|
19
|
+
var monthStart = year === startYear ? startMonth : 1;
|
|
20
|
+
var monthEnd = year === endYear ? endMonth : 12;
|
|
21
|
+
for (var month = monthStart; month <= monthEnd; month++) {
|
|
22
|
+
var unitObj = {
|
|
23
|
+
id: index.nanoid(5),
|
|
24
|
+
value: "".concat(year, "/").concat(month.toString().padStart(2, "0")),
|
|
25
|
+
label: "".concat(year, "/").concat(month.toString().padStart(2, "0")),
|
|
26
|
+
classname: "filter_date"
|
|
27
|
+
};
|
|
28
|
+
result.push(unitObj);
|
|
29
|
+
}
|
|
30
|
+
} else {
|
|
31
|
+
var _unitObj = {
|
|
32
|
+
id: index.nanoid(5),
|
|
33
|
+
value: "".concat(year),
|
|
34
|
+
label: "".concat(year),
|
|
35
|
+
classname: "filter_date"
|
|
36
|
+
};
|
|
37
|
+
result.push(_unitObj);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return result;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
//与えられた月から日付と曜日を要素とする配列を生成する
|
|
44
|
+
var generateMonthCalendar = function generateMonthCalendar(dateString) {
|
|
45
|
+
var holidays = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
46
|
+
var [year, month] = dateString.split("/").map(Number);
|
|
47
|
+
var date = new Date(year, month - 1, 1);
|
|
48
|
+
var lastDay = new Date(year, month, 0).getDate();
|
|
49
|
+
var calendar = [];
|
|
50
|
+
var _loop = function _loop(day) {
|
|
51
|
+
date.setDate(day);
|
|
52
|
+
//祝日の情報
|
|
53
|
+
var holidayItem = holidays === null || holidays === void 0 ? void 0 : holidays.find(item => {
|
|
54
|
+
var _item$date;
|
|
55
|
+
var s = String((_item$date = item.date) !== null && _item$date !== void 0 ? _item$date : "");
|
|
56
|
+
|
|
57
|
+
// item.date から YYYY, MM, DD を取り出す("YYYYMMDD" / "YYYY-MM-DD" などに対応)
|
|
58
|
+
var yearStr = s.slice(0, 4);
|
|
59
|
+
var monthStr = s.replace(/\D/g, "").slice(4, 6); // 数字だけにして5-6桁
|
|
60
|
+
var dayStr = s.replace(/\D/g, "").slice(6, 8); // 数字だけにして7-8桁
|
|
61
|
+
|
|
62
|
+
var itemYear = Number(yearStr);
|
|
63
|
+
var itemMonth = Number(monthStr);
|
|
64
|
+
var itemDay = Number(dayStr);
|
|
65
|
+
return itemYear === year && itemMonth === month && itemDay === day;
|
|
66
|
+
});
|
|
67
|
+
//日付情報オブジェクト
|
|
68
|
+
var dayObj = holidayItem ? {
|
|
69
|
+
date: day,
|
|
70
|
+
weekday: date.getDay(),
|
|
71
|
+
holiday: holidayItem.name
|
|
72
|
+
} : {
|
|
73
|
+
date: day,
|
|
74
|
+
weekday: date.getDay()
|
|
75
|
+
};
|
|
76
|
+
calendar.push(dayObj);
|
|
77
|
+
};
|
|
78
|
+
for (var day = 1; day <= lastDay; day++) {
|
|
79
|
+
_loop(day);
|
|
80
|
+
}
|
|
81
|
+
return calendar;
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
//期間設定のインスペクターコントロール
|
|
85
|
+
var PeriodCtrl = _ref => {
|
|
86
|
+
var {
|
|
87
|
+
startYear,
|
|
88
|
+
endYear,
|
|
89
|
+
dateSpan,
|
|
90
|
+
isMonth,
|
|
91
|
+
onChange: _onChange
|
|
92
|
+
} = _ref;
|
|
93
|
+
return /*#__PURE__*/React.createElement(components.PanelBody, {
|
|
94
|
+
title: i18n.__("Period Setting", "block-collections"),
|
|
95
|
+
initialOpen: true,
|
|
96
|
+
className: "form_setteing_ctrl"
|
|
97
|
+
}, /*#__PURE__*/React.createElement("label", null, i18n.__("Start of period", "block-collections")), /*#__PURE__*/React.createElement(components.PanelRow, {
|
|
98
|
+
className: "itmar_date_span"
|
|
99
|
+
}, /*#__PURE__*/React.createElement(components.__experimentalNumberControl, {
|
|
100
|
+
label: i18n.__("Year", "block-collections"),
|
|
101
|
+
labelPosition: "side",
|
|
102
|
+
max: endYear,
|
|
103
|
+
min: startYear,
|
|
104
|
+
onChange: newValue => {
|
|
105
|
+
var newSpanObj = {
|
|
106
|
+
dateSpan: _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, dateSpan), {}, {
|
|
107
|
+
startYear: Number(newValue)
|
|
108
|
+
})
|
|
109
|
+
};
|
|
110
|
+
_onChange(newSpanObj);
|
|
111
|
+
},
|
|
112
|
+
value: dateSpan.startYear
|
|
113
|
+
}), isMonth && /*#__PURE__*/React.createElement(components.__experimentalNumberControl, {
|
|
114
|
+
label: i18n.__("Month", "block-collections"),
|
|
115
|
+
labelPosition: "side",
|
|
116
|
+
max: 12,
|
|
117
|
+
min: 1,
|
|
118
|
+
onChange: newValue => {
|
|
119
|
+
var newSpanObj = {
|
|
120
|
+
dateSpan: _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, dateSpan), {}, {
|
|
121
|
+
startMonth: Number(newValue)
|
|
122
|
+
})
|
|
123
|
+
};
|
|
124
|
+
_onChange(newSpanObj);
|
|
125
|
+
},
|
|
126
|
+
value: dateSpan.startMonth
|
|
127
|
+
})), /*#__PURE__*/React.createElement("label", null, i18n.__("End of period", "block-collections")), /*#__PURE__*/React.createElement(components.PanelRow, {
|
|
128
|
+
className: "itmar_date_span"
|
|
129
|
+
}, /*#__PURE__*/React.createElement(components.__experimentalNumberControl, {
|
|
130
|
+
label: i18n.__("Year", "block-collections"),
|
|
131
|
+
labelPosition: "side",
|
|
132
|
+
max: endYear,
|
|
133
|
+
min: startYear,
|
|
134
|
+
onChange: newValue => {
|
|
135
|
+
var newSpanObj = {
|
|
136
|
+
dateSpan: _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, dateSpan), {}, {
|
|
137
|
+
endYear: Number(newValue)
|
|
138
|
+
})
|
|
139
|
+
};
|
|
140
|
+
_onChange(newSpanObj);
|
|
141
|
+
},
|
|
142
|
+
value: dateSpan.endYear
|
|
143
|
+
}), /*#__PURE__*/React.createElement(components.__experimentalNumberControl, {
|
|
144
|
+
label: i18n.__("Month", "block-collections"),
|
|
145
|
+
labelPosition: "side",
|
|
146
|
+
max: 12,
|
|
147
|
+
min: 1,
|
|
148
|
+
onChange: newValue => {
|
|
149
|
+
var newSpanObj = {
|
|
150
|
+
dateSpan: _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, dateSpan), {}, {
|
|
151
|
+
endMonth: Number(newValue)
|
|
152
|
+
})
|
|
153
|
+
};
|
|
154
|
+
_onChange(newSpanObj);
|
|
155
|
+
},
|
|
156
|
+
value: dateSpan.endMonth
|
|
157
|
+
})));
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
//日付から期間のクエリー用の配列を生成
|
|
161
|
+
var getPeriodQuery = dateString => {
|
|
162
|
+
if (!dateString) {
|
|
163
|
+
return null; //与えられた文字列が空ならnullをかえす
|
|
164
|
+
}
|
|
165
|
+
var parts = dateString.split("/");
|
|
166
|
+
var year = parseInt(parts[0], 10);
|
|
167
|
+
var month = parts.length > 1 ? parseInt(parts[1], 10) : null;
|
|
168
|
+
var day = parts.length > 2 ? parseInt(parts[2], 10) : null;
|
|
169
|
+
var startDate, endDate;
|
|
170
|
+
if (day) {
|
|
171
|
+
// 特定の日
|
|
172
|
+
startDate = new Date(year, month - 1, day, 0, 0, 0, -1);
|
|
173
|
+
endDate = new Date(year, month - 1, day, 23, 59, 59, 1000);
|
|
174
|
+
} else if (month) {
|
|
175
|
+
// 特定の月
|
|
176
|
+
startDate = new Date(year, month - 1, 1, 0, 0, 0, -1);
|
|
177
|
+
endDate = new Date(year, month, 1, 0, 0, 0, 0);
|
|
178
|
+
} else {
|
|
179
|
+
// 特定の年
|
|
180
|
+
startDate = new Date(year, 0, 1, 0, 0, 0, -1);
|
|
181
|
+
endDate = new Date(year + 1, 0, 1, 0, 0, 0, 0);
|
|
182
|
+
}
|
|
183
|
+
return {
|
|
184
|
+
after: startDate.toISOString(),
|
|
185
|
+
before: endDate.toISOString()
|
|
186
|
+
};
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
//本日の日付から'YYYY/MM'形式の日付文字列を生成する
|
|
190
|
+
var getTodayYearMonth = () => {
|
|
191
|
+
var today = new Date();
|
|
192
|
+
var year = today.getFullYear();
|
|
193
|
+
var month = String(today.getMonth() + 1).padStart(2, "0");
|
|
194
|
+
return "".concat(year, "/").concat(month);
|
|
195
|
+
};
|
|
196
|
+
//本日の日付から年を返す
|
|
197
|
+
var getTodayYear = () => {
|
|
198
|
+
var today = new Date();
|
|
199
|
+
return today.getFullYear();
|
|
200
|
+
};
|
|
201
|
+
//本日の日付から月を返す
|
|
202
|
+
var getTodayMonth = () => {
|
|
203
|
+
var today = new Date();
|
|
204
|
+
return today.getMonth() + 1;
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
// "2026/01" -> { ym:"2026-01", from:"2026-01-01", to:"2026-01-31", year:2026, month:1 }
|
|
208
|
+
var pad2 = n => String(n).padStart(2, "0");
|
|
209
|
+
var getMonthRangeYmd = selectedMonth => {
|
|
210
|
+
if (!selectedMonth) return {
|
|
211
|
+
ym: "",
|
|
212
|
+
from: "",
|
|
213
|
+
to: "",
|
|
214
|
+
year: 0,
|
|
215
|
+
month: 0,
|
|
216
|
+
lastDay: 0
|
|
217
|
+
};
|
|
218
|
+
var [yStr, mStr] = String(selectedMonth).split("/");
|
|
219
|
+
var year = Number(yStr);
|
|
220
|
+
var month = Number(mStr);
|
|
221
|
+
if (!year || !month) return {
|
|
222
|
+
ym: "",
|
|
223
|
+
from: "",
|
|
224
|
+
to: "",
|
|
225
|
+
year: 0,
|
|
226
|
+
month: 0,
|
|
227
|
+
lastDay: 0
|
|
228
|
+
};
|
|
229
|
+
var lastDay = new Date(year, month, 0).getDate();
|
|
230
|
+
var mm = pad2(month);
|
|
231
|
+
return {
|
|
232
|
+
ym: "".concat(year, "-").concat(mm),
|
|
233
|
+
from: "".concat(year, "-").concat(mm, "-01"),
|
|
234
|
+
to: "".concat(year, "-").concat(mm, "-").concat(pad2(lastDay)),
|
|
235
|
+
year,
|
|
236
|
+
month,
|
|
237
|
+
lastDay
|
|
238
|
+
};
|
|
239
|
+
};
|
|
240
|
+
var normalizeDateYYYYMMDD = value => {
|
|
241
|
+
// 期待値: 'YYYY-MM-DD'
|
|
242
|
+
if (!value) return "";
|
|
243
|
+
return String(value).slice(0, 10);
|
|
244
|
+
};
|
|
245
|
+
var toYmdFromMonthAndDay = (selectedMonth, dayValue) => {
|
|
246
|
+
if (!dayValue) return "";
|
|
247
|
+
var dayStr = String(dayValue).trim();
|
|
248
|
+
|
|
249
|
+
// already "YYYY-MM-DD"
|
|
250
|
+
if (/^\d{4}-\d{2}-\d{2}$/.test(dayStr)) return dayStr;
|
|
251
|
+
|
|
252
|
+
// 8 digits "YYYYMMDD"
|
|
253
|
+
if (/^\d{8}$/.test(dayStr)) {
|
|
254
|
+
var y = dayStr.slice(0, 4);
|
|
255
|
+
var m = dayStr.slice(4, 6);
|
|
256
|
+
var d = dayStr.slice(6, 8);
|
|
257
|
+
return "".concat(y, "-").concat(m, "-").concat(d);
|
|
258
|
+
}
|
|
259
|
+
// day-of-month number
|
|
260
|
+
var dayNum = Number(dayStr);
|
|
261
|
+
if (!selectedMonth || !dayNum) return "";
|
|
262
|
+
var [yStr, mStr] = String(selectedMonth).split("/");
|
|
263
|
+
if (!yStr || !mStr) return "";
|
|
264
|
+
return "".concat(yStr, "-").concat(pad2(Number(mStr)), "-").concat(pad2(dayNum));
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
/* ------------------------------
|
|
268
|
+
カレンダー用グリッドAreasの生成関数
|
|
269
|
+
------------------------------ */
|
|
270
|
+
var week = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"];
|
|
271
|
+
var generateGridAreas = (firstDayOfMonth, totalDays, isMonday) => {
|
|
272
|
+
var areas = [];
|
|
273
|
+
var currentDay = 1;
|
|
274
|
+
//月曜日を先頭に持ってくる場合の係数
|
|
275
|
+
var mondayFirstDay = firstDayOfMonth - 1 < 0 ? 6 : firstDayOfMonth - 1;
|
|
276
|
+
//先頭曜日の選択
|
|
277
|
+
var modifyFirstDay = isMonday ? mondayFirstDay : firstDayOfMonth;
|
|
278
|
+
|
|
279
|
+
//曜日ラベル
|
|
280
|
+
var weekLabels = [];
|
|
281
|
+
var week_index;
|
|
282
|
+
for (var i = 0; i < 7; i++) {
|
|
283
|
+
week_index = isMonday ? i + 1 : i; //月曜日を先頭に持ってくる場合の補正
|
|
284
|
+
if (week_index > 6) week_index = 0;
|
|
285
|
+
weekLabels.push(week[week_index]);
|
|
286
|
+
}
|
|
287
|
+
areas.push(weekLabels.join(" "));
|
|
288
|
+
for (var _i = 0; _i < 6; _i++) {
|
|
289
|
+
// 6週分のループ
|
|
290
|
+
var _week = [];
|
|
291
|
+
for (var j = 0; j < 7; j++) {
|
|
292
|
+
// 1週間の7日分のループ
|
|
293
|
+
if (_i === 0 && j < modifyFirstDay || currentDay > totalDays) {
|
|
294
|
+
_week.push("empty".concat(_i));
|
|
295
|
+
} else {
|
|
296
|
+
_week.push("day".concat(currentDay));
|
|
297
|
+
currentDay++;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
if (_i == 5) {
|
|
301
|
+
//最後の週
|
|
302
|
+
_week[5] = "day_clear";
|
|
303
|
+
_week[6] = "day_clear";
|
|
304
|
+
}
|
|
305
|
+
areas.push(_week.join(" "));
|
|
306
|
+
}
|
|
307
|
+
return areas.map(week => "\"".concat(week, "\"")).join("\n");
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
exports.PeriodCtrl = PeriodCtrl;
|
|
311
|
+
exports.generateDateArray = generateDateArray;
|
|
312
|
+
exports.generateGridAreas = generateGridAreas;
|
|
313
|
+
exports.generateMonthCalendar = generateMonthCalendar;
|
|
314
|
+
exports.getMonthRangeYmd = getMonthRangeYmd;
|
|
315
|
+
exports.getPeriodQuery = getPeriodQuery;
|
|
316
|
+
exports.getTodayMonth = getTodayMonth;
|
|
317
|
+
exports.getTodayYear = getTodayYear;
|
|
318
|
+
exports.getTodayYearMonth = getTodayYearMonth;
|
|
319
|
+
exports.normalizeDateYYYYMMDD = normalizeDateYYYYMMDD;
|
|
320
|
+
exports.toYmdFromMonthAndDay = toYmdFromMonthAndDay;
|
|
321
|
+
//# sourceMappingURL=DateElm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateElm.js","sources":["../../src/DateElm.js"],"sourcesContent":["import { __ } from \"@wordpress/i18n\";\r\nimport { nanoid } from \"nanoid\";\r\nimport {\r\n PanelBody,\r\n PanelRow,\r\n __experimentalNumberControl as NumberControl,\r\n} from \"@wordpress/components\";\r\n\r\n//Google Calender APIから祝日データを取得するためのID\r\nconst CALENDAR_ID = \"japanese__ja@holiday.calendar.google.com\";\r\n\r\n//期間の設定から選択できる月の情報オブジェクトを配列にする関数\r\nexport const generateDateArray = (dateObj, isMonth) => {\r\n const { startYear, startMonth, endYear, endMonth } = dateObj;\r\n const result = [];\r\n\r\n for (let year = startYear; year <= endYear; year++) {\r\n if (isMonth) {\r\n const monthStart = year === startYear ? startMonth : 1;\r\n const monthEnd = year === endYear ? endMonth : 12;\r\n\r\n for (let month = monthStart; month <= monthEnd; month++) {\r\n const unitObj = {\r\n id: nanoid(5),\r\n value: `${year}/${month.toString().padStart(2, \"0\")}`,\r\n label: `${year}/${month.toString().padStart(2, \"0\")}`,\r\n classname: \"filter_date\",\r\n };\r\n result.push(unitObj);\r\n }\r\n } else {\r\n const unitObj = {\r\n id: nanoid(5),\r\n value: `${year}`,\r\n label: `${year}`,\r\n classname: \"filter_date\",\r\n };\r\n result.push(unitObj);\r\n }\r\n }\r\n\r\n return result;\r\n};\r\n\r\n//与えられた月から日付と曜日を要素とする配列を生成する\r\nexport const generateMonthCalendar = (dateString, holidays = null) => {\r\n const [year, month] = dateString.split(\"/\").map(Number);\r\n const date = new Date(year, month - 1, 1);\r\n const lastDay = new Date(year, month, 0).getDate();\r\n\r\n const calendar = [];\r\n\r\n for (let day = 1; day <= lastDay; day++) {\r\n date.setDate(day);\r\n //祝日の情報\r\n const holidayItem = holidays?.find((item) => {\r\n const s = String(item.date ?? \"\");\r\n\r\n // item.date から YYYY, MM, DD を取り出す(\"YYYYMMDD\" / \"YYYY-MM-DD\" などに対応)\r\n const yearStr = s.slice(0, 4);\r\n const monthStr = s.replace(/\\D/g, \"\").slice(4, 6); // 数字だけにして5-6桁\r\n const dayStr = s.replace(/\\D/g, \"\").slice(6, 8); // 数字だけにして7-8桁\r\n\r\n const itemYear = Number(yearStr);\r\n const itemMonth = Number(monthStr);\r\n const itemDay = Number(dayStr);\r\n\r\n return itemYear === year && itemMonth === month && itemDay === day;\r\n });\r\n //日付情報オブジェクト\r\n const dayObj = holidayItem\r\n ? {\r\n date: day,\r\n weekday: date.getDay(),\r\n holiday: holidayItem.name,\r\n }\r\n : {\r\n date: day,\r\n weekday: date.getDay(),\r\n };\r\n calendar.push(dayObj);\r\n }\r\n\r\n return calendar;\r\n};\r\n\r\n//期間設定のインスペクターコントロール\r\nexport const PeriodCtrl = ({\r\n startYear,\r\n endYear,\r\n dateSpan,\r\n isMonth,\r\n onChange,\r\n}) => {\r\n return (\r\n <PanelBody\r\n title={__(\"Period Setting\", \"block-collections\")}\r\n initialOpen={true}\r\n className=\"form_setteing_ctrl\"\r\n >\r\n <label>{__(\"Start of period\", \"block-collections\")}</label>\r\n <PanelRow className=\"itmar_date_span\">\r\n <NumberControl\r\n label={__(\"Year\", \"block-collections\")}\r\n labelPosition=\"side\"\r\n max={endYear}\r\n min={startYear}\r\n onChange={(newValue) => {\r\n const newSpanObj = {\r\n dateSpan: {\r\n ...dateSpan,\r\n startYear: Number(newValue),\r\n },\r\n };\r\n onChange(newSpanObj);\r\n }}\r\n value={dateSpan.startYear}\r\n />\r\n {isMonth && (\r\n <NumberControl\r\n label={__(\"Month\", \"block-collections\")}\r\n labelPosition=\"side\"\r\n max={12}\r\n min={1}\r\n onChange={(newValue) => {\r\n const newSpanObj = {\r\n dateSpan: {\r\n ...dateSpan,\r\n startMonth: Number(newValue),\r\n },\r\n };\r\n onChange(newSpanObj);\r\n }}\r\n value={dateSpan.startMonth}\r\n />\r\n )}\r\n </PanelRow>\r\n <label>{__(\"End of period\", \"block-collections\")}</label>\r\n <PanelRow className=\"itmar_date_span\">\r\n <NumberControl\r\n label={__(\"Year\", \"block-collections\")}\r\n labelPosition=\"side\"\r\n max={endYear}\r\n min={startYear}\r\n onChange={(newValue) => {\r\n const newSpanObj = {\r\n dateSpan: {\r\n ...dateSpan,\r\n endYear: Number(newValue),\r\n },\r\n };\r\n onChange(newSpanObj);\r\n }}\r\n value={dateSpan.endYear}\r\n />\r\n <NumberControl\r\n label={__(\"Month\", \"block-collections\")}\r\n labelPosition=\"side\"\r\n max={12}\r\n min={1}\r\n onChange={(newValue) => {\r\n const newSpanObj = {\r\n dateSpan: {\r\n ...dateSpan,\r\n endMonth: Number(newValue),\r\n },\r\n };\r\n onChange(newSpanObj);\r\n }}\r\n value={dateSpan.endMonth}\r\n />\r\n </PanelRow>\r\n </PanelBody>\r\n );\r\n};\r\n\r\n//日付から期間のクエリー用の配列を生成\r\nexport const getPeriodQuery = (dateString) => {\r\n if (!dateString) {\r\n return null; //与えられた文字列が空ならnullをかえす\r\n }\r\n const parts = dateString.split(\"/\");\r\n const year = parseInt(parts[0], 10);\r\n const month = parts.length > 1 ? parseInt(parts[1], 10) : null;\r\n const day = parts.length > 2 ? parseInt(parts[2], 10) : null;\r\n\r\n let startDate, endDate;\r\n\r\n if (day) {\r\n // 特定の日\r\n startDate = new Date(year, month - 1, day, 0, 0, 0, -1);\r\n endDate = new Date(year, month - 1, day, 23, 59, 59, 1000);\r\n } else if (month) {\r\n // 特定の月\r\n startDate = new Date(year, month - 1, 1, 0, 0, 0, -1);\r\n endDate = new Date(year, month, 1, 0, 0, 0, 0);\r\n } else {\r\n // 特定の年\r\n startDate = new Date(year, 0, 1, 0, 0, 0, -1);\r\n endDate = new Date(year + 1, 0, 1, 0, 0, 0, 0);\r\n }\r\n\r\n return {\r\n after: startDate.toISOString(),\r\n before: endDate.toISOString(),\r\n };\r\n};\r\n\r\n//本日の日付から'YYYY/MM'形式の日付文字列を生成する\r\nexport const getTodayYearMonth = () => {\r\n const today = new Date();\r\n const year = today.getFullYear();\r\n const month = String(today.getMonth() + 1).padStart(2, \"0\");\r\n return `${year}/${month}`;\r\n};\r\n//本日の日付から年を返す\r\nexport const getTodayYear = () => {\r\n const today = new Date();\r\n return today.getFullYear();\r\n};\r\n//本日の日付から月を返す\r\nexport const getTodayMonth = () => {\r\n const today = new Date();\r\n return today.getMonth() + 1;\r\n};\r\n\r\n// \"2026/01\" -> { ym:\"2026-01\", from:\"2026-01-01\", to:\"2026-01-31\", year:2026, month:1 }\r\nconst pad2 = (n) => String(n).padStart(2, \"0\");\r\nexport const getMonthRangeYmd = (selectedMonth) => {\r\n if (!selectedMonth)\r\n return { ym: \"\", from: \"\", to: \"\", year: 0, month: 0, lastDay: 0 };\r\n const [yStr, mStr] = String(selectedMonth).split(\"/\");\r\n const year = Number(yStr);\r\n const month = Number(mStr);\r\n if (!year || !month)\r\n return { ym: \"\", from: \"\", to: \"\", year: 0, month: 0, lastDay: 0 };\r\n\r\n const lastDay = new Date(year, month, 0).getDate();\r\n const mm = pad2(month);\r\n return {\r\n ym: `${year}-${mm}`,\r\n from: `${year}-${mm}-01`,\r\n to: `${year}-${mm}-${pad2(lastDay)}`,\r\n year,\r\n month,\r\n lastDay,\r\n };\r\n};\r\n\r\nexport const normalizeDateYYYYMMDD = (value) => {\r\n // 期待値: 'YYYY-MM-DD'\r\n if (!value) return \"\";\r\n return String(value).slice(0, 10);\r\n};\r\n\r\nexport const toYmdFromMonthAndDay = (selectedMonth, dayValue) => {\r\n if (!dayValue) return \"\";\r\n\r\n const dayStr = String(dayValue).trim();\r\n\r\n // already \"YYYY-MM-DD\"\r\n if (/^\\d{4}-\\d{2}-\\d{2}$/.test(dayStr)) return dayStr;\r\n\r\n // 8 digits \"YYYYMMDD\"\r\n if (/^\\d{8}$/.test(dayStr)) {\r\n const y = dayStr.slice(0, 4);\r\n const m = dayStr.slice(4, 6);\r\n const d = dayStr.slice(6, 8);\r\n return `${y}-${m}-${d}`;\r\n }\r\n // day-of-month number\r\n const dayNum = Number(dayStr);\r\n if (!selectedMonth || !dayNum) return \"\";\r\n const [yStr, mStr] = String(selectedMonth).split(\"/\");\r\n if (!yStr || !mStr) return \"\";\r\n return `${yStr}-${pad2(Number(mStr))}-${pad2(dayNum)}`;\r\n};\r\n\r\n/* ------------------------------\r\nカレンダー用グリッドAreasの生成関数\r\n------------------------------ */\r\nconst week = [\"sun\", \"mon\", \"tue\", \"wed\", \"thu\", \"fri\", \"sat\"];\r\nexport const generateGridAreas = (firstDayOfMonth, totalDays, isMonday) => {\r\n let areas = [];\r\n let currentDay = 1;\r\n //月曜日を先頭に持ってくる場合の係数\r\n const mondayFirstDay = firstDayOfMonth - 1 < 0 ? 6 : firstDayOfMonth - 1;\r\n //先頭曜日の選択\r\n const modifyFirstDay = isMonday ? mondayFirstDay : firstDayOfMonth;\r\n\r\n //曜日ラベル\r\n let weekLabels = [];\r\n let week_index;\r\n for (let i = 0; i < 7; i++) {\r\n week_index = isMonday ? i + 1 : i; //月曜日を先頭に持ってくる場合の補正\r\n if (week_index > 6) week_index = 0;\r\n weekLabels.push(week[week_index]);\r\n }\r\n areas.push(weekLabels.join(\" \"));\r\n\r\n for (let i = 0; i < 6; i++) {\r\n // 6週分のループ\r\n let week = [];\r\n for (let j = 0; j < 7; j++) {\r\n // 1週間の7日分のループ\r\n if ((i === 0 && j < modifyFirstDay) || currentDay > totalDays) {\r\n week.push(`empty${i}`);\r\n } else {\r\n week.push(`day${currentDay}`);\r\n currentDay++;\r\n }\r\n }\r\n if (i == 5) {\r\n //最後の週\r\n week[5] = \"day_clear\";\r\n week[6] = \"day_clear\";\r\n }\r\n areas.push(week.join(\" \"));\r\n }\r\n return areas.map((week) => `\"${week}\"`).join(\"\\n\");\r\n};\r\n"],"names":["generateDateArray","dateObj","isMonth","startYear","startMonth","endYear","endMonth","result","year","monthStart","monthEnd","month","unitObj","id","nanoid","value","concat","toString","padStart","label","classname","push","generateMonthCalendar","dateString","holidays","arguments","length","undefined","split","map","Number","date","Date","lastDay","getDate","calendar","_loop","day","setDate","holidayItem","find","item","_item$date","s","String","yearStr","slice","monthStr","replace","dayStr","itemYear","itemMonth","itemDay","dayObj","weekday","getDay","holiday","name","PeriodCtrl","_ref","dateSpan","onChange","React","createElement","PanelBody","title","__","initialOpen","className","PanelRow","NumberControl","labelPosition","max","min","newValue","newSpanObj","_objectSpread","getPeriodQuery","parts","parseInt","startDate","endDate","after","toISOString","before","getTodayYearMonth","today","getFullYear","getMonth","getTodayYear","getTodayMonth","pad2","n","getMonthRangeYmd","selectedMonth","ym","from","to","yStr","mStr","mm","normalizeDateYYYYMMDD","toYmdFromMonthAndDay","dayValue","trim","test","y","m","d","dayNum","week","generateGridAreas","firstDayOfMonth","totalDays","isMonday","areas","currentDay","mondayFirstDay","modifyFirstDay","weekLabels","week_index","i","join","j"],"mappings":"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"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
|
|
6
|
+
var i18n = require('@wordpress/i18n');
|
|
7
|
+
var components = require('@wordpress/components');
|
|
8
|
+
var element = require('@wordpress/element');
|
|
9
|
+
|
|
10
|
+
var useDraggingMove = (isMovable, blockRef, position, onPositionChange) => {
|
|
11
|
+
var elmposition = element.useRef({
|
|
12
|
+
x: 0,
|
|
13
|
+
y: 0
|
|
14
|
+
});
|
|
15
|
+
var isDragging = element.useRef(false);
|
|
16
|
+
var mousePosition = element.useRef({
|
|
17
|
+
x: 0,
|
|
18
|
+
y: 0
|
|
19
|
+
});
|
|
20
|
+
element.useEffect(() => {
|
|
21
|
+
var element = blockRef.current;
|
|
22
|
+
if (!isMovable) {
|
|
23
|
+
if (element) {
|
|
24
|
+
element.classList.remove("itmar_isDraggable"); //移動カーソル表示クラス削除
|
|
25
|
+
}
|
|
26
|
+
return; // 移動許可がある場合のみ、後続のロジックを実行
|
|
27
|
+
}
|
|
28
|
+
//positionの変化に合わせて現在位置を変更
|
|
29
|
+
var pos_value_x = position.x.match(/(-?\d+)([%a-zA-Z]+)/);
|
|
30
|
+
var pos_value_y = position.y.match(/(-?\d+)([%a-zA-Z]+)/);
|
|
31
|
+
elmposition.current = {
|
|
32
|
+
x: parseInt(pos_value_x[1]),
|
|
33
|
+
y: parseInt(pos_value_y[1])
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
//イベントハンドラ
|
|
37
|
+
var handleMouseDown = event => {
|
|
38
|
+
// 移動カーソル表示クラス名を追加します。
|
|
39
|
+
element.classList.add("itmar_isDraggable");
|
|
40
|
+
//ドラッグの開始フラグオン
|
|
41
|
+
isDragging.current = true;
|
|
42
|
+
//ドラッグ開始の絶対位置
|
|
43
|
+
mousePosition.current = {
|
|
44
|
+
x: event.clientX,
|
|
45
|
+
y: event.clientY
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
var handleMouseMove = event => {
|
|
49
|
+
if (!isDragging.current) return; //ドラッグ中でなければ処理を中止
|
|
50
|
+
var dx = event.clientX - mousePosition.current.x;
|
|
51
|
+
var dy = event.clientY - mousePosition.current.y;
|
|
52
|
+
//ドラッグ後の位置を保存
|
|
53
|
+
var newPosition = {
|
|
54
|
+
x: elmposition.current.x + dx,
|
|
55
|
+
y: elmposition.current.y + dy
|
|
56
|
+
};
|
|
57
|
+
elmposition.current = newPosition;
|
|
58
|
+
mousePosition.current = {
|
|
59
|
+
x: event.clientX,
|
|
60
|
+
y: event.clientY
|
|
61
|
+
}; //マウス位置の保存
|
|
62
|
+
//ドラッグによるブロックの一時的移動
|
|
63
|
+
element.style.transform = "translate(".concat(elmposition.current.x, "px, ").concat(elmposition.current.y, "px)");
|
|
64
|
+
};
|
|
65
|
+
var handleMouseUp = () => {
|
|
66
|
+
isDragging.current = false;
|
|
67
|
+
element.style.transform = null;
|
|
68
|
+
//呼出しもとに要素の位置を返す
|
|
69
|
+
onPositionChange({
|
|
70
|
+
x: "".concat(elmposition.current.x, "px"),
|
|
71
|
+
y: "".concat(elmposition.current.y, "px")
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
var handleMouseLeave = () => {
|
|
75
|
+
isDragging.current = false;
|
|
76
|
+
};
|
|
77
|
+
if (element) {
|
|
78
|
+
// クラス名を追加します。
|
|
79
|
+
element.classList.add("itmar_isDraggable");
|
|
80
|
+
}
|
|
81
|
+
// イベントハンドラを追加します。
|
|
82
|
+
element.addEventListener("mousedown", handleMouseDown);
|
|
83
|
+
element.addEventListener("mousemove", handleMouseMove);
|
|
84
|
+
element.addEventListener("mouseup", handleMouseUp);
|
|
85
|
+
element.addEventListener("mouseleave", handleMouseLeave);
|
|
86
|
+
|
|
87
|
+
// イベントリスナーを削除するクリーンアップ関数を返します。
|
|
88
|
+
return () => {
|
|
89
|
+
element.removeEventListener("mousedown", handleMouseDown);
|
|
90
|
+
element.removeEventListener("mousemove", handleMouseMove);
|
|
91
|
+
element.removeEventListener("mouseup", handleMouseUp);
|
|
92
|
+
element.removeEventListener("mouseleave", handleMouseLeave);
|
|
93
|
+
element.style.transform = null;
|
|
94
|
+
};
|
|
95
|
+
}, [isMovable, blockRef, position, onPositionChange]); // 依存配列に isMovable を含めます
|
|
96
|
+
};
|
|
97
|
+
function DraggableBox(props) {
|
|
98
|
+
var position = props.attributes;
|
|
99
|
+
|
|
100
|
+
//インスペクター内のコントロールからの移動操作
|
|
101
|
+
var chagePosition = (value, cordinate) => {
|
|
102
|
+
if (value) {
|
|
103
|
+
var newPos = _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, position), {}, {
|
|
104
|
+
[cordinate]: value
|
|
105
|
+
});
|
|
106
|
+
props.onPositionChange(newPos);
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
//リセット
|
|
111
|
+
var resetPos = () => {
|
|
112
|
+
var newPos = {
|
|
113
|
+
x: "0px",
|
|
114
|
+
y: "0px"
|
|
115
|
+
};
|
|
116
|
+
props.onPositionChange(newPos);
|
|
117
|
+
};
|
|
118
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(components.PanelBody, {
|
|
119
|
+
title: i18n.__("Position Setting", "block-collections"),
|
|
120
|
+
initialOpen: true
|
|
121
|
+
}, /*#__PURE__*/React.createElement(components.PanelRow, {
|
|
122
|
+
className: "distance_row"
|
|
123
|
+
}, /*#__PURE__*/React.createElement(components.__experimentalUnitControl, {
|
|
124
|
+
dragDirection: "e",
|
|
125
|
+
onChange: value => chagePosition(value, "x"),
|
|
126
|
+
label: i18n.__("Vertical", "block-collections"),
|
|
127
|
+
value: (position === null || position === void 0 ? void 0 : position.x) || 0
|
|
128
|
+
}), /*#__PURE__*/React.createElement(components.__experimentalUnitControl, {
|
|
129
|
+
dragDirection: "e",
|
|
130
|
+
onChange: value => chagePosition(value, "y"),
|
|
131
|
+
label: i18n.__("Horizen", "block-collections"),
|
|
132
|
+
value: (position === null || position === void 0 ? void 0 : position.y) || 0
|
|
133
|
+
})), /*#__PURE__*/React.createElement(components.PanelRow, {
|
|
134
|
+
className: "reset_row"
|
|
135
|
+
}, /*#__PURE__*/React.createElement(components.Button, {
|
|
136
|
+
variant: "secondary",
|
|
137
|
+
onClick: () => resetPos()
|
|
138
|
+
}, i18n.__("Reset", "block-collections")))));
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
exports.default = DraggableBox;
|
|
142
|
+
exports.useDraggingMove = useDraggingMove;
|
|
143
|
+
//# sourceMappingURL=DraggableBox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DraggableBox.js","sources":["../../src/DraggableBox.js"],"sourcesContent":["import { __ } from \"@wordpress/i18n\";\n\nimport {\n Button,\n PanelBody,\n PanelRow,\n __experimentalUnitControl as UnitControl,\n} from \"@wordpress/components\";\n\nimport { useEffect, useRef } from \"@wordpress/element\";\n\nexport const useDraggingMove = (\n isMovable,\n blockRef,\n position,\n onPositionChange\n) => {\n const elmposition = useRef({ x: 0, y: 0 });\n const isDragging = useRef(false);\n const mousePosition = useRef({ x: 0, y: 0 });\n\n useEffect(() => {\n const element = blockRef.current;\n\n if (!isMovable) {\n if (element) {\n element.classList.remove(\"itmar_isDraggable\"); //移動カーソル表示クラス削除\n }\n return; // 移動許可がある場合のみ、後続のロジックを実行\n }\n //positionの変化に合わせて現在位置を変更\n const pos_value_x = position.x.match(/(-?\\d+)([%a-zA-Z]+)/);\n const pos_value_y = position.y.match(/(-?\\d+)([%a-zA-Z]+)/);\n elmposition.current = {\n x: parseInt(pos_value_x[1]),\n y: parseInt(pos_value_y[1]),\n };\n\n //イベントハンドラ\n const handleMouseDown = (event) => {\n // 移動カーソル表示クラス名を追加します。\n element.classList.add(\"itmar_isDraggable\");\n //ドラッグの開始フラグオン\n isDragging.current = true;\n //ドラッグ開始の絶対位置\n mousePosition.current = { x: event.clientX, y: event.clientY };\n };\n\n const handleMouseMove = (event) => {\n if (!isDragging.current) return; //ドラッグ中でなければ処理を中止\n const dx = event.clientX - mousePosition.current.x;\n const dy = event.clientY - mousePosition.current.y;\n //ドラッグ後の位置を保存\n const newPosition = {\n x: elmposition.current.x + dx,\n y: elmposition.current.y + dy,\n };\n elmposition.current = newPosition;\n mousePosition.current = { x: event.clientX, y: event.clientY }; //マウス位置の保存\n //ドラッグによるブロックの一時的移動\n element.style.transform = `translate(${elmposition.current.x}px, ${elmposition.current.y}px)`;\n };\n\n const handleMouseUp = () => {\n isDragging.current = false;\n element.style.transform = null;\n //呼出しもとに要素の位置を返す\n onPositionChange({\n x: `${elmposition.current.x}px`,\n y: `${elmposition.current.y}px`,\n });\n };\n const handleMouseLeave = () => {\n isDragging.current = false;\n };\n\n if (element) {\n // クラス名を追加します。\n element.classList.add(\"itmar_isDraggable\");\n }\n // イベントハンドラを追加します。\n element.addEventListener(\"mousedown\", handleMouseDown);\n element.addEventListener(\"mousemove\", handleMouseMove);\n element.addEventListener(\"mouseup\", handleMouseUp);\n element.addEventListener(\"mouseleave\", handleMouseLeave);\n\n // イベントリスナーを削除するクリーンアップ関数を返します。\n return () => {\n element.removeEventListener(\"mousedown\", handleMouseDown);\n element.removeEventListener(\"mousemove\", handleMouseMove);\n element.removeEventListener(\"mouseup\", handleMouseUp);\n element.removeEventListener(\"mouseleave\", handleMouseLeave);\n element.style.transform = null;\n };\n }, [isMovable, blockRef, position, onPositionChange]); // 依存配列に isMovable を含めます\n};\n\nexport default function DraggableBox(props) {\n const position = props.attributes;\n\n //インスペクター内のコントロールからの移動操作\n const chagePosition = (value, cordinate) => {\n if (value) {\n const newPos = { ...position, [cordinate]: value };\n props.onPositionChange(newPos);\n }\n };\n\n //リセット\n const resetPos = () => {\n const newPos = { x: \"0px\", y: \"0px\" };\n props.onPositionChange(newPos);\n };\n\n return (\n <>\n <PanelBody\n title={__(\"Position Setting\", \"block-collections\")}\n initialOpen={true}\n >\n <PanelRow className=\"distance_row\">\n <UnitControl\n dragDirection=\"e\"\n onChange={(value) => chagePosition(value, \"x\")}\n label={__(\"Vertical\", \"block-collections\")}\n value={position?.x || 0}\n />\n <UnitControl\n dragDirection=\"e\"\n onChange={(value) => chagePosition(value, \"y\")}\n label={__(\"Horizen\", \"block-collections\")}\n value={position?.y || 0}\n />\n </PanelRow>\n <PanelRow className=\"reset_row\">\n <Button variant=\"secondary\" onClick={() => resetPos()}>\n {__(\"Reset\", \"block-collections\")}\n </Button>\n </PanelRow>\n </PanelBody>\n </>\n );\n}\n"],"names":["useDraggingMove","isMovable","blockRef","position","onPositionChange","elmposition","useRef","x","y","isDragging","mousePosition","useEffect","element","current","classList","remove","pos_value_x","match","pos_value_y","parseInt","handleMouseDown","event","add","clientX","clientY","handleMouseMove","dx","dy","newPosition","style","transform","concat","handleMouseUp","handleMouseLeave","addEventListener","removeEventListener","DraggableBox","props","attributes","chagePosition","value","cordinate","newPos","_objectSpread","resetPos","React","createElement","Fragment","PanelBody","title","__","initialOpen","PanelRow","className","UnitControl","dragDirection","onChange","label","Button","variant","onClick"],"mappings":"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"}
|