PluginProbe ʕ •ᴥ•ʔ
VK Blocks / trunk
VK Blocks vtrunk
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 / admin / custom-format / preview.js
vk-blocks / src / admin / custom-format Last commit date
add-item.js 2 months ago delete-item-button.js 2 months ago index.js 2 months ago preview.js 2 months ago
preview.js
99 lines
1 /**
2 * WordPress dependencies
3 */
4 import { __ } from '@wordpress/i18n';
5
6 /**
7 * Internal dependencies
8 */
9 import { colorSlugToColorCode } from '@vkblocks/admin/utils/color-slug-to-color-code';
10 import hex2rgba from '@vkblocks/utils/hex-to-rgba';
11 /*globals vkBlocksObject */
12
13 const getPreviewClassName = (obj) =>
14 obj.is_active_highlighter
15 ? obj.class_name + '--vk-highlighter'
16 : obj.class_name;
17
18 export const TextStylePreview = (props) => {
19 const { textStyleListObj } = props;
20
21 const generateCustomFormatCss = () => {
22 let declarations = '';
23 if (textStyleListObj.font_weight_bold) {
24 declarations += `font-weight:bold;`;
25 }
26 if (textStyleListObj.font_italic) {
27 declarations += `font-style:italic;`;
28 }
29 if (textStyleListObj.font_strikethrough) {
30 declarations += `text-decoration:line-through;`;
31 }
32 if (textStyleListObj.nowrap) {
33 declarations += `white-space:nowrap;`;
34 }
35 if (!!textStyleListObj.font_size) {
36 declarations += `font-size: ${textStyleListObj.font_size};`;
37 }
38 if (!!textStyleListObj.color) {
39 declarations += `color: ${colorSlugToColorCode(
40 textStyleListObj.color
41 )};`;
42 }
43
44 const highlighterColor = !!textStyleListObj.highlighter
45 ? textStyleListObj.highlighter
46 : vkBlocksObject.highlighterColor;
47 if (textStyleListObj.is_active_highlighter) {
48 declarations += `--vk-highlighter-color: ${hex2rgba(highlighterColor, 0.7)};`;
49 declarations += `background: linear-gradient(transparent 60%, var(--vk-highlighter-color) 0);`;
50 if (!!textStyleListObj.background_color) {
51 declarations += `background-color: ${colorSlugToColorCode(textStyleListObj.background_color)};`;
52 }
53 } else if (!!textStyleListObj.background_color) {
54 declarations += `background-image: ${colorSlugToColorCode(textStyleListObj.background_color)};`;
55 }
56
57 let dynamic_css = '';
58 if (declarations) {
59 dynamic_css += `.${getPreviewClassName(textStyleListObj)} { ${declarations} }`;
60 }
61
62 if (textStyleListObj.custom_css) {
63 // selectorをクラスに変換する
64 dynamic_css += textStyleListObj.custom_css.replace(
65 /selector/g,
66 '.' + getPreviewClassName(textStyleListObj)
67 );
68 }
69
70 return dynamic_css;
71 };
72
73 return (
74 <div className="custom_format_item_preview">
75 <p
76 className={
77 textStyleListObj.title ? 'active-custom-format' : null
78 }
79 >
80 {(() => {
81 const cssTag = generateCustomFormatCss(textStyleListObj);
82 if (cssTag) {
83 return <style>{cssTag}</style>;
84 }
85 })()}
86 <span
87 className={
88 textStyleListObj.is_active_highlighter
89 ? getPreviewClassName(textStyleListObj)
90 : getPreviewClassName(textStyleListObj)
91 }
92 >
93 {__('Preview Text', 'vk-blocks')}
94 </span>
95 </p>
96 </div>
97 );
98 };
99