PluginProbe ʕ •ᴥ•ʔ
VK Blocks / 0.53.2
VK Blocks v0.53.2
1.126.4 1.126.3 1.126.1 1.126.2 1.126.0 1.125.0 1.124.0 1.123.0 1.122.0 1.121.0 1.120.0 1.119.2 1.119.1 1.119.0 1.118.7 1.82.0.0 1.82.0.1 1.83.0.0 1.83.0.1 1.84.0.0 1.84.0.1 1.85.0.2 1.85.0.3 1.85.1.0 1.85.1.1 1.86.0.0 1.86.0.1 1.86.1.0 1.87.0.0 1.87.0.1 1.88.0.1 1.88.0.2 1.89.0.0 1.9.2 1.90.0.0 1.90.0.1 1.90.1.1 1.91.0.0 1.91.1.1 1.92.0.0 1.92.0.1 1.92.1.0 1.92.1.1 1.93.0.0 trunk 1.93.0.1 0.1.1 1.93.1.0 0.10.3 1.93.1.1 0.11.0 1.94.0.0 0.12.6 1.94.0.1 0.15.1 1.94.1.0 0.16.2 1.94.2.1 0.17.6 1.94.2.2 0.2.2 1.95.0.3 0.22.4 1.95.0.4 0.26.7 1.96.2.0 0.3.2 1.96.2.1 0.31.0 1.97.0.1 0.35.5 1.97.0.2 0.37.5 1.99.0.0 0.38.8 1.99.0.1 0.39.4 0.4.7 0.41.0 0.42.0 0.44.13 0.45.2 0.46.1 0.47.0 0.48.0 0.49.8 0.5.2 0.50.3 0.51.0 0.52.2 0.53.2 0.54.0 0.55.0 0.56.2 0.56.3 0.57.6 0.58.10 0.59.0 0.6.0 0.60.1 0.61.2 0.7.1 0.8.2 1.0.16 1.10.0 1.100.0.0 1.100.0.1 1.102.0.0 1.102.0.1 1.103.0.0 1.104.0.0 1.104.0.1 1.105.1.0 1.105.1.1 1.106.0.0 1.106.0.1 1.107.0.0 1.107.0.1 1.107.0.2 1.108.0.0 1.108.0.1 1.109.0.0 1.109.0.1 1.11.4 1.110.0.0 1.110.0.1 1.111.0.0 1.111.0.1 1.111.0.2 1.112.0.0 1.112.0.1 1.113.0.0 1.113.0.1 1.114.0.0 1.114.0.1 1.114.2.0 1.114.2.1 1.115.0.0 1.115.0.1 1.115.1.0 1.115.1.1 1.115.2.0 1.115.2.1 1.116.0.0 1.116.0.1 1.116.1.0 1.116.1.1 1.116.2.0 1.117.0.0 1.117.0.1 1.117.1.0 1.118.2 1.118.5 1.12.0 1.13.2 1.14.1 1.15.1 1.16.11 1.17.0 1.18.6 1.19.0 1.19.1 1.2.3 1.20.7 1.21.0 1.22.4 1.23.0 1.24.5 1.25.1 1.26.2 1.27.7.2 1.28.0.1 1.29.2.0 1.3.9 1.30.0.1 1.31.0.1 1.32.0.2 1.33.2.1 1.36.1.5 1.37.0.0 1.39.2.1 1.4.6 1.40.0.1 1.40.1.0 1.40.1.1 1.41.0.0 1.41.0.1 1.41.2.2 1.41.2.3 1.43.0.0 1.43.0.1 1.43.0.2 1.44.0.0 1.44.0.1 1.45.0.0 1.45.0.1 1.46.0.0 1.46.0.1 1.47.0.0 1.47.0.1 1.47.1.0 1.48.0.0 1.48.0.1 1.48.0.2 1.48.1.0 1.48.1.1 1.5.0 1.50.0.0 1.50.0.1 1.51.0.0 1.51.0.1 1.52.0.0 1.52.0.1 1.53.0.0 1.53.0.1 1.54.0.0 1.54.0.1 1.55.0.0 1.55.0.1 1.56.0.0 1.56.0.1 1.57.0.0 1.57.0.2 1.57.0.3 1.57.0.4 1.57.0.5 1.57.1.0 1.57.1.1 1.57.1.2 1.58.0.0 1.58.0.1 1.59.0.0 1.59.0.1 1.6.0 1.60.0.0 1.60.0.1 1.63.0.0 1.63.0.1 1.64.0.0 1.64.0.1 1.64.1.0 1.64.1.2 1.67.0.0 1.67.0.1 1.68.0.0 1.68.0.1 1.69.0.0 1.69.0.1 1.69.1.1 1.69.1.2 1.7.1 1.70.0.0 1.70.0.1 1.71.0.0 1.71.0.1 1.72.0.0 1.72.1.0 1.72.1.1 1.73.0.0 1.73.0.1 1.74.0.0 1.74.0.1 1.75.0.0 1.75.1.0 1.75.1.1 1.76.0.0 1.76.0.1 1.76.1.0 1.76.1.1 1.76.2.0 1.76.2.1 1.77.0.0 1.77.0.1 1.78.0.0 1.78.0.1 1.79.0.0 1.79.0.1 1.79.0.2 1.79.0.3 1.79.1.0 1.79.1.1 1.8.2 1.80.1.0 1.80.1.1 1.80.1.2 1.81.0.1 1.81.0.2
vk-blocks / src / blocks / heading / component.js
vk-blocks / src / blocks / heading Last commit date
deprecated 5 years ago block.js 5 years ago component.js 5 years ago heading-toolbar.js 5 years ago icon.svg 5 years ago schema.js 5 years ago style.css 6 years ago style.css.map 6 years ago style.scss 5 years ago
component.js
151 lines
1 import { vkbBlockEditor } from "./../_helper/depModules";
2 const { RichText } = vkbBlockEditor;
3 const { __ } = wp.i18n; // Import __() from wp.i18n
4 import ReactHtmlParser from 'react-html-parser';
5 import { Fragment } from "react";
6
7 const renderTitle = (level, contents,tStyle, headingStyle ) =>{
8 switch (level) {
9 case 1:
10 return <h1 style={ tStyle } className={ headingStyle }>{ contents }</h1>;
11 case 2:
12 return <h2 style={ tStyle } className={ headingStyle }>{ contents }</h2>;
13 case 3:
14 return <h3 style={ tStyle } className={ headingStyle }>{ contents }</h3>;
15 case 4:
16 return <h4 style={ tStyle } className={ headingStyle }>{ contents }</h4>;
17 case 5:
18 return <h5 style={ tStyle } className={ headingStyle }>{ contents }</h5>;
19 case 6:
20 return <h6 style={ tStyle } className={ headingStyle }>{ contents }</h6>;
21 }
22 }
23
24 export const VKBHeading =(props) => {
25 const {attributes,setAttributes,for_} = props
26 let {
27 level,
28 align,
29 title,
30 titleColor,
31 titleSize,
32 subText,
33 subTextFlag,
34 subTextColor,
35 subTextSize,
36 titleStyle,
37 titleMarginBottom,
38 outerMarginBottom,
39 fontAwesomeIconBefore,
40 fontAwesomeIconAfter,
41 fontAwesomeIconColor
42 } = attributes;
43 const containerClass = `vk_heading vk_heading-style-${titleStyle}`;
44 let cStyle;
45 let tStyle;
46
47 //containerのマージンを切り替え
48 if (outerMarginBottom) {
49 cStyle = { marginBottom: outerMarginBottom + `rem` };
50 }
51
52 //titleのマージンを切り替え
53 if (titleMarginBottom !== null && titleMarginBottom !== undefined) {
54 tStyle = {
55 color: titleColor,
56 fontSize: titleSize + "rem",
57 marginBottom: titleMarginBottom + "rem",
58 textAlign: align
59 };
60 } else {
61 tStyle = {
62 color: titleColor,
63 fontSize: titleSize + "rem",
64 textAlign: align
65 };
66 }
67
68 const headingStyle = `vk_heading_title vk_heading_title-style-${titleStyle}`;
69 const subTextStyle = {
70 color: subTextColor,
71 fontSize: subTextSize + "rem",
72 textAlign: align
73 }
74 const subTextClass = `vk_heading_subtext vk_heading_subtext-style-${titleStyle}`;
75
76 let iconBefore = '';
77 let iconAfter = '';
78 if (fontAwesomeIconBefore) {
79
80 //for recovering block
81 fontAwesomeIconColor = fontAwesomeIconColor ? fontAwesomeIconColor : "#000000"
82
83 //add inline css
84 const faIconFragmentBefore= fontAwesomeIconBefore.split('<i');
85 faIconFragmentBefore[0] = faIconFragmentBefore[0] + `<i style="color:${fontAwesomeIconColor};" `
86 iconBefore = faIconFragmentBefore.join('')
87 }
88 if (fontAwesomeIconAfter) {
89
90 //for recovering block
91 fontAwesomeIconColor = fontAwesomeIconColor ? fontAwesomeIconColor : "#000000"
92
93 //add class and inline css
94 const faIconFragmentAfter = fontAwesomeIconAfter.split('<i');
95 faIconFragmentAfter[0] = faIconFragmentAfter[0] + `<i style="color:${fontAwesomeIconColor};" `
96 iconAfter = faIconFragmentAfter.join('')
97 }
98
99 if (for_ === "edit") {
100
101 const titleContent = <Fragment>
102 { ReactHtmlParser(iconBefore) }
103 <RichText
104 tagName={ "span" }
105 value={ title }
106 onChange={ (value) => {
107 setAttributes({ title: value} )
108 } }
109 placeholder={ __("Input title…", "vk-blocks") }
110 />
111 { ReactHtmlParser(iconAfter) }
112 </Fragment>
113
114 let subtextContent;
115 if (subTextFlag === "on") {
116 subtextContent = <RichText
117 tagName={ "p" }
118 value={ subText }
119 onChange={ value => setAttributes({ subText: value }) }
120 style={ subTextStyle }
121 className={ subTextClass }
122 placeholder={ __("Input sub text…", "vk-blocks") }
123 />
124 }
125
126 return (<div className={ containerClass } style={ cStyle }>{ renderTitle(level, titleContent, tStyle, headingStyle) }{ subtextContent }</div>);
127
128 } else if (for_ === "save") {
129
130 const titleContent = <Fragment>
131 { ReactHtmlParser(iconBefore) }
132 <RichText.Content
133 tagName={ "span" }
134 value={ title }
135 />
136 { ReactHtmlParser(iconAfter) }
137 </Fragment>
138
139 let subtextContent;
140 if (subTextFlag === "on") {
141 subtextContent = <RichText.Content
142 tagName={ "p" }
143 value={ subText }
144 style={ subTextStyle }
145 className={ subTextClass }
146 />
147 }
148 return (<div className={ containerClass } style={ cStyle }>{ renderTitle(level, titleContent, tStyle, headingStyle) }{ subtextContent }</div>);
149 }
150 }
151