itmar-block-packages v1.4.3
概要
WordPressのカスタムブロックを作成するためのプラグインで活用するパッケージです。複数のプラグインで共通に使用する機能をパッケージにまとめました。
使用方法
import {関数名又はコンポーネント名} from "itmar-block-packages"名前付きインポートでお願いします。
必要条件
このパッケージは@wordpress/scriptsによるWebPackのトランスパイル環境でトランスパイルされています。そして、このパッケージを使用するには、@wordpress/scriptsのバージョン^27.6.0以上が必要です。以下のコマンドを実行して、@wordpress/scriptsを更新してください:
npm i @wordpress/scripts@^27.6.0 --save-dev
更新履歴
= 1.4.3 =
- UpdateAllPostsBlockAttributesコンポーネントのRestAPIによる更新の不具合を修正
= 1.4.2 =
- UpdateAllPostsBlockAttributesコンポーネントにonProcessStartのコールバック関数の処理を付加
- parse, serializeのimport漏れを修正
- 最初の100投稿までの処理しか対応できなかったものをページング処理で上限なしに改良
= 1.4.1 =
- UpdateAllPostsBlockAttributesコンポーネントの宣言の誤りを修正
= 1.4.0 =
- 指定した投稿タイプの投稿に含まれる特定のブロックの属性を書き換えるコンポーネントであるUpdateAllPostsBlockAttributesコンポーネントを追加
= 1.3.21 =
- FieldChoiceControlで先頭の投稿にアイキャッチ画像が設定されていないとき、フィールド選択のトグルボタンが表示されないという不具合を修正
= 1.3.20 =
- PageSelectControlでhomeUrlをエディタのホームURLに固定しないようにした。
= 1.3.19 =
- FieldChoiceControlの選択可能フィールドにlinkを加えて、個別投稿ページへのリンク設定を可能にした。
- BlockPlaceのフレックスボックスの配置に交差軸の配置を加えた。
- TermChoiceControlでタームの表示をするか否かの選択を設定できるようにした。
= 1.3.18 =
- WordPress RestAPIのエンドポイントを文字列で受けて、その結果を返すrestFetchDataを新設
- TermChoiceControlでonChangeコールバックで返す引数にterm.nameを加えた。
- BlockPlaceコンポーネントのフレックススタイルに折り返しを設定できるように機能追加
- BlockPlaceコンポーネント内のブロック幅とブロック高の設定をBlockWidthとBlockHeightの各コンポーネントを利用するように変更
- BlockWidthに幅と最大幅を別々に設定できるように機能追加
- BlockPlaceコンポーネント内の横方向ブロック配置をフレックス、グリッドスタイルでも設定できるように修正
= 1.3.17 =
- restFieldesをインポートするため、エクスポート項目に加えた。
= 1.3.16 =
- インスペクターの表示の国際化されていない部分を国際化した。
= 1.3.15 =
- BlockPlaceのプロプスに視差効果のフラグを与え、そのフラグがtrueの時は中央揃えのセットができないように制御するようにした
= 1.3.14 =
- position_prmの中央揃えがセットされていない場合にnullが出力されるという不具合を修正
= 1.3.13 =
- BlockWidthのラベル表示が誤っていたのを修正
= 1.3.12 =
- BlockPlaceの配置タイプが絶対位置の場合に縦横の中央揃えが設定できる機能を追加
- 中央揃えができるようにしたために、position_prmにそれに対応するCSSプロパティを返す機能を追加
= 1.3.11 =
- BlockPlace、BlockWidth、BlockHeightのfreeサイズにpx以外の単位を設定できるように修正
- freeサイズにpx以外の単位を設定できるようにしたことから、max_width_prm、width_prm、height_prmがそれに対応できるように修正
= 1.3.10 =
- useDuplicateBlockRemoveの不具合を修正。
- ブロックの幅、高さを設定するためのコンポーネントとしてBlockWidth、BlockHeightを追加
= 1.3.9 =
- カスタムフックとしてuseDuplicateBlockRemoveを追加。このフックはインナーブロックが挿入されたとき、指定されたブロック名が存在れば、挿入されたブロックを削除する。
= 1.3.8 =
- WordPressのデータをRest APIを通して取得する関数等のFieldChoiceControlの機能として、choiceFieldsに登録されるフィールド名がmetaによるカスタムフィールドかacfによるカスタムフィールドかを峻別できるようにフィールド名にmeta又はacfという接頭辞を付加するようにした。
- カスタムフックとしてuseBlockAttributeChangesを追加。このフックはitmar/design-group内のブロックで、指定のブロック名とクラス名のブロックの属性に変化があったとき、その変化の内容を通知する機能をもつ。同一のブロック名とクラス名をもつブロックに対して、変化した属性を自動的に設定する機能もある。
= 1.3.4 =
- BlockPlaceコンポーネントの高さにフリーサイズを追加し、デスクトップとモバイルでそれぞれ設定を可能うにした。それに伴ってcssPropertesのheight_prmのシグニチャーを変更。
= 1.3.2 =
- BlockPlaceコンポーネントのインナーブロックの方向で縦方向又は横方向を選択したとき反転の設定ができるようにした。
= 1.3.1 =
- edit.scssおよびstyle.scssの共通スタイルについては機能しないことが判明したので削除した。
= 1.3.0 =
- WordPressのデータをRest APIを通して取得する関数等に、次の関数とReactコンポーネントを追加した
- restTaxonomies
- TermChoiceControl
- edit.scssおよびstyle.scssを配置し、これをトランスパイルして、複数のプラグインから共通のスタイルとして使用できるようにした
各コンポーネント・関数の機能
カスタムフック
useIsIframeMobile
WordPressのエディタ(ブロックエディタ、サイトエディタ)の大きさを監視し、幅が767ピクセル以下であればtrueを返します。
const is_mobile=useIsIframeMobile();useElementBackgroundColor
ブロックの背景色を返します。ユーザー設定で指定されていれば、その色を返し、指定されていないか、カスタムプロパティ(--wpで始まるプロパティ)であれば、getComputedStyleで実際にレンダリングされた色を取得します。
引数
- blockRef
 ブロックへの参照。useRefで取得
