WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Commit 37a8a95

Browse files
committed
Extended Card editor with "box" local styling.
1 parent 67716e8 commit 37a8a95

File tree

3 files changed

+48
-7
lines changed

3 files changed

+48
-7
lines changed

src/button/ko/buttonEditor.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,10 @@ export class ButtonEditor {
119119
}
120120

121121
public onBoxUpdate(pluginConfig: BoxStylePluginConfig): void {
122-
this.boxConfig(pluginConfig);
123-
this.applyChanges();
122+
StyleHelper.setPluginConfigForLocalStyles(this.model.styles, "margin", pluginConfig.margin);
123+
StyleHelper.setPluginConfigForLocalStyles(this.model.styles, "padding", pluginConfig.padding);
124+
StyleHelper.setPluginConfigForLocalStyles(this.model.styles, "border", pluginConfig.border);
125+
this.onChange(this.model);
124126
}
125127

126128
public onSizeChange(sizeConfig: SizeStylePluginConfig): void {

src/card/ko/cardEditor.html

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
<details open>
1212
<summary>
13-
Styling
13+
Base styling
1414
</summary>
1515
<div class="form-group">
1616
<label for="appearanceStyle" class="form-label">
@@ -22,4 +22,20 @@
2222
params="{ options: appearanceStyles, value: appearanceStyle, optionsText: 'displayName', optionsValue: 'key', heading: 'Appearance' }">
2323
</dropdown>
2424
</div>
25+
</details>
26+
27+
<details open>
28+
<summary>
29+
Size
30+
</summary>
31+
<size-editor
32+
params="{ features: 'height,width', allowUnits: 'px,%', sizeConfig: sizeConfig, onUpdate: onSizeChange }">
33+
</size-editor>
34+
</details>
35+
36+
<details open>
37+
<summary>
38+
Box
39+
</summary>
40+
<box params="{ features: 'margin,padding,border', box: boxConfig, onUpdate: onBoxUpdate }"></box>
2541
</details>

src/card/ko/cardEditor.ts

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import template from "./cardEditor.html";
44
import { ViewManager } from "@paperbits/common/ui";
55
import { WidgetEditor } from "@paperbits/common/widgets";
66
import { StyleService, StyleHelper } from "@paperbits/styles";
7-
import { ContainerStylePluginConfig } from "@paperbits/styles/plugins";
7+
import { BoxStylePluginConfig, ContainerStylePluginConfig, MarginStylePluginConfig, SizeStylePluginConfig } from "@paperbits/styles/plugins";
88
import { Component, OnMounted, Param, Event } from "@paperbits/common/ko/decorators";
99
import { CardModel } from "../cardModel";
1010
import { 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

Comments
 (0)