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 / list / style.js
vk-blocks / src / extensions / core / list Last commit date
style.js 5 years ago
style.js
150 lines
1 /**
2 * list-style block type
3 *
4 */
5 import { convertColorClass } from '@vkblocks/utils/color-code-to-class.js';
6
7 import { assign } from 'lodash';
8 import { __ } from '@wordpress/i18n';
9 import { addFilter } from '@wordpress/hooks';
10 import { registerBlockStyle } from '@wordpress/blocks';
11 import { PanelBody } from '@wordpress/components';
12 import { InspectorControls, ColorPalette } from '@wordpress/block-editor';
13 import { createHigherOrderComponent } from '@wordpress/compose';
14
15 const isValidBlockType = (name) => {
16 const validBlockTypes = ['core/list'];
17 return validBlockTypes.includes(name);
18 };
19
20 export const addAttribute = (settings) => {
21 if (isValidBlockType(settings.name)) {
22 settings.attributes = assign(settings.attributes, {
23 color: {
24 type: 'string',
25 },
26 });
27 }
28 return settings;
29 };
30 addFilter('blocks.registerBlockType', 'vk-blocks/list-style', addAttribute);
31
32 export const addBlockControl = createHigherOrderComponent((BlockEdit) => {
33 let activeColor = '';
34
35 return (props) => {
36 if (isValidBlockType(props.name) && props.isSelected) {
37 if (props.attributes.color) {
38 activeColor = props.attributes.color;
39 } else {
40 activeColor = '#fffd6b';
41 }
42 return (
43 <>
44 <BlockEdit {...props} />
45 <InspectorControls>
46 <PanelBody
47 title={__('List Icon Color', 'vk-blocks')}
48 initialOpen={false}
49 className="list-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/list-style', addBlockControl);
98
99 registerBlockStyle('core/list', [
100 {
101 name: 'vk-default',
102 label: __('Default', 'vk-blocks'),
103 isDefault: true,
104 },
105 {
106 name: 'vk-arrow-mark',
107 label: __('Arrow', 'vk-blocks'),
108 },
109 {
110 name: 'vk-triangle-mark',
111 label: __('Triangle', 'vk-blocks'),
112 },
113 {
114 name: 'vk-check-mark',
115 label: __('Check', 'vk-blocks'),
116 },
117 {
118 name: 'vk-check-square-mark',
119 label: __('Check Square', 'vk-blocks'),
120 },
121 {
122 name: 'vk-check-circle-mark',
123 label: __('Check Circle', 'vk-blocks'),
124 },
125 {
126 name: 'vk-handpoint-mark',
127 label: __('Handpoint', 'vk-blocks'),
128 },
129 {
130 name: 'vk-pencil-mark',
131 label: __('Pencil', 'vk-blocks'),
132 },
133 {
134 name: 'vk-smile-mark',
135 label: __('Smile', 'vk-blocks'),
136 },
137 {
138 name: 'vk-frown-mark',
139 label: __('Frown', 'vk-blocks'),
140 },
141 {
142 name: 'vk-numbered-circle-mark',
143 label: __('Numbered Circle', 'vk-blocks'),
144 },
145 {
146 name: 'vk-numbered-square-mark',
147 label: __('Numbered Square', 'vk-blocks'),
148 },
149 ]);
150