- style
 ブロックに設定されているスタイル。useBlockPropsで取得
//ブロックの参照
const blockRef = useRef(null);
//blockPropsの参照
const blockProps = useBlockProps({
	ref: blockRef, // ここで参照を blockProps に渡しています
});
//背景色の取得
const baseColor = useElementBackgroundColor(blockRef, blockProps.style);useElementWidth
useIsMobile
ViewPortの大きさの大きさを監視し、幅が767ピクセル以下であればtrueを返します。
const is_mobile=useIsMobile();useDeepCompareEffect
たくさんの要素をもつオブジェクトや配列の内容の変化で発火するuseEffect
引数
- callbackfunc
 発火させたい関数
- dependenciesarray
 依存変数にしたい配列
useDeepCompareEffect(() => {
・・・
},
[attributes])useFontawesomeIframe
iframeにfontawesomeを読み込むカスタムフック
useBlockAttributeChanges
特定のブロックの属性が変更されたとき、その変更内容を返すカスタムフック。引数に指定されたブロック名のブロックで指定されたクラス名をもつブロックの属性の変更内容を返す。第3引数のフラグにtrueを指定すると同じブロック名で同じクラス名をもつブロックの属性を変更されたブロックの属性で自動的に更新する。ただし、変更内容については、指定された属性名の属性を変更及び比較の対象からはずすことができる。
引数
- clientIdstring
 変更されたことを監視する範囲となるitmar/design-groupブロックのclientId
- blockNamestring
 変更の監視対象となるブロック名
- classNamestring
 変更の監視対象となるブロックが有するクラス名
- modFlgboolean
 同種ブロックを更新するかどうかのフラグ。デフォルトはfalse
- excludeAttributesobject
 自動更新の対象から除外する属性をオブジェクトで指定する。オブジェクトは属性名をキーとし、値を適宜のデフォルト値とする。ここで指定された属性は更新チェックの対象からも除外される。使わないときは指定しない。
