itmar-block-packages 2.1.1 → 2.1.2

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 CHANGED
@@ -14,6 +14,9 @@ import {関数名又はコンポーネント名} from "itmar-block-packages"
14
14
  npm i @wordpress/scripts@^27.6.0 --save-dev
15
15
 
16
16
  ## 更新履歴
17
+ = 2.1.2 =
18
+ - sendRegistrationRequest内でフォールバックされていた"/wp-admin/admin-ajax.php" を削除
19
+
17
20
  = 2.1.1 =
18
21
  - フロントエンドデータ共有ライブラリとしてpickupStoreを追加
19
22
 
@@ -1 +1 @@
1
- {"version":3,"file":"customFooks.js","sources":["../../src/customFooks.js"],"sourcesContent":["import { useRef, useEffect, useState } from \"@wordpress/element\";\nimport { useSelect, useDispatch } from \"@wordpress/data\";\nimport isEqual from \"lodash/isEqual\";\nimport { __ } from \"@wordpress/i18n\";\n\n//useRefで参照したDOM要素の大きさを取得するカスタムフック\nexport function useElementWidth() {\n const ref = useRef(null);\n const [width, setWidth] = useState(0);\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver((entries) => {\n for (let entry of entries) {\n setWidth(entry.contentRect.width);\n }\n });\n\n if (ref.current) {\n resizeObserver.observe(ref.current);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n }, []);\n\n return [ref, width];\n}\n\n//ViewPortの大きさでモバイルを判断(767px以下がモバイル)するカスタムフック\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n if (typeof window !== \"undefined\") {\n const handleResize = () => {\n setIsMobile(window.innerWidth <= 767);\n };\n\n window.addEventListener(\"resize\", handleResize);\n\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }\n }, []);\n\n return isMobile;\n}\n\n//モバイル表示か否かを判定するフック\nexport function useIsIframeMobile() {\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n // iframeのcontentWindowを監視する関数\n const checkIframeSize = () => {\n const iframeInstance = document.getElementsByName(\"editor-canvas\")[0];\n if (iframeInstance && iframeInstance.contentWindow) {\n setIsMobile(iframeInstance.contentWindow.innerWidth <= 767);\n }\n };\n\n // iframeのcontentWindowのリサイズイベントにリスナーを追加\n const iframeInstance = document.getElementsByName(\"editor-canvas\")[0];\n if (iframeInstance && iframeInstance.contentWindow) {\n iframeInstance.contentWindow.addEventListener(\"resize\", checkIframeSize);\n }\n\n // 初期チェックを実行\n checkIframeSize();\n\n // クリーンアップ関数\n return () => {\n if (iframeInstance && iframeInstance.contentWindow) {\n iframeInstance.contentWindow.removeEventListener(\n \"resize\",\n checkIframeSize\n );\n }\n };\n }, []);\n\n return isMobile;\n}\n\n//ブロックの背景色を取得するカスタムフック\nexport function useElementBackgroundColor(blockRef, style) {\n const [baseColor, setBaseColor] = useState(\"\");\n\n useEffect(() => {\n if (blockRef.current && style) {\n if (\n style.backgroundColor &&\n !style.backgroundColor.startsWith(\"var(--wp\")\n ) {\n //backgroundColorが設定されており、それがカスタムプロパティでない\n setBaseColor(style.backgroundColor);\n } else {\n //レンダリング結果から背景色を取得\n if (blockRef.current) {\n const computedStyles = getComputedStyle(blockRef.current);\n setBaseColor(computedStyles.backgroundColor);\n }\n }\n }\n }, [style, blockRef]);\n\n return baseColor;\n}\n\n//ブロックのスタイルを取得し、コールバック関数を返すカスタムフック\nexport function useElementStyleObject(blockRef, style) {\n const [styleObject, setStyleObject] = useState(\"\");\n\n useEffect(() => {\n if (blockRef.current && style) {\n //レンダリング結果に基づくスタイルの取得\n const computedStyles = getComputedStyle(blockRef.current);\n // styleオブジェクトのキーに基づいてnewStyleObjectを生成\n const newStyleObject = Object.keys(style).reduce((acc, key) => {\n if (computedStyles[key]) {\n // computedStylesにキーが存在するか確認\n acc[key] = computedStyles[key];\n }\n return acc;\n }, {});\n\n setStyleObject(JSON.stringify(newStyleObject));\n }\n }, [blockRef, style]);\n // styleObjectをオブジェクトとして返す\n return styleObject;\n}\n\n//たくさんの要素をもつオブジェクトや配列の内容の変化で発火するuseEffect\nexport function useDeepCompareEffect(callback, dependencies) {\n const dependenciesRef = useRef();\n\n if (!isEqual(dependencies, dependenciesRef.current)) {\n dependenciesRef.current = dependencies;\n }\n\n useEffect(() => {\n return callback();\n }, [dependenciesRef.current]);\n}\n\nexport function useFontawesomeIframe() {\n //iframeにfontawesomeを読み込む\n useEffect(() => {\n const iframeInstance = document.getElementsByName(\"editor-canvas\")[0];\n\n if (iframeInstance) {\n const iframeDocument =\n iframeInstance.contentDocument || iframeInstance.contentWindow.document;\n const scriptElement = iframeDocument.createElement(\"script\");\n scriptElement.setAttribute(\"src\", \"../../../assets/fontawesome.js\");\n //scriptElement.setAttribute(\"crossorigin\", \"anonymous\");\n\n iframeDocument.body.appendChild(scriptElement);\n\n // Return a cleanup function to remove the script tag\n return () => {\n iframeDocument.body?.removeChild(scriptElement);\n };\n }\n }, []);\n}\n\n//ネストしたブロックを平坦化\nconst getFlattenBlocks = (blocks) => {\n return blocks.reduce((acc, block) => {\n acc.push(block);\n if (block.innerBlocks && block.innerBlocks.length > 0) {\n acc.push(...getFlattenBlocks(block.innerBlocks));\n }\n return acc;\n }, []);\n};\n\n//指定されたブロック名とクラス名を含むブロックの属性が更新されたときその更新内容をかえすフック\nexport function useBlockAttributeChanges(\n clientId,\n blockName,\n className,\n modFlg = false,\n excludeAttributes = {}\n) {\n const [latestAttributes, setLatestAttributes] = useState(null);\n //const [idleFlg, setIdleFlg] = useState(null);\n const prevBlocksRef = useRef({});\n\n //属性変更関数を取得\n const { updateBlockAttributes } = useDispatch(\"core/block-editor\");\n //インナーブロックを平坦化する関数\n const flattenedBlocks = useSelect(\n (select) => {\n const { getBlock } = select(\"core/block-editor\");\n const rootBlock = getBlock(clientId);\n return rootBlock ? getFlattenBlocks([rootBlock]) : [];\n },\n [clientId]\n );\n\n const targetBlocks = flattenedBlocks.filter(\n (block) =>\n block.name === blockName &&\n block.attributes.className?.includes(className)\n );\n\n useEffect(() => {\n //平坦化されたブロックを調査\n for (const block of targetBlocks) {\n const prevAttributes =\n prevBlocksRef.current[block.clientId]?.attributes || {};\n //既に先に記録された属性があることをチェック\n if (Object.keys(prevAttributes).length > 0) {\n // 除外する属性を取り除いた属性オブジェクトを作成\n const filteredCurrentAttributes = Object.keys(block.attributes).reduce(\n (acc, key) => {\n if (!excludeAttributes.hasOwnProperty(key)) {\n acc[key] = block.attributes[key];\n }\n return acc;\n },\n {}\n );\n\n const filteredPrevAttributes = Object.keys(prevAttributes).reduce(\n (acc, key) => {\n if (!excludeAttributes.hasOwnProperty(key)) {\n acc[key] = prevAttributes[key];\n }\n return acc;\n },\n {}\n );\n\n //属性の変化を比較\n if (\n JSON.stringify(filteredCurrentAttributes) !==\n JSON.stringify(filteredPrevAttributes)\n ) {\n //確認ダイアログが出ている状態か否かで状態変数を変化させる\n // if (block.attributes.isIdle) {\n // setIdleFlg(true);\n // } else {\n // setIdleFlg(false);\n // }\n //呼び出し元に返すための更新後の属性オブジェクトを格納\n\n setLatestAttributes(JSON.stringify(filteredCurrentAttributes));\n }\n }\n // 現在のブロック状態を保存(除外属性も含めて保存)\n prevBlocksRef.current[block.clientId] = { ...block };\n }\n }, [targetBlocks, blockName, className]);\n\n //innerFlattenedBlocks内の同一種のブロックに対して属性をセットする;\n useEffect(() => {\n //確認ダイアログが処理されたことを確認してからこちらの処理を進める\n if (latestAttributes && modFlg) {\n // const latestAttrObj = JSON.parse(latestAttributes);\n // const setObj = {\n // ...latestAttrObj,\n // className: `auto_attr_change ${latestAttrObj.className}`,\n // };\n targetBlocks.forEach((block) => {\n updateBlockAttributes(block.clientId, JSON.parse(latestAttributes));\n });\n }\n }, [latestAttributes]);\n\n return JSON.parse(latestAttributes);\n}\n\n//インナーブロックが挿入されたとき、指定されたブロック名が存在れば、挿入されたブロックを削除するフック\nexport function useDuplicateBlockRemove(clientId, blockNames) {\n const { removeBlock } = useDispatch(\"core/block-editor\");\n const { createNotice } = useDispatch(\"core/notices\");\n\n // clientIdに対応するインナーブロックを取得\n const innerBlocks = useSelect(\n (select) => select(\"core/block-editor\").getBlocks(clientId),\n [clientId]\n );\n\n // 前回の innerBlocks を保存するための ref\n const prevInnerBlocksRef = useRef(innerBlocks);\n\n useEffect(() => {\n const prevInnerBlocks = prevInnerBlocksRef.current;\n //先に保存したインナーブロックの中に対象となるブロックが存在しなければ何もしない\n const result = prevInnerBlocks.some((block) =>\n blockNames.includes(block.name)\n );\n\n if (result) {\n // ブロックが挿入されているか確認(前回と比較)\n if (innerBlocks.length > prevInnerBlocks.length) {\n // 新しく挿入されたブロックを特定\n const newlyInsertedBlock = innerBlocks.find(\n (block) =>\n !prevInnerBlocks.some(\n (prevBlock) => prevBlock.clientId === block.clientId\n )\n );\n\n // 新しいブロックが blockNames に含まれている場合、削除\n if (\n newlyInsertedBlock &&\n blockNames.includes(newlyInsertedBlock.name)\n ) {\n removeBlock(newlyInsertedBlock.clientId);\n\n // 通知を作成\n createNotice(\n \"error\", // 通知のタイプ(エラー)\n __(\n \"A new block cannot be inserted because a block has already been placed.\",\n \"block-collections\"\n ), // メッセージ\n {\n type: \"snackbar\", // 通知のスタイル\n isDismissible: true, // 通知を閉じることができるか\n }\n );\n }\n }\n }\n\n // 現在の innerBlocks を次回用に保存\n prevInnerBlocksRef.current = innerBlocks;\n }, [innerBlocks, blockNames, removeBlock, createNotice]);\n}\n"],"names":["useElementWidth","ref","useRef","width","setWidth","useState","useEffect","resizeObserver","ResizeObserver","entries","entry","contentRect","current","observe","disconnect","useIsMobile","isMobile","setIsMobile","window","handleResize","innerWidth","addEventListener","removeEventListener","useIsIframeMobile","checkIframeSize","iframeInstance","document","getElementsByName","contentWindow","useElementBackgroundColor","blockRef","style","baseColor","setBaseColor","backgroundColor","startsWith","computedStyles","getComputedStyle","useElementStyleObject","styleObject","setStyleObject","newStyleObject","Object","keys","reduce","acc","key","JSON","stringify","useDeepCompareEffect","callback","dependencies","dependenciesRef","isEqual","useFontawesomeIframe","iframeDocument","contentDocument","scriptElement","createElement","setAttribute","body","appendChild","_iframeDocument$body","removeChild","getFlattenBlocks","blocks","block","push","innerBlocks","length","useBlockAttributeChanges","clientId","blockName","className","modFlg","arguments","undefined","excludeAttributes","latestAttributes","setLatestAttributes","prevBlocksRef","updateBlockAttributes","useDispatch","flattenedBlocks","useSelect","select","getBlock","rootBlock","targetBlocks","filter","_block$attributes$cla","name","attributes","includes","_loop","_prevBlocksRef$curren","prevAttributes","filteredCurrentAttributes","hasOwnProperty","filteredPrevAttributes","_objectSpread","forEach","parse","useDuplicateBlockRemove","blockNames","removeBlock","createNotice","getBlocks","prevInnerBlocksRef","prevInnerBlocks","result","some","newlyInsertedBlock","find","prevBlock","__","type","isDismissible"],"mappings":"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"}
1
+ {"version":3,"file":"customFooks.js","sources":["../../src/customFooks.js"],"sourcesContent":["import { useRef, useEffect, useState } from \"@wordpress/element\";\nimport { useSelect, useDispatch } from \"@wordpress/data\";\nimport isEqual from \"lodash/isEqual\";\nimport { __ } from \"@wordpress/i18n\";\n\n//useRefで参照したDOM要素の大きさを取得するカスタムフック\nexport function useElementWidth() {\n const ref = useRef(null);\n const [width, setWidth] = useState(0);\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver((entries) => {\n for (let entry of entries) {\n setWidth(entry.contentRect.width);\n }\n });\n\n if (ref.current) {\n resizeObserver.observe(ref.current);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n }, []);\n\n return [ref, width];\n}\n\n//ViewPortの大きさでモバイルを判断(767px以下がモバイル)するカスタムフック\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n if (typeof window !== \"undefined\") {\n const handleResize = () => {\n setIsMobile(window.innerWidth <= 767);\n };\n\n window.addEventListener(\"resize\", handleResize);\n\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }\n }, []);\n\n return isMobile;\n}\n\n//モバイル表示か否かを判定するフック\nexport function useIsIframeMobile() {\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n // iframeのcontentWindowを監視する関数\n const checkIframeSize = () => {\n const iframeInstance = document.getElementsByName(\"editor-canvas\")[0];\n if (iframeInstance && iframeInstance.contentWindow) {\n setIsMobile(iframeInstance.contentWindow.innerWidth <= 767);\n }\n };\n\n // iframeのcontentWindowのリサイズイベントにリスナーを追加\n const iframeInstance = document.getElementsByName(\"editor-canvas\")[0];\n if (iframeInstance && iframeInstance.contentWindow) {\n iframeInstance.contentWindow.addEventListener(\"resize\", checkIframeSize);\n }\n\n // 初期チェックを実行\n checkIframeSize();\n\n // クリーンアップ関数\n return () => {\n if (iframeInstance && iframeInstance.contentWindow) {\n iframeInstance.contentWindow.removeEventListener(\n \"resize\",\n checkIframeSize,\n );\n }\n };\n }, []);\n\n return isMobile;\n}\n\n//ブロックの背景色を取得するカスタムフック\nexport function useElementBackgroundColor(blockRef, style) {\n const [baseColor, setBaseColor] = useState(\"\");\n\n useEffect(() => {\n if (blockRef.current && style) {\n if (\n style.backgroundColor &&\n !style.backgroundColor.startsWith(\"var(--wp\")\n ) {\n //backgroundColorが設定されており、それがカスタムプロパティでない\n setBaseColor(style.backgroundColor);\n } else {\n //レンダリング結果から背景色を取得\n if (blockRef.current) {\n const computedStyles = getComputedStyle(blockRef.current);\n setBaseColor(computedStyles.backgroundColor);\n }\n }\n }\n }, [style, blockRef]);\n\n return baseColor;\n}\n\n//ブロックのスタイルを取得し、コールバック関数を返すカスタムフック\nexport function useElementStyleObject(blockRef, style) {\n const [styleObject, setStyleObject] = useState(\"\");\n\n useEffect(() => {\n if (blockRef.current && style) {\n //レンダリング結果に基づくスタイルの取得\n const computedStyles = getComputedStyle(blockRef.current);\n // styleオブジェクトのキーに基づいてnewStyleObjectを生成\n const newStyleObject = Object.keys(style).reduce((acc, key) => {\n if (computedStyles[key]) {\n // computedStylesにキーが存在するか確認\n acc[key] = computedStyles[key];\n }\n return acc;\n }, {});\n\n setStyleObject(JSON.stringify(newStyleObject));\n }\n }, [blockRef, style]);\n // styleObjectをオブジェクトとして返す\n return styleObject;\n}\n\n//たくさんの要素をもつオブジェクトや配列の内容の変化で発火するuseEffect\nexport function useDeepCompareEffect(callback, dependencies) {\n const dependenciesRef = useRef();\n\n if (!isEqual(dependencies, dependenciesRef.current)) {\n dependenciesRef.current = dependencies;\n }\n\n useEffect(() => {\n return callback();\n }, [dependenciesRef.current]);\n}\n\nexport function useFontawesomeIframe() {\n //iframeにfontawesomeを読み込む\n useEffect(() => {\n const iframeInstance = document.getElementsByName(\"editor-canvas\")[0];\n\n if (iframeInstance) {\n const iframeDocument =\n iframeInstance.contentDocument || iframeInstance.contentWindow.document;\n const scriptElement = iframeDocument.createElement(\"script\");\n scriptElement.setAttribute(\"src\", \"../../../assets/fontawesome.js\");\n //scriptElement.setAttribute(\"crossorigin\", \"anonymous\");\n\n iframeDocument.body.appendChild(scriptElement);\n\n // Return a cleanup function to remove the script tag\n return () => {\n iframeDocument.body?.removeChild(scriptElement);\n };\n }\n }, []);\n}\n\n//ネストしたブロックを平坦化\nconst getFlattenBlocks = (blocks) => {\n return blocks.reduce((acc, block) => {\n acc.push(block);\n if (block.innerBlocks && block.innerBlocks.length > 0) {\n acc.push(...getFlattenBlocks(block.innerBlocks));\n }\n return acc;\n }, []);\n};\n\n//指定されたブロック名とクラス名を含むブロックの属性が更新されたときその更新内容をかえすフック\nexport function useBlockAttributeChanges(\n clientId,\n blockName,\n className,\n modFlg = false,\n excludeAttributes = {},\n) {\n const [latestAttributes, setLatestAttributes] = useState(null);\n //const [idleFlg, setIdleFlg] = useState(null);\n const prevBlocksRef = useRef({});\n\n //属性変更関数を取得\n const { updateBlockAttributes } = useDispatch(\"core/block-editor\");\n //インナーブロックを平坦化する関数\n const flattenedBlocks = useSelect(\n (select) => {\n const { getBlock } = select(\"core/block-editor\");\n const rootBlock = getBlock(clientId);\n return rootBlock ? getFlattenBlocks([rootBlock]) : [];\n },\n [clientId],\n );\n\n const targetBlocks = flattenedBlocks.filter(\n (block) =>\n block.name === blockName &&\n block.attributes.className?.includes(className),\n );\n\n useEffect(() => {\n //平坦化されたブロックを調査\n for (const block of targetBlocks) {\n const prevAttributes =\n prevBlocksRef.current[block.clientId]?.attributes || {};\n //既に先に記録された属性があることをチェック\n if (Object.keys(prevAttributes).length > 0) {\n // 除外する属性を取り除いた属性オブジェクトを作成\n const filteredCurrentAttributes = Object.keys(block.attributes).reduce(\n (acc, key) => {\n if (!excludeAttributes.hasOwnProperty(key)) {\n acc[key] = block.attributes[key];\n }\n return acc;\n },\n {},\n );\n\n const filteredPrevAttributes = Object.keys(prevAttributes).reduce(\n (acc, key) => {\n if (!excludeAttributes.hasOwnProperty(key)) {\n acc[key] = prevAttributes[key];\n }\n return acc;\n },\n {},\n );\n\n //属性の変化を比較\n if (\n JSON.stringify(filteredCurrentAttributes) !==\n JSON.stringify(filteredPrevAttributes)\n ) {\n //確認ダイアログが出ている状態か否かで状態変数を変化させる\n // if (block.attributes.isIdle) {\n // setIdleFlg(true);\n // } else {\n // setIdleFlg(false);\n // }\n //呼び出し元に返すための更新後の属性オブジェクトを格納\n\n setLatestAttributes(JSON.stringify(filteredCurrentAttributes));\n }\n }\n // 現在のブロック状態を保存(除外属性も含めて保存)\n prevBlocksRef.current[block.clientId] = { ...block };\n }\n }, [targetBlocks, blockName, className]);\n\n //innerFlattenedBlocks内の同一種のブロックに対して属性をセットする;\n useEffect(() => {\n //確認ダイアログが処理されたことを確認してからこちらの処理を進める\n if (latestAttributes && modFlg) {\n // const latestAttrObj = JSON.parse(latestAttributes);\n // const setObj = {\n // ...latestAttrObj,\n // className: `auto_attr_change ${latestAttrObj.className}`,\n // };\n targetBlocks.forEach((block) => {\n updateBlockAttributes(block.clientId, JSON.parse(latestAttributes));\n });\n }\n }, [latestAttributes]);\n\n return JSON.parse(latestAttributes);\n}\n\n//インナーブロックが挿入されたとき、指定されたブロック名が存在れば、挿入されたブロックを削除するフック\nexport function useDuplicateBlockRemove(clientId, blockNames) {\n const { removeBlock } = useDispatch(\"core/block-editor\");\n const { createNotice } = useDispatch(\"core/notices\");\n\n // clientIdに対応するインナーブロックを取得\n const innerBlocks = useSelect(\n (select) => select(\"core/block-editor\").getBlocks(clientId),\n [clientId],\n );\n\n // 前回の innerBlocks を保存するための ref\n const prevInnerBlocksRef = useRef(innerBlocks);\n\n useEffect(() => {\n const prevInnerBlocks = prevInnerBlocksRef.current;\n //先に保存したインナーブロックの中に対象となるブロックが存在しなければ何もしない\n const result = prevInnerBlocks.some((block) =>\n blockNames.includes(block.name),\n );\n\n if (result) {\n // ブロックが挿入されているか確認(前回と比較)\n if (innerBlocks.length > prevInnerBlocks.length) {\n // 新しく挿入されたブロックを特定\n const newlyInsertedBlock = innerBlocks.find(\n (block) =>\n !prevInnerBlocks.some(\n (prevBlock) => prevBlock.clientId === block.clientId,\n ),\n );\n\n // 新しいブロックが blockNames に含まれている場合、削除\n if (\n newlyInsertedBlock &&\n blockNames.includes(newlyInsertedBlock.name)\n ) {\n removeBlock(newlyInsertedBlock.clientId);\n\n // 通知を作成\n createNotice(\n \"error\", // 通知のタイプ(エラー)\n __(\n \"A new block cannot be inserted because a block has already been placed.\",\n \"block-collections\",\n ), // メッセージ\n {\n type: \"snackbar\", // 通知のスタイル\n isDismissible: true, // 通知を閉じることができるか\n },\n );\n }\n }\n }\n\n // 現在の innerBlocks を次回用に保存\n prevInnerBlocksRef.current = innerBlocks;\n }, [innerBlocks, blockNames, removeBlock, createNotice]);\n}\n"],"names":["useElementWidth","ref","useRef","width","setWidth","useState","useEffect","resizeObserver","ResizeObserver","entries","entry","contentRect","current","observe","disconnect","useIsMobile","isMobile","setIsMobile","window","handleResize","innerWidth","addEventListener","removeEventListener","useIsIframeMobile","checkIframeSize","iframeInstance","document","getElementsByName","contentWindow","useElementBackgroundColor","blockRef","style","baseColor","setBaseColor","backgroundColor","startsWith","computedStyles","getComputedStyle","useElementStyleObject","styleObject","setStyleObject","newStyleObject","Object","keys","reduce","acc","key","JSON","stringify","useDeepCompareEffect","callback","dependencies","dependenciesRef","isEqual","useFontawesomeIframe","iframeDocument","contentDocument","scriptElement","createElement","setAttribute","body","appendChild","_iframeDocument$body","removeChild","getFlattenBlocks","blocks","block","push","innerBlocks","length","useBlockAttributeChanges","clientId","blockName","className","modFlg","arguments","undefined","excludeAttributes","latestAttributes","setLatestAttributes","prevBlocksRef","updateBlockAttributes","useDispatch","flattenedBlocks","useSelect","select","getBlock","rootBlock","targetBlocks","filter","_block$attributes$cla","name","attributes","includes","_loop","_prevBlocksRef$curren","prevAttributes","filteredCurrentAttributes","hasOwnProperty","filteredPrevAttributes","_objectSpread","forEach","parse","useDuplicateBlockRemove","blockNames","removeBlock","createNotice","getBlocks","prevInnerBlocksRef","prevInnerBlocks","result","some","newlyInsertedBlock","find","prevBlock","__","type","isDismissible"],"mappings":"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"}
@@ -124,9 +124,6 @@ function _sendRegistrationRequest() {
124
124
  var root = window.wpApiSettings && window.wpApiSettings.root || "/wp-json/";
125
125
  url = root.replace(/\/+$/, "/") + url.replace(/^\/+/, "");
126
126
  }
