PluginProbe ʕ •ᴥ•ʔ
VK Blocks / 1.26.2
VK Blocks v1.26.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 / extensions / core / group / style.js
vk-blocks / src / extensions / core / group Last commit date
style.js 5 years ago
style.js
149 lines
1 /**
2 * group-style block type
3 *
4 */
5 import { convertColorClass } from '@vkblocks/utils/color-code-to-class.js';
6 import { assign } from 'lodash';
7 import { __ } from '@wordpress/i18n';
8 import { addFilter } from '@wordpress/hooks';
9 import { PanelBody } from '@wordpress/components';
10 import { InspectorControls, ColorPalette } from '@wordpress/block-editor';
11 import { createHigherOrderComponent } from '@wordpress/compose';
12 import { registerBlockStyle } from '@wordpress/blocks';
13
14 const isValidBlockType = (name) => {
15 const validBlockTypes = ['core/group'];
16 return validBlockTypes.includes(name);
17 };
18
19 export const addAttribute = (settings) => {
20 if (isValidBlockType(settings.name)) {
21 settings.attributes = assign(settings.attributes, {
22 color: {
23 type: 'string',
24 },
25 });
26 }
27 return settings;
28 };
29 addFilter('blocks.registerBlockType', 'vk-blocks/group-style', addAttribute);
30
31 export const addBlockControl = createHigherOrderComponent((BlockEdit) => {
32 let activeColor = '';
33
34 return (props) => {
35 if (isValidBlockType(props.name) && props.isSelected) {
36 if (props.attributes.color) {
37 activeColor = props.attributes.color;
38 } else {
39 activeColor = '#fffd6b';
40 }
41
42 return (
43 <>
44 <BlockEdit {...props} />
45 <InspectorControls>
46 <PanelBody
47 title={__('Border Color', 'vk-blocks')}
48 initialOpen={false}
49 className="group-border-color-controle"
50 >
51 <ColorPalette
52 value={activeColor}
53 disableCustomColors={true}
54 onChange={(newColor) => {
55 let newClassName =
56 convertColorClass(newColor);
57
58 if (props.attributes.className) {
59 let inputClassName =
60 props.attributes.className;
61
62 inputClassName =
63 inputClassName.split(' ');
64
65 const filterClassName =
66 inputClassName.filter(function (
67 name
68 ) {
69 return (
70 -1 ===
71 name.indexOf('vk-has-')
72 );
73 });
74
75 filterClassName.push(newClassName);
76
77 newClassName =
78 filterClassName.join(' ');
79 }
80
81 activeColor = newColor;
82 props.setAttributes({
83 className: newClassName,
84 color: newColor,
85 });
86 }}
87 />
88 </PanelBody>
89 </InspectorControls>
90 </>
91 );
92 }
93 return <BlockEdit {...props} />;
94 };
95 }, 'addMyCustomBlockControls');
96
97 addFilter('editor.BlockEdit', 'vk-blocks/group-style', addBlockControl);
98
99 registerBlockStyle('core/group', [
100 {
101 name: 'vk-group-solid',
102 label: __('Solid', 'vk-blocks'),
103 },
104 {
105 name: 'vk-group-solid-roundcorner',
106 label: __('Solid Roundcorner', 'vk-blocks'),
107 },
108 {
109 name: 'vk-group-dotted',
110 label: __('Dotted', 'vk-blocks'),
111 },
112 {
113 name: 'vk-group-dashed',
114 label: __('Dashed', 'vk-blocks'),
115 },
116 {
117 name: 'vk-group-double',
118 label: __('Double', 'vk-blocks'),
119 },
120 {
121 name: 'vk-group-stitch',
122 label: __('Stitch', 'vk-blocks'),
123 },
124 {
125 name: 'vk-group-top-bottom-border',
126 label: __('Border Top Bottom', 'vk-blocks'),
127 },
128 {
129 name: 'vk-group-shadow',
130 label: __('Shadow', 'vk-blocks'),
131 },
132 {
133 name: 'vk-group-alert-info',
134 label: __('Info', 'vk-blocks'),
135 },
136 {
137 name: 'vk-group-alert-success',
138 label: __('Success', 'vk-blocks'),
139 },
140 {
141 name: 'vk-group-alert-warning',
142 label: __('Warning', 'vk-blocks'),
143 },
144 {
145 name: 'vk-group-alert-danger',
146 label: __('Danger', 'vk-blocks'),
147 },
148 ]);
149