//clientIdで指定されたブロックの属性変更の内容を返す
const changedAttributes = useBlockAttributeChanges(
	clientId,
	"itmar/design-checkbox",
	"itmar_filter_checkbox",	
);
//clientIdで指定されたブロックの属性変更の内容でitmar/design-checkboxという名前のブロックで
//itmar_filter_checkboxというクラス名をもつブロックの属性を自動更新する。
//ただし、labelContentという属性とinputValueという属性については更新対象から除外する
useBlockAttributeChanges(
	clientId,
	"itmar/design-checkbox",
	"itmar_filter_checkbox",
	true,
	{ labelContent: "", inputValue: false },
);useDuplicateBlockRemove
インナーブロックが挿入されたとき、指定されたブロック名が存在れば、挿入したブロックを削除する。ユーザーに重複したブロックを挿入させたくないときや特定のブロックが存在するとき、ブロックを挿入させないようにするときに活用する。
引数
- clientIdstring
 インナーブロックの監視する対象となるブロックのclientId
- blockNamesarray
 存在をチェックするブロック名。文字列を配列で指定する。
useDuplicateBlockRemove(clientId, ["itmar/pickup-posts"]);styled-componet用のcssプロパティ生成関数
styled-componetのcssヘルパー関数内で使用するcssのパラメーターやプロパティを返します。
radius_prm
border-radiusに設定するプロパティを文字列で返します。
引数
- radiusobject
 topLeft,topRight,bottomRight,bottomLeftをキーとしてもつオブジェクト
space_prm
marginやpaddingに設定するプロパティを文字列で返します。
引数
- spaceobject
 top,right,bottom,leftをキーとしてもつオブジェクト
position_prm
絶対位置のポジションに関するCSSを返します。
引数
- posobject,boolean
 次の形式のオブジェクト又はboolean
"posValue": {
	"vertBase": "top",
	"horBase": "left",
	"vertValue": "3em",
	"horValue": "3em",
	"isVertCenter": false,
	"isHorCenter": false
},- typestring staic, relative,absolute,fixed,stickyのいづれか
戻り値
- typeがabsolute,fixed,stickyのときposの値に応じてtop,buttom,left,rightのcssプロパティを返す。 pos内の中央揃えのフラグがオンならtransformのcssプロパティも返す。
- posがtrueのとき - top:50%;left: 50%;transform: translate(-50%, -50%);を返す。
max_width_prm
最大幅を設定するためのCSSを返します。
引数
- widthstring
 wideSize,contentSize,free,fullの文字列
- free_valstring
 px値
戻り値
- wideSizeのときwidth: 100%; max-width: var(--wp--style--global--wide-size);
- contentSizeのときwidth: 100%; max-width: var(--wp--style--global--content-size);
- freeのときwidth: 100%; max-width: ${free_val};
- fullのときwidth: 100%; max-width: 100%;
- その他の文字列 - width: fit-content;
width_prm
widthのCSSを返します。
引数
- widthstring
 wideSize,contentSize,freeの文字列
- free_valstring
 px値
戻り値
- wideSizeのときwidth: var(--wp--style--global--wide-size);
- contentSizeのときwidth: var(--wp--style--global--content-size);
- freeのときwidth: ${free_val};
- その他の文字列 - width: fit-content;
height_prm
heightのCSSを返します。
引数
- heightstring fit, full, freeの文字列
- free_valstring
 px値
戻り値
- fitのときheight: fit-content;
- freeのときheight: ${free_val};
- その他の文字列 - height: 100%;
align_prm
marginによる横方向の配置のためのCSSを返します。 また、camelFlgを設定することで、インナースタイル用のオブジェクトを返します。
引数
- alignstring
- camelFLgboolean
 center,rightの文字列
