itmar-block-packages 1.10.1 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/README.md +1445 -1369
  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 +120 -125
  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":"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":";;;;;;AAKA;AACO,SAASA,eAAeA,GAAG;AAChC,EAAA,IAAMC,GAAG,GAAGC,MAAM,CAAC,IAAI,CAAC;EACxB,IAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGC,QAAQ,CAAC,CAAC,CAAC;AAErCC,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAMC,cAAc,GAAG,IAAIC,cAAc,CAAEC,OAAO,IAAK;AACrD,MAAA,KAAK,IAAIC,KAAK,IAAID,OAAO,EAAE;AACzBL,QAAAA,QAAQ,CAACM,KAAK,CAACC,WAAW,CAACR,KAAK,CAAC;AACnC,MAAA;AACF,IAAA,CAAC,CAAC;IAEF,IAAIF,GAAG,CAACW,OAAO,EAAE;AACfL,MAAAA,cAAc,CAACM,OAAO,CAACZ,GAAG,CAACW,OAAO,CAAC;AACrC,IAAA;AAEA,IAAA,OAAO,MAAM;MACXL,cAAc,CAACO,UAAU,EAAE;IAC7B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,OAAO,CAACb,GAAG,EAAEE,KAAK,CAAC;AACrB;;AAEA;AACO,SAASY,WAAWA,GAAG;EAC5B,IAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGZ,QAAQ,CAAC,KAAK,CAAC;AAE/CC,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI,OAAOY,MAAM,KAAK,WAAW,EAAE;MACjC,IAAMC,YAAY,GAAGA,MAAM;AACzBF,QAAAA,WAAW,CAACC,MAAM,CAACE,UAAU,IAAI,GAAG,CAAC;MACvC,CAAC;AAEDF,MAAAA,MAAM,CAACG,gBAAgB,CAAC,QAAQ,EAAEF,YAAY,CAAC;AAE/C,MAAA,OAAO,MAAM;AACXD,QAAAA,MAAM,CAACI,mBAAmB,CAAC,QAAQ,EAAEH,YAAY,CAAC;MACpD,CAAC;AACH,IAAA;EACF,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,OAAOH,QAAQ;AACjB;;AAEA;AACO,SAASO,iBAAiBA,GAAG;EAClC,IAAM,CAACP,QAAQ,EAAEC,WAAW,CAAC,GAAGZ,QAAQ,CAAC,KAAK,CAAC;AAE/CC,EAAAA,SAAS,CAAC,MAAM;AACd;IACA,IAAMkB,eAAe,GAAGA,MAAM;MAC5B,IAAMC,cAAc,GAAGC,QAAQ,CAACC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AACrE,MAAA,IAAIF,cAAc,IAAIA,cAAc,CAACG,aAAa,EAAE;QAClDX,WAAW,CAACQ,cAAc,CAACG,aAAa,CAACR,UAAU,IAAI,GAAG,CAAC;AAC7D,MAAA;IACF,CAAC;;AAED;IACA,IAAMK,cAAc,GAAGC,QAAQ,CAACC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AACrE,IAAA,IAAIF,cAAc,IAAIA,cAAc,CAACG,aAAa,EAAE;MAClDH,cAAc,CAACG,aAAa,CAACP,gBAAgB,CAAC,QAAQ,EAAEG,eAAe,CAAC;AAC1E,IAAA;;AAEA;AACAA,IAAAA,eAAe,EAAE;;AAEjB;AACA,IAAA,OAAO,MAAM;AACX,MAAA,IAAIC,cAAc,IAAIA,cAAc,CAACG,aAAa,EAAE;QAClDH,cAAc,CAACG,aAAa,CAACN,mBAAmB,CAC9C,QAAQ,EACRE,eACF,CAAC;AACH,MAAA;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,OAAOR,QAAQ;AACjB;;AAEA;AACO,SAASa,yBAAyBA,CAACC,QAAQ,EAAEC,KAAK,EAAE;EACzD,IAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAG5B,QAAQ,CAAC,EAAE,CAAC;AAE9CC,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIwB,QAAQ,CAAClB,OAAO,IAAImB,KAAK,EAAE;AAC7B,MAAA,IACEA,KAAK,CAACG,eAAe,IACrB,CAACH,KAAK,CAACG,eAAe,CAACC,UAAU,CAAC,UAAU,CAAC,EAC7C;AACA;AACAF,QAAAA,YAAY,CAACF,KAAK,CAACG,eAAe,CAAC;AACrC,MAAA,CAAC,MAAM;AACL;QACA,IAAIJ,QAAQ,CAAClB,OAAO,EAAE;AACpB,UAAA,IAAMwB,cAAc,GAAGC,gBAAgB,CAACP,QAAQ,CAAClB,OAAO,CAAC;AACzDqB,UAAAA,YAAY,CAACG,cAAc,CAACF,eAAe,CAAC;AAC9C,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA,CAAC,EAAE,CAACH,KAAK,EAAED,QAAQ,CAAC,CAAC;AAErB,EAAA,OAAOE,SAAS;AAClB;;AAEA;AACO,SAASM,qBAAqBA,CAACR,QAAQ,EAAEC,KAAK,EAAE;EACrD,IAAM,CAACQ,WAAW,EAAEC,cAAc,CAAC,GAAGnC,QAAQ,CAAC,EAAE,CAAC;AAElDC,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIwB,QAAQ,CAAClB,OAAO,IAAImB,KAAK,EAAE;AAC7B;AACA,MAAA,IAAMK,cAAc,GAAGC,gBAAgB,CAACP,QAAQ,CAAClB,OAAO,CAAC;AACzD;AACA,MAAA,IAAM6B,cAAc,GAAGC,MAAM,CAACC,IAAI,CAACZ,KAAK,CAAC,CAACa,MAAM,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAK;AAC7D,QAAA,IAAIV,cAAc,CAACU,GAAG,CAAC,EAAE;AACvB;AACAD,UAAAA,GAAG,CAACC,GAAG,CAAC,GAAGV,cAAc,CAACU,GAAG,CAAC;AAChC,QAAA;AACA,QAAA,OAAOD,GAAG;MACZ,CAAC,EAAE,EAAE,CAAC;AAENL,MAAAA,cAAc,CAACO,IAAI,CAACC,SAAS,CAACP,cAAc,CAAC,CAAC;AAChD,IAAA;AACF,EAAA,CAAC,EAAE,CAACX,QAAQ,EAAEC,KAAK,CAAC,CAAC;AACrB;AACA,EAAA,OAAOQ,WAAW;AACpB;;AAEA;AACO,SAASU,oBAAoBA,CAACC,QAAQ,EAAEC,YAAY,EAAE;AAC3D,EAAA,IAAMC,eAAe,GAAGlD,MAAM,EAAE;EAEhC,IAAI,CAACmD,OAAO,CAACF,YAAY,EAAEC,eAAe,CAACxC,OAAO,CAAC,EAAE;IACnDwC,eAAe,CAACxC,OAAO,GAAGuC,YAAY;AACxC,EAAA;AAEA7C,EAAAA,SAAS,CAAC,MAAM;IACd,OAAO4C,QAAQ,EAAE;AACnB,EAAA,CAAC,EAAE,CAACE,eAAe,CAACxC,OAAO,CAAC,CAAC;AAC/B;AAEO,SAAS0C,oBAAoBA,GAAG;AACrC;AACAhD,EAAAA,SAAS,CAAC,MAAM;IACd,IAAMmB,cAAc,GAAGC,QAAQ,CAACC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAErE,IAAA,IAAIF,cAAc,EAAE;MAClB,IAAM8B,cAAc,GAClB9B,cAAc,CAAC+B,eAAe,IAAI/B,cAAc,CAACG,aAAa,CAACF,QAAQ;AACzE,MAAA,IAAM+B,aAAa,GAAGF,cAAc,CAACG,aAAa,CAAC,QAAQ,CAAC;AAC5DD,MAAAA,aAAa,CAACE,YAAY,CAAC,KAAK,EAAE,gCAAgC,CAAC;AACnE;;AAEAJ,MAAAA,cAAc,CAACK,IAAI,CAACC,WAAW,CAACJ,aAAa,CAAC;;AAE9C;AACA,MAAA,OAAO,MAAM;AAAA,QAAA,IAAAK,oBAAA;AACX,QAAA,CAAAA,oBAAA,GAAAP,cAAc,CAACK,IAAI,MAAA,IAAA,IAAAE,oBAAA,KAAA,MAAA,IAAnBA,oBAAA,CAAqBC,WAAW,CAACN,aAAa,CAAC;MACjD,CAAC;AACH,IAAA;EACF,CAAC,EAAE,EAAE,CAAC;AACR;;AAEA;AACA,IAAMO,gBAAgB,GAAIC,MAAM,IAAK;EACnC,OAAOA,MAAM,CAACrB,MAAM,CAAC,CAACC,GAAG,EAAEqB,KAAK,KAAK;AACnCrB,IAAAA,GAAG,CAACsB,IAAI,CAACD,KAAK,CAAC;IACf,IAAIA,KAAK,CAACE,WAAW,IAAIF,KAAK,CAACE,WAAW,CAACC,MAAM,GAAG,CAAC,EAAE;MACrDxB,GAAG,CAACsB,IAAI,CAAC,GAAGH,gBAAgB,CAACE,KAAK,CAACE,WAAW,CAAC,CAAC;AAClD,IAAA;AACA,IAAA,OAAOvB,GAAG;EACZ,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;;AAED;AACO,SAASyB,wBAAwBA,CACtCC,QAAQ,EACRC,SAAS,EACTC,SAAS,EAGT;AAAA,EAAA,IAFAC,MAAM,GAAAC,SAAA,CAAAN,MAAA,GAAA,CAAA,IAAAM,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,KAAK;AAAA,EAAA,IACdE,iBAAiB,GAAAF,SAAA,CAAAN,MAAA,GAAA,CAAA,IAAAM,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;EAEtB,IAAM,CAACG,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG1E,QAAQ,CAAC,IAAI,CAAC;AAC9D;AACA,EAAA,IAAM2E,aAAa,GAAG9E,MAAM,CAAC,EAAE,CAAC;;AAEhC;EACA,IAAM;AAAE+E,IAAAA;AAAsB,GAAC,GAAGC,WAAW,CAAC,mBAAmB,CAAC;AAClE;AACA,EAAA,IAAMC,eAAe,GAAGC,SAAS,CAC9BC,MAAM,IAAK;IACV,IAAM;AAAEC,MAAAA;AAAS,KAAC,GAAGD,MAAM,CAAC,mBAAmB,CAAC;AAChD,IAAA,IAAME,SAAS,GAAGD,QAAQ,CAACf,QAAQ,CAAC;IACpC,OAAOgB,SAAS,GAAGvB,gBAAgB,CAAC,CAACuB,SAAS,CAAC,CAAC,GAAG,EAAE;AACvD,EAAA,CAAC,EACD,CAAChB,QAAQ,CACX,CAAC;AAED,EAAA,IAAMiB,YAAY,GAAGL,eAAe,CAACM,MAAM,CACxCvB,KAAK,IAAA;AAAA,IAAA,IAAAwB,qBAAA;IAAA,OACJxB,KAAK,CAACyB,IAAI,KAAKnB,SAAS,KAAA,CAAAkB,qBAAA,GACxBxB,KAAK,CAAC0B,UAAU,CAACnB,SAAS,cAAAiB,qBAAA,KAAA,MAAA,GAAA,MAAA,GAA1BA,qBAAA,CAA4BG,QAAQ,CAACpB,SAAS,CAAC,CAAA;AAAA,EAAA,CACnD,CAAC;AAEDnE,EAAAA,SAAS,CAAC,MAAM;AAAA,IAAA,IAAAwF,KAAA,GAAA,SAAAA,KAAAA,CAAA5B,KAAA,EAEoB;AAAA,MAAA,IAAA6B,qBAAA;MAChC,IAAMC,cAAc,GAClB,CAAA,CAAAD,qBAAA,GAAAf,aAAa,CAACpE,OAAO,CAACsD,KAAK,CAACK,QAAQ,CAAC,cAAAwB,qBAAA,KAAA,MAAA,GAAA,MAAA,GAArCA,qBAAA,CAAuCH,UAAU,KAAI,EAAE;AACzD;MACA,IAAIlD,MAAM,CAACC,IAAI,CAACqD,cAAc,CAAC,CAAC3B,MAAM,GAAG,CAAC,EAAE;AAC1C;AACA,QAAA,IAAM4B,yBAAyB,GAAGvD,MAAM,CAACC,IAAI,CAACuB,KAAK,CAAC0B,UAAU,CAAC,CAAChD,MAAM,CACpE,CAACC,GAAG,EAAEC,GAAG,KAAK;AACZ,UAAA,IAAI,CAAC+B,iBAAiB,CAACqB,cAAc,CAACpD,GAAG,CAAC,EAAE;YAC1CD,GAAG,CAACC,GAAG,CAAC,GAAGoB,KAAK,CAAC0B,UAAU,CAAC9C,GAAG,CAAC;AAClC,UAAA;AACA,UAAA,OAAOD,GAAG;QACZ,CAAC,EACD,EACF,CAAC;AAED,QAAA,IAAMsD,sBAAsB,GAAGzD,MAAM,CAACC,IAAI,CAACqD,cAAc,CAAC,CAACpD,MAAM,CAC/D,CAACC,GAAG,EAAEC,GAAG,KAAK;AACZ,UAAA,IAAI,CAAC+B,iBAAiB,CAACqB,cAAc,CAACpD,GAAG,CAAC,EAAE;AAC1CD,YAAAA,GAAG,CAACC,GAAG,CAAC,GAAGkD,cAAc,CAAClD,GAAG,CAAC;AAChC,UAAA;AACA,UAAA,OAAOD,GAAG;QACZ,CAAC,EACD,EACF,CAAC;;AAED;AACA,QAAA,IACEE,IAAI,CAACC,SAAS,CAACiD,yBAAyB,CAAC,KACzClD,IAAI,CAACC,SAAS,CAACmD,sBAAsB,CAAC,EACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEApB,UAAAA,mBAAmB,CAAChC,IAAI,CAACC,SAAS,CAACiD,yBAAyB,CAAC,CAAC;AAChE,QAAA;AACF,MAAA;AACA;MACAjB,aAAa,CAACpE,OAAO,CAACsD,KAAK,CAACK,QAAQ,CAAC,GAAA6B,cAAA,CAAA,EAAA,EAAQlC,KAAK,CAAE;IACtD,CAAC;AA7CD;IACA,KAAK,IAAMA,KAAK,IAAIsB,YAAY,EAAA;AAAAM,MAAAA,KAAA,CAAA5B,KAAA,CAAA;AAAA,IAAA;EA6ClC,CAAC,EAAE,CAACsB,YAAY,EAAEhB,SAAS,EAAEC,SAAS,CAAC,CAAC;;AAExC;AACAnE,EAAAA,SAAS,CAAC,MAAM;AACd;IACA,IAAIwE,gBAAgB,IAAIJ,MAAM,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACAc,MAAAA,YAAY,CAACa,OAAO,CAAEnC,KAAK,IAAK;QAC9Be,qBAAqB,CAACf,KAAK,CAACK,QAAQ,EAAExB,IAAI,CAACuD,KAAK,CAACxB,gBAAgB,CAAC,CAAC;AACrE,MAAA,CAAC,CAAC;AACJ,IAAA;AACF,EAAA,CAAC,EAAE,CAACA,gBAAgB,CAAC,CAAC;AAEtB,EAAA,OAAO/B,IAAI,CAACuD,KAAK,CAACxB,gBAAgB,CAAC;AACrC;;AAEA;AACO,SAASyB,uBAAuBA,CAAChC,QAAQ,EAAEiC,UAAU,EAAE;EAC5D,IAAM;AAAEC,IAAAA;AAAY,GAAC,GAAGvB,WAAW,CAAC,mBAAmB,CAAC;EACxD,IAAM;AAAEwB,IAAAA;AAAa,GAAC,GAAGxB,WAAW,CAAC,cAAc,CAAC;;AAEpD;AACA,EAAA,IAAMd,WAAW,GAAGgB,SAAS,CAC1BC,MAAM,IAAKA,MAAM,CAAC,mBAAmB,CAAC,CAACsB,SAAS,CAACpC,QAAQ,CAAC,EAC3D,CAACA,QAAQ,CACX,CAAC;;AAED;AACA,EAAA,IAAMqC,kBAAkB,GAAG1G,MAAM,CAACkE,WAAW,CAAC;AAE9C9D,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAMuG,eAAe,GAAGD,kBAAkB,CAAChG,OAAO;AAClD;AACA,IAAA,IAAMkG,MAAM,GAAGD,eAAe,CAACE,IAAI,CAAE7C,KAAK,IACxCsC,UAAU,CAACX,QAAQ,CAAC3B,KAAK,CAACyB,IAAI,CAChC,CAAC;AAED,IAAA,IAAImB,MAAM,EAAE;AACV;AACA,MAAA,IAAI1C,WAAW,CAACC,MAAM,GAAGwC,eAAe,CAACxC,MAAM,EAAE;AAC/C;QACA,IAAM2C,kBAAkB,GAAG5C,WAAW,CAAC6C,IAAI,CACxC/C,KAAK,IACJ,CAAC2C,eAAe,CAACE,IAAI,CAClBG,SAAS,IAAKA,SAAS,CAAC3C,QAAQ,KAAKL,KAAK,CAACK,QAC9C,CACJ,CAAC;;AAED;QACA,IACEyC,kBAAkB,IAClBR,UAAU,CAACX,QAAQ,CAACmB,kBAAkB,CAACrB,IAAI,CAAC,EAC5C;AACAc,UAAAA,WAAW,CAACO,kBAAkB,CAACzC,QAAQ,CAAC;;AAExC;AACAmC,UAAAA,YAAY,CACV,OAAO;AAAE;AACTS,UAAAA,EAAE,CACA,yEAAyE,EACzE,mBACF,CAAC;AAAE;AACH,UAAA;AACEC,YAAAA,IAAI,EAAE,UAAU;AAAE;YAClBC,aAAa,EAAE,IAAI;AACrB,WACF,CAAC;AACH,QAAA;AACF,MAAA;AACF,IAAA;;AAEA;IACAT,kBAAkB,CAAChG,OAAO,GAAGwD,WAAW;EAC1C,CAAC,EAAE,CAACA,WAAW,EAAEoC,UAAU,EAAEC,WAAW,EAAEC,YAAY,CAAC,CAAC;AAC1D;;;;"}
