From b9ae7564c3e9ea7b283062cd66271448b7a04e90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Diego=20Rodr=C3=ADguez=20Royo?= Date: Mon, 11 Mar 2024 15:07:58 +0000 Subject: [PATCH 1/2] [Site] Configure host container at designer through query params Possible configurations are: Host app, theme, size, and device emulation. --- .../src/card-designer.ts | 32 +++++++++++++++++++ .../themes/adaptivecards/layout/designer.ejs | 2 ++ 2 files changed, 34 insertions(+) diff --git a/source/nodejs/adaptivecards-designer/src/card-designer.ts b/source/nodejs/adaptivecards-designer/src/card-designer.ts index f55fc29100..e24c2ee1be 100644 --- a/source/nodejs/adaptivecards-designer/src/card-designer.ts +++ b/source/nodejs/adaptivecards-designer/src/card-designer.ts @@ -1729,6 +1729,38 @@ export class CardDesigner extends Designer.DesignContext { this.setCardPayload(card, true); } + public configHostContainer(hostApp: number, theme: string, size: string, deviceEmulation: number){ + if (hostApp && 0 <= hostApp && hostApp < this._hostContainers.length + && this._hostContainerChoicePicker.selectedIndex !== hostApp) { + this._hostContainerChoicePicker.selectedIndex = hostApp; + } + + if (!!this.hostContainer.supportsMultipleThemes) { + if (!this.sampleHostData) { + this.sampleHostData = {}; + } + if (theme && HostContainer.supportedContainerThemes.includes(theme)) { + this._containerThemeChoicePicker.selectedIndex = HostContainer.supportedContainerThemes.indexOf(theme); + } + this.updateHostDataThemeProperty(); + } + + if (!!this.hostContainer.supportsMultipleSizes) { + if (!this.sampleHostData) { + this.sampleHostData = {}; + } + if (size && WidgetContainer.supportedContainerSizes.includes(size)) { + this._containerSizeChoicePicker.selectedIndex = WidgetContainer.supportedContainerSizes.indexOf(size); + } + this.updateHostDataSizeProperty(); + } + + if (deviceEmulation && !!this._hostContainer.enableDeviceEmulation && 0 <= deviceEmulation && deviceEmulation < this._deviceEmulations.length && + this._deviceEmulationChoicePicker.selectedIndex !== deviceEmulation) { + this._deviceEmulationChoicePicker.selectedIndex = deviceEmulation; + } + } + onCardPayloadChanged: (designer: CardDesigner) => void; onCardValidated: (designer: CardDesigner, validationLogEntries: Adaptive.IValidationEvent[]) => void; onActiveHostContainerChanged: (designer: CardDesigner) => void; diff --git a/source/nodejs/adaptivecards-site/themes/adaptivecards/layout/designer.ejs b/source/nodejs/adaptivecards-site/themes/adaptivecards/layout/designer.ejs index 7aa684a421..183f2c52c4 100644 --- a/source/nodejs/adaptivecards-site/themes/adaptivecards/layout/designer.ejs +++ b/source/nodejs/adaptivecards-site/themes/adaptivecards/layout/designer.ejs @@ -308,6 +308,8 @@ }); } designer.sampleHostData = {}; + + designer.configHostContainer(parseInt(getParameterByName("hostApp")), getParameterByName("theme"), getParameterByName("size"), parseInt(getParameterByName("deviceEmulation"))); } if (!ACDesigner.SettingsManager.isLocalStorageAvailable) { From 327a58df603be32c742a70d1f2a60d682b4107c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Diego=20Rodr=C3=ADguez=20Royo?= Date: Mon, 11 Mar 2024 15:08:20 +0000 Subject: [PATCH 2/2] [Site] Added query param to set preview mode on designer --- source/nodejs/adaptivecards-designer/src/card-designer.ts | 5 +++++ .../themes/adaptivecards/layout/designer.ejs | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/source/nodejs/adaptivecards-designer/src/card-designer.ts b/source/nodejs/adaptivecards-designer/src/card-designer.ts index e24c2ee1be..17cd44d056 100644 --- a/source/nodejs/adaptivecards-designer/src/card-designer.ts +++ b/source/nodejs/adaptivecards-designer/src/card-designer.ts @@ -1761,6 +1761,11 @@ export class CardDesigner extends Designer.DesignContext { } } + public togglePreviewButton() { + this._togglePreviewButton.isToggled = true; + this.togglePreview(); + } + onCardPayloadChanged: (designer: CardDesigner) => void; onCardValidated: (designer: CardDesigner, validationLogEntries: Adaptive.IValidationEvent[]) => void; onActiveHostContainerChanged: (designer: CardDesigner) => void; diff --git a/source/nodejs/adaptivecards-site/themes/adaptivecards/layout/designer.ejs b/source/nodejs/adaptivecards-site/themes/adaptivecards/layout/designer.ejs index 183f2c52c4..40d94d72a5 100644 --- a/source/nodejs/adaptivecards-site/themes/adaptivecards/layout/designer.ejs +++ b/source/nodejs/adaptivecards-site/themes/adaptivecards/layout/designer.ejs @@ -310,6 +310,10 @@ designer.sampleHostData = {}; designer.configHostContainer(parseInt(getParameterByName("hostApp")), getParameterByName("theme"), getParameterByName("size"), parseInt(getParameterByName("deviceEmulation"))); + + if (getParameterByName("preview") === "1") { + designer.togglePreviewButton(); + } } if (!ACDesigner.SettingsManager.isLocalStorageAvailable) {