戻り値
camelFLgがfalse又は設定されていないとき
- centerのときmargin-left: auto; margin-right: auto;
- rightのときmargin-left: auto; margin-right: 0
- その他の文字列margin-right: auto; margin-left: 0camelFLgがtrueのとき
- centerのとき{ marginLeft: "auto", marginRight: "auto" }
- rightのとき{ marginLeft: "auto" }
- その他の文字列 - {}
convertToScss
キャメルケースで与えられたstyleオブジェクトをscssの文字列に変換します。
引数
- styleObjectobject
 ブロックに設定されたスタイルオブジェクト
const str_scss = convertToScss(styleObject)borderProperty
WordPressのBorderBoxControlコンポーネントが返すオブジェクトをキャメルケースのCSSに変換して返します。
引数
- borderObjobject
 WordPressのBorderBoxControlコンポーネントが返すオブジェクト
const css_obj = borderProperty(borderObj)radiusProperty
WordPressのBorderRadiusControlコンポーネントが返すオブジェクトをキャメルケースのCSSに変換して返します。
引数
- radiusObjobject
 WordPressのBorderRadiusControlコンポーネントが返すオブジェクト
const css_obj = radiusProperty(radiusObj)marginProperty
marginのcssを返します。
引数
- marginObjobject
 top,right,bottom,leftをキーとしてもつオブジェクト。オブジェクトの値は単位(px,em,%等)付きにしてください。
paddingProperty
paddingのcssを返します。
引数
- paddingObjobject
 top,right,bottom,leftをキーとしてもつオブジェクト。オブジェクトの値は単位(px,em,%等)付きにしてください。
ボックスシャドーを設定するコントロール
ShadowStyle
WordPressのブロックエディタのサイドバーにbox-shadowを設定するためのコントロールを表示させるReactコンポーネント。
<ShadowStyle
	shadowStyle={{ ...shadow_element }}
	onChange={(newStyle, newState) => {
		setAttributes({ shadow_result: newStyle.style });
		setAttributes({ shadow_element: newState });
	}}
/>疑似要素を設定するコントロール
PseudoElm
WordPressのブロックエディタのサイドバーに疑似要素を設定するためのコントロールを表示させるReactコンポーネント。現時点のバージョンでは上下左右の矢印表示の設定のみが可能です。
<PseudoElm
	element="Arrow"
	direction={pseudoInfo.option}
	onChange={(direction) => {
		setAttributes({
			pseudoInfo: { ...pseudoInfo, option: direction },
		});
	}}
/>Arrow
矢印を表示させる疑似要素を生成してscssの文字列で返します。
const arrow = Arrow(direction);引数
- directionobject
 キーをdirection、値をupper,left,right,underのいずれかとするオブジェクト
メディアライブラリから画像を選択するコントロール
SingleImageSelect
メディアライブラリ選択画面を開き、ブロックの属性にmediaとmedia.idをセットします。
<SingleImageSelect
	attributes={attributes}
	onSelectChange={(media) => {
		setAttributes({ media: media, mediaID: media.id });
	}}
/>MultiImageSelect
メディアライブラリ選択画面を開き、複数の画像を選択して、ブロックの属性にmediaとmedia.idをセットします。
<MultiImageSelect
	attributes={attributes}
	label=__("Selected Images", "text-domain")
	onSelectChange={(media) => {
		// media から map で id プロパティの配列を生成
		const media_ID = media.map((image) => image.id);
		setAttributes({
			mobile_val: { ...mobile_val, mediaID: media_ID, media: media },
		});
		
	}}
	onAllDelete={() => {
		setAttributes({
			mobile_val: { ...mobile_val, mediaID: [], media: [] },
		});
	}}
/>ブロックのドラッガブルを設定するコントロール
DraggableBox
ブロックを移動させる移動量を設定するコントロールをサイドバーに表示させます。
<DraggableBox
	attributes={position}
	onPositionChange={(position) =>
		setAttributes({ position: position })
	}
/>useDraggingMove
参照したブロックを可能とするためのカスタムフックを設定します。
useDraggingMove(
  isMovable,
  blockRef,
  position,
  onPositionChange
)引数
- isMovableboolean 移動を可とするかどうかのフラグ
- blockRefuseRef
 移動させるブロックへの参照