@@ -0,0 +1,157 @@
1
+ import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.js';
2
+ import { __ } from '@wordpress/i18n';
3
+ import { PanelBody, SelectControl, TextControl, PanelRow, RangeControl } from '@wordpress/components';
4
+ import { getSettings, format } from '@wordpress/date';
5
+
6
+ //日付のフォーマット
7
+ var dateFormats = [{
8
+ label: "YYYY-MM-DD HH:mm:ss",
9
+ value: "Y-m-d H:i:s"
10
+ }, {
11
+ label: "MM/DD/YYYY",
12
+ value: "m/d/Y"
13
+ }, {
14
+ label: "DD/MM/YYYY",
15
+ value: "d/m/Y"
16
+ }, {
17
+ label: "MMMM D, YYYY",
18
+ value: "F j, Y"
19
+ }, {
20
+ label: "HH:mm:ss",
21
+ value: "H:i:s"
22
+ }, {
23
+ label: "YYYY.M.D",
24
+ value: "Y.n.j"
25
+ }, {
26
+ label: "Day, MMMM D, YYYY",
27
+ value: "l, F j, Y"
28
+ }, {
29
+ label: "ddd, MMM D, YYYY",
30
+ value: "D, M j, Y"
31
+ }, {
32
+ label: "YYYY年M月D日 (曜日)",
33
+ value: "Y年n月j日 (l)"
34
+ }];
35
+ //プレーンのフォーマット
36
+ var plaineFormats = [{
37
+ key: "str_free",
38
+ label: __("Free String", "block-collections"),
39
+ value: "%s"
40
+ }, {
41
+ key: "num_comma",
42
+ label: __("Numbers (comma separated)", "block-collections"),
43
+ value: {
44
+ style: "decimal",
45
+ useGrouping: true // カンマ区切り
46
+ }
47
+ }, {
48
+ key: "num_no_comma",
49
+ label: __("Numbers (no commas)", "block-collections"),
50
+ value: {
51
+ style: "decimal",
52
+ useGrouping: false
53
+ }
54
+ }, {
55
+ key: "num_amount",
56
+ label: __("Amount", "block-collections"),
57
+ value: {
58
+ style: "currency",
59
+ currency: "JPY"
60
+ }
61
+ }];
62
+ var FormatSelectControl = _ref => {
63
+ var {
64
+ titleType,
65
+ userFormat,
66
+ freeStrFormat,
67
+ decimal,
68
+ onFormatChange
69
+ } = _ref;
70
+ var isPlaine = titleType === "plaine";
71
+ var isDate = titleType === "date";
72
+ var isUser = titleType === "user";
73
+
74
+ //SelectControlのオプションを生成
75
+ var options = isDate ? dateFormats : plaineFormats.map(f => ({
76
+ label: f.label,
77
+ value: f.key
78
+ }));
79
+ return /*#__PURE__*/React.createElement(PanelBody, {
80
+ title: __("Display Format Setting", "block-collections")
81
+ }, (isPlaine || isDate) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SelectControl, {
82
+ label: __("Select Format", "block-collections"),
83
+ value: userFormat,
84
+ options: options,
85
+ onChange: newFormat => onFormatChange({
86
+ userFormat: newFormat,
87
+ freeStrFormat,
88
+ decimal
89
+ })
90
+ }), (userFormat === null || userFormat === void 0 ? void 0 : userFormat.startsWith("str_")) && /*#__PURE__*/React.createElement(TextControl, {
91
+ label: __("String Format", "block-collections"),
92
+ value: freeStrFormat,
93
+ onChange: newFormat => onFormatChange({
94
+ userFormat,
95
+ freeStrFormat: newFormat,
96
+ decimal
97
+ })
98
+ }), (userFormat === null || userFormat === void 0 ? void 0 : userFormat.startsWith("num_")) && /*#__PURE__*/React.createElement(PanelRow, {
99
+ className: "itmar_post_blocks_pannel"
100
+ }, /*#__PURE__*/React.createElement(RangeControl, {
101
+ value: decimal,
102
+ label: __("Decimal Num", "query-blocks"),
103
+ max: 5,
104
+ min: 0,
105
+ onChange: val => onFormatChange({
106
+ userFormat,
107
+ freeStrFormat,
108
+ decimal: val
109
+ })
110
+ }))), isUser && /*#__PURE__*/React.createElement(TextControl, {
111
+ label: __("User Format", "block-collections"),
112
+ value: freeStrFormat,
113
+ onChange: newFormat => onFormatChange({
114
+ userFormat: "str_free",
115
+ freeStrFormat: newFormat,
116
+ decimal
117
+ })
118
+ }));
119
+ };
120
+ var displayFormated = (content, userFormat, freeStrFormat, decimal) => {
121
+ var _getSettings$l10n, _plaineFormats$find;
122
+ // 内部で使用するロケール
123
+ var locale = ((_getSettings$l10n = getSettings().l10n) === null || _getSettings$l10n === void 0 ? void 0 : _getSettings$l10n.locale) || "en";
124
+
125
+ //日付にフォーマットがあれば、それで書式設定してリターン
126
+ var isDateFormat = dateFormats.find(f => f.value === userFormat);
127
+ if (isDateFormat) {
128
+ var ret_val = format(userFormat, content, getSettings());
129
+ return ret_val;
130
+ }
131
+ //数値や文字列のフォーマット
132
+ var selectedFormat = (_plaineFormats$find = plaineFormats.find(f => f.key === userFormat)) === null || _plaineFormats$find === void 0 ? void 0 : _plaineFormats$find.value;
133
+ if (typeof selectedFormat === "object") {
134
+ // Intl.NumberFormat オプション
135
+ try {
136
+ var numeric = parseFloat(content);
137
+ // `selectedFormat` を元に新しいフォーマット設定を生成(mutateしない)
138
+ var options = _objectSpread2({}, selectedFormat);
139
+ if (typeof decimal === "number" && decimal > 0) {
140
+ options.minimumFractionDigits = decimal;
141
+ options.maximumFractionDigits = decimal;
142
+ }
143
+ var formatter = new Intl.NumberFormat(locale, options);
144
+ return formatter.format(numeric);
145
+ } catch (e) {
146
+ console.warn("Number format failed:", e);
147
+ return content;
148
+ }
149
+ } else if (typeof selectedFormat === "string") {
150
+ return freeStrFormat.replace("%s", content);
151
+ }
152
+ //フォーマットが見つからないときはそのまま返す
153
+ return content;
154
+ };
155
+
156
+ export { FormatSelectControl, displayFormated };
157
+ //# sourceMappingURL=formatCreate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatCreate.js","sources":["../../src/formatCreate.js"],"sourcesContent":["import { __ } from \"@wordpress/i18n\";\nimport {\n PanelBody,\n PanelRow,\n RangeControl,\n TextControl,\n SelectControl,\n} from \"@wordpress/components\";\nimport { format, getSettings } from \"@wordpress/date\";\n\n//日付のフォーマット\nconst dateFormats = [\n { label: \"YYYY-MM-DD HH:mm:ss\", value: \"Y-m-d H:i:s\" },\n { label: \"MM/DD/YYYY\", value: \"m/d/Y\" },\n { label: \"DD/MM/YYYY\", value: \"d/m/Y\" },\n { label: \"MMMM D, YYYY\", value: \"F j, Y\" },\n { label: \"HH:mm:ss\", value: \"H:i:s\" },\n { label: \"YYYY.M.D\", value: \"Y.n.j\" },\n { label: \"Day, MMMM D, YYYY\", value: \"l, F j, Y\" },\n { label: \"ddd, MMM D, YYYY\", value: \"D, M j, Y\" },\n { label: \"YYYY年M月D日 (曜日)\", value: \"Y年n月j日 (l)\" },\n];\n//プレーンのフォーマット\nconst plaineFormats = [\n {\n key: \"str_free\",\n label: __(\"Free String\", \"block-collections\"),\n value: \"%s\",\n },\n {\n key: \"num_comma\",\n label: __(\"Numbers (comma separated)\", \"block-collections\"),\n value: {\n style: \"decimal\",\n useGrouping: true, // カンマ区切り\n },\n },\n {\n key: \"num_no_comma\",\n label: __(\"Numbers (no commas)\", \"block-collections\"),\n value: {\n style: \"decimal\",\n useGrouping: false,\n },\n },\n {\n key: \"num_amount\",\n label: __(\"Amount\", \"block-collections\"),\n value: {\n style: \"currency\",\n currency: \"JPY\",\n },\n },\n];\n\nexport const FormatSelectControl = ({\n titleType,\n userFormat,\n freeStrFormat,\n decimal,\n onFormatChange,\n}) => {\n const isPlaine = titleType === \"plaine\";\n const isDate = titleType === \"date\";\n const isUser = titleType === \"user\";\n\n //SelectControlのオプションを生成\n const options = isDate\n ? dateFormats\n : plaineFormats.map((f) => ({ label: f.label, value: f.key }));\n\n return (\n <PanelBody title={__(\"Display Format Setting\", \"block-collections\")}>\n {(isPlaine || isDate) && (\n <>\n <SelectControl\n label={__(\"Select Format\", \"block-collections\")}\n value={userFormat}\n options={options}\n onChange={(newFormat) =>\n onFormatChange({\n userFormat: newFormat,\n freeStrFormat,\n decimal,\n })\n }\n />\n\n {userFormat?.startsWith(\"str_\") && (\n <TextControl\n label={__(\"String Format\", \"block-collections\")}\n value={freeStrFormat}\n onChange={(newFormat) =>\n onFormatChange({\n userFormat,\n freeStrFormat: newFormat,\n decimal,\n })\n }\n />\n )}\n {userFormat?.startsWith(\"num_\") && (\n <PanelRow className=\"itmar_post_blocks_pannel\">\n <RangeControl\n value={decimal}\n label={__(\"Decimal Num\", \"query-blocks\")}\n max={5}\n min={0}\n onChange={(val) =>\n onFormatChange({\n userFormat,\n freeStrFormat,\n decimal: val,\n })\n }\n />\n </PanelRow>\n )}\n </>\n )}\n\n {isUser && (\n <TextControl\n label={__(\"User Format\", \"block-collections\")}\n value={freeStrFormat}\n onChange={(newFormat) =>\n onFormatChange({\n userFormat: \"str_free\",\n freeStrFormat: newFormat,\n decimal,\n })\n }\n />\n )}\n </PanelBody>\n );\n};\n\nexport const displayFormated = (\n content,\n userFormat,\n freeStrFormat,\n decimal\n) => {\n // 内部で使用するロケール\n const locale = getSettings().l10n?.locale || \"en\";\n\n //日付にフォーマットがあれば、それで書式設定してリターン\n const isDateFormat = dateFormats.find((f) => f.value === userFormat);\n if (isDateFormat) {\n const ret_val = format(userFormat, content, getSettings());\n return ret_val;\n }\n //数値や文字列のフォーマット\n const selectedFormat = plaineFormats.find((f) => f.key === userFormat)?.value;\n if (typeof selectedFormat === \"object\") {\n // Intl.NumberFormat オプション\n try {\n const numeric = parseFloat(content);\n // `selectedFormat` を元に新しいフォーマット設定を生成(mutateしない)\n const options = { ...selectedFormat };\n\n if (typeof decimal === \"number\" && decimal > 0) {\n options.minimumFractionDigits = decimal;\n options.maximumFractionDigits = decimal;\n }\n\n const formatter = new Intl.NumberFormat(locale, options);\n return formatter.format(numeric);\n } catch (e) {\n console.warn(\"Number format failed:\", e);\n return content;\n }\n } else if (typeof selectedFormat === \"string\") {\n return freeStrFormat.replace(\"%s\", content);\n }\n //フォーマットが見つからないときはそのまま返す\n return content;\n};\n"],"names":["dateFormats","label","value","plaineFormats","key","__","style","useGrouping","currency","FormatSelectControl","_ref","titleType","userFormat","freeStrFormat","decimal","onFormatChange","isPlaine","isDate","isUser","options","map","f","React","createElement","PanelBody","title","Fragment","SelectControl","onChange","newFormat","startsWith","TextControl","PanelRow","className","RangeControl","max","min","val","displayFormated","content","_getSettings$l10n","_plaineFormats$find","locale","getSettings","l10n","isDateFormat","find","ret_val","format","selectedFormat","numeric","parseFloat","_objectSpread","minimumFractionDigits","maximumFractionDigits","formatter","Intl","NumberFormat","e","console","warn","replace"],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ var createRGB = inputStr => {
2
+ //16進数変換の関数
3
+ function componentToHex(c) {
4
+ var hex = parseInt(c, 10).toString(16);
5
+ return hex.length === 1 ? "0" + hex : hex;
6
+ }
7
+ var resultStr;
8
+ var rgb = [];
9
+
10
+ // #000000 形式の場合
11
+ if (/^#[0-9a-fA-F]{6}$/.test(inputStr)) {
12
+ rgb = [inputStr.slice(1, 3), inputStr.slice(3, 5), inputStr.slice(5, 7)];
13
+ }
14
+ // rgb(0,0,0) 形式の場合
15
+ else if (resultStr = inputStr.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/)) {
16
+ rgb = [componentToHex(resultStr[1]), componentToHex(resultStr[2]), componentToHex(resultStr[3])];
17
+ } else {
18
+ // サポートされていない形式の場合はデフォルトの値を設定する
19
+ rgb = ["ff", "ff", "ff"];
20
+ }
21
+ return rgb;
22
+ };
23
+ function hslToRgb16(hue, saturation, lightness) {
24
+ var result = false;
25
+ if ((hue || hue === 0) && hue <= 360 && (saturation || saturation === 0) && saturation <= 100 && (lightness || lightness === 0) && lightness <= 100) {
26
+ var red = 0,
27
+ green = 0,
28
+ blue = 0,
29
+ q = 0,
30
+ p = 0,
31
+ hueToRgb;
32
+ hue = Number(hue) / 360;
33
+ saturation = Number(saturation) / 100;
34
+ lightness = Number(lightness) / 100;
35
+ if (saturation === 0) {
36
+ red = lightness;
37
+ green = lightness;
38
+ blue = lightness;
39
+ } else {
40
+ hueToRgb = function hueToRgb(p, q, t) {
41
+ if (t < 0) t += 1;
42
+ if (t > 1) t -= 1;
43
+ if (t < 1 / 6) {
44
+ p += (q - p) * 6 * t;
45
+ } else if (t < 1 / 2) {
46
+ p = q;
47
+ } else if (t < 2 / 3) {
48
+ p += (q - p) * (2 / 3 - t) * 6;
49
+ }
50
+ return p;
51
+ };
52
+ if (lightness < 0.5) {
53
+ q = lightness * (1 + saturation);
54
+ } else {
55
+ q = lightness + saturation - lightness * saturation;
56
+ }
57
+ p = 2 * lightness - q;
58
+ red = hueToRgb(p, q, hue + 1 / 3);
59
+ green = hueToRgb(p, q, hue);
60
+ blue = hueToRgb(p, q, hue - 1 / 3);
61
+ }
62
+ result = "#".concat(Math.round(red * 255).toString(16).padStart(2, '0')).concat(Math.round(green * 255).toString(16).padStart(2, '0')).concat(Math.round(blue * 255).toString(16).padStart(2, '0'));
63
+ }
64
+ return result;
65
+ }
66
+ function rgb16ToHsl(strRgb16) {
67
+ var rgb = createRGB(strRgb16);
68
+ var red = rgb[0];
69
+ var green = rgb[1];
70
+ var blue = rgb[2];
71
+ var result = false;
72
+ if ((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)) {
73
+ var hue = 0,
74
+ saturation = 0,
75
+ lightness = 0,
76
+ max = 0,
77
+ min = 0,
78
+ diff = 0;
79
+ red = parseInt(red, 16) / 255;
80
+ green = parseInt(green, 16) / 255;
81
+ blue = parseInt(blue, 16) / 255;
82
+ max = Math.max(red, green, blue);
83
+ min = Math.min(red, green, blue);
84
+ lightness = (max + min) / 2;
85
+ if (max !== min) {
86
+ diff = max - min;
87
+ if (lightness > 0.5) {
88
+ saturation = diff / (2 - max - min);
89
+ } else {
90
+ saturation = diff / (max + min);
91
+ }
92
+ if (max === red) {
93
+ hue = (green - blue) / diff;
94
+ } else if (max === green) {
95
+ hue = 2 + (blue - red) / diff;
96
+ } else {
97
+ hue = 4 + (red - green) / diff;
98
+ }
99
+ hue /= 6;
100
+ }
101
+ result = {
102
+ hue: Math.round(hue * 360),
103
+ saturation: Math.round(saturation * 100),
104
+ lightness: Math.round(lightness * 100)
105
+ };
106
+ }
107
+ return result;
108
+ }
109
+ function HexToRGB(strRgb16) {
110
+ var rgb = createRGB(strRgb16);
111
+ var red = rgb[0];
112
+ var green = rgb[1];
113
+ var blue = rgb[2];
114
+ var result = false;
115
+ if ((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)) {
116
+ red = parseInt(red, 16);
117
+ green = parseInt(green, 16);
118
+ blue = parseInt(blue, 16);
119
+ result = {
120
+ red: Math.round(red),
121
+ green: Math.round(green),
122
+ blue: Math.round(blue)
123
+ };
124
+ }
125
+ return result;
126
+ }
127
+
128
+ export { HexToRGB, hslToRgb16, rgb16ToHsl };
129
+ //# sourceMappingURL=hslToRgb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hslToRgb.js","sources":["../../src/hslToRgb.js"],"sourcesContent":["const createRGB = (inputStr) => {\n\t//16進数変換の関数\n\tfunction componentToHex(c) {\n\t\tconst hex = parseInt(c, 10).toString(16);\n\t\treturn hex.length === 1 ? \"0\" + hex : hex;\n\t}\n\n\tlet resultStr;\n\tlet rgb = [];\n\n\t// #000000 形式の場合\n\tif (/^#[0-9a-fA-F]{6}$/.test(inputStr)) {\n\t\trgb = [\n\t\t\tinputStr.slice(1, 3),\n\t\t\tinputStr.slice(3, 5),\n\t\t\tinputStr.slice(5, 7)\n\t\t];\n\t}\n\t// rgb(0,0,0) 形式の場合\n\telse if ((resultStr = inputStr.match(/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/))) {\n\t\trgb = [\n\t\t\tcomponentToHex(resultStr[1]),\n\t\t\tcomponentToHex(resultStr[2]),\n\t\t\tcomponentToHex(resultStr[3])\n\t\t];\n\t} else {\n\t\t// サポートされていない形式の場合はデフォルトの値を設定する\n\t\trgb = [\"ff\", \"ff\", \"ff\"];\n\t}\n\treturn rgb;\n}\n\nexport function hslToRgb16(hue, saturation, lightness) {\n\tvar result = false;\n\n\tif (((hue || hue === 0) && hue <= 360) && ((saturation || saturation === 0) && saturation <= 100) && ((lightness || lightness === 0) && lightness <= 100)) {\n\t\tvar red = 0,\n\t\t\tgreen = 0,\n\t\t\tblue = 0,\n\t\t\tq = 0,\n\t\t\tp = 0,\n\t\t\thueToRgb;\n\n\t\thue = Number(hue) / 360;\n\t\tsaturation = Number(saturation) / 100;\n\t\tlightness = Number(lightness) / 100;\n\n\t\tif (saturation === 0) {\n\t\t\tred = lightness;\n\t\t\tgreen = lightness;\n\t\t\tblue = lightness;\n\t\t} else {\n\t\t\thueToRgb = function (p, q, t) {\n\t\t\t\tif (t < 0) t += 1;\n\t\t\t\tif (t > 1) t -= 1;\n\n\t\t\t\tif (t < 1 / 6) {\n\t\t\t\t\tp += (q - p) * 6 * t;\n\t\t\t\t} else if (t < 1 / 2) {\n\t\t\t\t\tp = q;\n\t\t\t\t} else if (t < 2 / 3) {\n\t\t\t\t\tp += (q - p) * (2 / 3 - t) * 6;\n\t\t\t\t}\n\n\t\t\t\treturn p;\n\t\t\t};\n\n\t\t\tif (lightness < 0.5) {\n\t\t\t\tq = lightness * (1 + saturation);\n\t\t\t} else {\n\t\t\t\tq = lightness + saturation - lightness * saturation;\n\t\t\t}\n\t\t\tp = 2 * lightness - q;\n\n\t\t\tred = hueToRgb(p, q, hue + 1 / 3);\n\t\t\tgreen = hueToRgb(p, q, hue);\n\t\t\tblue = hueToRgb(p, q, hue - 1 / 3);\n\t\t}\n\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')}`;\n\n\t}\n\n\treturn result;\n};\n\nexport function rgb16ToHsl(strRgb16) {\n\tlet rgb = createRGB(strRgb16);\n\tlet red = rgb[0];\n\tlet green = rgb[1];\n\tlet blue = rgb[2];\n\tlet result = false;\n\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))) {\n\t\tlet hue = 0,\n\t\t\tsaturation = 0,\n\t\t\tlightness = 0,\n\t\t\tmax = 0,\n\t\t\tmin = 0,\n\t\t\tdiff = 0;\n\n\t\tred = parseInt(red, 16) / 255;\n\t\tgreen = parseInt(green, 16) / 255;\n\t\tblue = parseInt(blue, 16) / 255;\n\t\tmax = Math.max(red, green, blue);\n\t\tmin = Math.min(red, green, blue);\n\t\tlightness = (max + min) / 2;\n\n\t\tif (max !== min) {\n\t\t\tdiff = max - min;\n\n\t\t\tif (lightness > 0.5) {\n\t\t\t\tsaturation = diff / (2 - max - min);\n\t\t\t} else {\n\t\t\t\tsaturation = diff / (max + min);\n\t\t\t}\n\n\t\t\tif (max === red) {\n\t\t\t\thue = (green - blue) / diff;\n\t\t\t} else if (max === green) {\n\t\t\t\thue = 2 + (blue - red) / diff;\n\t\t\t} else {\n\t\t\t\thue = 4 + (red - green) / diff;\n\t\t\t}\n\n\t\t\thue /= 6;\n\t\t}\n\n\t\tresult = {\n\t\t\thue: Math.round(hue * 360),\n\t\t\tsaturation: Math.round(saturation * 100),\n\t\t\tlightness: Math.round(lightness * 100)\n\t\t};\n\t}\n\n\treturn result;\n};\n\nexport function HexToRGB(strRgb16) {\n\tlet rgb = createRGB(strRgb16);\n\tlet red = rgb[0];\n\tlet green = rgb[1];\n\tlet blue = rgb[2];\n\tlet result = false;\n\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))) {\n\n\n\t\tred = parseInt(red, 16);\n\t\tgreen = parseInt(green, 16);\n\t\tblue = parseInt(blue, 16);\n\n\n\t\tresult = {\n\t\t\tred: Math.round(red),\n\t\t\tgreen: Math.round(green),\n\t\t\tblue: Math.round(blue)\n\t\t};\n\t}\n\n\treturn result;\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,27 @@
1
+ export { useBlockAttributeChanges, useDeepCompareEffect, useDuplicateBlockRemove, useElementBackgroundColor, useElementStyleObject, useElementWidth, useFontawesomeIframe, useIsIframeMobile, useIsMobile } from './customFooks.js';
2
+ export { ArchiveSelectControl, FieldChoiceControl, PageSelectControl, PostSelectControl, TermChoiceControl, fetchArchiveOptions, fetchPagesOptions, restFetchData, restFieldes, restTaxonomies, termToDispObj } from './wordpressApi.js';
3
+ export { align_prm, borderProperty, convertToScss, height_prm, marginProperty, max_width_prm, paddingProperty, position_prm, radiusProperty, radius_prm, space_prm, width_prm } from './cssPropertes.js';
4
+ export { ShadowElm, default as ShadowStyle } from './ShadowStyle.js';
5
+ export { Arrow, default as PseudoElm } from './PseudoElm.js';
6
+ export { MultiImageSelect, SingleImageSelect, getImageAspectRatio, getMediaType, getVideoAspectRatio } from './mediaUpload.js';
7
+ export { default as DraggableBox, useDraggingMove } from './DraggableBox.js';
8
+ export { default as AnimationBlock, anime_comp } from './AnimationBlock.js';
9
+ export { BlockHeight, default as BlockPlace, BlockWidth } from './BlockPlace.js';
10
+ export { default as GridControls } from './GridControls.js';
11
+ export { default as ToggleElement } from './ToggleElement.js';
12
+ export { default as TypographyControls } from './TypographyControls.js';
13
+ export { default as IconSelectControl } from './IconSelectControl.js';
14
+ export { default as BlockEditWrapper } from './BlockEditWrapper.js';
15
+ export { HexToRGB, hslToRgb16, rgb16ToHsl } from './hslToRgb.js';
16
+ export { PeriodCtrl, generateDateArray, generateGridAreas, generateMonthCalendar, getMonthRangeYmd, getPeriodQuery, getTodayMonth, getTodayYear, getTodayYearMonth, normalizeDateYYYYMMDD, toYmdFromMonthAndDay } from './DateElm.js';
17
+ export { JapaneseHolidays } from './JapaneseHolidays.js';
18
+ export { createBlockTree, flattenBlocks, serializeBlockTree, useTargetBlocks } from './blockStore.js';
19
+ export { isValidUrlWithUrlApi } from './validationCheck.js';
20
+ export { default as UpdateAllPostsBlockAttributes } from './UpdateAllPostsBlockAttributes.js';
21
+ export { fetchZipToAddress } from './ZipAddress.js';
22
+ export { FormatSelectControl, displayFormated } from './formatCreate.js';
23
+ export { checkCustomerLoginState, redirectCustomerAuthorize, sendRegistrationRequest } from './shopfiApi.js';
24
+ export { useRebuildChangeField } from './BrockInserter.js';
25
+ export { default as MasonryControl } from './MasonryControl.js';
26
+ export { slideBlockSwiperInit } from './SwiperControl.js';
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,176 @@
1
+ import { MediaUploadCheck, MediaUpload } from '@wordpress/block-editor';
2
+ import { __ } from '@wordpress/i18n';
3
+ import { PanelBody, Button } from '@wordpress/components';
4
+
5
+ function SingleImageSelect(props) {
6
+ var {
7
+ attributes
8
+ } = props;
9
+ var {
10
+ mediaID,
11
+ media
12
+ } = attributes;
13
+
14
+ //URL の配列から画像を生成
15
+ var getImage = image => {
16
+ //メディアオブジェクトの配列をループ処理
17
+ return /*#__PURE__*/React.createElement("figure", null, /*#__PURE__*/React.createElement("img", {
18
+ src: image.url,
19
+ className: "image",
20
+ alt: "\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u753B\u50CF"
21
+ }));
22
+ };
23
+
24
+ //メディアライブラリを開くボタンをレンダリングする関数
25
+ var getImageButton = open => {
26
+ if (media) {
27
+ return /*#__PURE__*/React.createElement("div", {
28
+ onClick: open,
29
+ className: "block-container"
30
+ }, getImage(media));
31
+ } else {
32
+ return /*#__PURE__*/React.createElement("div", {
33
+ className: "button-container"
34
+ }, /*#__PURE__*/React.createElement(Button, {
35
+ onClick: open,
36
+ className: "button button-large"
37
+ }, __("Sel", "itmar_mv_blocks")));
38
+ }
39
+ };
40
+ return /*#__PURE__*/React.createElement(MediaUploadCheck, null, /*#__PURE__*/React.createElement(MediaUpload, {
41
+ onSelect: media => props.onSelectChange(media),
42
+ allowedTypes: ["image"],
43
+ value: mediaID,
44
+ render: _ref => {
45
+ var {
46
+ open
47
+ } = _ref;
48
+ return getImageButton(open);
49
+ }
50
+ }));
51
+ }
52
+ function MultiImageSelect(props) {
53
+ var {
54
+ attributes,
55
+ label
56
+ } = props;
57
+ var {
58
+ mediaID,
59
+ media
60
+ } = attributes;
61
+
62
+ //URL の配列から画像を生成
63
+ var getImages = media => {
64
+ //メディアオブジェクトの配列をループ処理
65
+ var imagesArray = media.map((image, index) => {
66
+ return /*#__PURE__*/React.createElement("figure", {
67
+ key: index
68
+ }, /*#__PURE__*/React.createElement("img", {
69
+ src: image.url,
70
+ className: "image",
71
+ alt: "\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u753B\u50CF"
72
+ }), /*#__PURE__*/React.createElement("figcaption", {
73
+ className: "block-image-caption"
74
+ }, image.caption ? image.caption : ""));
75
+ });
76
+ return imagesArray;
77
+ };
78
+
79
+ //メディアライブラリを開くボタンをレンダリングする関数
80
+ var getImageButton = open => {
81
+ if (media.length > 0) {
82
+ return /*#__PURE__*/React.createElement("div", {
83
+ key: "media-container",
84
+ onClick: open,
85
+ className: "block-container"
86
+ }, getImages(media));
87
+ } else {
88
+ return /*#__PURE__*/React.createElement("div", {
89
+ key: "media-container",
90
+ className: "button-container"
91
+ }, /*#__PURE__*/React.createElement(Button, {
92
+ onClick: open,
93
+ className: "button button-large"
94
+ }, __("Image Upload", "slide-blocks")));
95
+ }
96
+ };
97
+ return /*#__PURE__*/React.createElement(PanelBody, {
98
+ title: label,
99
+ initialOpen: true,
100
+ className: "itmar_image_display"
101
+ }, /*#__PURE__*/React.createElement(MediaUploadCheck, null, /*#__PURE__*/React.createElement(MediaUpload, {
102
+ multiple: true,
103
+ gallery: true //追加
104
+ ,
105
+ onSelect: media => props.onSelectChange(media),
106
+ allowedTypes: ["image"],
107
+ value: mediaID,
108
+ render: _ref2 => {
109
+ var {
110
+ open
111
+ } = _ref2;
112
+ return getImageButton(open);
113
+ }
114
+ })), media.length != 0 &&
115
+ /*#__PURE__*/
116
+ //メディアオブジェクト(配列の長さ)で判定
117
+ React.createElement(MediaUploadCheck, null, /*#__PURE__*/React.createElement(Button, {
118
+ onClick: () => props.onAllDelete(),
119
+ variant: "secondary",
120
+ isDestructive: true,
121
+ className: "removeImage"
122
+ }, __("Delete All", "slide-blocks"))));
123
+ }
124
+
125
+ //静止画か動画かを判定する関数
126
+ function getMediaType(url) {
127
+ var imageExtensions = [".jpg", ".jpeg", ".png", ".gif", ".webp", ".bmp", ".svg"];
128
+ var videoExtensions = [".mp4", ".webm", ".ogg", ".mov", ".m4v"];
129
+
130
+ // クエリストリング(?以降)を除去
131
+ var cleanUrl = url.split("?")[0].toLowerCase();
132
+ var isImage = imageExtensions.some(ext => cleanUrl.endsWith(ext));
133
+ var isVideo = videoExtensions.some(ext => cleanUrl.endsWith(ext));
134
+ if (isImage) {
135
+ return "image";
136
+ } else if (isVideo) {
137
+ return "video";
138
+ } else {
139
+ // 拡張子で判別できない → HEADリクエストでContent-Type判定 or fallback
140
+ return undefined;
141
+ }
142
+ }
143
+ //静止画のアスペクト比を返す関数
144
+ function getImageAspectRatio(url) {
145
+ return new Promise((resolve, reject) => {
146
+ var img = new Image();
147
+ img.onload = function () {
148
+ var aspectRatio = img.naturalWidth / img.naturalHeight;
149
+ resolve(aspectRatio);
150
+ };
151
+ img.onerror = function () {
152
+ reject(new Error("画像の読み込みに失敗しました: " + url));
153
+ };
154
+ img.src = url;
155
+ });
156
+ }
157
+ //動画のアスペクト比を返す関数
158
+ function getVideoAspectRatio(url) {
159
+ return new Promise((resolve, reject) => {
160
+ var video = document.createElement("video");
161
+ video.preload = "metadata";
162
+ video.src = url;
163
+ video.muted = true; // 一部のブラウザで安全に動作させるため
164
+ video.playsInline = true;
165
+ video.onloadedmetadata = function () {
166
+ var aspectRatio = video.videoWidth / video.videoHeight;
167
+ resolve(aspectRatio);
168
+ };
169
+ video.onerror = function () {
170
+ reject(new Error("動画の読み込みに失敗しました: " + url));
171
+ };
172
+ });
173
+ }
174
+
175
+ export { MultiImageSelect, SingleImageSelect, getImageAspectRatio, getMediaType, getVideoAspectRatio };
176
+ //# 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\";\nimport { __ } from \"@wordpress/i18n\";\nimport { Button, PanelBody } from \"@wordpress/components\";\n\nexport function SingleImageSelect(props) {\n const { attributes } = props;\n const { mediaID, media } = attributes;\n\n //URL の配列から画像を生成\n const getImage = (image) => {\n //メディアオブジェクトの配列をループ処理\n return (\n <figure>\n <img src={image.url} className=\"image\" alt=\"アップロード画像\" />\n </figure>\n );\n };\n\n //メディアライブラリを開くボタンをレンダリングする関数\n const getImageButton = (open) => {\n if (media) {\n return (\n <div onClick={open} className=\"block-container\">\n {getImage(media)}\n </div>\n );\n } else {\n return (\n <div className=\"button-container\">\n <Button onClick={open} className=\"button button-large\">\n {__(\"Sel\", \"itmar_mv_blocks\")}\n </Button>\n </div>\n );\n }\n };\n\n return (\n <MediaUploadCheck>\n <MediaUpload\n onSelect={(media) => props.onSelectChange(media)}\n allowedTypes={[\"image\"]}\n value={mediaID}\n render={({ open }) => getImageButton(open)}\n />\n </MediaUploadCheck>\n );\n}\n\nexport function MultiImageSelect(props) {\n const { attributes, label } = props;\n const { mediaID, media } = attributes;\n\n //URL の配列から画像を生成\n const getImages = (media) => {\n //メディアオブジェクトの配列をループ処理\n let imagesArray = media.map((image, index) => {\n return (\n <figure key={index}>\n <img src={image.url} className=\"image\" alt=\"アップロード画像\" />\n <figcaption className=\"block-image-caption\">\n {image.caption ? image.caption : \"\"}\n </figcaption>\n </figure>\n );\n });\n return imagesArray;\n };\n\n //メディアライブラリを開くボタンをレンダリングする関数\n const getImageButton = (open) => {\n if (media.length > 0) {\n return (\n <div key=\"media-container\" onClick={open} className=\"block-container\">\n {getImages(media)}\n </div>\n );\n } else {\n return (\n <div key=\"media-container\" className=\"button-container\">\n <Button onClick={open} className=\"button button-large\">\n {__(\"Image Upload\", \"slide-blocks\")}\n </Button>\n </div>\n );\n }\n };\n\n return (\n <PanelBody title={label} initialOpen={true} className=\"itmar_image_display\">\n <MediaUploadCheck>\n <MediaUpload\n multiple={true}\n gallery={true} //追加\n onSelect={(media) => props.onSelectChange(media)}\n allowedTypes={[\"image\"]}\n value={mediaID}\n render={({ open }) => getImageButton(open)}\n />\n </MediaUploadCheck>\n {media.length != 0 && ( //メディアオブジェクト(配列の長さ)で判定\n <MediaUploadCheck>\n <Button\n onClick={() => props.onAllDelete()}\n variant=\"secondary\"\n isDestructive\n className=\"removeImage\"\n >\n {__(\"Delete All\", \"slide-blocks\")}\n </Button>\n </MediaUploadCheck>\n )}\n </PanelBody>\n );\n}\n\n//静止画か動画かを判定する関数\nexport function getMediaType(url) {\n const imageExtensions = [\n \".jpg\",\n \".jpeg\",\n \".png\",\n \".gif\",\n \".webp\",\n \".bmp\",\n \".svg\",\n ];\n const videoExtensions = [\".mp4\", \".webm\", \".ogg\", \".mov\", \".m4v\"];\n\n // クエリストリング(?以降)を除去\n const cleanUrl = url.split(\"?\")[0].toLowerCase();\n\n const isImage = imageExtensions.some((ext) => cleanUrl.endsWith(ext));\n const isVideo = videoExtensions.some((ext) => cleanUrl.endsWith(ext));\n\n if (isImage) {\n return \"image\";\n } else if (isVideo) {\n return \"video\";\n } else {\n // 拡張子で判別できない → HEADリクエストでContent-Type判定 or fallback\n return undefined;\n }\n}\n//静止画のアスペクト比を返す関数\nexport function getImageAspectRatio(url) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = function () {\n const aspectRatio = img.naturalWidth / img.naturalHeight;\n resolve(aspectRatio);\n };\n img.onerror = function () {\n reject(new Error(\"画像の読み込みに失敗しました: \" + url));\n };\n img.src = url;\n });\n}\n//動画のアスペクト比を返す関数\nexport function getVideoAspectRatio(url) {\n return new Promise((resolve, reject) => {\n const video = document.createElement(\"video\");\n\n video.preload = \"metadata\";\n video.src = url;\n video.muted = true; // 一部のブラウザで安全に動作させるため\n video.playsInline = true;\n\n video.onloadedmetadata = function () {\n const aspectRatio = video.videoWidth / video.videoHeight;\n resolve(aspectRatio);\n };\n\n video.onerror = function () {\n reject(new Error(\"動画の読み込みに失敗しました: \" + url));\n };\n });\n}\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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"}