127
- } else {
128
- // admin-ajax の既定URL
129
- if (!url) url = "/wp-admin/admin-ajax.php";
130
127
  }
131
128
  var fetchOptions = {
132
129
  method: "POST",
@@ -1 +1 @@
1
- {"version":3,"file":"shopfiApi.js","sources":["../../src/shopfiApi.js"],"sourcesContent":["function generateState() {\n const timestamp = Date.now().toString();\n const randomString = Math.random().toString(36).substring(2);\n return timestamp + randomString;\n}\n\nfunction generateNonce(length = 32) {\n const characters =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n let nonce = \"\";\n for (let i = 0; i < length; i++) {\n nonce += characters.charAt(Math.floor(Math.random() * characters.length));\n }\n return nonce;\n}\n\nfunction generateCodeVerifier(length = 128) {\n const charset =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~\";\n let result = \"\";\n for (let i = 0; i < length; i++) {\n result += charset.charAt(Math.floor(Math.random() * charset.length));\n }\n return result;\n}\n\nasync function generateCodeChallenge(codeVerifier) {\n const encoder = new TextEncoder();\n const data = encoder.encode(codeVerifier);\n const digest = await crypto.subtle.digest(\"SHA-256\", data);\n return btoa(String.fromCharCode(...new Uint8Array(digest)))\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\")\n .replace(/=+$/, \"\");\n}\n\n// ✅ Shopifyへの認証リダイレクト\nexport async function redirectCustomerAuthorize(\n shopId,\n clientId,\n userMail,\n callbackUri,\n redirectUri\n) {\n //呼び出し元の戻り先\n const statePayload = {\n ts: Date.now(),\n random: Math.random().toString(36).substring(2),\n return_url: redirectUri,\n };\n //stateで渡しておく\n const state = btoa(JSON.stringify(statePayload));\n const nonce = generateNonce();\n const codeVerifier = generateCodeVerifier();\n const codeChallenge = await generateCodeChallenge(codeVerifier);\n\n localStorage.setItem(\"shopify_code_verifier\", codeVerifier);\n localStorage.setItem(\"shopify_state\", state);\n localStorage.setItem(\"shopify_nonce\", nonce);\n localStorage.setItem(\"shopify_client_id\", clientId);\n localStorage.setItem(\"shopify_user_mail\", userMail);\n localStorage.setItem(\"shopify_shop_id\", shopId);\n localStorage.setItem(\"shopify_redirect_uri\", callbackUri); //ログアウトの処理で使用する\n\n const url = new URL(\n `https://shopify.com/authentication/${shopId}/oauth/authorize`\n );\n url.searchParams.append(\"scope\", \"openid email customer-account-api:full\");\n url.searchParams.append(\"client_id\", clientId);\n url.searchParams.append(\"response_type\", \"code\");\n url.searchParams.append(\"redirect_uri\", callbackUri);\n url.searchParams.append(\"state\", state);\n url.searchParams.append(\"nonce\", nonce);\n url.searchParams.append(\"code_challenge\", codeChallenge);\n url.searchParams.append(\"code_challenge_method\", \"S256\");\n\n window.location.href = url.toString();\n}\n\n// ✅ トークンがあれば検証(Storefront API 経由で customer を取得)\nexport async function checkCustomerLoginState() {\n const token = localStorage.getItem(\"shopify_customer_token\");\n\n if (!token) return false;\n\n const checkUrl = \"/wp-json/itmar-ec-relate/v1/shopify-login-check\";\n const postData = {\n nonce: itmar_option.nonce,\n token: JSON.stringify({ token }),\n };\n sendRegistrationAjax(checkUrl, postData, true)\n .done(function (res) {\n console.log(res);\n })\n .fail(function (xhr, status, error) {\n alert(\"サーバーエラー: \" + error);\n console.error(xhr.responseText);\n });\n}\n\n/**\n * @param {string} urlOrPath - RESTは '/itmar-shopify/v1/...' でも '/wp-json/...' でもOK。admin-ajaxは '/wp-admin/admin-ajax.php'\n * @param {object} data - 送信するデータ。nonce は data._wpnonce か data.nonce に入れておけばOK\n * @param {'auto'|'rest'|'ajax'} mode - 既定は 'auto'\n */\nexport async function sendRegistrationRequest(\n urlOrPath,\n data = {},\n mode = \"auto\"\n) {\n const isRestUrlLike = (u) =>\n u.startsWith(\"/wp-json\") || !u.startsWith(\"/wp-admin\");\n\n // 送信先の確定(RESTのときは /wp-json 省略パスでもOKにする)\n let isRest;\n if (mode === \"auto\") {\n isRest = isRestUrlLike(urlOrPath);\n } else {\n isRest = mode === \"rest\";\n }\n\n let url = urlOrPath;\n\n if (isRest) {\n // '/itmar-shopify/v1/...' のようなパスだけ渡されたら /wp-json を補う\n if (!url.startsWith(\"/wp-json\")) {\n const root =\n (window.wpApiSettings && window.wpApiSettings.root) || \"/wp-json/\";\n url = root.replace(/\\/+$/, \"/\") + url.replace(/^\\/+/, \"\");\n }\n } else {\n // admin-ajax の既定URL\n if (!url) url = \"/wp-admin/admin-ajax.php\";\n }\n\n const fetchOptions = {\n method: \"POST\",\n credentials: \"same-origin\", // 同一オリジン Cookie\n headers: {},\n };\n\n // ノンス抽出(_wpnonce を優先)\n const nonce =\n data._wpnonce ||\n data.nonce ||\n (window.wpApiSettings && window.wpApiSettings.nonce);\n\n if (isRest) {\n fetchOptions.headers[\"Content-Type\"] = \"application/json\";\n if (nonce) fetchOptions.headers[\"X-WP-Nonce\"] = nonce;\n\n // nonce系は本文から除く(任意)\n const { _wpnonce, nonce: _legacyNonce, ...rest } = data;\n fetchOptions.body = JSON.stringify(rest);\n } else {\n // admin-ajax は URLSearchParams で送る\n const form = new URLSearchParams();\n Object.entries(data).forEach(([k, v]) => {\n if (v !== undefined && v !== null) form.append(k, String(v));\n });\n // ノンスは _wpnonce に統一\n if (nonce && !form.has(\"_wpnonce\")) form.append(\"_wpnonce\", nonce);\n fetchOptions.body = form;\n }\n\n const res = await fetch(url, fetchOptions);\n\n // WP REST はメソッド不一致・ルートなし等でも JSON 返さないことがあるので分岐\n const contentType = res.headers.get(\"content-type\") || \"\";\n const tryJson = contentType.includes(\"application/json\");\n\n if (!res.ok) {\n let msg = `HTTP ${res.status}`;\n if (tryJson) {\n try {\n const j = await res.json();\n msg += j.message ? `: ${j.message}` : \"\";\n } catch {}\n } else {\n const t = await res.text();\n if (t) msg += `: ${t.slice(0, 200)}`;\n }\n throw new Error(msg);\n }\n\n return tryJson ? res.json() : res.text();\n}\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":"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"}
1
+ {"version":3,"file":"shopfiApi.js","sources":["../../src/shopfiApi.js"],"sourcesContent":["function generateState() {\n const timestamp = Date.now().toString();\n const randomString = Math.random().toString(36).substring(2);\n return timestamp + randomString;\n}\n\nfunction generateNonce(length = 32) {\n const characters =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n let nonce = \"\";\n for (let i = 0; i < length; i++) {\n nonce += characters.charAt(Math.floor(Math.random() * characters.length));\n }\n return nonce;\n}\n\nfunction generateCodeVerifier(length = 128) {\n const charset =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~\";\n let result = \"\";\n for (let i = 0; i < length; i++) {\n result += charset.charAt(Math.floor(Math.random() * charset.length));\n }\n return result;\n}\n\nasync function generateCodeChallenge(codeVerifier) {\n const encoder = new TextEncoder();\n const data = encoder.encode(codeVerifier);\n const digest = await crypto.subtle.digest(\"SHA-256\", data);\n return btoa(String.fromCharCode(...new Uint8Array(digest)))\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\")\n .replace(/=+$/, \"\");\n}\n\n// ✅ Shopifyへの認証リダイレクト\nexport async function redirectCustomerAuthorize(\n shopId,\n clientId,\n userMail,\n callbackUri,\n redirectUri,\n) {\n //呼び出し元の戻り先\n const statePayload = {\n ts: Date.now(),\n random: Math.random().toString(36).substring(2),\n return_url: redirectUri,\n };\n //stateで渡しておく\n const state = btoa(JSON.stringify(statePayload));\n const nonce = generateNonce();\n const codeVerifier = generateCodeVerifier();\n const codeChallenge = await generateCodeChallenge(codeVerifier);\n\n localStorage.setItem(\"shopify_code_verifier\", codeVerifier);\n localStorage.setItem(\"shopify_state\", state);\n localStorage.setItem(\"shopify_nonce\", nonce);\n localStorage.setItem(\"shopify_client_id\", clientId);\n localStorage.setItem(\"shopify_user_mail\", userMail);\n localStorage.setItem(\"shopify_shop_id\", shopId);\n localStorage.setItem(\"shopify_redirect_uri\", callbackUri); //ログアウトの処理で使用する\n\n const url = new URL(\n `https://shopify.com/authentication/${shopId}/oauth/authorize`,\n );\n url.searchParams.append(\"scope\", \"openid email customer-account-api:full\");\n url.searchParams.append(\"client_id\", clientId);\n url.searchParams.append(\"response_type\", \"code\");\n url.searchParams.append(\"redirect_uri\", callbackUri);\n url.searchParams.append(\"state\", state);\n url.searchParams.append(\"nonce\", nonce);\n url.searchParams.append(\"code_challenge\", codeChallenge);\n url.searchParams.append(\"code_challenge_method\", \"S256\");\n\n window.location.href = url.toString();\n}\n\n// ✅ トークンがあれば検証(Storefront API 経由で customer を取得)\nexport async function checkCustomerLoginState() {\n const token = localStorage.getItem(\"shopify_customer_token\");\n\n if (!token) return false;\n\n const checkUrl = \"/wp-json/itmar-ec-relate/v1/shopify-login-check\";\n const postData = {\n nonce: itmar_option.nonce,\n token: JSON.stringify({ token }),\n };\n sendRegistrationAjax(checkUrl, postData, true)\n .done(function (res) {\n console.log(res);\n })\n .fail(function (xhr, status, error) {\n alert(\"サーバーエラー: \" + error);\n console.error(xhr.responseText);\n });\n}\n\n/**\n * @param {string} urlOrPath - RESTは '/itmar-shopify/v1/...' でも '/wp-json/...' でもOK。admin-ajaxは '/wp-admin/admin-ajax.php'\n * @param {object} data - 送信するデータ。nonce は data._wpnonce か data.nonce に入れておけばOK\n * @param {'auto'|'rest'|'ajax'} mode - 既定は 'auto'\n */\nexport async function sendRegistrationRequest(\n urlOrPath,\n data = {},\n mode = \"auto\",\n) {\n const isRestUrlLike = (u) =>\n u.startsWith(\"/wp-json\") || !u.startsWith(\"/wp-admin\");\n\n // 送信先の確定(RESTのときは /wp-json 省略パスでもOKにする)\n let isRest;\n if (mode === \"auto\") {\n isRest = isRestUrlLike(urlOrPath);\n } else {\n isRest = mode === \"rest\";\n }\n\n let url = urlOrPath;\n\n if (isRest) {\n // '/itmar-shopify/v1/...' のようなパスだけ渡されたら /wp-json を補う\n if (!url.startsWith(\"/wp-json\")) {\n const root =\n (window.wpApiSettings && window.wpApiSettings.root) || \"/wp-json/\";\n url = root.replace(/\\/+$/, \"/\") + url.replace(/^\\/+/, \"\");\n }\n }\n\n const fetchOptions = {\n method: \"POST\",\n credentials: \"same-origin\", // 同一オリジン Cookie\n headers: {},\n };\n\n // ノンス抽出(_wpnonce を優先)\n const nonce =\n data._wpnonce ||\n data.nonce ||\n (window.wpApiSettings && window.wpApiSettings.nonce);\n\n if (isRest) {\n fetchOptions.headers[\"Content-Type\"] = \"application/json\";\n if (nonce) fetchOptions.headers[\"X-WP-Nonce\"] = nonce;\n\n // nonce系は本文から除く(任意)\n const { _wpnonce, nonce: _legacyNonce, ...rest } = data;\n fetchOptions.body = JSON.stringify(rest);\n } else {\n // admin-ajax は URLSearchParams で送る\n const form = new URLSearchParams();\n Object.entries(data).forEach(([k, v]) => {\n if (v !== undefined && v !== null) form.append(k, String(v));\n });\n // ノンスは _wpnonce に統一\n if (nonce && !form.has(\"_wpnonce\")) form.append(\"_wpnonce\", nonce);\n fetchOptions.body = form;\n }\n\n const res = await fetch(url, fetchOptions);\n\n // WP REST はメソッド不一致・ルートなし等でも JSON 返さないことがあるので分岐\n const contentType = res.headers.get(\"content-type\") || \"\";\n const tryJson = contentType.includes(\"application/json\");\n\n if (!res.ok) {\n let msg = `HTTP ${res.status}`;\n if (tryJson) {\n try {\n const j = await res.json();\n msg += j.message ? `: ${j.message}` : \"\";\n } catch {}\n } else {\n const t = await res.text();\n if (t) msg += `: ${t.slice(0, 200)}`;\n }\n throw new Error(msg);\n }\n\n return tryJson ? res.json() : res.text();\n}\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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"customFooks.js","sources":["../../src/customFooks.js"],"sourcesContent":["import { useRef, useEffect, useState } from \"@wordpress/element\";\nimport { useSelect, useDispatch } from \"@wordpress/data\";\nimport isEqual from \"lodash/isEqual\";\nimport { __ } from \"@wordpress/i18n\";\n\n//useRefで参照したDOM要素の大きさを取得するカスタムフック\nexport function useElementWidth() {\n const ref = useRef(null);\n const [width, setWidth] = useState(0);\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver((entries) => {\n for (let entry of entries) {\n setWidth(entry.contentRect.width);\n }\n });\n\n if (ref.current) {\n resizeObserver.observe(ref.current);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n }, []);\n\n return [ref, width];\n}\n\n//ViewPortの大きさでモバイルを判断(767px以下がモバイル)するカスタムフック\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n if (typeof window !== \"undefined\") {\n const handleResize = () => {\n setIsMobile(window.innerWidth <= 767);\n };\n\n window.addEventListener(\"resize\", handleResize);\n\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }\n }, []);\n\n return isMobile;\n}\n\n//モバイル表示か否かを判定するフック\nexport function useIsIframeMobile() {\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n // iframeのcontentWindowを監視する関数\n const checkIframeSize = () => {\n const iframeInstance = document.getElementsByName(\"editor-canvas\")[0];\n if (iframeInstance && iframeInstance.contentWindow) {\n setIsMobile(iframeInstance.contentWindow.innerWidth <= 767);\n }\n };\n\n // iframeのcontentWindowのリサイズイベントにリスナーを追加\n const iframeInstance = document.getElementsByName(\"editor-canvas\")[0];\n if (iframeInstance && iframeInstance.contentWindow) {\n iframeInstance.contentWindow.addEventListener(\"resize\", checkIframeSize);\n }\n\n // 初期チェックを実行\n checkIframeSize();\n\n // クリーンアップ関数\n return () => {\n if (iframeInstance && iframeInstance.contentWindow) {\n iframeInstance.contentWindow.removeEventListener(\n \"resize\",\n checkIframeSize\n );\n }\n };\n }, []);\n\n return isMobile;\n}\n\n//ブロックの背景色を取得するカスタムフック\nexport function useElementBackgroundColor(blockRef, style) {\n const [baseColor, setBaseColor] = useState(\"\");\n\n useEffect(() => {\n if (blockRef.current && style) {\n if (\n style.backgroundColor &&\n !style.backgroundColor.startsWith(\"var(--wp\")\n ) {\n //backgroundColorが設定されており、それがカスタムプロパティでない\n setBaseColor(style.backgroundColor);\n } else {\n //レンダリング結果から背景色を取得\n if (blockRef.current) {\n const computedStyles = getComputedStyle(blockRef.current);\n setBaseColor(computedStyles.backgroundColor);\n }\n }\n }\n }, [style, blockRef]);\n\n return baseColor;\n}\n\n//ブロックのスタイルを取得し、コールバック関数を返すカスタムフック\nexport function useElementStyleObject(blockRef, style) {\n const [styleObject, setStyleObject] = useState(\"\");\n\n useEffect(() => {\n if (blockRef.current && style) {\n //レンダリング結果に基づくスタイルの取得\n const computedStyles = getComputedStyle(blockRef.current);\n // styleオブジェクトのキーに基づいてnewStyleObjectを生成\n const newStyleObject = Object.keys(style).reduce((acc, key) => {\n if (computedStyles[key]) {\n // computedStylesにキーが存在するか確認\n acc[key] = computedStyles[key];\n }\n return acc;\n }, {});\n\n setStyleObject(JSON.stringify(newStyleObject));\n }\n }, [blockRef, style]);\n // styleObjectをオブジェクトとして返す\n return styleObject;\n}\n\n//たくさんの要素をもつオブジェクトや配列の内容の変化で発火するuseEffect\nexport function useDeepCompareEffect(callback, dependencies) {\n const dependenciesRef = useRef();\n\n if (!isEqual(dependencies, dependenciesRef.current)) {\n dependenciesRef.current = dependencies;\n }\n\n useEffect(() => {\n return callback();\n }, [dependenciesRef.current]);\n}\n\nexport function useFontawesomeIframe() {\n //iframeにfontawesomeを読み込む\n useEffect(() => {\n const iframeInstance = document.getElementsByName(\"editor-canvas\")[0];\n\n if (iframeInstance) {\n const iframeDocument =\n iframeInstance.contentDocument || iframeInstance.contentWindow.document;\n const scriptElement = iframeDocument.createElement(\"script\");\n scriptElement.setAttribute(\"src\", \"../../../assets/fontawesome.js\");\n //scriptElement.setAttribute(\"crossorigin\", \"anonymous\");\n\n iframeDocument.body.appendChild(scriptElement);\n\n // Return a cleanup function to remove the script tag\n return () => {\n iframeDocument.body?.removeChild(scriptElement);\n };\n }\n }, []);\n}\n\n//ネストしたブロックを平坦化\nconst getFlattenBlocks = (blocks) => {\n return blocks.reduce((acc, block) => {\n acc.push(block);\n if (block.innerBlocks && block.innerBlocks.length > 0) {\n acc.push(...getFlattenBlocks(block.innerBlocks));\n }\n return acc;\n }, []);\n};\n\n//指定されたブロック名とクラス名を含むブロックの属性が更新されたときその更新内容をかえすフック\nexport function useBlockAttributeChanges(\n clientId,\n blockName,\n className,\n modFlg = false,\n excludeAttributes = {}\n) {\n const [latestAttributes, setLatestAttributes] = useState(null);\n //const [idleFlg, setIdleFlg] = useState(null);\n const prevBlocksRef = useRef({});\n\n //属性変更関数を取得\n const { updateBlockAttributes } = useDispatch(\"core/block-editor\");\n //インナーブロックを平坦化する関数\n const flattenedBlocks = useSelect(\n (select) => {\n const { getBlock } = select(\"core/block-editor\");\n const rootBlock = getBlock(clientId);\n return rootBlock ? getFlattenBlocks([rootBlock]) : [];\n },\n [clientId]\n );\n\n const targetBlocks = flattenedBlocks.filter(\n (block) =>\n block.name === blockName &&\n block.attributes.className?.includes(className)\n );\n\n useEffect(() => {\n //平坦化されたブロックを調査\n for (const block of targetBlocks) {\n const prevAttributes =\n prevBlocksRef.current[block.clientId]?.attributes || {};\n //既に先に記録された属性があることをチェック\n if (Object.keys(prevAttributes).length > 0) {\n // 除外する属性を取り除いた属性オブジェクトを作成\n const filteredCurrentAttributes = Object.keys(block.attributes).reduce(\n (acc, key) => {\n if (!excludeAttributes.hasOwnProperty(key)) {\n acc[key] = block.attributes[key];\n }\n return acc;\n },\n {}\n );\n\n const filteredPrevAttributes = Object.keys(prevAttributes).reduce(\n (acc, key) => {\n if (!excludeAttributes.hasOwnProperty(key)) {\n acc[key] = prevAttributes[key];\n }\n return acc;\n },\n {}\n );\n\n //属性の変化を比較\n if (\n JSON.stringify(filteredCurrentAttributes) !==\n JSON.stringify(filteredPrevAttributes)\n ) {\n //確認ダイアログが出ている状態か否かで状態変数を変化させる\n // if (block.attributes.isIdle) {\n // setIdleFlg(true);\n // } else {\n // setIdleFlg(false);\n // }\n //呼び出し元に返すための更新後の属性オブジェクトを格納\n\n setLatestAttributes(JSON.stringify(filteredCurrentAttributes));\n }\n }\n // 現在のブロック状態を保存(除外属性も含めて保存)\n prevBlocksRef.current[block.clientId] = { ...block };\n }\n }, [targetBlocks, blockName, className]);\n\n //innerFlattenedBlocks内の同一種のブロックに対して属性をセットする;\n useEffect(() => {\n //確認ダイアログが処理されたことを確認してからこちらの処理を進める\n if (latestAttributes && modFlg) {\n // const latestAttrObj = JSON.parse(latestAttributes);\n // const setObj = {\n // ...latestAttrObj,\n // className: `auto_attr_change ${latestAttrObj.className}`,\n // };\n targetBlocks.forEach((block) => {\n updateBlockAttributes(block.clientId, JSON.parse(latestAttributes));\n });\n }\n }, [latestAttributes]);\n\n return JSON.parse(latestAttributes);\n}\n\n//インナーブロックが挿入されたとき、指定されたブロック名が存在れば、挿入されたブロックを削除するフック\nexport function useDuplicateBlockRemove(clientId, blockNames) {\n const { removeBlock } = useDispatch(\"core/block-editor\");\n const { createNotice } = useDispatch(\"core/notices\");\n\n // clientIdに対応するインナーブロックを取得\n const innerBlocks = useSelect(\n (select) => select(\"core/block-editor\").getBlocks(clientId),\n [clientId]\n );\n\n // 前回の innerBlocks を保存するための ref\n const prevInnerBlocksRef = useRef(innerBlocks);\n\n useEffect(() => {\n const prevInnerBlocks = prevInnerBlocksRef.current;\n //先に保存したインナーブロックの中に対象となるブロックが存在しなければ何もしない\n const result = prevInnerBlocks.some((block) =>\n blockNames.includes(block.name)\n );\n\n if (result) {\n // ブロックが挿入されているか確認(前回と比較)\n if (innerBlocks.length > prevInnerBlocks.length) {\n // 新しく挿入されたブロックを特定\n const newlyInsertedBlock = innerBlocks.find(\n (block) =>\n !prevInnerBlocks.some(\n (prevBlock) => prevBlock.clientId === block.clientId\n )\n );\n\n // 新しいブロックが blockNames に含まれている場合、削除\n if (\n newlyInsertedBlock &&\n blockNames.includes(newlyInsertedBlock.name)\n ) {\n removeBlock(newlyInsertedBlock.clientId);\n\n // 通知を作成\n createNotice(\n \"error\", // 通知のタイプ(エラー)\n __(\n \"A new block cannot be inserted because a block has already been placed.\",\n \"block-collections\"\n ), // メッセージ\n {\n type: \"snackbar\", // 通知のスタイル\n isDismissible: true, // 通知を閉じることができるか\n }\n );\n }\n }\n }\n\n // 現在の innerBlocks を次回用に保存\n prevInnerBlocksRef.current = innerBlocks;\n }, [innerBlocks, blockNames, removeBlock, createNotice]);\n}\n"],"names":["useElementWidth","ref","useRef","width","setWidth","useState","useEffect","resizeObserver","ResizeObserver","entries","entry","contentRect","current","observe","disconnect","useIsMobile","isMobile","setIsMobile","window","handleResize","innerWidth","addEventListener","removeEventListener","useIsIframeMobile","checkIframeSize","iframeInstance","document","getElementsByName","contentWindow","useElementBackgroundColor","blockRef","style","baseColor","setBaseColor","backgroundColor","startsWith","computedStyles","getComputedStyle","useElementStyleObject","styleObject","setStyleObject","newStyleObject","Object","keys","reduce","acc","key","JSON","stringify","useDeepCompareEffect","callback","dependencies","dependenciesRef","isEqual","useFontawesomeIframe","iframeDocument","contentDocument","scriptElement","createElement","setAttribute","body","appendChild","_iframeDocument$body","removeChild","getFlattenBlocks","blocks","block","push","innerBlocks","length","useBlockAttributeChanges","clientId","blockName","className","modFlg","arguments","undefined","excludeAttributes","latestAttributes","setLatestAttributes","prevBlocksRef","updateBlockAttributes","useDispatch","flattenedBlocks","useSelect","select","getBlock","rootBlock","targetBlocks","filter","_block$attributes$cla","name","attributes","includes","_loop","_prevBlocksRef$curren","prevAttributes","filteredCurrentAttributes","hasOwnProperty","filteredPrevAttributes","_objectSpread","forEach","parse","useDuplicateBlockRemove","blockNames","removeBlock","createNotice","getBlocks","prevInnerBlocksRef","prevInnerBlocks","result","some","newlyInsertedBlock","find","prevBlock","__","type","isDismissible"],"mappings":"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"}
1
+ {"version":3,"file":"customFooks.js","sources":["../../src/customFooks.js"],"sourcesContent":["import { useRef, useEffect, useState } from \"@wordpress/element\";\nimport { useSelect, useDispatch } from \"@wordpress/data\";\nimport isEqual from \"lodash/isEqual\";\nimport { __ } from \"@wordpress/i18n\";\n\n//useRefで参照したDOM要素の大きさを取得するカスタムフック\nexport function useElementWidth() {\n const ref = useRef(null);\n const [width, setWidth] = useState(0);\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver((entries) => {\n for (let entry of entries) {\n setWidth(entry.contentRect.width);\n }\n });\n\n if (ref.current) {\n resizeObserver.observe(ref.current);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n }, []);\n\n return [ref, width];\n}\n\n//ViewPortの大きさでモバイルを判断(767px以下がモバイル)するカスタムフック\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n if (typeof window !== \"undefined\") {\n const handleResize = () => {\n setIsMobile(window.innerWidth <= 767);\n };\n\n window.addEventListener(\"resize\", handleResize);\n\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }\n }, []);\n\n return isMobile;\n}\n\n//モバイル表示か否かを判定するフック\nexport function useIsIframeMobile() {\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n // iframeのcontentWindowを監視する関数\n const checkIframeSize = () => {\n const iframeInstance = document.getElementsByName(\"editor-canvas\")[0];\n if (iframeInstance && iframeInstance.contentWindow) {\n setIsMobile(iframeInstance.contentWindow.innerWidth <= 767);\n }\n };\n\n // iframeのcontentWindowのリサイズイベントにリスナーを追加\n const iframeInstance = document.getElementsByName(\"editor-canvas\")[0];\n if (iframeInstance && iframeInstance.contentWindow) {\n iframeInstance.contentWindow.addEventListener(\"resize\", checkIframeSize);\n }\n\n // 初期チェックを実行\n checkIframeSize();\n\n // クリーンアップ関数\n return () => {\n if (iframeInstance && iframeInstance.contentWindow) {\n iframeInstance.contentWindow.removeEventListener(\n \"resize\",\n checkIframeSize,\n );\n }\n };\n }, []);\n\n return isMobile;\n}\n\n//ブロックの背景色を取得するカスタムフック\nexport function useElementBackgroundColor(blockRef, style) {\n const [baseColor, setBaseColor] = useState(\"\");\n\n useEffect(() => {\n if (blockRef.current && style) {\n if (\n style.backgroundColor &&\n !style.backgroundColor.startsWith(\"var(--wp\")\n ) {\n //backgroundColorが設定されており、それがカスタムプロパティでない\n setBaseColor(style.backgroundColor);\n } else {\n //レンダリング結果から背景色を取得\n if (blockRef.current) {\n const computedStyles = getComputedStyle(blockRef.current);\n setBaseColor(computedStyles.backgroundColor);\n }\n }\n }\n }, [style, blockRef]);\n\n return baseColor;\n}\n\n//ブロックのスタイルを取得し、コールバック関数を返すカスタムフック\nexport function useElementStyleObject(blockRef, style) {\n const [styleObject, setStyleObject] = useState(\"\");\n\n useEffect(() => {\n if (blockRef.current && style) {\n //レンダリング結果に基づくスタイルの取得\n const computedStyles = getComputedStyle(blockRef.current);\n // styleオブジェクトのキーに基づいてnewStyleObjectを生成\n const newStyleObject = Object.keys(style).reduce((acc, key) => {\n if (computedStyles[key]) {\n // computedStylesにキーが存在するか確認\n acc[key] = computedStyles[key];\n }\n return acc;\n }, {});\n\n setStyleObject(JSON.stringify(newStyleObject));\n }\n }, [blockRef, style]);\n // styleObjectをオブジェクトとして返す\n return styleObject;\n}\n\n//たくさんの要素をもつオブジェクトや配列の内容の変化で発火するuseEffect\nexport function useDeepCompareEffect(callback, dependencies) {\n const dependenciesRef = useRef();\n\n if (!isEqual(dependencies, dependenciesRef.current)) {\n dependenciesRef.current = dependencies;\n }\n\n useEffect(() => {\n return callback();\n }, [dependenciesRef.current]);\n}\n\nexport function useFontawesomeIframe() {\n //iframeにfontawesomeを読み込む\n useEffect(() => {\n const iframeInstance = document.getElementsByName(\"editor-canvas\")[0];\n\n if (iframeInstance) {\n const iframeDocument =\n iframeInstance.contentDocument || iframeInstance.contentWindow.document;\n const scriptElement = iframeDocument.createElement(\"script\");\n scriptElement.setAttribute(\"src\", \"../../../assets/fontawesome.js\");\n //scriptElement.setAttribute(\"crossorigin\", \"anonymous\");\n\n iframeDocument.body.appendChild(scriptElement);\n\n // Return a cleanup function to remove the script tag\n return () => {\n iframeDocument.body?.removeChild(scriptElement);\n };\n }\n }, []);\n}\n\n//ネストしたブロックを平坦化\nconst getFlattenBlocks = (blocks) => {\n return blocks.reduce((acc, block) => {\n acc.push(block);\n if (block.innerBlocks && block.innerBlocks.length > 0) {\n acc.push(...getFlattenBlocks(block.innerBlocks));\n }\n return acc;\n }, []);\n};\n\n//指定されたブロック名とクラス名を含むブロックの属性が更新されたときその更新内容をかえすフック\nexport function useBlockAttributeChanges(\n clientId,\n blockName,\n className,\n modFlg = false,\n excludeAttributes = {},\n) {\n const [latestAttributes, setLatestAttributes] = useState(null);\n //const [idleFlg, setIdleFlg] = useState(null);\n const prevBlocksRef = useRef({});\n\n //属性変更関数を取得\n const { updateBlockAttributes } = useDispatch(\"core/block-editor\");\n //インナーブロックを平坦化する関数\n const flattenedBlocks = useSelect(\n (select) => {\n const { getBlock } = select(\"core/block-editor\");\n const rootBlock = getBlock(clientId);\n return rootBlock ? getFlattenBlocks([rootBlock]) : [];\n },\n [clientId],\n );\n\n const targetBlocks = flattenedBlocks.filter(\n (block) =>\n block.name === blockName &&\n block.attributes.className?.includes(className),\n );\n\n useEffect(() => {\n //平坦化されたブロックを調査\n for (const block of targetBlocks) {\n const prevAttributes =\n prevBlocksRef.current[block.clientId]?.attributes || {};\n //既に先に記録された属性があることをチェック\n if (Object.keys(prevAttributes).length > 0) {\n // 除外する属性を取り除いた属性オブジェクトを作成\n const filteredCurrentAttributes = Object.keys(block.attributes).reduce(\n (acc, key) => {\n if (!excludeAttributes.hasOwnProperty(key)) {\n acc[key] = block.attributes[key];\n }\n return acc;\n },\n {},\n );\n\n const filteredPrevAttributes = Object.keys(prevAttributes).reduce(\n (acc, key) => {\n if (!excludeAttributes.hasOwnProperty(key)) {\n acc[key] = prevAttributes[key];\n }\n return acc;\n },\n {},\n );\n\n //属性の変化を比較\n if (\n JSON.stringify(filteredCurrentAttributes) !==\n JSON.stringify(filteredPrevAttributes)\n ) {\n //確認ダイアログが出ている状態か否かで状態変数を変化させる\n // if (block.attributes.isIdle) {\n // setIdleFlg(true);\n // } else {\n // setIdleFlg(false);\n // }\n //呼び出し元に返すための更新後の属性オブジェクトを格納\n\n setLatestAttributes(JSON.stringify(filteredCurrentAttributes));\n }\n }\n // 現在のブロック状態を保存(除外属性も含めて保存)\n prevBlocksRef.current[block.clientId] = { ...block };\n }\n }, [targetBlocks, blockName, className]);\n\n //innerFlattenedBlocks内の同一種のブロックに対して属性をセットする;\n useEffect(() => {\n //確認ダイアログが処理されたことを確認してからこちらの処理を進める\n if (latestAttributes && modFlg) {\n // const latestAttrObj = JSON.parse(latestAttributes);\n // const setObj = {\n // ...latestAttrObj,\n // className: `auto_attr_change ${latestAttrObj.className}`,\n // };\n targetBlocks.forEach((block) => {\n updateBlockAttributes(block.clientId, JSON.parse(latestAttributes));\n });\n }\n }, [latestAttributes]);\n\n return JSON.parse(latestAttributes);\n}\n\n//インナーブロックが挿入されたとき、指定されたブロック名が存在れば、挿入されたブロックを削除するフック\nexport function useDuplicateBlockRemove(clientId, blockNames) {\n const { removeBlock } = useDispatch(\"core/block-editor\");\n const { createNotice } = useDispatch(\"core/notices\");\n\n // clientIdに対応するインナーブロックを取得\n const innerBlocks = useSelect(\n (select) => select(\"core/block-editor\").getBlocks(clientId),\n [clientId],\n );\n\n // 前回の innerBlocks を保存するための ref\n const prevInnerBlocksRef = useRef(innerBlocks);\n\n useEffect(() => {\n const prevInnerBlocks = prevInnerBlocksRef.current;\n //先に保存したインナーブロックの中に対象となるブロックが存在しなければ何もしない\n const result = prevInnerBlocks.some((block) =>\n blockNames.includes(block.name),\n );\n\n if (result) {\n // ブロックが挿入されているか確認(前回と比較)\n if (innerBlocks.length > prevInnerBlocks.length) {\n // 新しく挿入されたブロックを特定\n const newlyInsertedBlock = innerBlocks.find(\n (block) =>\n !prevInnerBlocks.some(\n (prevBlock) => prevBlock.clientId === block.clientId,\n ),\n );\n\n // 新しいブロックが blockNames に含まれている場合、削除\n if (\n newlyInsertedBlock &&\n blockNames.includes(newlyInsertedBlock.name)\n ) {\n removeBlock(newlyInsertedBlock.clientId);\n\n // 通知を作成\n createNotice(\n \"error\", // 通知のタイプ(エラー)\n __(\n \"A new block cannot be inserted because a block has already been placed.\",\n \"block-collections\",\n ), // メッセージ\n {\n type: \"snackbar\", // 通知のスタイル\n isDismissible: true, // 通知を閉じることができるか\n },\n );\n }\n }\n }\n\n // 現在の innerBlocks を次回用に保存\n prevInnerBlocksRef.current = innerBlocks;\n }, [innerBlocks, blockNames, removeBlock, createNotice]);\n}\n"],"names":["useElementWidth","ref","useRef","width","setWidth","useState","useEffect","resizeObserver","ResizeObserver","entries","entry","contentRect","current","observe","disconnect","useIsMobile","isMobile","setIsMobile","window","handleResize","innerWidth","addEventListener","removeEventListener","useIsIframeMobile","checkIframeSize","iframeInstance","document","getElementsByName","contentWindow","useElementBackgroundColor","blockRef","style","baseColor","setBaseColor","backgroundColor","startsWith","computedStyles","getComputedStyle","useElementStyleObject","styleObject","setStyleObject","newStyleObject","Object","keys","reduce","acc","key","JSON","stringify","useDeepCompareEffect","callback","dependencies","dependenciesRef","isEqual","useFontawesomeIframe","iframeDocument","contentDocument","scriptElement","createElement","setAttribute","body","appendChild","_iframeDocument$body","removeChild","getFlattenBlocks","blocks","block","push","innerBlocks","length","useBlockAttributeChanges","clientId","blockName","className","modFlg","arguments","undefined","excludeAttributes","latestAttributes","setLatestAttributes","prevBlocksRef","updateBlockAttributes","useDispatch","flattenedBlocks","useSelect","select","getBlock","rootBlock","targetBlocks","filter","_block$attributes$cla","name","attributes","includes","_loop","_prevBlocksRef$curren","prevAttributes","filteredCurrentAttributes","hasOwnProperty","filteredPrevAttributes","_objectSpread","forEach","parse","useDuplicateBlockRemove","blockNames","removeBlock","createNotice","getBlocks","prevInnerBlocksRef","prevInnerBlocks","result","some","newlyInsertedBlock","find","prevBlock","__","type","isDismissible"],"mappings":"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"}
@@ -122,9 +122,6 @@ function _sendRegistrationRequest() {
122
122
  var root = window.wpApiSettings && window.wpApiSettings.root || "/wp-json/";
123
123
  url = root.replace(/\/+$/, "/") + url.replace(/^\/+/, "");
124
124
  }
125
- } else {
126
- // admin-ajax の既定URL
127
- if (!url) url = "/wp-admin/admin-ajax.php";
128
125
  }
129
126
  var fetchOptions = {
130
127
  method: "POST",
@@ -1 +1 @@
1
- {"version":3,"file":"shopfiApi.js","sources":["../../src/shopfiApi.js"],"sourcesContent":["function generateState() {\n const timestamp = Date.now().toString();\n const randomString = Math.random().toString(36).substring(2);\n return timestamp + randomString;\n}\n\nfunction generateNonce(length = 32) {\n const characters =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n let nonce = \"\";\n for (let i = 0; i < length; i++) {\n nonce += characters.charAt(Math.floor(Math.random() * characters.length));\n }\n return nonce;\n}\n\nfunction generateCodeVerifier(length = 128) {\n const charset =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~\";\n let result = \"\";\n for (let i = 0; i < length; i++) {\n result += charset.charAt(Math.floor(Math.random() * charset.length));\n }\n return result;\n}\n\nasync function generateCodeChallenge(codeVerifier) {\n const encoder = new TextEncoder();\n const data = encoder.encode(codeVerifier);\n const digest = await crypto.subtle.digest(\"SHA-256\", data);\n return btoa(String.fromCharCode(...new Uint8Array(digest)))\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\")\n .replace(/=+$/, \"\");\n}\n\n// ✅ Shopifyへの認証リダイレクト\nexport async function redirectCustomerAuthorize(\n shopId,\n clientId,\n userMail,\n callbackUri,\n redirectUri\n) {\n //呼び出し元の戻り先\n const statePayload = {\n ts: Date.now(),\n random: Math.random().toString(36).substring(2),\n return_url: redirectUri,\n };\n //stateで渡しておく\n const state = btoa(JSON.stringify(statePayload));\n const nonce = generateNonce();\n const codeVerifier = generateCodeVerifier();\n const codeChallenge = await generateCodeChallenge(codeVerifier);\n\n localStorage.setItem(\"shopify_code_verifier\", codeVerifier);\n localStorage.setItem(\"shopify_state\", state);\n localStorage.setItem(\"shopify_nonce\", nonce);\n localStorage.setItem(\"shopify_client_id\", clientId);\n localStorage.setItem(\"shopify_user_mail\", userMail);\n localStorage.setItem(\"shopify_shop_id\", shopId);\n localStorage.setItem(\"shopify_redirect_uri\", callbackUri); //ログアウトの処理で使用する\n\n const url = new URL(\n `https://shopify.com/authentication/${shopId}/oauth/authorize`\n );\n url.searchParams.append(\"scope\", \"openid email customer-account-api:full\");\n url.searchParams.append(\"client_id\", clientId);\n url.searchParams.append(\"response_type\", \"code\");\n url.searchParams.append(\"redirect_uri\", callbackUri);\n url.searchParams.append(\"state\", state);\n url.searchParams.append(\"nonce\", nonce);\n url.searchParams.append(\"code_challenge\", codeChallenge);\n url.searchParams.append(\"code_challenge_method\", \"S256\");\n\n window.location.href = url.toString();\n}\n\n// ✅ トークンがあれば検証(Storefront API 経由で customer を取得)\nexport async function checkCustomerLoginState() {\n const token = localStorage.getItem(\"shopify_customer_token\");\n\n if (!token) return false;\n\n const checkUrl = \"/wp-json/itmar-ec-relate/v1/shopify-login-check\";\n const postData = {\n nonce: itmar_option.nonce,\n token: JSON.stringify({ token }),\n };\n sendRegistrationAjax(checkUrl, postData, true)\n .done(function (res) {\n console.log(res);\n })\n .fail(function (xhr, status, error) {\n alert(\"サーバーエラー: \" + error);\n console.error(xhr.responseText);\n });\n}\n\n/**\n * @param {string} urlOrPath - RESTは '/itmar-shopify/v1/...' でも '/wp-json/...' でもOK。admin-ajaxは '/wp-admin/admin-ajax.php'\n * @param {object} data - 送信するデータ。nonce は data._wpnonce か data.nonce に入れておけばOK\n * @param {'auto'|'rest'|'ajax'} mode - 既定は 'auto'\n */\nexport async function sendRegistrationRequest(\n urlOrPath,\n data = {},\n mode = \"auto\"\n) {\n const isRestUrlLike = (u) =>\n u.startsWith(\"/wp-json\") || !u.startsWith(\"/wp-admin\");\n\n // 送信先の確定(RESTのときは /wp-json 省略パスでもOKにする)\n let isRest;\n if (mode === \"auto\") {\n isRest = isRestUrlLike(urlOrPath);\n } else {\n isRest = mode === \"rest\";\n }\n\n let url = urlOrPath;\n\n if (isRest) {\n // '/itmar-shopify/v1/...' のようなパスだけ渡されたら /wp-json を補う\n if (!url.startsWith(\"/wp-json\")) {\n const root =\n (window.wpApiSettings && window.wpApiSettings.root) || \"/wp-json/\";\n url = root.replace(/\\/+$/, \"/\") + url.replace(/^\\/+/, \"\");\n }\n } else {\n // admin-ajax の既定URL\n if (!url) url = \"/wp-admin/admin-ajax.php\";\n }\n\n const fetchOptions = {\n method: \"POST\",\n credentials: \"same-origin\", // 同一オリジン Cookie\n headers: {},\n };\n\n // ノンス抽出(_wpnonce を優先)\n const nonce =\n data._wpnonce ||\n data.nonce ||\n (window.wpApiSettings && window.wpApiSettings.nonce);\n\n if (isRest) {\n fetchOptions.headers[\"Content-Type\"] = \"application/json\";\n if (nonce) fetchOptions.headers[\"X-WP-Nonce\"] = nonce;\n\n // nonce系は本文から除く(任意)\n const { _wpnonce, nonce: _legacyNonce, ...rest } = data;\n fetchOptions.body = JSON.stringify(rest);\n } else {\n // admin-ajax は URLSearchParams で送る\n const form = new URLSearchParams();\n Object.entries(data).forEach(([k, v]) => {\n if (v !== undefined && v !== null) form.append(k, String(v));\n });\n // ノンスは _wpnonce に統一\n if (nonce && !form.has(\"_wpnonce\")) form.append(\"_wpnonce\", nonce);\n fetchOptions.body = form;\n }\n\n const res = await fetch(url, fetchOptions);\n\n // WP REST はメソッド不一致・ルートなし等でも JSON 返さないことがあるので分岐\n const contentType = res.headers.get(\"content-type\") || \"\";\n const tryJson = contentType.includes(\"application/json\");\n\n if (!res.ok) {\n let msg = `HTTP ${res.status}`;\n if (tryJson) {\n try {\n const j = await res.json();\n msg += j.message ? `: ${j.message}` : \"\";\n } catch {}\n } else {\n const t = await res.text();\n if (t) msg += `: ${t.slice(0, 200)}`;\n }\n throw new Error(msg);\n }\n\n return tryJson ? res.json() : res.text();\n}\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":"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"}
1
+ {"version":3,"file":"shopfiApi.js","sources":["../../src/shopfiApi.js"],"sourcesContent":["function generateState() {\n const timestamp = Date.now().toString();\n const randomString = Math.random().toString(36).substring(2);\n return timestamp + randomString;\n}\n\nfunction generateNonce(length = 32) {\n const characters =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n let nonce = \"\";\n for (let i = 0; i < length; i++) {\n nonce += characters.charAt(Math.floor(Math.random() * characters.length));\n }\n return nonce;\n}\n\nfunction generateCodeVerifier(length = 128) {\n const charset =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~\";\n let result = \"\";\n for (let i = 0; i < length; i++) {\n result += charset.charAt(Math.floor(Math.random() * charset.length));\n }\n return result;\n}\n\nasync function generateCodeChallenge(codeVerifier) {\n const encoder = new TextEncoder();\n const data = encoder.encode(codeVerifier);\n const digest = await crypto.subtle.digest(\"SHA-256\", data);\n return btoa(String.fromCharCode(...new Uint8Array(digest)))\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\")\n .replace(/=+$/, \"\");\n}\n\n// ✅ Shopifyへの認証リダイレクト\nexport async function redirectCustomerAuthorize(\n shopId,\n clientId,\n userMail,\n callbackUri,\n redirectUri,\n) {\n //呼び出し元の戻り先\n const statePayload = {\n ts: Date.now(),\n random: Math.random().toString(36).substring(2),\n return_url: redirectUri,\n };\n //stateで渡しておく\n const state = btoa(JSON.stringify(statePayload));\n const nonce = generateNonce();\n const codeVerifier = generateCodeVerifier();\n const codeChallenge = await generateCodeChallenge(codeVerifier);\n\n localStorage.setItem(\"shopify_code_verifier\", codeVerifier);\n localStorage.setItem(\"shopify_state\", state);\n localStorage.setItem(\"shopify_nonce\", nonce);\n localStorage.setItem(\"shopify_client_id\", clientId);\n localStorage.setItem(\"shopify_user_mail\", userMail);\n localStorage.setItem(\"shopify_shop_id\", shopId);\n localStorage.setItem(\"shopify_redirect_uri\", callbackUri); //ログアウトの処理で使用する\n\n const url = new URL(\n `https://shopify.com/authentication/${shopId}/oauth/authorize`,\n );\n url.searchParams.append(\"scope\", \"openid email customer-account-api:full\");\n url.searchParams.append(\"client_id\", clientId);\n url.searchParams.append(\"response_type\", \"code\");\n url.searchParams.append(\"redirect_uri\", callbackUri);\n url.searchParams.append(\"state\", state);\n url.searchParams.append(\"nonce\", nonce);\n url.searchParams.append(\"code_challenge\", codeChallenge);\n url.searchParams.append(\"code_challenge_method\", \"S256\");\n\n window.location.href = url.toString();\n}\n\n// ✅ トークンがあれば検証(Storefront API 経由で customer を取得)\nexport async function checkCustomerLoginState() {\n const token = localStorage.getItem(\"shopify_customer_token\");\n\n if (!token) return false;\n\n const checkUrl = \"/wp-json/itmar-ec-relate/v1/shopify-login-check\";\n const postData = {\n nonce: itmar_option.nonce,\n token: JSON.stringify({ token }),\n };\n sendRegistrationAjax(checkUrl, postData, true)\n .done(function (res) {\n console.log(res);\n })\n .fail(function (xhr, status, error) {\n alert(\"サーバーエラー: \" + error);\n console.error(xhr.responseText);\n });\n}\n\n/**\n * @param {string} urlOrPath - RESTは '/itmar-shopify/v1/...' でも '/wp-json/...' でもOK。admin-ajaxは '/wp-admin/admin-ajax.php'\n * @param {object} data - 送信するデータ。nonce は data._wpnonce か data.nonce に入れておけばOK\n * @param {'auto'|'rest'|'ajax'} mode - 既定は 'auto'\n */\nexport async function sendRegistrationRequest(\n urlOrPath,\n data = {},\n mode = \"auto\",\n) {\n const isRestUrlLike = (u) =>\n u.startsWith(\"/wp-json\") || !u.startsWith(\"/wp-admin\");\n\n // 送信先の確定(RESTのときは /wp-json 省略パスでもOKにする)\n let isRest;\n if (mode === \"auto\") {\n isRest = isRestUrlLike(urlOrPath);\n } else {\n isRest = mode === \"rest\";\n }\n\n let url = urlOrPath;\n\n if (isRest) {\n // '/itmar-shopify/v1/...' のようなパスだけ渡されたら /wp-json を補う\n if (!url.startsWith(\"/wp-json\")) {\n const root =\n (window.wpApiSettings && window.wpApiSettings.root) || \"/wp-json/\";\n url = root.replace(/\\/+$/, \"/\") + url.replace(/^\\/+/, \"\");\n }\n }\n\n const fetchOptions = {\n method: \"POST\",\n credentials: \"same-origin\", // 同一オリジン Cookie\n headers: {},\n };\n\n // ノンス抽出(_wpnonce を優先)\n const nonce =\n data._wpnonce ||\n data.nonce ||\n (window.wpApiSettings && window.wpApiSettings.nonce);\n\n if (isRest) {\n fetchOptions.headers[\"Content-Type\"] = \"application/json\";\n if (nonce) fetchOptions.headers[\"X-WP-Nonce\"] = nonce;\n\n // nonce系は本文から除く(任意)\n const { _wpnonce, nonce: _legacyNonce, ...rest } = data;\n fetchOptions.body = JSON.stringify(rest);\n } else {\n // admin-ajax は URLSearchParams で送る\n const form = new URLSearchParams();\n Object.entries(data).forEach(([k, v]) => {\n if (v !== undefined && v !== null) form.append(k, String(v));\n });\n // ノンスは _wpnonce に統一\n if (nonce && !form.has(\"_wpnonce\")) form.append(\"_wpnonce\", nonce);\n fetchOptions.body = form;\n }\n\n const res = await fetch(url, fetchOptions);\n\n // WP REST はメソッド不一致・ルートなし等でも JSON 返さないことがあるので分岐\n const contentType = res.headers.get(\"content-type\") || \"\";\n const tryJson = contentType.includes(\"application/json\");\n\n if (!res.ok) {\n let msg = `HTTP ${res.status}`;\n if (tryJson) {\n try {\n const j = await res.json();\n msg += j.message ? `: ${j.message}` : \"\";\n } catch {}\n } else {\n const t = await res.text();\n if (t) msg += `: ${t.slice(0, 200)}`;\n }\n throw new Error(msg);\n }\n\n return tryJson ? res.json() : res.text();\n}\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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "itmar-block-packages",
3
- "version": "2.1.1",
3
+ "version": "2.1.2",
4
4
  "description": "We have put together a package of common React components used for WordPress custom blocks.",
5
5
  "main": "build/cjs/index.js",
6
6
  "module": "build/esm/index.js",