- positionobject
 移動量を決定するためのx,yのキーをもつオブジェクト
- onPositionChangefunction 移動量が変化したときに属性値を記録するためのコールバック関数
ブロックをlazy Loadさせるためのラッパーモジュール
BlockEditWrapper
registerBlockTypeの第2引数内にあるeditオブジェクトに、以下の使用例で生成したBlockEditを渡してやることで、ブロックの読み込みをレンダリングの時まで遅らせます。
const LazyEditComponent = React.lazy(() => import("./edit"));
const BlockEdit = (props) => {
	return <BlockEditWrapper lazyComponent={LazyEditComponent} {...props} />;
};ブロックにアニメーション効果をあたえるためのコントロール
AnimationBlock
WordPressのブロックエディタのサイドバーにアニメーションを設定するためのコントロールを表示させるReactコンポーネント。現時点のバージョンではflipDown,fadeUp,fadeLeft,fadeRightのアニメーション設定が可能です
<AnimationBlock
	attributes={attributes}
	onChange={(newValue) => setAttributes(newValue)}
/>anime_comp
設定されたアニメーションのパラメータをオブジェクトとして渡すことで、SCSSの文字列に変換して返します。
引数
- anime_prmobject
 AnimationBlockコンポーネントで生成され、ブロックの属性としてセットされるオブジェクト
Typographyを設定するコントロール
TypographyControls
WordPressのブロックエディタのサイドバーにTypographyを設定するためのコントロールを表示させるReactコンポーネント。
<TypographyControls
	title={__("Typography", "text-domain")}
	fontStyle=	
	{
		default_fontSize: "16px",
		mobile_fontSize: "12px",
		fontFamily: "Arial, sans-serif",
		fontWeight: "500",
		isItalic: false,
	}
	initialOpen={false}
	isMobile={isMobile}
	onChange={(newStyle) => {
		setAttributes({ font_style_input: newStyle });
	}}
/>WordPressのデータをRest APIを通して取得する関数等
fetchPagesOptions
固定ページの情報を取得して配列で返します。
引数
- homeUrlstring
 サイトのホームURL
戻り値
次のようなキーを持つオブジェクトの配列を返します。value 固定ページのid。ただし、サイトのホームについては-1をかえす。slug 固定ページのスラッグlink 固定ページのURL
label 固定ページの名称  
fetchArchiveOptions
カスタム投稿タイプ(ビルトインを含む)の情報を取得して配列で返します。
引数
- homeUrlstring
 サイトのホームURL
戻り値
次のようなキーを持つオブジェクトの配列を返します。value 0から始まる通し番号slug ポストタイプのスラッグlink アーカイブページのURL
label ポストタイプの名称 
restFetchData
RestAPIのエンドポイントを文字列で受けて、その結果を返す
引数
- pathstring
 エンドポイント
戻り値
エンドポイントに対応したレスポンスがPromiseで返る
restTaxonomies
投稿タイプに登録されているタクソノミー(カテゴリ、タグを含む)の情報およびそのタームの情報をを取得して配列で返します。
引数
- post_typestring
 投稿タイプのスラッグ
戻り値
次のようなキーを持つオブジェクトの配列を返します。slug タクソノミーのスラッグ 
name タクソノミーの名称rest_base タクソノミーのREST_APIの名称
terms ターム情報オブジェクトの配列 
restFields
投稿タイプに登録されているタクソノミー(カテゴリ、タグを含む)の情報およびそのタームの情報をを取得して配列で返します。
引数
- rest_basestring
 投稿タイプのRestAPI用スラッグ
戻り値
"title","date","excerpt","featured_media","meta","acf"の各フィールドの値を投稿タイプの最新データ1件分を返す。この結果で投稿タイプがどのフィールドをサポートしているか、また、どのようなカスタムフィールドが設定されているかの情報を取得することができる。
PageSelectControl
固定ページを選択できるコンボボックス表示し、固定ページの情報を返します。
プロプス
- selectedSlugstring
 選択済みの固定ページのスラッグ
- labelstring コンボボックスのラベル
- homeUrlstring
 サイトのホームURL
