File tree Expand file tree Collapse file tree 4 files changed +179
-192
lines changed
app/code/Magento/PageBuilder/view/adminhtml Expand file tree Collapse file tree 4 files changed +179
-192
lines changed Original file line number Diff line number Diff line change 46
46
<style name =" border_radius" source =" border_radius" converter =" Magento_PageBuilder/js/converter/style/remove-px" />
47
47
<style name =" justify_content" source =" justify_content" persistence_mode =" read" />
48
48
<style name =" min_height" source =" min_height" converter =" Magento_PageBuilder/js/converter/style/remove-px" />
49
- <style name =" width" source =" width" />
50
- <style name =" margins" storage_key =" margins_and_padding" reader =" Magento_PageBuilder/js/property/margins" converter =" Magento_PageBuilder/js/converter/style/margins" preview_converter = " Magento_PageBuilder/js/content-type/row/converter/style/margins " />
51
- <style name =" padding" storage_key =" margins_and_padding" reader =" Magento_PageBuilder/js/property/paddings" converter =" Magento_PageBuilder/js/converter/style/paddings" preview_converter = " Magento_PageBuilder/js/content-type/row/converter/style/paddings " />
49
+ <style name =" width" source =" width" converter = " Magento_PageBuilder/js/converter/style/width " />
50
+ <style name =" margins" storage_key =" margins_and_padding" reader =" Magento_PageBuilder/js/property/margins" converter =" Magento_PageBuilder/js/converter/style/margins" />
51
+ <style name =" padding" storage_key =" margins_and_padding" reader =" Magento_PageBuilder/js/property/paddings" converter =" Magento_PageBuilder/js/converter/style/paddings" />
52
52
<static_style source =" align_self" value =" stretch" />
53
53
<attribute name =" name" source =" data-role" />
54
54
<attribute name =" appearance" source =" data-appearance" />
Original file line number Diff line number Diff line change
1
+ /**
2
+ * Copyright © Magento, Inc. All rights reserved.
3
+ * See COPYING.txt for license details.
4
+ */
5
+
6
+ import { DataObject } from "../../data-store" ;
7
+ import ConverterInterface from "../converter-interface" ;
8
+
9
+ /**
10
+ * Subtract margin from width to ensure adjacent elements do not
11
+ * move or resize when positive or negative margins are present
12
+ *
13
+ * @api
14
+ */
15
+ export default class Width implements ConverterInterface {
16
+ /**
17
+ * Convert value to internal format
18
+ *
19
+ * @param value string
20
+ * @returns {string | object }
21
+ */
22
+ public fromDom ( value : string ) : object | string {
23
+ if ( value . indexOf ( "calc" ) !== - 1 ) {
24
+ return value . split ( "%" ) [ 0 ] . split ( "(" ) [ 1 ] + "%" ;
25
+ }
26
+
27
+ return value ;
28
+ }
29
+
30
+ /**
31
+ * Convert value to knockout format
32
+ *
33
+ * @param name string
34
+ * @param data Object
35
+ * @returns {string | object }
36
+ */
37
+ public toDom ( name : string , data : DataObject ) : string {
38
+ if ( data [ name ] !== "" && data . margins_and_padding && data . margins_and_padding !== undefined ) {
39
+ const margins = data . margins_and_padding . margin || "" ;
40
+ const marginLeft = margins . left ? parseInt ( margins . left as string , 10 ) : 0 ;
41
+ const marginRight = margins . right ? parseInt ( margins . right as string , 10 ) : 0 ;
42
+
43
+ if ( marginLeft === 0 && marginRight === 0 ) {
44
+ return data [ name ] . toString ( ) ;
45
+ }
46
+
47
+ return "calc(" + data [ name ] . toString ( ) + " - " + ( marginLeft + marginRight ) + "px)" ;
48
+ }
49
+ }
50
+ }
You can’t perform that action at this time.
0 commit comments