From 0819fa4c7524f62459e42f99eb2c2c9807ed8504 Mon Sep 17 00:00:00 2001 From: peterpeterparker Date: Thu, 28 May 2020 16:38:34 +0200 Subject: [PATCH 1/7] feat: rename "Text" to "Font" Signed-off-by: peterpeterparker --- .../app-select-target-element.tsx | 4 ++-- .../editor/color/app-color-chart/app-color-chart.tsx | 4 ++-- .../editor/color/app-color-sides/app-color-sides.tsx | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/studio/src/app/components/editor/app-select-target-element/app-select-target-element.tsx b/studio/src/app/components/editor/app-select-target-element/app-select-target-element.tsx index baded3f67..7673e587d 100644 --- a/studio/src/app/components/editor/app-select-target-element/app-select-target-element.tsx +++ b/studio/src/app/components/editor/app-select-target-element/app-select-target-element.tsx @@ -118,7 +118,7 @@ export class AppSelectTargetElement { if (this.slide) { return ( - Text + Font ); } else { @@ -130,7 +130,7 @@ export class AppSelectTargetElement { if (this.textTarget) { return ( - Text + Font ); } else { diff --git a/studio/src/app/components/editor/color/app-color-chart/app-color-chart.tsx b/studio/src/app/components/editor/color/app-color-chart/app-color-chart.tsx index 9c575f37a..2026449e0 100644 --- a/studio/src/app/components/editor/color/app-color-chart/app-color-chart.tsx +++ b/studio/src/app/components/editor/color/app-color-chart/app-color-chart.tsx @@ -9,7 +9,7 @@ import {ChartUtils} from '../../../../utils/editor/chart.utils'; enum ApplyColorType { FILL, STROKE, - TEXT, + FONT, AXIS, GRID, } @@ -241,7 +241,7 @@ export class AppColorDeckSlide { const options = [ Fill, Stroke, - Text, + Font, ]; if (this.chartType != SlideChartType.PIE) { diff --git a/studio/src/app/components/editor/color/app-color-sides/app-color-sides.tsx b/studio/src/app/components/editor/color/app-color-sides/app-color-sides.tsx index c96907249..5f97b8ff2 100644 --- a/studio/src/app/components/editor/color/app-color-sides/app-color-sides.tsx +++ b/studio/src/app/components/editor/color/app-color-sides/app-color-sides.tsx @@ -4,7 +4,7 @@ import {RangeChangeEventDetail} from '@ionic/core'; import {ColorUtils, InitStyleColor} from '../../../../utils/editor/color.utils'; enum ApplyColorType { - TEXT, + FONT, BACKGROUND, } @@ -30,7 +30,7 @@ export class AppColorSides { private colorOpacity: number = 100; @State() - private applyColorType: ApplyColorType = ApplyColorType.TEXT; + private applyColorType: ApplyColorType = ApplyColorType.FONT; @Event() colorChange: EventEmitter; @@ -177,7 +177,7 @@ export class AppColorSides { interface="popover" mode="md" class="ion-padding-start ion-padding-end"> - Text, + Font, Background, @@ -214,7 +214,7 @@ export class AppColorSides { } private resetLabelContent() { - if (this.applyColorType === ApplyColorType.TEXT) { + if (this.applyColorType === ApplyColorType.FONT) { return 'Reset text color'; } else { return 'Reset background'; From bc20f592dfe2a8c849fd2051d9498f37c834ddc9 Mon Sep 17 00:00:00 2001 From: peterpeterparker Date: Thu, 28 May 2020 16:42:08 +0200 Subject: [PATCH 2/7] refactor: move colors to styles components package Signed-off-by: peterpeterparker --- .../app-color-text-background/app-color-text-background.tsx | 0 .../element}/app-color-code/app-color-code.scss | 0 .../element}/app-color-code/app-color-code.tsx | 2 +- .../slide}/app-color-chart/app-color-chart.tsx | 6 +++--- .../slide}/app-color-qrcode/app-color-qrcode.tsx | 2 +- .../slide}/app-color-sides/app-color-sides.tsx | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) rename studio/src/app/components/editor/{color => styles}/app-color-text-background/app-color-text-background.tsx (100%) rename studio/src/app/components/editor/{color => styles/element}/app-color-code/app-color-code.scss (100%) rename studio/src/app/components/editor/{color => styles/element}/app-color-code/app-color-code.tsx (99%) rename studio/src/app/components/editor/{color => styles/slide}/app-color-chart/app-color-chart.tsx (97%) rename studio/src/app/components/editor/{color => styles/slide}/app-color-qrcode/app-color-qrcode.tsx (98%) rename studio/src/app/components/editor/{color => styles/slide}/app-color-sides/app-color-sides.tsx (98%) diff --git a/studio/src/app/components/editor/color/app-color-text-background/app-color-text-background.tsx b/studio/src/app/components/editor/styles/app-color-text-background/app-color-text-background.tsx similarity index 100% rename from studio/src/app/components/editor/color/app-color-text-background/app-color-text-background.tsx rename to studio/src/app/components/editor/styles/app-color-text-background/app-color-text-background.tsx diff --git a/studio/src/app/components/editor/color/app-color-code/app-color-code.scss b/studio/src/app/components/editor/styles/element/app-color-code/app-color-code.scss similarity index 100% rename from studio/src/app/components/editor/color/app-color-code/app-color-code.scss rename to studio/src/app/components/editor/styles/element/app-color-code/app-color-code.scss diff --git a/studio/src/app/components/editor/color/app-color-code/app-color-code.tsx b/studio/src/app/components/editor/styles/element/app-color-code/app-color-code.tsx similarity index 99% rename from studio/src/app/components/editor/color/app-color-code/app-color-code.tsx rename to studio/src/app/components/editor/styles/element/app-color-code/app-color-code.tsx index fc82794f3..cda2cf5c9 100644 --- a/studio/src/app/components/editor/color/app-color-code/app-color-code.tsx +++ b/studio/src/app/components/editor/styles/element/app-color-code/app-color-code.tsx @@ -1,6 +1,6 @@ import {Component, Element, Event, EventEmitter, h, Prop, State} from '@stencil/core'; import {alertController, RangeChangeEventDetail} from '@ionic/core'; -import {ColorUtils, InitStyleColor} from '../../../../utils/editor/color.utils'; +import {ColorUtils, InitStyleColor} from '../../../../../utils/editor/color.utils'; enum CodeColorType { COMMENTS, diff --git a/studio/src/app/components/editor/color/app-color-chart/app-color-chart.tsx b/studio/src/app/components/editor/styles/slide/app-color-chart/app-color-chart.tsx similarity index 97% rename from studio/src/app/components/editor/color/app-color-chart/app-color-chart.tsx rename to studio/src/app/components/editor/styles/slide/app-color-chart/app-color-chart.tsx index 2026449e0..ecde30653 100644 --- a/studio/src/app/components/editor/color/app-color-chart/app-color-chart.tsx +++ b/studio/src/app/components/editor/styles/slide/app-color-chart/app-color-chart.tsx @@ -1,10 +1,10 @@ import {Component, Element, Event, EventEmitter, h, Method, Prop, State} from '@stencil/core'; import {RangeChangeEventDetail} from '@ionic/core'; -import {SlideChartType} from '../../../../models/data/slide'; +import {SlideChartType} from '../../../../../models/data/slide'; -import {ColorUtils, InitStyleColor} from '../../../../utils/editor/color.utils'; -import {ChartUtils} from '../../../../utils/editor/chart.utils'; +import {ColorUtils, InitStyleColor} from '../../../../../utils/editor/color.utils'; +import {ChartUtils} from '../../../../../utils/editor/chart.utils'; enum ApplyColorType { FILL, diff --git a/studio/src/app/components/editor/color/app-color-qrcode/app-color-qrcode.tsx b/studio/src/app/components/editor/styles/slide/app-color-qrcode/app-color-qrcode.tsx similarity index 98% rename from studio/src/app/components/editor/color/app-color-qrcode/app-color-qrcode.tsx rename to studio/src/app/components/editor/styles/slide/app-color-qrcode/app-color-qrcode.tsx index fe0044628..efaa6a24d 100644 --- a/studio/src/app/components/editor/color/app-color-qrcode/app-color-qrcode.tsx +++ b/studio/src/app/components/editor/styles/slide/app-color-qrcode/app-color-qrcode.tsx @@ -1,7 +1,7 @@ import {Component, Element, Event, EventEmitter, h, Method, Prop, State} from '@stencil/core'; import {RangeChangeEventDetail} from '@ionic/core'; -import {ColorUtils, InitStyleColor} from '../../../../utils/editor/color.utils'; +import {ColorUtils, InitStyleColor} from '../../../../../utils/editor/color.utils'; enum ApplyColorType { QR_CODE, diff --git a/studio/src/app/components/editor/color/app-color-sides/app-color-sides.tsx b/studio/src/app/components/editor/styles/slide/app-color-sides/app-color-sides.tsx similarity index 98% rename from studio/src/app/components/editor/color/app-color-sides/app-color-sides.tsx rename to studio/src/app/components/editor/styles/slide/app-color-sides/app-color-sides.tsx index 5f97b8ff2..81733a479 100644 --- a/studio/src/app/components/editor/color/app-color-sides/app-color-sides.tsx +++ b/studio/src/app/components/editor/styles/slide/app-color-sides/app-color-sides.tsx @@ -1,7 +1,7 @@ import {Component, Element, Event, EventEmitter, h, Method, Prop, State} from '@stencil/core'; import {RangeChangeEventDetail} from '@ionic/core'; -import {ColorUtils, InitStyleColor} from '../../../../utils/editor/color.utils'; +import {ColorUtils, InitStyleColor} from '../../../../../utils/editor/color.utils'; enum ApplyColorType { FONT, From 7630ce115a37e8196ac39dbeeef13fb633994bc4 Mon Sep 17 00:00:00 2001 From: peterpeterparker Date: Thu, 28 May 2020 17:03:22 +0200 Subject: [PATCH 3/7] feat: code terminal and theme are styles Signed-off-by: peterpeterparker --- .../app-expansion-panel.tsx | 12 +- .../app-color-code/app-color-code.scss | 9 ++ .../element/app-color-code/app-color-code.tsx | 130 ++++++++++++++++-- .../app/popovers/editor/app-code/app-code.tsx | 92 ------------- .../app-element-style/app-element-style.tsx | 4 +- studio/src/components.d.ts | 4 +- 6 files changed, 144 insertions(+), 107 deletions(-) diff --git a/studio/src/app/components/editor/styles/app-expansion-panel/app-expansion-panel.tsx b/studio/src/app/components/editor/styles/app-expansion-panel/app-expansion-panel.tsx index 50161d8de..173e53bf8 100644 --- a/studio/src/app/components/editor/styles/app-expansion-panel/app-expansion-panel.tsx +++ b/studio/src/app/components/editor/styles/app-expansion-panel/app-expansion-panel.tsx @@ -1,4 +1,4 @@ -import {Component, h, State, Prop} from '@stencil/core'; +import {Component, h, Prop} from '@stencil/core'; @Component({ tag: 'app-expansion-panel', @@ -10,11 +10,17 @@ export class AppExpansionPanel { @Prop() expander: boolean = true; - @State() - private expanded: 'open' | 'close' = 'open'; + @Prop({mutable: true}) + expanded: 'open' | 'close' = 'open'; // Source animation: https://css-tricks.com/using-css-transitions-auto-dimensions/ + componentDidLoad() { + if (this.expanded === 'close') { + this.container.style.height = 0 + 'px'; + } + } + private toggle() { if (this.expanded === 'close') { this.expand(); diff --git a/studio/src/app/components/editor/styles/element/app-color-code/app-color-code.scss b/studio/src/app/components/editor/styles/element/app-color-code/app-color-code.scss index 83cea7cfd..021aaec46 100644 --- a/studio/src/app/components/editor/styles/element/app-color-code/app-color-code.scss +++ b/studio/src/app/components/editor/styles/element/app-color-code/app-color-code.scss @@ -8,4 +8,13 @@ app-color-code { ion-item.action-button { padding-bottom: 8px; } + + ion-list { + &.terminal, + &.theme { + ion-item { + margin-bottom: 4px; + } + } + } } diff --git a/studio/src/app/components/editor/styles/element/app-color-code/app-color-code.tsx b/studio/src/app/components/editor/styles/element/app-color-code/app-color-code.tsx index cda2cf5c9..305fea9f6 100644 --- a/studio/src/app/components/editor/styles/element/app-color-code/app-color-code.tsx +++ b/studio/src/app/components/editor/styles/element/app-color-code/app-color-code.tsx @@ -1,5 +1,9 @@ import {Component, Element, Event, EventEmitter, h, Prop, State} from '@stencil/core'; + import {alertController, RangeChangeEventDetail} from '@ionic/core'; + +import {DeckdeckgoHighlightCodeCarbonTheme, DeckdeckgoHighlightCodeTerminal} from '@deckdeckgo/highlight-code'; + import {ColorUtils, InitStyleColor} from '../../../../../utils/editor/color.utils'; enum CodeColorType { @@ -45,11 +49,18 @@ export class AppColorCode { @State() private highlightColorOpacity: number = 100; - @Event() colorChange: EventEmitter; + @State() + private terminal: DeckdeckgoHighlightCodeTerminal = DeckdeckgoHighlightCodeTerminal.CARBON; + + @State() + private theme: DeckdeckgoHighlightCodeCarbonTheme = DeckdeckgoHighlightCodeCarbonTheme.DRACULA; + + @Event() codeDidChange: EventEmitter; async componentWillLoad() { - await this.initColor(); - await this.initCurrentHiglight(); + const promises: Promise[] = [this.initColor(), this.initCurrentHiglight(), this.initTerminal()]; + + await Promise.all(promises); } // prettier-ignore @@ -68,6 +79,18 @@ export class AppColorCode { }); } + private async initTerminal() { + this.terminal = + this.selectedElement && this.selectedElement.hasAttribute('terminal') + ? (this.selectedElement.getAttribute('terminal') as DeckdeckgoHighlightCodeTerminal) + : DeckdeckgoHighlightCodeTerminal.CARBON; + + this.theme = + this.selectedElement && this.selectedElement.hasAttribute('theme') + ? (this.selectedElement.getAttribute('theme') as DeckdeckgoHighlightCodeCarbonTheme) + : DeckdeckgoHighlightCodeCarbonTheme.DRACULA; + } + private selectColor($event: CustomEvent, colorFunction: Function): Promise { return new Promise(async (resolve) => { if (!this.selectedElement || !this.selectedElement.parentElement) { @@ -165,13 +188,13 @@ export class AppColorCode { } // prettier-ignore - private initColor(): Promise { - return new Promise(async (resolve) => { + private initColor(): Promise { + return new Promise(async (resolve) => { if (!this.selectedElement || !this.selectedElement.style) { this.codeColor = undefined; this.codeColorOpacity = 100; - resolve(null); + resolve(); return; } @@ -248,7 +271,7 @@ export class AppColorCode { } private emitColorChange() { - this.colorChange.emit(); + this.codeDidChange.emit(); } private updateOpacity($event: CustomEvent, opacityFunction: Function): Promise { @@ -297,13 +320,39 @@ export class AppColorCode { }); } + private toggle($event: CustomEvent, attribute: 'terminal' | 'theme'): Promise { + return new Promise(async (resolve) => { + if (!$event || !$event.detail) { + resolve(); + return; + } + + if (!this.selectedElement) { + resolve(); + return; + } + + if (attribute === 'terminal') { + this.terminal = $event.detail.value; + } else if (attribute === 'theme') { + this.theme = $event.detail.value; + } + + this.selectedElement.setAttribute(attribute, $event.detail.value); + + this.codeDidChange.emit(); + + resolve(); + }); + } + render() { - return [this.renderCategoryColor(), this.renderHighlightLinesColor()]; + return [this.renderTerminal(), this.renderTheme(), this.renderCategoryColor(), this.renderHighlightLinesColor()]; } private renderCategoryColor() { return ( - + Colors @@ -365,9 +414,70 @@ export class AppColorCode { ); } - private renderHighlightLinesColor() { + private renderTerminal() { + return ( + + Terminal + + + + Terminal + + this.toggle($event, 'terminal')} + interface="popover" + mode="md" + class="ion-padding-start ion-padding-end ion-text-capitalize"> + {Object.keys(DeckdeckgoHighlightCodeTerminal).map((key: string) => { + return ( + + {DeckdeckgoHighlightCodeTerminal[key].replace(/^\w/, (c) => c.toUpperCase())} + + ); + })} + + + + + ); + } + + private renderTheme() { return ( + Theme + + + + Theme + + this.toggle($event, 'theme')} + interface="popover" + mode="md" + class="ion-padding-start ion-padding-end ion-text-capitalize"> + {Object.keys(DeckdeckgoHighlightCodeCarbonTheme).map((key: string) => { + return ( + + {DeckdeckgoHighlightCodeCarbonTheme[key].replace(/^\w/, (c) => c.toUpperCase())} + + ); + })} + + + + + ); + } + + private renderHighlightLinesColor() { + return ( + Highlight lines