- onChangefunc コンボボックスの内容が変化したとき発生するコールバック関数。引数には- fetchPagesOptionsの戻り値が入る。
<PageSelectControl
	selectedSlug={selectedSlug}
	label={__("Select Post Type", "post-blocks")}
	homeUrl={post_blocks.home_url}
	onChange={(postInfo) => {
		setAttributes({ selectedSlug: postInfo.slug });
	}}
/>ArchiveSelectControl
投稿タイプ名を選択できるコンボボックス表示し、投稿タイプの情報を返します。
プロプス
- selectedSlugstring
 選択済みの投稿タイプのスラッグ
- labelstring コンボボックスのラベル
- homeUrlstring
 サイトのホームURL
- onChangefunc コンボボックスの内容が変化したとき発生するコールバック関数。引数には- fetchArchiveOptionsの戻り値が入る。
<ArchiveSelectControl
	selectedSlug={selectedSlug}
	label={__("Select Post Type", "post-blocks")}
	homeUrl={post_blocks.home_url}
	onChange={(postInfo) => {
		setAttributes({ selectedSlug: postInfo.slug });
	}}
/>TermChoiceControl
投稿タイプに紐づけられている全てのタクソノミー(カテゴリ、タグを含む。)に登録されたタームを選択できるチェックボックス表示し、コールバック関数に選択されたタームの情報を返します。
プロプス
- selectedSlugstring
 選択済みの投稿タイプのスラッグ
- choiceTermsarray
 選択済みのタームの情報。配列の要素は次の形式のオブジェクトであること。
 { taxonomy: タクソノミーのスラッグ, term: タームのスラッグ }
- dispTaxonomiesarray
 選択済みのタクソノミの情報。配列の要素はタクソノミーのスラッグ
- typestring 選択するデータのタイプ。将来の拡張のためにセットしている。現時点では"taxonomy"とセットすること。
- labelstring
- onChangefunc チェックボックスの内容が変化したとき発生するコールバック関数。引数には{ taxonomy: タクソノミーのスラッグ, term:{ id: term.id, slug: term.slug, name: term.name } }という形式のオブジェクトを要素とする配列が入る。
- onSetDispTaxfunc トグルコントロールの内容が変化したとき発生するコールバック関数。引数にはタクソノミーのスラッグを要素とする配列が入る。
<TermChoiceControl
	selectedSlug={selectedSlug}
	choiceTerms={choiceTerms}
	dispTaxonomies={dispTaxonomies}
	type="taxonomy"
	label={__("Choice Taxsonomy", "post-blocks")}
	onChange={(newChoiceTerms) =>
		setAttributes({ choiceTerms: newChoiceTerms })
	}
	onSetDispTax={(newChoiceTerms) => {
		setAttributes({ dispTaxonomies: newChoiceTerms });
	}}
/>FieldChoiceControl
タイトル、日付、抜粋、アイキャッチ画像、リンクの各フィールドと投稿タイプに紐づけられている全てのカスタムフィールドを選択できるチェックボックス表示し、コールバック関数に選択されたフィールドの情報を返します。 また、各フィールドがどのブロックでレンダリングされるかの設定機能も含みます。
プロプス
- selectedSlugstring
 選択済みの投稿タイプのスラッグ (Restタイプ)
- choiceItemsarray
 選択済みのフィールドの情報。配列の要素はフィールドのスラッグ(文字列)。
