@@ -4,7 +4,7 @@ import template from "./cardEditor.html";
44import { ViewManager } from "@paperbits/common/ui" ;
55import { WidgetEditor } from "@paperbits/common/widgets" ;
66import { StyleService , StyleHelper } from "@paperbits/styles" ;
7- import { ContainerStylePluginConfig } from "@paperbits/styles/plugins" ;
7+ import { BoxStylePluginConfig , ContainerStylePluginConfig , MarginStylePluginConfig , SizeStylePluginConfig } from "@paperbits/styles/plugins" ;
88import { Component , OnMounted , Param , Event } from "@paperbits/common/ko/decorators" ;
99import { CardModel } from "../cardModel" ;
1010import { BackgroundStylePluginConfig , TypographyStylePluginConfig } from "@paperbits/styles/plugins" ;
@@ -22,6 +22,8 @@ export class CardEditor implements WidgetEditor<CardModel> {
2222 public readonly appearanceStyles : ko . ObservableArray < any > ;
2323 public readonly appearanceStyle : ko . Observable < any > ;
2424 public readonly containerConfig : ko . Observable < ContainerStylePluginConfig > ;
25+ public readonly boxConfig : ko . Observable < BoxStylePluginConfig > ;
26+ public readonly sizeConfig : ko . Observable < SizeStylePluginConfig > ;
2527
2628 constructor (
2729 private readonly viewManager : ViewManager ,
@@ -32,6 +34,8 @@ export class CardEditor implements WidgetEditor<CardModel> {
3234 this . appearanceStyle = ko . observable < any > ( ) ;
3335 this . containerConfig = ko . observable < ContainerStylePluginConfig > ( ) ;
3436 this . background = ko . observable < BackgroundStylePluginConfig > ( ) ;
37+ this . boxConfig = ko . observable < BoxStylePluginConfig > ( ) ;
38+ this . sizeConfig = ko . observable < SizeStylePluginConfig > ( ) ;
3539 }
3640
3741 @Param ( )
@@ -53,14 +57,22 @@ export class CardEditor implements WidgetEditor<CardModel> {
5357
5458 private updateObservables ( ) : void {
5559 const viewport = this . viewManager . getViewport ( ) ;
60+ const localStyles = this . model . styles ;
5661
57- const containerStyleConfig = StyleHelper . getPluginConfigForLocalStyles ( this . model . styles , "container" , viewport ) ;
62+ const containerStyleConfig = StyleHelper . getPluginConfigForLocalStyles ( localStyles , "container" , viewport ) ;
5863 this . containerConfig ( containerStyleConfig ) ;
5964
60- const backgroundStyleConfig = StyleHelper . getPluginConfigForLocalStyles ( this . model . styles , "background" , viewport ) ;
65+ const backgroundStyleConfig = StyleHelper . getPluginConfigForLocalStyles ( localStyles , "background" , viewport ) ;
6166 this . background ( backgroundStyleConfig ) ;
6267
63- this . appearanceStyle ( this . model . styles . appearance ) ;
68+ const marginConfig = < MarginStylePluginConfig > StyleHelper . getPluginConfigForLocalStyles ( localStyles , "margin" ) ;
69+ const paddingConfig = < MarginStylePluginConfig > StyleHelper . getPluginConfigForLocalStyles ( localStyles , "padding" ) ;
70+ this . boxConfig ( { margin : marginConfig , padding : paddingConfig } ) ;
71+
72+ const sizeConfig = < SizeStylePluginConfig > StyleHelper . getPluginConfigForLocalStyles ( localStyles , "size" ) ;
73+ this . sizeConfig ( sizeConfig ) ;
74+
75+ this . appearanceStyle ( localStyles . appearance ) ;
6476 }
6577
6678 public onContainerChange ( pluginConfig : ContainerStylePluginConfig ) : void {
@@ -78,7 +90,18 @@ export class CardEditor implements WidgetEditor<CardModel> {
7890 public onAppearanceChange ( ) : void {
7991 const styleKey = this . appearanceStyle ( ) ;
8092 Objects . setValue ( "styles/appearance" , this . model , styleKey ) ;
93+ this . onChange ( this . model ) ;
94+ }
95+
96+ public onBoxUpdate ( pluginConfig : BoxStylePluginConfig ) : void {
97+ StyleHelper . setPluginConfigForLocalStyles ( this . model . styles , "margin" , pluginConfig . margin ) ;
98+ StyleHelper . setPluginConfigForLocalStyles ( this . model . styles , "padding" , pluginConfig . padding ) ;
99+ StyleHelper . setPluginConfigForLocalStyles ( this . model . styles , "border" , pluginConfig . border ) ;
100+ this . onChange ( this . model ) ;
101+ }
81102
103+ public onSizeChange ( sizeConfig : SizeStylePluginConfig ) : void {
104+ StyleHelper . setPluginConfigForLocalStyles ( this . model . styles , "size" , sizeConfig ) ;
82105 this . onChange ( this . model ) ;
83106 }
84107}
0 commit comments