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.
Files changed (157) hide show
  1. package/README.md +78 -2
  2. package/build/cjs/AnimationBlock.js +107 -0
  3. package/build/cjs/AnimationBlock.js.map +1 -0
  4. package/build/cjs/BlockEditWrapper.js +20 -0
  5. package/build/cjs/BlockEditWrapper.js.map +1 -0
  6. package/build/cjs/BlockPlace.js +509 -0
  7. package/build/cjs/BlockPlace.js.map +1 -0
  8. package/build/cjs/BrockInserter.js +204 -0
  9. package/build/cjs/BrockInserter.js.map +1 -0
  10. package/build/cjs/DateElm.js +321 -0
  11. package/build/cjs/DateElm.js.map +1 -0
  12. package/build/cjs/DraggableBox.js +143 -0
  13. package/build/cjs/DraggableBox.js.map +1 -0
  14. package/build/cjs/GridControls.js +421 -0
  15. package/build/cjs/GridControls.js.map +1 -0
  16. package/build/cjs/IconSelectControl.js +167 -0
  17. package/build/cjs/IconSelectControl.js.map +1 -0
  18. package/build/cjs/JapaneseHolidays.js +99 -0
  19. package/build/cjs/JapaneseHolidays.js.map +1 -0
  20. package/build/cjs/MasonryControl.js +124 -0
  21. package/build/cjs/MasonryControl.js.map +1 -0
  22. package/build/cjs/PseudoElm.js +66 -0
  23. package/build/cjs/PseudoElm.js.map +1 -0
  24. package/build/cjs/ShadowStyle.js +453 -0
  25. package/build/cjs/ShadowStyle.js.map +1 -0
  26. package/build/cjs/SwiperControl.js +267 -0
  27. package/build/cjs/SwiperControl.js.map +1 -0
  28. package/build/cjs/ToggleElement.js +17 -0
  29. package/build/cjs/ToggleElement.js.map +1 -0
  30. package/build/cjs/TypographyControls.js +151 -0
  31. package/build/cjs/TypographyControls.js.map +1 -0
  32. package/build/cjs/UpdateAllPostsBlockAttributes.js +137 -0
  33. package/build/cjs/UpdateAllPostsBlockAttributes.js.map +1 -0
  34. package/build/cjs/ZipAddress.js +34 -0
  35. package/build/cjs/ZipAddress.js.map +1 -0
  36. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +117 -0
  37. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  38. package/build/cjs/blockStore.js +65 -0
  39. package/build/cjs/blockStore.js.map +1 -0
  40. package/build/cjs/cssPropertes.js +157 -0
  41. package/build/cjs/cssPropertes.js.map +1 -0
  42. package/build/cjs/customFooks.js +300 -0
  43. package/build/cjs/customFooks.js.map +1 -0
  44. package/build/cjs/formatCreate.js +160 -0
  45. package/build/cjs/formatCreate.js.map +1 -0
  46. package/build/cjs/hslToRgb.js +133 -0
  47. package/build/cjs/hslToRgb.js.map +1 -0
  48. package/build/cjs/index.js +115 -0
  49. package/build/cjs/index.js.map +1 -0
  50. package/build/cjs/mediaUpload.js +182 -0
  51. package/build/cjs/mediaUpload.js.map +1 -0
  52. package/build/cjs/node_modules/nanoid/index.js +30 -0
  53. package/build/cjs/node_modules/nanoid/index.js.map +1 -0
  54. package/build/cjs/node_modules/nanoid/url-alphabet/index.js +7 -0
  55. package/build/cjs/node_modules/nanoid/url-alphabet/index.js.map +1 -0
  56. package/build/cjs/shopfiApi.js +188 -0
  57. package/build/cjs/shopfiApi.js.map +1 -0
  58. package/build/cjs/validationCheck.js +15 -0
  59. package/build/cjs/validationCheck.js.map +1 -0
  60. package/build/cjs/wordpressApi.js +631 -0
  61. package/build/cjs/wordpressApi.js.map +1 -0
  62. package/build/esm/AnimationBlock.js +102 -0
  63. package/build/esm/AnimationBlock.js.map +1 -0
  64. package/build/esm/BlockEditWrapper.js +16 -0
  65. package/build/esm/BlockEditWrapper.js.map +1 -0
  66. package/build/esm/BlockPlace.js +503 -0
  67. package/build/esm/BlockPlace.js.map +1 -0
  68. package/build/esm/BrockInserter.js +202 -0
  69. package/build/esm/BrockInserter.js.map +1 -0
  70. package/build/esm/DateElm.js +309 -0
  71. package/build/esm/DateElm.js.map +1 -0
  72. package/build/esm/DraggableBox.js +138 -0
  73. package/build/esm/DraggableBox.js.map +1 -0
  74. package/build/esm/GridControls.js +417 -0
  75. package/build/esm/GridControls.js.map +1 -0
  76. package/build/esm/IconSelectControl.js +163 -0
  77. package/build/esm/IconSelectControl.js.map +1 -0
  78. package/build/esm/JapaneseHolidays.js +97 -0
  79. package/build/esm/JapaneseHolidays.js.map +1 -0
  80. package/{src → build/esm}/MasonryControl.js +108 -113
  81. package/build/esm/MasonryControl.js.map +1 -0
  82. package/build/esm/PseudoElm.js +61 -0
  83. package/build/esm/PseudoElm.js.map +1 -0
  84. package/build/esm/ShadowStyle.js +448 -0
  85. package/build/esm/ShadowStyle.js.map +1 -0
  86. package/{src → build/esm}/SwiperControl.js +265 -265
  87. package/build/esm/SwiperControl.js.map +1 -0
  88. package/build/esm/ToggleElement.js +13 -0
  89. package/build/esm/ToggleElement.js.map +1 -0
  90. package/build/esm/TypographyControls.js +147 -0
  91. package/build/esm/TypographyControls.js.map +1 -0
  92. package/build/esm/UpdateAllPostsBlockAttributes.js +133 -0
  93. package/build/esm/UpdateAllPostsBlockAttributes.js.map +1 -0
  94. package/build/esm/ZipAddress.js +32 -0
  95. package/build/esm/ZipAddress.js.map +1 -0
  96. package/build/esm/_virtual/_rollupPluginBabelHelpers.js +107 -0
  97. package/build/esm/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  98. package/build/esm/blockStore.js +60 -0
  99. package/build/esm/blockStore.js.map +1 -0
  100. package/build/esm/cssPropertes.js +144 -0
  101. package/build/esm/cssPropertes.js.map +1 -0
  102. package/{src → build/esm}/customFooks.js +290 -337
  103. package/build/esm/customFooks.js.map +1 -0
  104. package/build/esm/formatCreate.js +157 -0
  105. package/build/esm/formatCreate.js.map +1 -0
  106. package/build/esm/hslToRgb.js +129 -0
  107. package/build/esm/hslToRgb.js.map +1 -0
  108. package/build/esm/index.js +27 -0
  109. package/build/esm/index.js.map +1 -0
  110. package/build/esm/mediaUpload.js +176 -0
  111. package/build/esm/mediaUpload.js.map +1 -0
  112. package/build/esm/node_modules/nanoid/index.js +27 -0
  113. package/build/esm/node_modules/nanoid/index.js.map +1 -0
  114. package/build/esm/node_modules/nanoid/url-alphabet/index.js +5 -0
  115. package/build/esm/node_modules/nanoid/url-alphabet/index.js.map +1 -0
  116. package/build/esm/shopfiApi.js +184 -0
  117. package/build/esm/shopfiApi.js.map +1 -0
  118. package/build/esm/validationCheck.js +13 -0
  119. package/build/esm/validationCheck.js.map +1 -0
  120. package/build/esm/wordpressApi.js +618 -0
  121. package/build/esm/wordpressApi.js.map +1 -0
  122. package/package.json +22 -6
  123. package/build/index.asset.php +0 -1
  124. package/build/index.js +0 -25
  125. package/css/editor.css +0 -23
  126. package/css/editor.css.map +0 -1
  127. package/img/animation.png +0 -0
  128. package/img/blockplace.png +0 -0
  129. package/img/grid.png +0 -0
  130. package/img/iconControl.png +0 -0
  131. package/img/pseudo.png +0 -0
  132. package/img/shadow.png +0 -0
  133. package/img/typography.png +0 -0
  134. package/src/AnimationBlock.js +0 -112
  135. package/src/BlockEditWrapper.js +0 -11
  136. package/src/BlockPlace.js +0 -904
  137. package/src/BrockInserter.js +0 -247
  138. package/src/DateElm.js +0 -354
  139. package/src/DraggableBox.js +0 -143
  140. package/src/GridControls.js +0 -462
  141. package/src/IconSelectControl.js +0 -186
  142. package/src/PseudoElm.js +0 -54
  143. package/src/ShadowStyle.js +0 -520
  144. package/src/ToggleElement.js +0 -18
  145. package/src/TypographyControls.js +0 -145
  146. package/src/UpdateAllPostsBlockAttributes.js +0 -127
  147. package/src/ZipAddress.js +0 -35
  148. package/src/blockStore.js +0 -75
  149. package/src/cssPropertes.js +0 -212
  150. package/src/formatCreate.js +0 -179
  151. package/src/hslToRgb.js +0 -162
  152. package/src/index.js +0 -131
  153. package/src/mediaUpload.js +0 -178
  154. package/src/shopfiApi.js +0 -187
  155. package/src/validationCheck.js +0 -10
  156. package/src/wordpressApi.js +0 -707
  157. package/webpack.config.js +0 -10
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hslToRgb.js","sources":["../../src/hslToRgb.js"],"sourcesContent":["const createRGB = (inputStr) => {\r\n\t//16進数変換の関数\r\n\tfunction componentToHex(c) {\r\n\t\tconst hex = parseInt(c, 10).toString(16);\r\n\t\treturn hex.length === 1 ? \"0\" + hex : hex;\r\n\t}\r\n\r\n\tlet resultStr;\r\n\tlet rgb = [];\r\n\r\n\t// #000000 形式の場合\r\n\tif (/^#[0-9a-fA-F]{6}$/.test(inputStr)) {\r\n\t\trgb = [\r\n\t\t\tinputStr.slice(1, 3),\r\n\t\t\tinputStr.slice(3, 5),\r\n\t\t\tinputStr.slice(5, 7)\r\n\t\t];\r\n\t}\r\n\t// rgb(0,0,0) 形式の場合\r\n\telse if ((resultStr = inputStr.match(/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/))) {\r\n\t\trgb = [\r\n\t\t\tcomponentToHex(resultStr[1]),\r\n\t\t\tcomponentToHex(resultStr[2]),\r\n\t\t\tcomponentToHex(resultStr[3])\r\n\t\t];\r\n\t} else {\r\n\t\t// サポートされていない形式の場合はデフォルトの値を設定する\r\n\t\trgb = [\"ff\", \"ff\", \"ff\"];\r\n\t}\r\n\treturn rgb;\r\n}\r\n\r\nexport function hslToRgb16(hue, saturation, lightness) {\r\n\tvar result = false;\r\n\r\n\tif (((hue || hue === 0) && hue <= 360) && ((saturation || saturation === 0) && saturation <= 100) && ((lightness || lightness === 0) && lightness <= 100)) {\r\n\t\tvar red = 0,\r\n\t\t\tgreen = 0,\r\n\t\t\tblue = 0,\r\n\t\t\tq = 0,\r\n\t\t\tp = 0,\r\n\t\t\thueToRgb;\r\n\r\n\t\thue = Number(hue) / 360;\r\n\t\tsaturation = Number(saturation) / 100;\r\n\t\tlightness = Number(lightness) / 100;\r\n\r\n\t\tif (saturation === 0) {\r\n\t\t\tred = lightness;\r\n\t\t\tgreen = lightness;\r\n\t\t\tblue = lightness;\r\n\t\t} else {\r\n\t\t\thueToRgb = function (p, q, t) {\r\n\t\t\t\tif (t < 0) t += 1;\r\n\t\t\t\tif (t > 1) t -= 1;\r\n\r\n\t\t\t\tif (t < 1 / 6) {\r\n\t\t\t\t\tp += (q - p) * 6 * t;\r\n\t\t\t\t} else if (t < 1 / 2) {\r\n\t\t\t\t\tp = q;\r\n\t\t\t\t} else if (t < 2 / 3) {\r\n\t\t\t\t\tp += (q - p) * (2 / 3 - t) * 6;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn p;\r\n\t\t\t};\r\n\r\n\t\t\tif (lightness < 0.5) {\r\n\t\t\t\tq = lightness * (1 + saturation);\r\n\t\t\t} else {\r\n\t\t\t\tq = lightness + saturation - lightness * saturation;\r\n\t\t\t}\r\n\t\t\tp = 2 * lightness - q;\r\n\r\n\t\t\tred = hueToRgb(p, q, hue + 1 / 3);\r\n\t\t\tgreen = hueToRgb(p, q, hue);\r\n\t\t\tblue = hueToRgb(p, q, hue - 1 / 3);\r\n\t\t}\r\n\r\n\t\tresult = `#${Math.round(red * 255).toString(16).padStart(2, '0')}${Math.round(green * 255).toString(16).padStart(2, '0')}${Math.round(blue * 255).toString(16).padStart(2, '0')}`;\r\n\r\n\t}\r\n\r\n\treturn result;\r\n};\r\n\r\nexport function rgb16ToHsl(strRgb16) {\r\n\tlet rgb = createRGB(strRgb16);\r\n\tlet red = rgb[0];\r\n\tlet green = rgb[1];\r\n\tlet blue = rgb[2];\r\n\tlet result = false;\r\n\r\n\tif (((red || red === 0) && String(red).match(/^[0-9a-f]{2}$/i)) && ((green || green === 0) && String(green).match(/^[0-9a-f]{2}$/i)) && ((blue || blue === 0) && String(blue).match(/^[0-9a-f]{2}$/i))) {\r\n\t\tlet hue = 0,\r\n\t\t\tsaturation = 0,\r\n\t\t\tlightness = 0,\r\n\t\t\tmax = 0,\r\n\t\t\tmin = 0,\r\n\t\t\tdiff = 0;\r\n\r\n\t\tred = parseInt(red, 16) / 255;\r\n\t\tgreen = parseInt(green, 16) / 255;\r\n\t\tblue = parseInt(blue, 16) / 255;\r\n\t\tmax = Math.max(red, green, blue);\r\n\t\tmin = Math.min(red, green, blue);\r\n\t\tlightness = (max + min) / 2;\r\n\r\n\t\tif (max !== min) {\r\n\t\t\tdiff = max - min;\r\n\r\n\t\t\tif (lightness > 0.5) {\r\n\t\t\t\tsaturation = diff / (2 - max - min);\r\n\t\t\t} else {\r\n\t\t\t\tsaturation = diff / (max + min);\r\n\t\t\t}\r\n\r\n\t\t\tif (max === red) {\r\n\t\t\t\thue = (green - blue) / diff;\r\n\t\t\t} else if (max === green) {\r\n\t\t\t\thue = 2 + (blue - red) / diff;\r\n\t\t\t} else {\r\n\t\t\t\thue = 4 + (red - green) / diff;\r\n\t\t\t}\r\n\r\n\t\t\thue /= 6;\r\n\t\t}\r\n\r\n\t\tresult = {\r\n\t\t\thue: Math.round(hue * 360),\r\n\t\t\tsaturation: Math.round(saturation * 100),\r\n\t\t\tlightness: Math.round(lightness * 100)\r\n\t\t};\r\n\t}\r\n\r\n\treturn result;\r\n};\r\n\r\nexport function HexToRGB(strRgb16) {\r\n\tlet rgb = createRGB(strRgb16);\r\n\tlet red = rgb[0];\r\n\tlet green = rgb[1];\r\n\tlet blue = rgb[2];\r\n\tlet result = false;\r\n\r\n\tif (((red || red === 0) && String(red).match(/^[0-9a-f]{2}$/i)) && ((green || green === 0) && String(green).match(/^[0-9a-f]{2}$/i)) && ((blue || blue === 0) && String(blue).match(/^[0-9a-f]{2}$/i))) {\r\n\r\n\r\n\t\tred = parseInt(red, 16);\r\n\t\tgreen = parseInt(green, 16);\r\n\t\tblue = parseInt(blue, 16);\r\n\r\n\r\n\t\tresult = {\r\n\t\t\tred: Math.round(red),\r\n\t\t\tgreen: Math.round(green),\r\n\t\t\tblue: Math.round(blue)\r\n\t\t};\r\n\t}\r\n\r\n\treturn result;\r\n};"],"names":["createRGB","inputStr","componentToHex","c","hex","parseInt","toString","length","resultStr","rgb","test","slice","match","hslToRgb16","hue","saturation","lightness","result","red","green","blue","q","p","hueToRgb","Number","t","concat","Math","round","padStart","rgb16ToHsl","strRgb16","String","max","min","diff","HexToRGB"],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ 'use strict';
2
+
3
+ var customFooks = require('./customFooks.js');
4
+ var wordpressApi = require('./wordpressApi.js');
5
+ var cssPropertes = require('./cssPropertes.js');
6
+ var ShadowStyle = require('./ShadowStyle.js');
7
+ var PseudoElm = require('./PseudoElm.js');
8
+ var mediaUpload = require('./mediaUpload.js');
9
+ var DraggableBox = require('./DraggableBox.js');
10
+ var AnimationBlock = require('./AnimationBlock.js');
11
+ var BlockPlace = require('./BlockPlace.js');
12
+ var GridControls = require('./GridControls.js');
13
+ var ToggleElement = require('./ToggleElement.js');
14
+ var TypographyControls = require('./TypographyControls.js');
15
+ var IconSelectControl = require('./IconSelectControl.js');
16
+ var BlockEditWrapper = require('./BlockEditWrapper.js');
17
+ var hslToRgb = require('./hslToRgb.js');
18
+ var DateElm = require('./DateElm.js');
19
+ var JapaneseHolidays = require('./JapaneseHolidays.js');
20
+ var blockStore = require('./blockStore.js');
21
+ var validationCheck = require('./validationCheck.js');
22
+ var UpdateAllPostsBlockAttributes = require('./UpdateAllPostsBlockAttributes.js');
23
+ var ZipAddress = require('./ZipAddress.js');
24
+ var formatCreate = require('./formatCreate.js');
25
+ var shopfiApi = require('./shopfiApi.js');
26
+ var BrockInserter = require('./BrockInserter.js');
27
+ var MasonryControl = require('./MasonryControl.js');
28
+ var SwiperControl = require('./SwiperControl.js');
29
+
30
+
31
+
32
+ exports.useBlockAttributeChanges = customFooks.useBlockAttributeChanges;
33
+ exports.useDeepCompareEffect = customFooks.useDeepCompareEffect;
34
+ exports.useDuplicateBlockRemove = customFooks.useDuplicateBlockRemove;
35
+ exports.useElementBackgroundColor = customFooks.useElementBackgroundColor;
36
+ exports.useElementStyleObject = customFooks.useElementStyleObject;
37
+ exports.useElementWidth = customFooks.useElementWidth;
38
+ exports.useFontawesomeIframe = customFooks.useFontawesomeIframe;
39
+ exports.useIsIframeMobile = customFooks.useIsIframeMobile;
40
+ exports.useIsMobile = customFooks.useIsMobile;
41
+ exports.ArchiveSelectControl = wordpressApi.ArchiveSelectControl;
42
+ exports.FieldChoiceControl = wordpressApi.FieldChoiceControl;
43
+ exports.PageSelectControl = wordpressApi.PageSelectControl;
44
+ exports.PostSelectControl = wordpressApi.PostSelectControl;
45
+ exports.TermChoiceControl = wordpressApi.TermChoiceControl;
46
+ exports.fetchArchiveOptions = wordpressApi.fetchArchiveOptions;
47
+ exports.fetchPagesOptions = wordpressApi.fetchPagesOptions;
48
+ exports.restFetchData = wordpressApi.restFetchData;
49
+ exports.restFieldes = wordpressApi.restFieldes;
50
+ exports.restTaxonomies = wordpressApi.restTaxonomies;
51
+ exports.termToDispObj = wordpressApi.termToDispObj;
52
+ exports.align_prm = cssPropertes.align_prm;
53
+ exports.borderProperty = cssPropertes.borderProperty;
54
+ exports.convertToScss = cssPropertes.convertToScss;
55
+ exports.height_prm = cssPropertes.height_prm;
56
+ exports.marginProperty = cssPropertes.marginProperty;
57
+ exports.max_width_prm = cssPropertes.max_width_prm;
58
+ exports.paddingProperty = cssPropertes.paddingProperty;
59
+ exports.position_prm = cssPropertes.position_prm;
60
+ exports.radiusProperty = cssPropertes.radiusProperty;
61
+ exports.radius_prm = cssPropertes.radius_prm;
62
+ exports.space_prm = cssPropertes.space_prm;
63
+ exports.width_prm = cssPropertes.width_prm;
64
+ exports.ShadowElm = ShadowStyle.ShadowElm;
65
+ exports.ShadowStyle = ShadowStyle.default;
66
+ exports.Arrow = PseudoElm.Arrow;
67
+ exports.PseudoElm = PseudoElm.default;
68
+ exports.MultiImageSelect = mediaUpload.MultiImageSelect;
69
+ exports.SingleImageSelect = mediaUpload.SingleImageSelect;
70
+ exports.getImageAspectRatio = mediaUpload.getImageAspectRatio;
71
+ exports.getMediaType = mediaUpload.getMediaType;
72
+ exports.getVideoAspectRatio = mediaUpload.getVideoAspectRatio;
73
+ exports.DraggableBox = DraggableBox.default;
74
+ exports.useDraggingMove = DraggableBox.useDraggingMove;
75
+ exports.AnimationBlock = AnimationBlock.default;
76
+ exports.anime_comp = AnimationBlock.anime_comp;
77
+ exports.BlockHeight = BlockPlace.BlockHeight;
78
+ exports.BlockPlace = BlockPlace.default;
79
+ exports.BlockWidth = BlockPlace.BlockWidth;
80
+ exports.GridControls = GridControls.default;
81
+ exports.ToggleElement = ToggleElement.default;
82
+ exports.TypographyControls = TypographyControls.default;
83
+ exports.IconSelectControl = IconSelectControl.default;
84
+ exports.BlockEditWrapper = BlockEditWrapper.default;
85
+ exports.HexToRGB = hslToRgb.HexToRGB;
86
+ exports.hslToRgb16 = hslToRgb.hslToRgb16;
87
+ exports.rgb16ToHsl = hslToRgb.rgb16ToHsl;
88
+ exports.PeriodCtrl = DateElm.PeriodCtrl;
89
+ exports.generateDateArray = DateElm.generateDateArray;
90
+ exports.generateGridAreas = DateElm.generateGridAreas;
91
+ exports.generateMonthCalendar = DateElm.generateMonthCalendar;
92
+ exports.getMonthRangeYmd = DateElm.getMonthRangeYmd;
93
+ exports.getPeriodQuery = DateElm.getPeriodQuery;
94
+ exports.getTodayMonth = DateElm.getTodayMonth;
95
+ exports.getTodayYear = DateElm.getTodayYear;
96
+ exports.getTodayYearMonth = DateElm.getTodayYearMonth;
97
+ exports.normalizeDateYYYYMMDD = DateElm.normalizeDateYYYYMMDD;
98
+ exports.toYmdFromMonthAndDay = DateElm.toYmdFromMonthAndDay;
99
+ exports.JapaneseHolidays = JapaneseHolidays.JapaneseHolidays;
100
+ exports.createBlockTree = blockStore.createBlockTree;
101
+ exports.flattenBlocks = blockStore.flattenBlocks;
102
+ exports.serializeBlockTree = blockStore.serializeBlockTree;
103
+ exports.useTargetBlocks = blockStore.useTargetBlocks;
104
+ exports.isValidUrlWithUrlApi = validationCheck.isValidUrlWithUrlApi;
105
+ exports.UpdateAllPostsBlockAttributes = UpdateAllPostsBlockAttributes.default;
106
+ exports.fetchZipToAddress = ZipAddress.fetchZipToAddress;
107
+ exports.FormatSelectControl = formatCreate.FormatSelectControl;
108
+ exports.displayFormated = formatCreate.displayFormated;
109
+ exports.checkCustomerLoginState = shopfiApi.checkCustomerLoginState;
110
+ exports.redirectCustomerAuthorize = shopfiApi.redirectCustomerAuthorize;
111
+ exports.sendRegistrationRequest = shopfiApi.sendRegistrationRequest;
112
+ exports.useRebuildChangeField = BrockInserter.useRebuildChangeField;
113
+ exports.MasonryControl = MasonryControl.default;
114
+ exports.slideBlockSwiperInit = SwiperControl.slideBlockSwiperInit;
115
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,182 @@
1
+ 'use strict';
2
+
3
+ var blockEditor = require('@wordpress/block-editor');
4
+ var i18n = require('@wordpress/i18n');
5
+ var components = require('@wordpress/components');
6
+
7
+ function SingleImageSelect(props) {
8
+ var {
9
+ attributes
10
+ } = props;
11
+ var {
12
+ mediaID,
13
+ media
14
+ } = attributes;
15
+
16
+ //URL の配列から画像を生成
17
+ var getImage = image => {
18
+ //メディアオブジェクトの配列をループ処理
19
+ return /*#__PURE__*/React.createElement("figure", null, /*#__PURE__*/React.createElement("img", {
20
+ src: image.url,
21
+ className: "image",
22
+ alt: "\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u753B\u50CF"
23
+ }));
24
+ };
25
+
26
+ //メディアライブラリを開くボタンをレンダリングする関数
27
+ var getImageButton = open => {
28
+ if (media) {
29
+ return /*#__PURE__*/React.createElement("div", {
30
+ onClick: open,
31
+ className: "block-container"
32
+ }, getImage(media));
33
+ } else {
34
+ return /*#__PURE__*/React.createElement("div", {
35
+ className: "button-container"
36
+ }, /*#__PURE__*/React.createElement(components.Button, {
37
+ onClick: open,
38
+ className: "button button-large"
39
+ }, i18n.__("Sel", "itmar_mv_blocks")));
40
+ }
41
+ };
42
+ return /*#__PURE__*/React.createElement(blockEditor.MediaUploadCheck, null, /*#__PURE__*/React.createElement(blockEditor.MediaUpload, {
43
+ onSelect: media => props.onSelectChange(media),
44
+ allowedTypes: ["image"],
45
+ value: mediaID,
46
+ render: _ref => {
47
+ var {
48
+ open
49
+ } = _ref;
50
+ return getImageButton(open);
51
+ }
52
+ }));
53
+ }
54
+ function MultiImageSelect(props) {
55
+ var {
56
+ attributes,
57
+ label
58
+ } = props;
59
+ var {
60
+ mediaID,
61
+ media
62
+ } = attributes;
63
+
64
+ //URL の配列から画像を生成
65
+ var getImages = media => {
66
+ //メディアオブジェクトの配列をループ処理
67
+ var imagesArray = media.map((image, index) => {
68
+ return /*#__PURE__*/React.createElement("figure", {
69
+ key: index
70
+ }, /*#__PURE__*/React.createElement("img", {
71
+ src: image.url,
72
+ className: "image",
73
+ alt: "\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u753B\u50CF"
74
+ }), /*#__PURE__*/React.createElement("figcaption", {
75
+ className: "block-image-caption"
76
+ }, image.caption ? image.caption : ""));
77
+ });
78
+ return imagesArray;
79
+ };
80
+
81
+ //メディアライブラリを開くボタンをレンダリングする関数
82
+ var getImageButton = open => {
83
+ if (media.length > 0) {
84
+ return /*#__PURE__*/React.createElement("div", {
85
+ key: "media-container",
86
+ onClick: open,
87
+ className: "block-container"
88
+ }, getImages(media));
89
+ } else {
90
+ return /*#__PURE__*/React.createElement("div", {
91
+ key: "media-container",
92
+ className: "button-container"
93
+ }, /*#__PURE__*/React.createElement(components.Button, {
94
+ onClick: open,
95
+ className: "button button-large"
96
+ }, i18n.__("Image Upload", "slide-blocks")));
97
+ }
98
+ };
99
+ return /*#__PURE__*/React.createElement(components.PanelBody, {
100
+ title: label,
101
+ initialOpen: true,
102
+ className: "itmar_image_display"
103
+ }, /*#__PURE__*/React.createElement(blockEditor.MediaUploadCheck, null, /*#__PURE__*/React.createElement(blockEditor.MediaUpload, {
104
+ multiple: true,
105
+ gallery: true //追加
106
+ ,
107
+ onSelect: media => props.onSelectChange(media),
108
+ allowedTypes: ["image"],
109
+ value: mediaID,
110
+ render: _ref2 => {
111
+ var {
112
+ open
113
+ } = _ref2;
114
+ return getImageButton(open);
115
+ }
116
+ })), media.length != 0 &&
117
+ /*#__PURE__*/
118
+ //メディアオブジェクト(配列の長さ)で判定
119
+ React.createElement(blockEditor.MediaUploadCheck, null, /*#__PURE__*/React.createElement(components.Button, {
120
+ onClick: () => props.onAllDelete(),
121
+ variant: "secondary",
122
+ isDestructive: true,
123
+ className: "removeImage"
124
+ }, i18n.__("Delete All", "slide-blocks"))));
125
+ }
126
+
127
+ //静止画か動画かを判定する関数
128
+ function getMediaType(url) {
129
+ var imageExtensions = [".jpg", ".jpeg", ".png", ".gif", ".webp", ".bmp", ".svg"];
130
+ var videoExtensions = [".mp4", ".webm", ".ogg", ".mov", ".m4v"];
131
+
132
+ // クエリストリング(?以降)を除去
133
+ var cleanUrl = url.split("?")[0].toLowerCase();
134
+ var isImage = imageExtensions.some(ext => cleanUrl.endsWith(ext));
135
+ var isVideo = videoExtensions.some(ext => cleanUrl.endsWith(ext));
136
+ if (isImage) {
137
+ return "image";
138
+ } else if (isVideo) {
139
+ return "video";
140
+ } else {
141
+ // 拡張子で判別できない → HEADリクエストでContent-Type判定 or fallback
142
+ return undefined;
143
+ }
144
+ }
145
+ //静止画のアスペクト比を返す関数
146
+ function getImageAspectRatio(url) {
147
+ return new Promise((resolve, reject) => {
148
+ var img = new Image();
149
+ img.onload = function () {
150
+ var aspectRatio = img.naturalWidth / img.naturalHeight;
151
+ resolve(aspectRatio);
152
+ };
153
+ img.onerror = function () {
154
+ reject(new Error("画像の読み込みに失敗しました: " + url));
155
+ };
156
+ img.src = url;
157
+ });
158
+ }
159
+ //動画のアスペクト比を返す関数
160
+ function getVideoAspectRatio(url) {
161
+ return new Promise((resolve, reject) => {
162
+ var video = document.createElement("video");
163
+ video.preload = "metadata";
164
+ video.src = url;
165
+ video.muted = true; // 一部のブラウザで安全に動作させるため
166
+ video.playsInline = true;
167
+ video.onloadedmetadata = function () {
168
+ var aspectRatio = video.videoWidth / video.videoHeight;
169
+ resolve(aspectRatio);
170
+ };
171
+ video.onerror = function () {
172
+ reject(new Error("動画の読み込みに失敗しました: " + url));
173
+ };
174
+ });
175
+ }
176
+
177
+ exports.MultiImageSelect = MultiImageSelect;
178
+ exports.SingleImageSelect = SingleImageSelect;
179
+ exports.getImageAspectRatio = getImageAspectRatio;
180
+ exports.getMediaType = getMediaType;
181
+ exports.getVideoAspectRatio = getVideoAspectRatio;
182
+ //# sourceMappingURL=mediaUpload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediaUpload.js","sources":["../../src/mediaUpload.js"],"sourcesContent":["import { MediaUpload, MediaUploadCheck } from \"@wordpress/block-editor\";\r\nimport { __ } from \"@wordpress/i18n\";\r\nimport { Button, PanelBody } from \"@wordpress/components\";\r\n\r\nexport function SingleImageSelect(props) {\r\n const { attributes } = props;\r\n const { mediaID, media } = attributes;\r\n\r\n //URL の配列から画像を生成\r\n const getImage = (image) => {\r\n //メディアオブジェクトの配列をループ処理\r\n return (\r\n <figure>\r\n <img src={image.url} className=\"image\" alt=\"アップロード画像\" />\r\n </figure>\r\n );\r\n };\r\n\r\n //メディアライブラリを開くボタンをレンダリングする関数\r\n const getImageButton = (open) => {\r\n if (media) {\r\n return (\r\n <div onClick={open} className=\"block-container\">\r\n {getImage(media)}\r\n </div>\r\n );\r\n } else {\r\n return (\r\n <div className=\"button-container\">\r\n <Button onClick={open} className=\"button button-large\">\r\n {__(\"Sel\", \"itmar_mv_blocks\")}\r\n </Button>\r\n </div>\r\n );\r\n }\r\n };\r\n\r\n return (\r\n <MediaUploadCheck>\r\n <MediaUpload\r\n onSelect={(media) => props.onSelectChange(media)}\r\n allowedTypes={[\"image\"]}\r\n value={mediaID}\r\n render={({ open }) => getImageButton(open)}\r\n />\r\n </MediaUploadCheck>\r\n );\r\n}\r\n\r\nexport function MultiImageSelect(props) {\r\n const { attributes, label } = props;\r\n const { mediaID, media } = attributes;\r\n\r\n //URL の配列から画像を生成\r\n const getImages = (media) => {\r\n //メディアオブジェクトの配列をループ処理\r\n let imagesArray = media.map((image, index) => {\r\n return (\r\n <figure key={index}>\r\n <img src={image.url} className=\"image\" alt=\"アップロード画像\" />\r\n <figcaption className=\"block-image-caption\">\r\n {image.caption ? image.caption : \"\"}\r\n </figcaption>\r\n </figure>\r\n );\r\n });\r\n return imagesArray;\r\n };\r\n\r\n //メディアライブラリを開くボタンをレンダリングする関数\r\n const getImageButton = (open) => {\r\n if (media.length > 0) {\r\n return (\r\n <div key=\"media-container\" onClick={open} className=\"block-container\">\r\n {getImages(media)}\r\n </div>\r\n );\r\n } else {\r\n return (\r\n <div key=\"media-container\" className=\"button-container\">\r\n <Button onClick={open} className=\"button button-large\">\r\n {__(\"Image Upload\", \"slide-blocks\")}\r\n </Button>\r\n </div>\r\n );\r\n }\r\n };\r\n\r\n return (\r\n <PanelBody title={label} initialOpen={true} className=\"itmar_image_display\">\r\n <MediaUploadCheck>\r\n <MediaUpload\r\n multiple={true}\r\n gallery={true} //追加\r\n onSelect={(media) => props.onSelectChange(media)}\r\n allowedTypes={[\"image\"]}\r\n value={mediaID}\r\n render={({ open }) => getImageButton(open)}\r\n />\r\n </MediaUploadCheck>\r\n {media.length != 0 && ( //メディアオブジェクト(配列の長さ)で判定\r\n <MediaUploadCheck>\r\n <Button\r\n onClick={() => props.onAllDelete()}\r\n variant=\"secondary\"\r\n isDestructive\r\n className=\"removeImage\"\r\n >\r\n {__(\"Delete All\", \"slide-blocks\")}\r\n </Button>\r\n </MediaUploadCheck>\r\n )}\r\n </PanelBody>\r\n );\r\n}\r\n\r\n//静止画か動画かを判定する関数\r\nexport function getMediaType(url) {\r\n const imageExtensions = [\r\n \".jpg\",\r\n \".jpeg\",\r\n \".png\",\r\n \".gif\",\r\n \".webp\",\r\n \".bmp\",\r\n \".svg\",\r\n ];\r\n const videoExtensions = [\".mp4\", \".webm\", \".ogg\", \".mov\", \".m4v\"];\r\n\r\n // クエリストリング(?以降)を除去\r\n const cleanUrl = url.split(\"?\")[0].toLowerCase();\r\n\r\n const isImage = imageExtensions.some((ext) => cleanUrl.endsWith(ext));\r\n const isVideo = videoExtensions.some((ext) => cleanUrl.endsWith(ext));\r\n\r\n if (isImage) {\r\n return \"image\";\r\n } else if (isVideo) {\r\n return \"video\";\r\n } else {\r\n // 拡張子で判別できない → HEADリクエストでContent-Type判定 or fallback\r\n return undefined;\r\n }\r\n}\r\n//静止画のアスペクト比を返す関数\r\nexport function getImageAspectRatio(url) {\r\n return new Promise((resolve, reject) => {\r\n const img = new Image();\r\n img.onload = function () {\r\n const aspectRatio = img.naturalWidth / img.naturalHeight;\r\n resolve(aspectRatio);\r\n };\r\n img.onerror = function () {\r\n reject(new Error(\"画像の読み込みに失敗しました: \" + url));\r\n };\r\n img.src = url;\r\n });\r\n}\r\n//動画のアスペクト比を返す関数\r\nexport function getVideoAspectRatio(url) {\r\n return new Promise((resolve, reject) => {\r\n const video = document.createElement(\"video\");\r\n\r\n video.preload = \"metadata\";\r\n video.src = url;\r\n video.muted = true; // 一部のブラウザで安全に動作させるため\r\n video.playsInline = true;\r\n\r\n video.onloadedmetadata = function () {\r\n const aspectRatio = video.videoWidth / video.videoHeight;\r\n resolve(aspectRatio);\r\n };\r\n\r\n video.onerror = function () {\r\n reject(new Error(\"動画の読み込みに失敗しました: \" + url));\r\n };\r\n });\r\n}\r\n"],"names":["SingleImageSelect","props","attributes","mediaID","media","getImage","image","React","createElement","src","url","className","alt","getImageButton","open","onClick","Button","__","MediaUploadCheck","MediaUpload","onSelect","onSelectChange","allowedTypes","value","render","_ref","MultiImageSelect","label","getImages","imagesArray","map","index","key","caption","length","PanelBody","title","initialOpen","multiple","gallery","_ref2","onAllDelete","variant","isDestructive","getMediaType","imageExtensions","videoExtensions","cleanUrl","split","toLowerCase","isImage","some","ext","endsWith","isVideo","undefined","getImageAspectRatio","Promise","resolve","reject","img","Image","onload","aspectRatio","naturalWidth","naturalHeight","onerror","Error","getVideoAspectRatio","video","document","preload","muted","playsInline","onloadedmetadata","videoWidth","videoHeight"],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+ var crypto = require('crypto');
4
+ var index = require('./url-alphabet/index.js');
5
+
6
+ const POOL_SIZE_MULTIPLIER = 128;
7
+ let pool, poolOffset;
8
+ let fillPool = bytes => {
9
+ if (!pool || pool.length < bytes) {
10
+ pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER);
11
+ crypto.randomFillSync(pool);
12
+ poolOffset = 0;
13
+ } else if (poolOffset + bytes > pool.length) {
14
+ crypto.randomFillSync(pool);
15
+ poolOffset = 0;
16
+ }
17
+ poolOffset += bytes;
18
+ };
19
+ let nanoid = (size = 21) => {
20
+ fillPool((size |= 0));
21
+ let id = '';
22
+ for (let i = poolOffset - size; i < poolOffset; i++) {
23
+ id += index.urlAlphabet[pool[i] & 63];
24
+ }
25
+ return id
26
+ };
27
+
28
+ exports.urlAlphabet = index.urlAlphabet;
29
+ exports.nanoid = nanoid;
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../node_modules/nanoid/index.js"],"sourcesContent":["import crypto from 'crypto'\nimport { urlAlphabet } from './url-alphabet/index.js'\nconst POOL_SIZE_MULTIPLIER = 128\nlet pool, poolOffset\nlet fillPool = bytes => {\n if (!pool || pool.length < bytes) {\n pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER)\n crypto.randomFillSync(pool)\n poolOffset = 0\n } else if (poolOffset + bytes > pool.length) {\n crypto.randomFillSync(pool)\n poolOffset = 0\n }\n poolOffset += bytes\n}\nlet random = bytes => {\n fillPool((bytes |= 0))\n return pool.subarray(poolOffset - bytes, poolOffset)\n}\nlet customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1\n let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let i = step\n while (i--) {\n id += alphabet[bytes[i] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nlet customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nlet nanoid = (size = 21) => {\n fillPool((size |= 0))\n let id = ''\n for (let i = poolOffset - size; i < poolOffset; i++) {\n id += urlAlphabet[pool[i] & 63]\n }\n return id\n}\nexport { nanoid, customAlphabet, customRandom, urlAlphabet, random }\n"],"names":["urlAlphabet"],"mappings":";;;;;AAEA,MAAM,oBAAoB,GAAG;AAC7B,IAAI,IAAI,EAAE;AACV,IAAI,QAAQ,GAAG,KAAK,IAAI;AACxB,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE;AACpC,IAAI,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,GAAG,oBAAoB;AAC1D,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI;AAC9B,IAAI,UAAU,GAAG;AACjB,EAAE,CAAC,MAAM,IAAI,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;AAC/C,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI;AAC9B,IAAI,UAAU,GAAG;AACjB,EAAE;AACF,EAAE,UAAU,IAAI;AAChB;AAsBG,IAAC,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,KAAK;AAC5B,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC;AACrB,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,KAAK,IAAI,CAAC,GAAG,UAAU,GAAG,IAAI,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;AACvD,IAAI,EAAE,IAAIA,iBAAW,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;AAClC,EAAE;AACF,EAAE,OAAO;AACT;;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ let urlAlphabet =
4
+ 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';
5
+
6
+ exports.urlAlphabet = urlAlphabet;
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../node_modules/nanoid/url-alphabet/index.js"],"sourcesContent":["let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nexport { urlAlphabet }\n"],"names":[],"mappings":";;AAAG,IAAC,WAAW;AACf,EAAE;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,188 @@
1
+ 'use strict';
2
+
3
+ var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
4
+
5
+ var _excluded = ["_wpnonce", "nonce"];
6
+ function generateNonce() {
7
+ var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 32;
8
+ var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
9
+ var nonce = "";
10
+ for (var i = 0; i < length; i++) {
11
+ nonce += characters.charAt(Math.floor(Math.random() * characters.length));
12
+ }
13
+ return nonce;
14
+ }
15
+ function generateCodeVerifier() {
16
+ var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 128;
17
+ var charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~";
18
+ var result = "";
19
+ for (var i = 0; i < length; i++) {
20
+ result += charset.charAt(Math.floor(Math.random() * charset.length));
21
+ }
22
+ return result;
23
+ }
24
+ function generateCodeChallenge(_x) {
25
+ return _generateCodeChallenge.apply(this, arguments);
26
+ } // ✅ Shopifyへの認証リダイレクト
27
+ function _generateCodeChallenge() {
28
+ _generateCodeChallenge = _rollupPluginBabelHelpers.asyncToGenerator(function* (codeVerifier) {
29
+ var encoder = new TextEncoder();
30
+ var data = encoder.encode(codeVerifier);
31
+ var digest = yield crypto.subtle.digest("SHA-256", data);
32
+ return btoa(String.fromCharCode(...new Uint8Array(digest))).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
33
+ });
34
+ return _generateCodeChallenge.apply(this, arguments);
35
+ }
36
+ function redirectCustomerAuthorize(_x2, _x3, _x4, _x5, _x6) {
37
+ return _redirectCustomerAuthorize.apply(this, arguments);
38
+ }
39
+
40
+ // ✅ トークンがあれば検証(Storefront API 経由で customer を取得)
41
+ function _redirectCustomerAuthorize() {
42
+ _redirectCustomerAuthorize = _rollupPluginBabelHelpers.asyncToGenerator(function* (shopId, clientId, userMail, callbackUri, redirectUri) {
43
+ //呼び出し元の戻り先
44
+ var statePayload = {
45
+ ts: Date.now(),
46
+ random: Math.random().toString(36).substring(2),
47
+ return_url: redirectUri
48
+ };
49
+ //stateで渡しておく
50
+ var state = btoa(JSON.stringify(statePayload));
51
+ var nonce = generateNonce();
52
+ var codeVerifier = generateCodeVerifier();
53
+ var codeChallenge = yield generateCodeChallenge(codeVerifier);
54
+ localStorage.setItem("shopify_code_verifier", codeVerifier);
55
+ localStorage.setItem("shopify_state", state);
56
+ localStorage.setItem("shopify_nonce", nonce);
57
+ localStorage.setItem("shopify_client_id", clientId);
58
+ localStorage.setItem("shopify_user_mail", userMail);
59
+ localStorage.setItem("shopify_shop_id", shopId);
60
+ localStorage.setItem("shopify_redirect_uri", callbackUri); //ログアウトの処理で使用する
61
+
62
+ var url = new URL("https://shopify.com/authentication/".concat(shopId, "/oauth/authorize"));
63
+ url.searchParams.append("scope", "openid email customer-account-api:full");
64
+ url.searchParams.append("client_id", clientId);
65
+ url.searchParams.append("response_type", "code");
66
+ url.searchParams.append("redirect_uri", callbackUri);
67
+ url.searchParams.append("state", state);
68
+ url.searchParams.append("nonce", nonce);
69
+ url.searchParams.append("code_challenge", codeChallenge);
70
+ url.searchParams.append("code_challenge_method", "S256");
71
+ window.location.href = url.toString();
72
+ });
73
+ return _redirectCustomerAuthorize.apply(this, arguments);
74
+ }
75
+ function checkCustomerLoginState() {
76
+ return _checkCustomerLoginState.apply(this, arguments);
77
+ }
78
+
79
+ /**
80
+ * @param {string} urlOrPath - RESTは '/itmar-shopify/v1/...' でも '/wp-json/...' でもOK。admin-ajaxは '/wp-admin/admin-ajax.php'
81
+ * @param {object} data - 送信するデータ。nonce は data._wpnonce か data.nonce に入れておけばOK
82
+ * @param {'auto'|'rest'|'ajax'} mode - 既定は 'auto'
83
+ */
84
+ function _checkCustomerLoginState() {
85
+ _checkCustomerLoginState = _rollupPluginBabelHelpers.asyncToGenerator(function* () {
86
+ var token = localStorage.getItem("shopify_customer_token");
87
+ if (!token) return false;
88
+ var checkUrl = "/wp-json/itmar-ec-relate/v1/shopify-login-check";
89
+ var postData = {
90
+ nonce: itmar_option.nonce,
91
+ token: JSON.stringify({
92
+ token
93
+ })
94
+ };
95
+ sendRegistrationAjax(checkUrl, postData, true).done(function (res) {
96
+ console.log(res);
97
+ }).fail(function (xhr, status, error) {
98
+ alert("サーバーエラー: " + error);
99
+ console.error(xhr.responseText);
100
+ });
101
+ });
102
+ return _checkCustomerLoginState.apply(this, arguments);
103
+ }
104
+ function sendRegistrationRequest(_x7) {
105
+ return _sendRegistrationRequest.apply(this, arguments);
106
+ }
107
+ function _sendRegistrationRequest() {
108
+ _sendRegistrationRequest = _rollupPluginBabelHelpers.asyncToGenerator(function* (urlOrPath) {
109
+ var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
110
+ var mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "auto";
111
+ var isRestUrlLike = u => u.startsWith("/wp-json") || !u.startsWith("/wp-admin");
112
+
113
+ // 送信先の確定(RESTのときは /wp-json 省略パスでもOKにする)
114
+ var isRest;
115
+ if (mode === "auto") {
116
+ isRest = isRestUrlLike(urlOrPath);
117
+ } else {
118
+ isRest = mode === "rest";
119
+ }
120
+ var url = urlOrPath;
121
+ if (isRest) {
122
+ // '/itmar-shopify/v1/...' のようなパスだけ渡されたら /wp-json を補う
123
+ if (!url.startsWith("/wp-json")) {
124
+ var root = window.wpApiSettings && window.wpApiSettings.root || "/wp-json/";
125
+ url = root.replace(/\/+$/, "/") + url.replace(/^\/+/, "");
126
+ }
127
+ } else {
128
+ // admin-ajax の既定URL
129
+ if (!url) url = "/wp-admin/admin-ajax.php";
130
+ }
131
+ var fetchOptions = {
132
+ method: "POST",
133
+ credentials: "same-origin",
134
+ // 同一オリジン Cookie
135
+ headers: {}
136
+ };
137
+
138
+ // ノンス抽出(_wpnonce を優先)
139
+ var nonce = data._wpnonce || data.nonce || window.wpApiSettings && window.wpApiSettings.nonce;
140
+ if (isRest) {
141
+ fetchOptions.headers["Content-Type"] = "application/json";
142
+ if (nonce) fetchOptions.headers["X-WP-Nonce"] = nonce;
143
+
144
+ // nonce系は本文から除く(任意)
145
+ var {
146
+ _wpnonce,
147
+ nonce: _legacyNonce
148
+ } = data,
149
+ rest = _rollupPluginBabelHelpers.objectWithoutProperties(data, _excluded);
150
+ fetchOptions.body = JSON.stringify(rest);
151
+ } else {
152
+ // admin-ajax は URLSearchParams で送る
153
+ var form = new URLSearchParams();
154
+ Object.entries(data).forEach(_ref => {
155
+ var [k, v] = _ref;
156
+ if (v !== undefined && v !== null) form.append(k, String(v));
157
+ });
158
+ // ノンスは _wpnonce に統一
159
+ if (nonce && !form.has("_wpnonce")) form.append("_wpnonce", nonce);
160
+ fetchOptions.body = form;
161
+ }
162
+ var res = yield fetch(url, fetchOptions);
163
+
164
+ // WP REST はメソッド不一致・ルートなし等でも JSON 返さないことがあるので分岐
165
+ var contentType = res.headers.get("content-type") || "";
166
+ var tryJson = contentType.includes("application/json");
167
+ if (!res.ok) {
168
+ var msg = "HTTP ".concat(res.status);
169
+ if (tryJson) {
170
+ try {
171
+ var j = yield res.json();
172
+ msg += j.message ? ": ".concat(j.message) : "";
173
+ } catch (_unused) {}
174
+ } else {
175
+ var t = yield res.text();
176
+ if (t) msg += ": ".concat(t.slice(0, 200));
177
+ }
178
+ throw new Error(msg);
179
+ }
180
+ return tryJson ? res.json() : res.text();
181
+ });
182
+ return _sendRegistrationRequest.apply(this, arguments);
183
+ }
184
+
185
+ exports.checkCustomerLoginState = checkCustomerLoginState;
186
+ exports.redirectCustomerAuthorize = redirectCustomerAuthorize;
187
+ exports.sendRegistrationRequest = sendRegistrationRequest;
188
+ //# sourceMappingURL=shopfiApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shopfiApi.js","sources":["../../src/shopfiApi.js"],"sourcesContent":["function generateState() {\r\n const timestamp = Date.now().toString();\r\n const randomString = Math.random().toString(36).substring(2);\r\n return timestamp + randomString;\r\n}\r\n\r\nfunction generateNonce(length = 32) {\r\n const characters =\r\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\r\n let nonce = \"\";\r\n for (let i = 0; i < length; i++) {\r\n nonce += characters.charAt(Math.floor(Math.random() * characters.length));\r\n }\r\n return nonce;\r\n}\r\n\r\nfunction generateCodeVerifier(length = 128) {\r\n const charset =\r\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~\";\r\n let result = \"\";\r\n for (let i = 0; i < length; i++) {\r\n result += charset.charAt(Math.floor(Math.random() * charset.length));\r\n }\r\n return result;\r\n}\r\n\r\nasync function generateCodeChallenge(codeVerifier) {\r\n const encoder = new TextEncoder();\r\n const data = encoder.encode(codeVerifier);\r\n const digest = await crypto.subtle.digest(\"SHA-256\", data);\r\n return btoa(String.fromCharCode(...new Uint8Array(digest)))\r\n .replace(/\\+/g, \"-\")\r\n .replace(/\\//g, \"_\")\r\n .replace(/=+$/, \"\");\r\n}\r\n\r\n// ✅ Shopifyへの認証リダイレクト\r\nexport async function redirectCustomerAuthorize(\r\n shopId,\r\n clientId,\r\n userMail,\r\n callbackUri,\r\n redirectUri\r\n) {\r\n //呼び出し元の戻り先\r\n const statePayload = {\r\n ts: Date.now(),\r\n random: Math.random().toString(36).substring(2),\r\n return_url: redirectUri,\r\n };\r\n //stateで渡しておく\r\n const state = btoa(JSON.stringify(statePayload));\r\n const nonce = generateNonce();\r\n const codeVerifier = generateCodeVerifier();\r\n const codeChallenge = await generateCodeChallenge(codeVerifier);\r\n\r\n localStorage.setItem(\"shopify_code_verifier\", codeVerifier);\r\n localStorage.setItem(\"shopify_state\", state);\r\n localStorage.setItem(\"shopify_nonce\", nonce);\r\n localStorage.setItem(\"shopify_client_id\", clientId);\r\n localStorage.setItem(\"shopify_user_mail\", userMail);\r\n localStorage.setItem(\"shopify_shop_id\", shopId);\r\n localStorage.setItem(\"shopify_redirect_uri\", callbackUri); //ログアウトの処理で使用する\r\n\r\n const url = new URL(\r\n `https://shopify.com/authentication/${shopId}/oauth/authorize`\r\n );\r\n url.searchParams.append(\"scope\", \"openid email customer-account-api:full\");\r\n url.searchParams.append(\"client_id\", clientId);\r\n url.searchParams.append(\"response_type\", \"code\");\r\n url.searchParams.append(\"redirect_uri\", callbackUri);\r\n url.searchParams.append(\"state\", state);\r\n url.searchParams.append(\"nonce\", nonce);\r\n url.searchParams.append(\"code_challenge\", codeChallenge);\r\n url.searchParams.append(\"code_challenge_method\", \"S256\");\r\n\r\n window.location.href = url.toString();\r\n}\r\n\r\n// ✅ トークンがあれば検証(Storefront API 経由で customer を取得)\r\nexport async function checkCustomerLoginState() {\r\n const token = localStorage.getItem(\"shopify_customer_token\");\r\n\r\n if (!token) return false;\r\n\r\n const checkUrl = \"/wp-json/itmar-ec-relate/v1/shopify-login-check\";\r\n const postData = {\r\n nonce: itmar_option.nonce,\r\n token: JSON.stringify({ token }),\r\n };\r\n sendRegistrationAjax(checkUrl, postData, true)\r\n .done(function (res) {\r\n console.log(res);\r\n })\r\n .fail(function (xhr, status, error) {\r\n alert(\"サーバーエラー: \" + error);\r\n console.error(xhr.responseText);\r\n });\r\n}\r\n\r\n/**\r\n * @param {string} urlOrPath - RESTは '/itmar-shopify/v1/...' でも '/wp-json/...' でもOK。admin-ajaxは '/wp-admin/admin-ajax.php'\r\n * @param {object} data - 送信するデータ。nonce は data._wpnonce か data.nonce に入れておけばOK\r\n * @param {'auto'|'rest'|'ajax'} mode - 既定は 'auto'\r\n */\r\nexport async function sendRegistrationRequest(\r\n urlOrPath,\r\n data = {},\r\n mode = \"auto\"\r\n) {\r\n const isRestUrlLike = (u) =>\r\n u.startsWith(\"/wp-json\") || !u.startsWith(\"/wp-admin\");\r\n\r\n // 送信先の確定(RESTのときは /wp-json 省略パスでもOKにする)\r\n let isRest;\r\n if (mode === \"auto\") {\r\n isRest = isRestUrlLike(urlOrPath);\r\n } else {\r\n isRest = mode === \"rest\";\r\n }\r\n\r\n let url = urlOrPath;\r\n\r\n if (isRest) {\r\n // '/itmar-shopify/v1/...' のようなパスだけ渡されたら /wp-json を補う\r\n if (!url.startsWith(\"/wp-json\")) {\r\n const root =\r\n (window.wpApiSettings && window.wpApiSettings.root) || \"/wp-json/\";\r\n url = root.replace(/\\/+$/, \"/\") + url.replace(/^\\/+/, \"\");\r\n }\r\n } else {\r\n // admin-ajax の既定URL\r\n if (!url) url = \"/wp-admin/admin-ajax.php\";\r\n }\r\n\r\n const fetchOptions = {\r\n method: \"POST\",\r\n credentials: \"same-origin\", // 同一オリジン Cookie\r\n headers: {},\r\n };\r\n\r\n // ノンス抽出(_wpnonce を優先)\r\n const nonce =\r\n data._wpnonce ||\r\n data.nonce ||\r\n (window.wpApiSettings && window.wpApiSettings.nonce);\r\n\r\n if (isRest) {\r\n fetchOptions.headers[\"Content-Type\"] = \"application/json\";\r\n if (nonce) fetchOptions.headers[\"X-WP-Nonce\"] = nonce;\r\n\r\n // nonce系は本文から除く(任意)\r\n const { _wpnonce, nonce: _legacyNonce, ...rest } = data;\r\n fetchOptions.body = JSON.stringify(rest);\r\n } else {\r\n // admin-ajax は URLSearchParams で送る\r\n const form = new URLSearchParams();\r\n Object.entries(data).forEach(([k, v]) => {\r\n if (v !== undefined && v !== null) form.append(k, String(v));\r\n });\r\n // ノンスは _wpnonce に統一\r\n if (nonce && !form.has(\"_wpnonce\")) form.append(\"_wpnonce\", nonce);\r\n fetchOptions.body = form;\r\n }\r\n\r\n const res = await fetch(url, fetchOptions);\r\n\r\n // WP REST はメソッド不一致・ルートなし等でも JSON 返さないことがあるので分岐\r\n const contentType = res.headers.get(\"content-type\") || \"\";\r\n const tryJson = contentType.includes(\"application/json\");\r\n\r\n if (!res.ok) {\r\n let msg = `HTTP ${res.status}`;\r\n if (tryJson) {\r\n try {\r\n const j = await res.json();\r\n msg += j.message ? `: ${j.message}` : \"\";\r\n } catch {}\r\n } else {\r\n const t = await res.text();\r\n if (t) msg += `: ${t.slice(0, 200)}`;\r\n }\r\n throw new Error(msg);\r\n }\r\n\r\n return tryJson ? res.json() : res.text();\r\n}\r\n"],"names":["generateNonce","length","arguments","undefined","characters","nonce","i","charAt","Math","floor","random","generateCodeVerifier","charset","result","generateCodeChallenge","_x","_generateCodeChallenge","apply","_asyncToGenerator","codeVerifier","encoder","TextEncoder","data","encode","digest","crypto","subtle","btoa","String","fromCharCode","Uint8Array","replace","redirectCustomerAuthorize","_x2","_x3","_x4","_x5","_x6","_redirectCustomerAuthorize","shopId","clientId","userMail","callbackUri","redirectUri","statePayload","ts","Date","now","toString","substring","return_url","state","JSON","stringify","codeChallenge","localStorage","setItem","url","URL","concat","searchParams","append","window","location","href","checkCustomerLoginState","_checkCustomerLoginState","token","getItem","checkUrl","postData","itmar_option","sendRegistrationAjax","done","res","console","log","fail","xhr","status","error","alert","responseText","sendRegistrationRequest","_x7","_sendRegistrationRequest","urlOrPath","mode","isRestUrlLike","u","startsWith","isRest","root","wpApiSettings","fetchOptions","method","credentials","headers","_wpnonce","_legacyNonce","rest","_objectWithoutProperties","_excluded","body","form","URLSearchParams","Object","entries","forEach","_ref","k","v","has","fetch","contentType","get","tryJson","includes","ok","msg","j","json","message","_unused","t","text","slice","Error"],"mappings":";;;;;AAMA,SAASA,aAAaA,GAAc;AAAA,EAAA,IAAbC,MAAM,GAAAC,SAAA,CAAAD,MAAA,GAAA,CAAA,IAAAC,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;EAChC,IAAME,UAAU,GACd,gEAAgE;EAClE,IAAIC,KAAK,GAAG,EAAE;EACd,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,MAAM,EAAEK,CAAC,EAAE,EAAE;AAC/BD,IAAAA,KAAK,IAAID,UAAU,CAACG,MAAM,CAACC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,EAAE,GAAGN,UAAU,CAACH,MAAM,CAAC,CAAC;AAC3E,EAAA;AACA,EAAA,OAAOI,KAAK;AACd;AAEA,SAASM,oBAAoBA,GAAe;AAAA,EAAA,IAAdV,MAAM,GAAAC,SAAA,CAAAD,MAAA,GAAA,CAAA,IAAAC,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,GAAG;EACxC,IAAMU,OAAO,GACX,oEAAoE;EACtE,IAAIC,MAAM,GAAG,EAAE;EACf,KAAK,IAAIP,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,MAAM,EAAEK,CAAC,EAAE,EAAE;AAC/BO,IAAAA,MAAM,IAAID,OAAO,CAACL,MAAM,CAACC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,EAAE,GAAGE,OAAO,CAACX,MAAM,CAAC,CAAC;AACtE,EAAA;AACA,EAAA,OAAOY,MAAM;AACf;AAAC,SAEcC,qBAAqBA,CAAAC,EAAA,EAAA;AAAA,EAAA,OAAAC,sBAAA,CAAAC,KAAA,CAAA,IAAA,EAAAf,SAAA,CAAA;AAAA,CAAA;AAUpC,SAAAc,sBAAAA,GAAA;AAAAA,EAAAA,sBAAA,GAAAE,0CAAA,CAVA,WAAqCC,YAAY,EAAE;AACjD,IAAA,IAAMC,OAAO,GAAG,IAAIC,WAAW,EAAE;AACjC,IAAA,IAAMC,IAAI,GAAGF,OAAO,CAACG,MAAM,CAACJ,YAAY,CAAC;IACzC,IAAMK,MAAM,GAAA,MAASC,MAAM,CAACC,MAAM,CAACF,MAAM,CAAC,SAAS,EAAEF,IAAI,CAAC;AAC1D,IAAA,OAAOK,IAAI,CAACC,MAAM,CAACC,YAAY,CAAC,GAAG,IAAIC,UAAU,CAACN,MAAM,CAAC,CAAC,CAAC,CACxDO,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACnBA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACnBA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;EACvB,CAAC,CAAA;AAAA,EAAA,OAAAf,sBAAA,CAAAC,KAAA,CAAA,IAAA,EAAAf,SAAA,CAAA;AAAA;AAGD,SAAsB8B,yBAAyBA,CAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAA;AAAA,EAAA,OAAAC,0BAAA,CAAArB,KAAA,CAAA,IAAA,EAAAf,SAAA,CAAA;AAAA;;AA0C/C;AAAA,SAAAoC,0BAAAA,GAAA;AAAAA,EAAAA,0BAAA,GAAApB,0CAAA,CA1CO,WACLqB,MAAM,EACNC,QAAQ,EACRC,QAAQ,EACRC,WAAW,EACXC,WAAW,EACX;AACA;AACA,IAAA,IAAMC,YAAY,GAAG;AACnBC,MAAAA,EAAE,EAAEC,IAAI,CAACC,GAAG,EAAE;AACdrC,MAAAA,MAAM,EAAEF,IAAI,CAACE,MAAM,EAAE,CAACsC,QAAQ,CAAC,EAAE,CAAC,CAACC,SAAS,CAAC,CAAC,CAAC;AAC/CC,MAAAA,UAAU,EAAEP;KACb;AACD;IACA,IAAMQ,KAAK,GAAGxB,IAAI,CAACyB,IAAI,CAACC,SAAS,CAACT,YAAY,CAAC,CAAC;AAChD,IAAA,IAAMvC,KAAK,GAAGL,aAAa,EAAE;AAC7B,IAAA,IAAMmB,YAAY,GAAGR,oBAAoB,EAAE;AAC3C,IAAA,IAAM2C,aAAa,GAAA,MAASxC,qBAAqB,CAACK,YAAY,CAAC;AAE/DoC,IAAAA,YAAY,CAACC,OAAO,CAAC,uBAAuB,EAAErC,YAAY,CAAC;AAC3DoC,IAAAA,YAAY,CAACC,OAAO,CAAC,eAAe,EAAEL,KAAK,CAAC;AAC5CI,IAAAA,YAAY,CAACC,OAAO,CAAC,eAAe,EAAEnD,KAAK,CAAC;AAC5CkD,IAAAA,YAAY,CAACC,OAAO,CAAC,mBAAmB,EAAEhB,QAAQ,CAAC;AACnDe,IAAAA,YAAY,CAACC,OAAO,CAAC,mBAAmB,EAAEf,QAAQ,CAAC;AACnDc,IAAAA,YAAY,CAACC,OAAO,CAAC,iBAAiB,EAAEjB,MAAM,CAAC;IAC/CgB,YAAY,CAACC,OAAO,CAAC,sBAAsB,EAAEd,WAAW,CAAC,CAAC;;IAE1D,IAAMe,GAAG,GAAG,IAAIC,GAAG,uCAAAC,MAAA,CACqBpB,MAAM,EAAA,kBAAA,CAC9C,CAAC;IACDkB,GAAG,CAACG,YAAY,CAACC,MAAM,CAAC,OAAO,EAAE,wCAAwC,CAAC;IAC1EJ,GAAG,CAACG,YAAY,CAACC,MAAM,CAAC,WAAW,EAAErB,QAAQ,CAAC;IAC9CiB,GAAG,CAACG,YAAY,CAACC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC;IAChDJ,GAAG,CAACG,YAAY,CAACC,MAAM,CAAC,cAAc,EAAEnB,WAAW,CAAC;IACpDe,GAAG,CAACG,YAAY,CAACC,MAAM,CAAC,OAAO,EAAEV,KAAK,CAAC;IACvCM,GAAG,CAACG,YAAY,CAACC,MAAM,CAAC,OAAO,EAAExD,KAAK,CAAC;IACvCoD,GAAG,CAACG,YAAY,CAACC,MAAM,CAAC,gBAAgB,EAAEP,aAAa,CAAC;IACxDG,GAAG,CAACG,YAAY,CAACC,MAAM,CAAC,uBAAuB,EAAE,MAAM,CAAC;IAExDC,MAAM,CAACC,QAAQ,CAACC,IAAI,GAAGP,GAAG,CAACT,QAAQ,EAAE;EACvC,CAAC,CAAA;AAAA,EAAA,OAAAV,0BAAA,CAAArB,KAAA,CAAA,IAAA,EAAAf,SAAA,CAAA;AAAA;AAGD,SAAsB+D,uBAAuBA,GAAA;AAAA,EAAA,OAAAC,wBAAA,CAAAjD,KAAA,CAAA,IAAA,EAAAf,SAAA,CAAA;AAAA;;AAoB7C;AACA;AACA;AACA;AACA;AAJA,SAAAgE,wBAAAA,GAAA;EAAAA,wBAAA,GAAAhD,0CAAA,CApBO,aAAyC;AAC9C,IAAA,IAAMiD,KAAK,GAAGZ,YAAY,CAACa,OAAO,CAAC,wBAAwB,CAAC;AAE5D,IAAA,IAAI,CAACD,KAAK,EAAE,OAAO,KAAK;IAExB,IAAME,QAAQ,GAAG,iDAAiD;AAClE,IAAA,IAAMC,QAAQ,GAAG;MACfjE,KAAK,EAAEkE,YAAY,CAAClE,KAAK;AACzB8D,MAAAA,KAAK,EAAEf,IAAI,CAACC,SAAS,CAAC;AAAEc,QAAAA;OAAO;KAChC;AACDK,IAAAA,oBAAoB,CAACH,QAAQ,EAAEC,QAAQ,EAAE,IAAI,CAAC,CAC3CG,IAAI,CAAC,UAAUC,GAAG,EAAE;AACnBC,MAAAA,OAAO,CAACC,GAAG,CAACF,GAAG,CAAC;IAClB,CAAC,CAAC,CACDG,IAAI,CAAC,UAAUC,GAAG,EAAEC,MAAM,EAAEC,KAAK,EAAE;AAClCC,MAAAA,KAAK,CAAC,WAAW,GAAGD,KAAK,CAAC;AAC1BL,MAAAA,OAAO,CAACK,KAAK,CAACF,GAAG,CAACI,YAAY,CAAC;AACjC,IAAA,CAAC,CAAC;EACN,CAAC,CAAA;AAAA,EAAA,OAAAhB,wBAAA,CAAAjD,KAAA,CAAA,IAAA,EAAAf,SAAA,CAAA;AAAA;AAOD,SAAsBiF,uBAAuBA,CAAAC,GAAA,EAAA;AAAA,EAAA,OAAAC,wBAAA,CAAApE,KAAA,CAAA,IAAA,EAAAf,SAAA,CAAA;AAAA;AAiF5C,SAAAmF,wBAAAA,GAAA;AAAAA,EAAAA,wBAAA,GAAAnE,0CAAA,CAjFM,WACLoE,SAAS,EAGT;AAAA,IAAA,IAFAhE,IAAI,GAAApB,SAAA,CAAAD,MAAA,GAAA,CAAA,IAAAC,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAA,IAAA,IACTqF,IAAI,GAAArF,SAAA,CAAAD,MAAA,GAAA,CAAA,IAAAC,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,MAAM;AAEb,IAAA,IAAMsF,aAAa,GAAIC,CAAC,IACtBA,CAAC,CAACC,UAAU,CAAC,UAAU,CAAC,IAAI,CAACD,CAAC,CAACC,UAAU,CAAC,WAAW,CAAC;;AAExD;AACA,IAAA,IAAIC,MAAM;IACV,IAAIJ,IAAI,KAAK,MAAM,EAAE;AACnBI,MAAAA,MAAM,GAAGH,aAAa,CAACF,SAAS,CAAC;AACnC,IAAA,CAAC,MAAM;MACLK,MAAM,GAAGJ,IAAI,KAAK,MAAM;AAC1B,IAAA;IAEA,IAAI9B,GAAG,GAAG6B,SAAS;AAEnB,IAAA,IAAIK,MAAM,EAAE;AACV;AACA,MAAA,IAAI,CAAClC,GAAG,CAACiC,UAAU,CAAC,UAAU,CAAC,EAAE;AAC/B,QAAA,IAAME,IAAI,GACP9B,MAAM,CAAC+B,aAAa,IAAI/B,MAAM,CAAC+B,aAAa,CAACD,IAAI,IAAK,WAAW;AACpEnC,QAAAA,GAAG,GAAGmC,IAAI,CAAC7D,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG0B,GAAG,CAAC1B,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;AAC3D,MAAA;AACF,IAAA,CAAC,MAAM;AACL;AACA,MAAA,IAAI,CAAC0B,GAAG,EAAEA,GAAG,GAAG,0BAA0B;AAC5C,IAAA;AAEA,IAAA,IAAMqC,YAAY,GAAG;AACnBC,MAAAA,MAAM,EAAE,MAAM;AACdC,MAAAA,WAAW,EAAE,aAAa;AAAE;AAC5BC,MAAAA,OAAO,EAAE;KACV;;AAED;AACA,IAAA,IAAM5F,KAAK,GACTiB,IAAI,CAAC4E,QAAQ,IACb5E,IAAI,CAACjB,KAAK,IACTyD,MAAM,CAAC+B,aAAa,IAAI/B,MAAM,CAAC+B,aAAa,CAACxF,KAAM;AAEtD,IAAA,IAAIsF,MAAM,EAAE;AACVG,MAAAA,YAAY,CAACG,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB;MACzD,IAAI5F,KAAK,EAAEyF,YAAY,CAACG,OAAO,CAAC,YAAY,CAAC,GAAG5F,KAAK;;AAErD;MACA,IAAM;UAAE6F,QAAQ;AAAE7F,UAAAA,KAAK,EAAE8F;AAAsB,SAAC,GAAG7E,IAAI;AAAb8E,QAAAA,IAAI,GAAAC,iDAAA,CAAK/E,IAAI,EAAAgF,SAAA,CAAA;MACvDR,YAAY,CAACS,IAAI,GAAGnD,IAAI,CAACC,SAAS,CAAC+C,IAAI,CAAC;AAC1C,IAAA,CAAC,MAAM;AACL;AACA,MAAA,IAAMI,IAAI,GAAG,IAAIC,eAAe,EAAE;MAClCC,MAAM,CAACC,OAAO,CAACrF,IAAI,CAAC,CAACsF,OAAO,CAACC,IAAA,IAAY;AAAA,QAAA,IAAX,CAACC,CAAC,EAAEC,CAAC,CAAC,GAAAF,IAAA;AAClC,QAAA,IAAIE,CAAC,KAAK5G,SAAS,IAAI4G,CAAC,KAAK,IAAI,EAAEP,IAAI,CAAC3C,MAAM,CAACiD,CAAC,EAAElF,MAAM,CAACmF,CAAC,CAAC,CAAC;AAC9D,MAAA,CAAC,CAAC;AACF;AACA,MAAA,IAAI1G,KAAK,IAAI,CAACmG,IAAI,CAACQ,GAAG,CAAC,UAAU,CAAC,EAAER,IAAI,CAAC3C,MAAM,CAAC,UAAU,EAAExD,KAAK,CAAC;MAClEyF,YAAY,CAACS,IAAI,GAAGC,IAAI;AAC1B,IAAA;AAEA,IAAA,IAAM9B,GAAG,GAAA,MAASuC,KAAK,CAACxD,GAAG,EAAEqC,YAAY,CAAC;;AAE1C;IACA,IAAMoB,WAAW,GAAGxC,GAAG,CAACuB,OAAO,CAACkB,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE;AACzD,IAAA,IAAMC,OAAO,GAAGF,WAAW,CAACG,QAAQ,CAAC,kBAAkB,CAAC;AAExD,IAAA,IAAI,CAAC3C,GAAG,CAAC4C,EAAE,EAAE;AACX,MAAA,IAAIC,GAAG,GAAA,OAAA,CAAA5D,MAAA,CAAWe,GAAG,CAACK,MAAM,CAAE;AAC9B,MAAA,IAAIqC,OAAO,EAAE;QACX,IAAI;AACF,UAAA,IAAMI,CAAC,GAAA,MAAS9C,GAAG,CAAC+C,IAAI,EAAE;UAC1BF,GAAG,IAAIC,CAAC,CAACE,OAAO,GAAA,IAAA,CAAA/D,MAAA,CAAQ6D,CAAC,CAACE,OAAO,CAAA,GAAK,EAAE;AAC1C,QAAA,CAAC,CAAC,OAAAC,OAAA,EAAM,CAAC;AACX,MAAA,CAAC,MAAM;AACL,QAAA,IAAMC,CAAC,GAAA,MAASlD,GAAG,CAACmD,IAAI,EAAE;AAC1B,QAAA,IAAID,CAAC,EAAEL,GAAG,IAAA,IAAA,CAAA5D,MAAA,CAASiE,CAAC,CAACE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAE;AACtC,MAAA;AACA,MAAA,MAAM,IAAIC,KAAK,CAACR,GAAG,CAAC;AACtB,IAAA;AAEA,IAAA,OAAOH,OAAO,GAAG1C,GAAG,CAAC+C,IAAI,EAAE,GAAG/C,GAAG,CAACmD,IAAI,EAAE;EAC1C,CAAC,CAAA;AAAA,EAAA,OAAAxC,wBAAA,CAAApE,KAAA,CAAA,IAAA,EAAAf,SAAA,CAAA;AAAA;;;;;;"}
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ //URLのバリデーションチェック
4
+ var isValidUrlWithUrlApi = string => {
5
+ try {
6
+ var cleanString = string.replace(/<[^>]+>/g, "");
7
+ new URL(cleanString);
8
+ return true;
9
+ } catch (err) {
10
+ return false;
11
+ }
12
+ };
13
+
14
+ exports.isValidUrlWithUrlApi = isValidUrlWithUrlApi;
15
+ //# sourceMappingURL=validationCheck.js.map