- typestring 選択するデータのタイプ。将来の拡張のためにセットしている。現時点では"field"とセットすること。
- blockMapobject フィールド名とブロック名を対にしたオブジェクト
{
	"title":"itmar/design-title",
	"date":"itmar/design-title",
	"excerpt":"core/paragraph",
	"featured_media":"core/image",
	"link":"itmar/design-button"
}- textDomainstring 使用するブロックのテキストドメイン
- onChangefunc チェックボックスの内容が変化したとき発生するコールバック関数。引数には選択されたフィールドのフィールド名を要素とする配列が入る。
- `onBlockMapChange` func
コンボボックスの内容が変化したとき発生するコールバック関数。引数には設定されたフィールド名とブロック名を対にしたオブジェクトが入る。 <FieldChoiceControl type="field" selectedSlug={selectedRest} choiceItems={choiceFields} blockMap={blockMap} textDomain="post-blocks" onChange={(newChoiceFields) => { setAttributes({ choiceFields: newChoiceFields }); }} onBlockMapChange={(newBlockMap) => { setAttributes({ blockMap: newBlockMap }); }} />
## Font awesom のアイコンを選択するためのコントロール
### IconSelectControl
WordPressのブロックエディタのサイドバーにFont awesomのアイコンを選択するためのコントロールを表示させるReactコンポーネント。<IconSelectControl iconStyle={ icon_name: "f030", icon_pos: "left", icon_size: "24px", icon_color: "var(--wp--preset--color--content)", icon_space: "5px", icon_family: "Font Awesome 6 Free",
}
setPosition={true}
onChange={(newValue) => {
	setAttributes({icon_style: newValue})
}}/>
iconStyleオブジェクトを再設定します。
setPositionプロプスをtrueにするとicon_posとicon_spaceの各オブジェクトを設定するコントロールが表示されます。
<img src="./img/iconControl.png" alt="IconSelectControlのスクリーンショット" width="100" height="200">
## DOM要素をラップしてレンダリングを変化させるReactコンポーネント
### ToggleElement
DOM要素をdiv要素でラップし、flgの値によって、その要素にopenというクラス名を付加します。呼び出し側でflgの値を変更することで、DOM要素の表示・非表示を操作するときに使用します。<ToggleElement onToggle={handleHambergerToggle} className="itmar_hamberger_btn" openFlg={flg}
<span></span> <span></span> <span></span>
グリッドスタイルの各種設定を行うためのコントロール
GridControls
CSSでdisplay : grid が設定されたブロックに対し、gridの各種設定を行うため、モーダルウインドウを表示させるReactコンポーネント。
<GridControls
	attributes={props.grid_info}
	clientId={clientId}
	onChange={(newValue) => {
		props.onGridChange(newValue)
	}}
/>ブロックの配置に関する各種設定を行うためのコントロール
BlockPlace
WordPressのブロックエディタのサイドバーにブロックの配置に関する設定のためのコントロールを表示させるReactコンポーネント。
<BlockPlace
	attributes={attributes}
	clientId={clientId}
	blockRef={blockRef}
	isMobile={isMobile}
	isSubmenu={is_submenu}
	isParallax={true}
	onDirectionChange={(position) => {
		setAttributes({direction: position });
	}}
	onReverseChange={(checked) => {
		setAttributes({reverse: checked });	
	}}
	onFlexChange={(position,axis) => {
		setAttributes({[axis]: position });
	}}
	onAlignChange={(position) => {
		setAttributes({outer_align: position });
	}}
	onVerticalChange={(position) => {
		setAttributes({outer_vertical: position });
	}}
	onWidthChange={(position) => {
		setAttributes({width_val: position });
	}}
	onHeightChange={(value) => {
		setAttributes({ height_val: value });
	}}
	onFreeWidthChange={(value) => {
		setAttributes({free_width: position });
	}}
	onFreeHeightChange={(value) => {
		setAttributes({free_height: position });
	}}
	onGridChange={(value) => {
		setAttributes({grid_info: position });
	}}
	onPositionChange={(value) => {
		setAttributes({ positionType: value });
	}}
	onPosValueChange={(value) => {
		setAttributes({posValue: position });
	}}
/>BlockWidth
ブロックコンポーネントの幅を設定する
引数
- attributesobject
 ブロックの属性オブジェクト
- isMobileboolean
 スクリーン幅が767px以下かどうかのフラグ
- isSubmenuboolean
 trueの場合はmax-widthを合わせて設定する
- onWidthChangefunction widthの種別を設定するためのコールバック関数。返ってくる引数はkey,valueの2つでkeyはwidth_valまたはmax_valという文字列でwidthValはfit,full,wideSize,contentSize,freeのいずれか
- onFreeWidthChangefunction widthの種別がfreeのとき幅を設定するためのコールバック関数。返ってくる引数はkey,valueの2つでkeyはfree_widthまたはmax_free_widthという文字列でvalueは単位付きの文字列
<BlockWidth
	attributes={attributes}
	isMobile={isMobile}
	isSubmenu={isFront}
	onWidthChange={(key,value) => {
		setAttributes(
			!isMobile
				? { default_val: { ...default_val, [key]: value } }
				: { mobile_val: { ...mobile_val, [key]: value } },
		);
	}}
	onFreeWidthChange={(key,value) => {
		setAttributes(
			!isMobile
				? { default_val: { ...default_val, [key]: value } }
				: { mobile_val: { ...mobile_val, [key]: value } },
		);
	}}
/>BlockHeight
ブロックコンポーネントの高さを設定する
引数
- attributesobject
 ブロックの属性オブジェクト
- isMobileboolean
 スクリーン幅が767px以下かどうかのフラグ
- onHeightChangefunction heightの種別を設定するためのコールバック関数。返ってくる引数はfit,full,free
- onFreeHeightChangefunction heightの種別がfreeのとき幅を設定するためのコールバック関数。返ってくる引数は単位付きの文字列
<BlockHeight
	attributes={attributes}
	isMobile={isMobile}
	onHeightChange={(value) => {
		setAttributes(
			!isMobile
				? { default_val: { ...default_val, height_val: value } }
				: { mobile_val: { ...mobile_val, height_val: value } },
		);
	}}
	onFreeHeightChange={(value) => {
		setAttributes(
			!isMobile
				? { default_val: { ...default_val, free_height: value } }
				: { mobile_val: { ...mobile_val, free_height: value } },
		);
	}}
/>色コードを変換する関数
hslToRgb16
Hslオブジェクトの値を与えると#000000型のRGB表記に変換するためのユーティリティ関数です。
引数
- huenumber
 Hslオブジェクトのhueの値
- saturationnumber
 Hslオブジェクトのsaturationの値
- lightnessnumber
 Hslオブジェクトのlightnessの値
rgb16ToHsl
16進数のRGB表記を受け取り、それをHslオブジェクトに変換するためのユーティリティ関数です。
引数
- strRgb16string
 #000000形式の16進数の文字列又はrgb(0,0,0) 形式の文字列
HexToRGB
16進数のRGB表記を受け取り、それを10進数のRGBオブジェクトに変換するためのユーティリティ関数です。
引数
- strRgb16string
 #000000形式の16進数の文字列又はrgb(0,0,0) 形式の文字列
指定した投稿タイプの投稿に含まれる特定のブロックの属性を書き換えるコンポーネント
UpdateAllPostsBlockAttributes
引数
- postTypestring
 WordPressのRestAPIで使用するrest_baseに相当する文字列
- blockNamestring
 ブロックの名称。投稿本文に含まれるブロックの名前を指定
- newAttributesobject
 新しいブロックの属性をオブジェクトで指定
- onProcessStartfunction
 処理が完了したときに実行するコールバック関数
- onProcessEndfunction
 処理が完了したときに実行するコールバック関数
- onProcessCancelfunction
 処理が中断されたときに実行するコールバック関数
<UpdateAllPostsBlockAttributes
	postType={rest_base}
	blockName="itmar/markdown-block"
	newAttributes={{
		element_style_obj: element_style_obj,
		backgroundColor: backgroundColor,
		backgroundGradient: backgroundGradient,
		default_val: default_val,
		mobile_val: mobile_val,
		radius_value: radius_value,
		border_value: border_value,
	}}
	onProcessStart={startProgress}
	onProcessEnd={closeProgress}
	onProcessCancel={() => {
		dispatch("core/notices").createNotice(
			"error",
			__("Processing was interrupted.", "markdown-block"),
			{ type: "snackbar" },
		);
	}}
/>9 months ago
9 months ago
9 months ago
9 months ago
12 months ago
10 months ago
10 months ago
9 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago