@praxisui/core 9.0.27 → 9.0.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/ai/component-registry.json +13 -6
- package/fesm2022/praxisui-core.mjs +251 -102
- package/package.json +1 -1
- package/types/praxisui-core.d.ts +49 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, InjectionToken, Injectable, inject, Inject, Optional, SkipSelf, makeEnvironmentProviders, APP_INITIALIZER, signal, computed, DestroyRef, ENVIRONMENT_INITIALIZER, ErrorHandler, Input, Directive, input, booleanAttribute, ChangeDetectionStrategy, EventEmitter, Output, SecurityContext, ViewContainerRef, SimpleChange, ContentChild, HostBinding, Injector, ElementRef, ChangeDetectorRef, HostListener, ViewChildren, ViewChild, output, effect } from '@angular/core';
|
|
2
|
+
import { Component, InjectionToken, Injectable, inject, Inject, Optional, SkipSelf, makeEnvironmentProviders, APP_INITIALIZER, signal, computed, DestroyRef, ENVIRONMENT_INITIALIZER, ErrorHandler, Input, Directive, input, booleanAttribute, ChangeDetectionStrategy, EventEmitter, Output, SecurityContext, ViewContainerRef, SimpleChange, ContentChild, HostBinding, Injector, ElementRef, ChangeDetectorRef, afterNextRender, HostListener, ViewChildren, ViewChild, output, effect } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common/http';
|
|
4
4
|
import { HttpHeaders, HttpClient, HttpParams, HttpResponse, HttpContextToken, HTTP_INTERCEPTORS, withInterceptors } from '@angular/common/http';
|
|
5
5
|
import { of, defer, throwError, from, EMPTY, BehaviorSubject, firstValueFrom, Subject, finalize as finalize$1, shareReplay as shareReplay$1, map as map$1, switchMap as switchMap$1, catchError as catchError$1, forkJoin } from 'rxjs';
|
|
@@ -37066,6 +37066,7 @@ class DynamicWidgetContextToolbarComponent {
|
|
|
37066
37066
|
showShellSettings = false;
|
|
37067
37067
|
shellSettingsLabel = '';
|
|
37068
37068
|
shellSettingsTooltip = '';
|
|
37069
|
+
showRemove = true;
|
|
37069
37070
|
moreActionsLabel = '';
|
|
37070
37071
|
removeLabel = '';
|
|
37071
37072
|
assistant = new EventEmitter();
|
|
@@ -37073,7 +37074,7 @@ class DynamicWidgetContextToolbarComponent {
|
|
|
37073
37074
|
shellSettings = new EventEmitter();
|
|
37074
37075
|
remove = new EventEmitter();
|
|
37075
37076
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: DynamicWidgetContextToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
37076
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: DynamicWidgetContextToolbarComponent, isStandalone: true, selector: "praxis-dynamic-widget-context-toolbar", inputs: { toolbarLabel: "toolbarLabel", contextLabel: "contextLabel", contextTooltip: "contextTooltip", showAssistant: "showAssistant", assistantLabel: "assistantLabel", assistantTooltip: "assistantTooltip", showComponentSettings: "showComponentSettings", componentSettingsLabel: "componentSettingsLabel", componentSettingsTooltip: "componentSettingsTooltip", showShellSettings: "showShellSettings", shellSettingsLabel: "shellSettingsLabel", shellSettingsTooltip: "shellSettingsTooltip", moreActionsLabel: "moreActionsLabel", removeLabel: "removeLabel" }, outputs: { assistant: "assistant", componentSettings: "componentSettings", shellSettings: "shellSettings", remove: "remove" }, ngImport: i0, template: `
|
|
37077
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: DynamicWidgetContextToolbarComponent, isStandalone: true, selector: "praxis-dynamic-widget-context-toolbar", inputs: { toolbarLabel: "toolbarLabel", contextLabel: "contextLabel", contextTooltip: "contextTooltip", showAssistant: "showAssistant", assistantLabel: "assistantLabel", assistantTooltip: "assistantTooltip", showComponentSettings: "showComponentSettings", componentSettingsLabel: "componentSettingsLabel", componentSettingsTooltip: "componentSettingsTooltip", showShellSettings: "showShellSettings", shellSettingsLabel: "shellSettingsLabel", shellSettingsTooltip: "shellSettingsTooltip", showRemove: "showRemove", moreActionsLabel: "moreActionsLabel", removeLabel: "removeLabel" }, outputs: { assistant: "assistant", componentSettings: "componentSettings", shellSettings: "shellSettings", remove: "remove" }, ngImport: i0, template: `
|
|
37077
37078
|
<div
|
|
37078
37079
|
class="pdx-widget-context-toolbar"
|
|
37079
37080
|
[class.pdx-widget-context-toolbar--with-context]="!!contextLabel"
|
|
@@ -37125,21 +37126,23 @@ class DynamicWidgetContextToolbarComponent {
|
|
|
37125
37126
|
(click)="shellSettings.emit()"
|
|
37126
37127
|
></button>
|
|
37127
37128
|
}
|
|
37128
|
-
|
|
37129
|
-
|
|
37130
|
-
|
|
37131
|
-
|
|
37132
|
-
|
|
37133
|
-
|
|
37134
|
-
|
|
37135
|
-
|
|
37136
|
-
|
|
37137
|
-
|
|
37138
|
-
<
|
|
37139
|
-
<mat-
|
|
37140
|
-
|
|
37141
|
-
|
|
37142
|
-
|
|
37129
|
+
@if (showRemove) {
|
|
37130
|
+
<button
|
|
37131
|
+
praxisIconButton="ms:more_horiz"
|
|
37132
|
+
size="dense"
|
|
37133
|
+
type="button"
|
|
37134
|
+
data-testid="dynamic-widget-more-actions"
|
|
37135
|
+
[matTooltip]="moreActionsLabel"
|
|
37136
|
+
[attr.aria-label]="moreActionsLabel"
|
|
37137
|
+
[matMenuTriggerFor]="widgetContextMenu"
|
|
37138
|
+
></button>
|
|
37139
|
+
<mat-menu #widgetContextMenu="matMenu">
|
|
37140
|
+
<button mat-menu-item type="button" data-testid="dynamic-widget-remove" (click)="remove.emit()">
|
|
37141
|
+
<mat-icon [praxisIcon]="'delete'"></mat-icon>
|
|
37142
|
+
<span>{{ removeLabel }}</span>
|
|
37143
|
+
</button>
|
|
37144
|
+
</mat-menu>
|
|
37145
|
+
}
|
|
37143
37146
|
</div>
|
|
37144
37147
|
`, isInline: true, styles: [".pdx-widget-context-toolbar{position:absolute;top:-19px;right:12px;z-index:4;display:inline-flex;align-items:center;gap:4px;min-height:34px;padding:2px 4px;border:1px solid color-mix(in srgb,var(--md-sys-color-primary) 28%,var(--md-sys-color-outline-variant));border-radius:999px;background:color-mix(in srgb,var(--md-sys-color-surface-container-high) 88%,transparent);box-shadow:0 10px 28px #0f172a38,0 0 0 1px color-mix(in srgb,var(--md-sys-color-primary) 10%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.pdx-widget-context-toolbar--with-context{border-radius:18px}.pdx-widget-context-toolbar__context{display:inline-flex;align-items:center;align-self:stretch;max-width:180px;padding:0 8px 0 10px;border-right:1px solid color-mix(in srgb,var(--md-sys-color-outline-variant) 64%,transparent);color:var(--md-sys-color-on-surface-variant);font-size:11px;font-weight:700;letter-spacing:.01em;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "component", type: PraxisIconButtonComponent, selector: "button[praxisIconButton]", inputs: ["praxisIconButton", "size", "appearance", "presentation", "pressed", "busy"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
37145
37148
|
}
|
|
@@ -37203,21 +37206,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
37203
37206
|
(click)="shellSettings.emit()"
|
|
37204
37207
|
></button>
|
|
37205
37208
|
}
|
|
37206
|
-
|
|
37207
|
-
|
|
37208
|
-
|
|
37209
|
-
|
|
37210
|
-
|
|
37211
|
-
|
|
37212
|
-
|
|
37213
|
-
|
|
37214
|
-
|
|
37215
|
-
|
|
37216
|
-
<
|
|
37217
|
-
<mat-
|
|
37218
|
-
|
|
37219
|
-
|
|
37220
|
-
|
|
37209
|
+
@if (showRemove) {
|
|
37210
|
+
<button
|
|
37211
|
+
praxisIconButton="ms:more_horiz"
|
|
37212
|
+
size="dense"
|
|
37213
|
+
type="button"
|
|
37214
|
+
data-testid="dynamic-widget-more-actions"
|
|
37215
|
+
[matTooltip]="moreActionsLabel"
|
|
37216
|
+
[attr.aria-label]="moreActionsLabel"
|
|
37217
|
+
[matMenuTriggerFor]="widgetContextMenu"
|
|
37218
|
+
></button>
|
|
37219
|
+
<mat-menu #widgetContextMenu="matMenu">
|
|
37220
|
+
<button mat-menu-item type="button" data-testid="dynamic-widget-remove" (click)="remove.emit()">
|
|
37221
|
+
<mat-icon [praxisIcon]="'delete'"></mat-icon>
|
|
37222
|
+
<span>{{ removeLabel }}</span>
|
|
37223
|
+
</button>
|
|
37224
|
+
</mat-menu>
|
|
37225
|
+
}
|
|
37221
37226
|
</div>
|
|
37222
37227
|
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".pdx-widget-context-toolbar{position:absolute;top:-19px;right:12px;z-index:4;display:inline-flex;align-items:center;gap:4px;min-height:34px;padding:2px 4px;border:1px solid color-mix(in srgb,var(--md-sys-color-primary) 28%,var(--md-sys-color-outline-variant));border-radius:999px;background:color-mix(in srgb,var(--md-sys-color-surface-container-high) 88%,transparent);box-shadow:0 10px 28px #0f172a38,0 0 0 1px color-mix(in srgb,var(--md-sys-color-primary) 10%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.pdx-widget-context-toolbar--with-context{border-radius:18px}.pdx-widget-context-toolbar__context{display:inline-flex;align-items:center;align-self:stretch;max-width:180px;padding:0 8px 0 10px;border-right:1px solid color-mix(in srgb,var(--md-sys-color-outline-variant) 64%,transparent);color:var(--md-sys-color-on-surface-variant);font-size:11px;font-weight:700;letter-spacing:.01em;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"] }]
|
|
37223
37228
|
}], propDecorators: { toolbarLabel: [{
|
|
@@ -37244,6 +37249,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
37244
37249
|
type: Input
|
|
37245
37250
|
}], shellSettingsTooltip: [{
|
|
37246
37251
|
type: Input
|
|
37252
|
+
}], showRemove: [{
|
|
37253
|
+
type: Input
|
|
37247
37254
|
}], moreActionsLabel: [{
|
|
37248
37255
|
type: Input
|
|
37249
37256
|
}], removeLabel: [{
|
|
@@ -37483,6 +37490,8 @@ class DynamicWidgetPageComponent {
|
|
|
37483
37490
|
strictValidation = true;
|
|
37484
37491
|
/** Enables lightweight editing affordances (shell + page layout). */
|
|
37485
37492
|
enableCustomization = false;
|
|
37493
|
+
/** Optional host grant that narrows the available authoring operations. */
|
|
37494
|
+
authoringCapabilities;
|
|
37486
37495
|
/** Shows page settings button when edit mode is enabled. */
|
|
37487
37496
|
showPageSettingsButton = true;
|
|
37488
37497
|
/** Optional editor component override for widget shell settings. */
|
|
@@ -37584,7 +37593,7 @@ class DynamicWidgetPageComponent {
|
|
|
37584
37593
|
widgetLoaders;
|
|
37585
37594
|
constructor() {
|
|
37586
37595
|
this.registerRuntimeComponentObservationProvider();
|
|
37587
|
-
this.observeHostWidth();
|
|
37596
|
+
afterNextRender({ read: () => this.observeHostWidth() });
|
|
37588
37597
|
}
|
|
37589
37598
|
ngOnDestroy() {
|
|
37590
37599
|
this.destroyed = true;
|
|
@@ -37598,6 +37607,7 @@ class DynamicWidgetPageComponent {
|
|
|
37598
37607
|
if (changes['page'] ||
|
|
37599
37608
|
changes['context'] ||
|
|
37600
37609
|
changes['enableCustomization'] ||
|
|
37610
|
+
changes['authoringCapabilities'] ||
|
|
37601
37611
|
changes['pageIdentity']) {
|
|
37602
37612
|
this.widgetShellRenderCache.clear();
|
|
37603
37613
|
const parsed = this.parsePage(this.page);
|
|
@@ -38866,10 +38876,21 @@ class DynamicWidgetPageComponent {
|
|
|
38866
38876
|
}
|
|
38867
38877
|
return `widget:${fromKey}:${output}:${timestamp}:${sequence}`;
|
|
38868
38878
|
}
|
|
38879
|
+
canCustomizeCanvas() {
|
|
38880
|
+
return this.isAuthoringCapabilityEnabled('canvas');
|
|
38881
|
+
}
|
|
38882
|
+
canOpenPageSettings() {
|
|
38883
|
+
return this.isAuthoringCapabilityEnabled('pageSettings')
|
|
38884
|
+
&& this.showPageSettingsButton
|
|
38885
|
+
&& !!(this.pageEditorComponent || this.defaultPageEditor);
|
|
38886
|
+
}
|
|
38869
38887
|
canOpenWidgetShellSettings() {
|
|
38870
|
-
return
|
|
38888
|
+
return this.isWidgetShellCapabilityEnabled()
|
|
38889
|
+
&& !!(this.shellEditorComponent || this.defaultShellEditor);
|
|
38871
38890
|
}
|
|
38872
38891
|
canOpenWidgetComponentSettings(key) {
|
|
38892
|
+
if (!this.isAuthoringCapabilityEnabled('widgetInputs'))
|
|
38893
|
+
return false;
|
|
38873
38894
|
const page = this.pageDefinition || this.parsePage(this.page);
|
|
38874
38895
|
const widget = page?.widgets?.find((candidate) => candidate.key === key);
|
|
38875
38896
|
if (!widget)
|
|
@@ -38877,6 +38898,38 @@ class DynamicWidgetPageComponent {
|
|
|
38877
38898
|
const metadata = this.componentMetadata?.get(widget.definition?.id || '');
|
|
38878
38899
|
return !!metadata?.configEditor?.component;
|
|
38879
38900
|
}
|
|
38901
|
+
canRemoveWidgets() {
|
|
38902
|
+
return this.isAuthoringCapabilityEnabled('widgetRemoval');
|
|
38903
|
+
}
|
|
38904
|
+
canRequestWidgetAssistant() {
|
|
38905
|
+
return this.enableCustomization && this.showWidgetAssistantButton;
|
|
38906
|
+
}
|
|
38907
|
+
canSelectWidgets() {
|
|
38908
|
+
return this.enableCustomization && (this.canCustomizeCanvas()
|
|
38909
|
+
|| this.canOpenWidgetShellSettings()
|
|
38910
|
+
|| this.isAuthoringCapabilityEnabled('widgetInputs')
|
|
38911
|
+
|| this.canRemoveWidgets()
|
|
38912
|
+
|| this.canRequestWidgetAssistant());
|
|
38913
|
+
}
|
|
38914
|
+
isAuthoringCapabilityEnabled(capability) {
|
|
38915
|
+
return this.enableCustomization
|
|
38916
|
+
&& this.authoringCapabilities?.[capability] !== false;
|
|
38917
|
+
}
|
|
38918
|
+
isWidgetShellCapabilityEnabled() {
|
|
38919
|
+
return this.isWidgetShellCapabilityEnabledFor('identity')
|
|
38920
|
+
|| this.isWidgetShellCapabilityEnabledFor('appearance')
|
|
38921
|
+
|| this.isWidgetShellCapabilityEnabledFor('actions');
|
|
38922
|
+
}
|
|
38923
|
+
isWidgetShellCapabilityEnabledFor(capability) {
|
|
38924
|
+
if (!this.enableCustomization)
|
|
38925
|
+
return false;
|
|
38926
|
+
const widgetShell = this.authoringCapabilities?.widgetShell;
|
|
38927
|
+
if (widgetShell === false)
|
|
38928
|
+
return false;
|
|
38929
|
+
if (!widgetShell || widgetShell === true)
|
|
38930
|
+
return true;
|
|
38931
|
+
return widgetShell[capability] !== false;
|
|
38932
|
+
}
|
|
38880
38933
|
componentSettingsLabel() {
|
|
38881
38934
|
return this.t('controls.componentSettings', 'Configurar conteúdo');
|
|
38882
38935
|
}
|
|
@@ -38896,6 +38949,8 @@ class DynamicWidgetPageComponent {
|
|
|
38896
38949
|
return this.t('controls.widgetAssistantTooltip', 'Abrir o assistente Praxis com contexto deste widget');
|
|
38897
38950
|
}
|
|
38898
38951
|
requestWidgetAssistant(widgetKey) {
|
|
38952
|
+
if (!this.canRequestWidgetAssistant())
|
|
38953
|
+
return;
|
|
38899
38954
|
this.selectWidget(widgetKey);
|
|
38900
38955
|
this.widgetAssistantRequested.emit(widgetKey);
|
|
38901
38956
|
}
|
|
@@ -38920,7 +38975,8 @@ class DynamicWidgetPageComponent {
|
|
|
38920
38975
|
});
|
|
38921
38976
|
}
|
|
38922
38977
|
shouldRenderWidgetContextOverlay(widget) {
|
|
38923
|
-
return (this.
|
|
38978
|
+
return (this.hasWidgetContextAuthoringActions(widget)
|
|
38979
|
+
&& !this.hasVisibleWidgetShellHeader(widget));
|
|
38924
38980
|
}
|
|
38925
38981
|
widgetShellForRender(widget) {
|
|
38926
38982
|
if (!this.shouldProjectWidgetHeaderActions(widget)) {
|
|
@@ -38964,7 +39020,14 @@ class DynamicWidgetPageComponent {
|
|
|
38964
39020
|
return metadata?.friendlyName || componentId || widget.key;
|
|
38965
39021
|
}
|
|
38966
39022
|
shouldProjectWidgetHeaderActions(widget) {
|
|
38967
|
-
return this.
|
|
39023
|
+
return this.hasWidgetContextAuthoringActions(widget)
|
|
39024
|
+
&& this.hasVisibleWidgetShellHeader(widget);
|
|
39025
|
+
}
|
|
39026
|
+
hasWidgetContextAuthoringActions(widget) {
|
|
39027
|
+
return this.canRequestWidgetAssistant()
|
|
39028
|
+
|| this.canOpenWidgetComponentSettings(widget.key)
|
|
39029
|
+
|| this.canOpenWidgetShellSettings()
|
|
39030
|
+
|| this.canRemoveWidgets();
|
|
38968
39031
|
}
|
|
38969
39032
|
hasVisibleWidgetShellHeader(widget) {
|
|
38970
39033
|
const shell = widget.shell;
|
|
@@ -38989,7 +39052,7 @@ class DynamicWidgetPageComponent {
|
|
|
38989
39052
|
}
|
|
38990
39053
|
buildProjectedWidgetShellActions(widget) {
|
|
38991
39054
|
const actions = [];
|
|
38992
|
-
if (this.
|
|
39055
|
+
if (this.canRequestWidgetAssistant()) {
|
|
38993
39056
|
actions.push({
|
|
38994
39057
|
id: 'widget-assistant',
|
|
38995
39058
|
label: this.widgetAssistantLabel(),
|
|
@@ -39019,14 +39082,16 @@ class DynamicWidgetPageComponent {
|
|
|
39019
39082
|
placement: 'header',
|
|
39020
39083
|
});
|
|
39021
39084
|
}
|
|
39022
|
-
|
|
39023
|
-
|
|
39024
|
-
|
|
39025
|
-
|
|
39026
|
-
|
|
39027
|
-
|
|
39028
|
-
|
|
39029
|
-
|
|
39085
|
+
if (this.canRemoveWidgets()) {
|
|
39086
|
+
actions.push({
|
|
39087
|
+
id: 'widget-remove',
|
|
39088
|
+
label: this.widgetRemoveLabel(),
|
|
39089
|
+
tooltip: this.widgetRemoveLabel(),
|
|
39090
|
+
icon: 'delete',
|
|
39091
|
+
variant: 'icon',
|
|
39092
|
+
placement: 'header',
|
|
39093
|
+
});
|
|
39094
|
+
}
|
|
39030
39095
|
return actions;
|
|
39031
39096
|
}
|
|
39032
39097
|
widgetShellActionSignature(actions) {
|
|
@@ -39084,6 +39149,8 @@ class DynamicWidgetPageComponent {
|
|
|
39084
39149
|
this.cancelCanvasInteractionForWidget(fromKey);
|
|
39085
39150
|
}
|
|
39086
39151
|
if (evt.id === 'widget-assistant') {
|
|
39152
|
+
if (!this.canRequestWidgetAssistant())
|
|
39153
|
+
return;
|
|
39087
39154
|
this.requestWidgetAssistant(fromKey);
|
|
39088
39155
|
return;
|
|
39089
39156
|
}
|
|
@@ -39239,6 +39306,8 @@ class DynamicWidgetPageComponent {
|
|
|
39239
39306
|
return path.split('.').reduce((acc, key) => acc?.[key], ctx);
|
|
39240
39307
|
}
|
|
39241
39308
|
openWidgetShellSettings(key) {
|
|
39309
|
+
if (!this.canOpenWidgetShellSettings())
|
|
39310
|
+
return;
|
|
39242
39311
|
if (!this.settingsPanel)
|
|
39243
39312
|
return;
|
|
39244
39313
|
const editor = this.shellEditorComponent || this.defaultShellEditor;
|
|
@@ -39260,6 +39329,7 @@ class DynamicWidgetPageComponent {
|
|
|
39260
39329
|
widgetType: widget.definition?.id,
|
|
39261
39330
|
presets: uiShell?.presets || null,
|
|
39262
39331
|
pagePreset: uiShell?.preset || null,
|
|
39332
|
+
authoringCapabilities: this.authoringCapabilities,
|
|
39263
39333
|
},
|
|
39264
39334
|
},
|
|
39265
39335
|
});
|
|
@@ -39267,6 +39337,8 @@ class DynamicWidgetPageComponent {
|
|
|
39267
39337
|
ref.saved$.subscribe((result) => this.applyWidgetShell(key, result, true));
|
|
39268
39338
|
}
|
|
39269
39339
|
async openWidgetComponentSettings(key) {
|
|
39340
|
+
if (!this.canOpenWidgetComponentSettings(key))
|
|
39341
|
+
return;
|
|
39270
39342
|
if (!this.settingsPanel) {
|
|
39271
39343
|
this.dispatchWidgetComponentSettingsToRuntime(key);
|
|
39272
39344
|
return;
|
|
@@ -39423,6 +39495,8 @@ class DynamicWidgetPageComponent {
|
|
|
39423
39495
|
this.applyPageUpdate({ ...page, widgets }, persist);
|
|
39424
39496
|
}
|
|
39425
39497
|
async confirmAndRemoveWidget(widgetKey) {
|
|
39498
|
+
if (!this.canRemoveWidgets())
|
|
39499
|
+
return;
|
|
39426
39500
|
const page = this.ensurePageDefinition();
|
|
39427
39501
|
const widget = page.widgets.find((item) => item.key === widgetKey);
|
|
39428
39502
|
if (!widget) {
|
|
@@ -39551,6 +39625,8 @@ class DynamicWidgetPageComponent {
|
|
|
39551
39625
|
return (endpoint.kind === 'component-port' && endpoint.ref.widget === widgetKey);
|
|
39552
39626
|
}
|
|
39553
39627
|
openPageSettings() {
|
|
39628
|
+
if (!this.canOpenPageSettings())
|
|
39629
|
+
return;
|
|
39554
39630
|
if (!this.settingsPanel)
|
|
39555
39631
|
return;
|
|
39556
39632
|
const editor = this.pageEditorComponent || this.defaultPageEditor;
|
|
@@ -39568,6 +39644,7 @@ class DynamicWidgetPageComponent {
|
|
|
39568
39644
|
layout: page.layout || null,
|
|
39569
39645
|
presets: uiShell?.presets || null,
|
|
39570
39646
|
pagePreset: uiShell?.preset || null,
|
|
39647
|
+
authoringCapabilities: this.authoringCapabilities,
|
|
39571
39648
|
},
|
|
39572
39649
|
},
|
|
39573
39650
|
});
|
|
@@ -39578,9 +39655,16 @@ class DynamicWidgetPageComponent {
|
|
|
39578
39655
|
if (!result)
|
|
39579
39656
|
return;
|
|
39580
39657
|
const page = this.ensurePageDefinition();
|
|
39581
|
-
const widgets = page.widgets.map((w) => w.key === key
|
|
39658
|
+
const widgets = page.widgets.map((w) => w.key === key
|
|
39659
|
+
? {
|
|
39660
|
+
...w,
|
|
39661
|
+
shell: this.constrainWidgetShellResult(w.shell, result.shell),
|
|
39662
|
+
}
|
|
39663
|
+
: w);
|
|
39582
39664
|
let context = page.context || {};
|
|
39583
|
-
if (
|
|
39665
|
+
if (this.isWidgetShellCapabilityEnabledFor('pagePreset') &&
|
|
39666
|
+
result.applyToAll &&
|
|
39667
|
+
result.pagePreset) {
|
|
39584
39668
|
const ui = { ...context.ui };
|
|
39585
39669
|
const shell = { ...(ui?.shell || {}) };
|
|
39586
39670
|
shell.preset = result.pagePreset;
|
|
@@ -39589,6 +39673,41 @@ class DynamicWidgetPageComponent {
|
|
|
39589
39673
|
}
|
|
39590
39674
|
this.applyPageUpdate({ ...page, widgets, context }, persist);
|
|
39591
39675
|
}
|
|
39676
|
+
constrainWidgetShellResult(original, proposed) {
|
|
39677
|
+
const next = proposed ? { ...proposed } : {};
|
|
39678
|
+
if (!this.isWidgetShellCapabilityEnabledFor('identity')) {
|
|
39679
|
+
this.restoreWidgetShellFields(next, original, [
|
|
39680
|
+
'kind',
|
|
39681
|
+
'preset',
|
|
39682
|
+
'icon',
|
|
39683
|
+
'title',
|
|
39684
|
+
'subtitle',
|
|
39685
|
+
'showHeader',
|
|
39686
|
+
'windowActions',
|
|
39687
|
+
'collapsed',
|
|
39688
|
+
'expanded',
|
|
39689
|
+
'fullscreen',
|
|
39690
|
+
]);
|
|
39691
|
+
}
|
|
39692
|
+
if (!this.isWidgetShellCapabilityEnabledFor('appearance')) {
|
|
39693
|
+
this.restoreWidgetShellFields(next, original, [
|
|
39694
|
+
'bodyLayout',
|
|
39695
|
+
'appearance',
|
|
39696
|
+
]);
|
|
39697
|
+
}
|
|
39698
|
+
if (!this.isWidgetShellCapabilityEnabledFor('actions')) {
|
|
39699
|
+
this.restoreWidgetShellFields(next, original, ['actions']);
|
|
39700
|
+
}
|
|
39701
|
+
return Object.keys(next).length ? next : undefined;
|
|
39702
|
+
}
|
|
39703
|
+
restoreWidgetShellFields(target, source, fields) {
|
|
39704
|
+
for (const field of fields) {
|
|
39705
|
+
delete target[field];
|
|
39706
|
+
if (source && Object.prototype.hasOwnProperty.call(source, field)) {
|
|
39707
|
+
Object.assign(target, { [field]: source[field] });
|
|
39708
|
+
}
|
|
39709
|
+
}
|
|
39710
|
+
}
|
|
39592
39711
|
applyPageLayout(result, persist) {
|
|
39593
39712
|
if (!result)
|
|
39594
39713
|
return;
|
|
@@ -39756,6 +39875,11 @@ class DynamicWidgetPageComponent {
|
|
|
39756
39875
|
onWindowResize() {
|
|
39757
39876
|
if (!this.pageDefinition)
|
|
39758
39877
|
return;
|
|
39878
|
+
const measuredWidth = this.measureHostWidth();
|
|
39879
|
+
if (this.updateContainerWidth(measuredWidth))
|
|
39880
|
+
return;
|
|
39881
|
+
if (this.containerWidth)
|
|
39882
|
+
return;
|
|
39759
39883
|
this.applyResponsivePresentation(this.pageDefinition, this.pageDefinition.widgets || [], this.pageRuntime);
|
|
39760
39884
|
}
|
|
39761
39885
|
onCanvasPointerMove(event) {
|
|
@@ -40041,25 +40165,35 @@ class DynamicWidgetPageComponent {
|
|
|
40041
40165
|
: fallback;
|
|
40042
40166
|
}
|
|
40043
40167
|
observeHostWidth() {
|
|
40168
|
+
if (this.destroyed)
|
|
40169
|
+
return;
|
|
40170
|
+
this.updateContainerWidth(this.measureHostWidth());
|
|
40044
40171
|
const ResizeObserverCtor = globalThis.ResizeObserver;
|
|
40045
40172
|
if (typeof ResizeObserverCtor !== 'function') {
|
|
40046
40173
|
return;
|
|
40047
40174
|
}
|
|
40048
40175
|
this.hostResizeObserver = new ResizeObserverCtor((entries) => {
|
|
40049
|
-
|
|
40050
|
-
if (!Number.isFinite(width)
|
|
40051
|
-
|| width <= 0
|
|
40052
|
-
|| Math.abs(width - (this.containerWidth || 0)) < 0.5) {
|
|
40053
|
-
return;
|
|
40054
|
-
}
|
|
40055
|
-
this.containerWidth = width;
|
|
40056
|
-
if (this.pageDefinition) {
|
|
40057
|
-
this.applyResponsivePresentation(this.pageDefinition, this.pageDefinition.widgets || [], this.pageRuntime);
|
|
40058
|
-
this.changeDetector.markForCheck();
|
|
40059
|
-
}
|
|
40176
|
+
this.updateContainerWidth(entries[0]?.contentRect.width);
|
|
40060
40177
|
});
|
|
40061
40178
|
this.hostResizeObserver.observe(this.hostElement.nativeElement);
|
|
40062
40179
|
}
|
|
40180
|
+
measureHostWidth() {
|
|
40181
|
+
return this.hostElement.nativeElement.getBoundingClientRect().width;
|
|
40182
|
+
}
|
|
40183
|
+
updateContainerWidth(width) {
|
|
40184
|
+
if (!Number.isFinite(width)
|
|
40185
|
+
|| !width
|
|
40186
|
+
|| width <= 0
|
|
40187
|
+
|| Math.abs(width - (this.containerWidth || 0)) < 0.5) {
|
|
40188
|
+
return false;
|
|
40189
|
+
}
|
|
40190
|
+
this.containerWidth = width;
|
|
40191
|
+
if (this.pageDefinition) {
|
|
40192
|
+
this.applyResponsivePresentation(this.pageDefinition, this.pageDefinition.widgets || [], this.pageRuntime);
|
|
40193
|
+
this.changeDetector.markForCheck();
|
|
40194
|
+
}
|
|
40195
|
+
return true;
|
|
40196
|
+
}
|
|
40063
40197
|
isCanvasMode() {
|
|
40064
40198
|
return !!this.canvas;
|
|
40065
40199
|
}
|
|
@@ -40082,7 +40216,7 @@ class DynamicWidgetPageComponent {
|
|
|
40082
40216
|
link.from.ref.direction === 'output');
|
|
40083
40217
|
}
|
|
40084
40218
|
selectWidget(widgetKey) {
|
|
40085
|
-
if (!this.
|
|
40219
|
+
if (!this.canSelectWidgets())
|
|
40086
40220
|
return;
|
|
40087
40221
|
if (this.selectedWidgetKeyState() !== widgetKey) {
|
|
40088
40222
|
this.selectedWidgetKeyState.set(widgetKey);
|
|
@@ -40132,13 +40266,17 @@ class DynamicWidgetPageComponent {
|
|
|
40132
40266
|
return this.canvasPreviewInvalidState();
|
|
40133
40267
|
}
|
|
40134
40268
|
startCanvasDrag(widgetKey, event) {
|
|
40269
|
+
if (!this.canCustomizeCanvas())
|
|
40270
|
+
return;
|
|
40135
40271
|
this.startCanvasInteraction(widgetKey, event, 'drag');
|
|
40136
40272
|
}
|
|
40137
40273
|
startCanvasResize(widgetKey, handle, event) {
|
|
40274
|
+
if (!this.canCustomizeCanvas())
|
|
40275
|
+
return;
|
|
40138
40276
|
this.startCanvasInteraction(widgetKey, event, 'resize', handle);
|
|
40139
40277
|
}
|
|
40140
40278
|
onCanvasHandleKeydown(widgetKey, kind, event) {
|
|
40141
|
-
if (!this.
|
|
40279
|
+
if (!this.canCustomizeCanvas() || !this.isCanvasMode())
|
|
40142
40280
|
return;
|
|
40143
40281
|
this.selectCanvasWidget(widgetKey);
|
|
40144
40282
|
const horizontal = event.key === 'ArrowLeft' || event.key === 'ArrowRight';
|
|
@@ -40156,7 +40294,7 @@ class DynamicWidgetPageComponent {
|
|
|
40156
40294
|
}, true, this.canvasAnnouncement(kind, widgetKey), this.blockedCanvasAnnouncement(kind), kind);
|
|
40157
40295
|
}
|
|
40158
40296
|
onCanvasResizeHandleKeydown(widgetKey, handle, event) {
|
|
40159
|
-
if (!this.
|
|
40297
|
+
if (!this.canCustomizeCanvas() || !this.isCanvasMode())
|
|
40160
40298
|
return;
|
|
40161
40299
|
this.selectCanvasWidget(widgetKey);
|
|
40162
40300
|
const horizontal = event.key === 'ArrowLeft' || event.key === 'ArrowRight';
|
|
@@ -40231,7 +40369,7 @@ class DynamicWidgetPageComponent {
|
|
|
40231
40369
|
});
|
|
40232
40370
|
}
|
|
40233
40371
|
startCanvasInteraction(widgetKey, event, kind, resizeHandle) {
|
|
40234
|
-
if (!this.
|
|
40372
|
+
if (!this.canCustomizeCanvas() || !this.isCanvasMode())
|
|
40235
40373
|
return;
|
|
40236
40374
|
if (this.isCanvasOverlayInteraction(event))
|
|
40237
40375
|
return;
|
|
@@ -41011,7 +41149,7 @@ class DynamicWidgetPageComponent {
|
|
|
41011
41149
|
throw new Error('DynamicWidgetPageComponent no longer accepts `page.connections`. Use `composition.links` only.');
|
|
41012
41150
|
}
|
|
41013
41151
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: DynamicWidgetPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
41014
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: DynamicWidgetPageComponent, isStandalone: true, selector: "praxis-dynamic-page", inputs: { page: "page", context: "context", strictValidation: "strictValidation", enableCustomization: "enableCustomization", showPageSettingsButton: "showPageSettingsButton", shellEditorComponent: "shellEditorComponent", pageEditorComponent: "pageEditorComponent", autoPersist: "autoPersist", pageIdentity: "pageIdentity", componentInstanceId: "componentInstanceId", showWidgetAssistantButton: "showWidgetAssistantButton" }, outputs: { pageChange: "pageChange", widgetEvent: "widgetEvent", widgetSelectionChange: "widgetSelectionChange", widgetAssistantRequested: "widgetAssistantRequested", widgetDiagnosticsChange: "widgetDiagnosticsChange" }, host: { listeners: { "window:resize": "onWindowResize()", "window:pointermove": "onCanvasPointerMove($event)", "window:pointerup": "onCanvasPointerUp($event)", "window:pointercancel": "onCanvasPointerCancel($event)" } }, providers: [providePraxisI18nConfig(DYNAMIC_WIDGET_PAGE_I18N_CONFIG)], viewQueries: [{ propertyName: "pageCanvasHost", first: true, predicate: ["pageCanvasHost"], descendants: true }, { propertyName: "widgetLoaders", predicate: ["widgetLoader"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
41152
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: DynamicWidgetPageComponent, isStandalone: true, selector: "praxis-dynamic-page", inputs: { page: "page", context: "context", strictValidation: "strictValidation", enableCustomization: "enableCustomization", authoringCapabilities: "authoringCapabilities", showPageSettingsButton: "showPageSettingsButton", shellEditorComponent: "shellEditorComponent", pageEditorComponent: "pageEditorComponent", autoPersist: "autoPersist", pageIdentity: "pageIdentity", componentInstanceId: "componentInstanceId", showWidgetAssistantButton: "showWidgetAssistantButton" }, outputs: { pageChange: "pageChange", widgetEvent: "widgetEvent", widgetSelectionChange: "widgetSelectionChange", widgetAssistantRequested: "widgetAssistantRequested", widgetDiagnosticsChange: "widgetDiagnosticsChange" }, host: { listeners: { "window:resize": "onWindowResize()", "window:pointermove": "onCanvasPointerMove($event)", "window:pointerup": "onCanvasPointerUp($event)", "window:pointercancel": "onCanvasPointerCancel($event)" } }, providers: [providePraxisI18nConfig(DYNAMIC_WIDGET_PAGE_I18N_CONFIG)], viewQueries: [{ propertyName: "pageCanvasHost", first: true, predicate: ["pageCanvasHost"], descendants: true }, { propertyName: "widgetLoaders", predicate: ["widgetLoader"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
41015
41153
|
<div
|
|
41016
41154
|
class="pdx-page-wrapper"
|
|
41017
41155
|
[class.editing]="enableCustomization"
|
|
@@ -41020,7 +41158,7 @@ class DynamicWidgetPageComponent {
|
|
|
41020
41158
|
[attr.data-motion]="pageThemeMotion"
|
|
41021
41159
|
[ngStyle]="pageThemeTokenStyle"
|
|
41022
41160
|
>
|
|
41023
|
-
@if (
|
|
41161
|
+
@if (canOpenPageSettings()) {
|
|
41024
41162
|
<button
|
|
41025
41163
|
class="pdx-page-settings"
|
|
41026
41164
|
praxisIconButton="ms:settings"
|
|
@@ -41045,15 +41183,15 @@ class DynamicWidgetPageComponent {
|
|
|
41045
41183
|
<div
|
|
41046
41184
|
class="pdx-widget pdx-widget--canvas"
|
|
41047
41185
|
[attr.data-widget-key]="w.key"
|
|
41048
|
-
[class.pdx-widget--interactive]="
|
|
41186
|
+
[class.pdx-widget--interactive]="canSelectWidgets()"
|
|
41049
41187
|
[class.pdx-widget--selected]="
|
|
41050
|
-
|
|
41188
|
+
canSelectWidgets() && isWidgetSelected(w.key)
|
|
41051
41189
|
"
|
|
41052
41190
|
[class.pdx-widget--canvas-selected]="
|
|
41053
|
-
|
|
41191
|
+
canCustomizeCanvas() && isWidgetSelected(w.key)
|
|
41054
41192
|
"
|
|
41055
41193
|
[class.pdx-widget--canvas-blocked]="
|
|
41056
|
-
|
|
41194
|
+
canCustomizeCanvas() && isCanvasWidgetBlocked(w.key)
|
|
41057
41195
|
"
|
|
41058
41196
|
[class]="widgetClassName(w)"
|
|
41059
41197
|
[style.gridColumn]="widgetGridColumn(w)"
|
|
@@ -41063,7 +41201,7 @@ class DynamicWidgetPageComponent {
|
|
|
41063
41201
|
(click)="selectWidgetFromHostEvent(w.key, $event)"
|
|
41064
41202
|
(focusin)="selectWidgetFromHostEvent(w.key, $event)"
|
|
41065
41203
|
>
|
|
41066
|
-
@if (
|
|
41204
|
+
@if (canCustomizeCanvas()) {
|
|
41067
41205
|
@for (handle of canvasResizeHandles; track handle.id) {
|
|
41068
41206
|
<button
|
|
41069
41207
|
class="pdx-canvas-resize"
|
|
@@ -41084,7 +41222,7 @@ class DynamicWidgetPageComponent {
|
|
|
41084
41222
|
<praxis-widget-shell
|
|
41085
41223
|
[shell]="widgetShellForRender(w)"
|
|
41086
41224
|
[context]="mergedContext"
|
|
41087
|
-
[dragSurfaceEnabled]="
|
|
41225
|
+
[dragSurfaceEnabled]="canCustomizeCanvas() && isCanvasMode()"
|
|
41088
41226
|
[dragSurfaceLabel]="dragWidgetLabel()"
|
|
41089
41227
|
(action)="onShellAction(w.key, $event)"
|
|
41090
41228
|
(dragSurfacePointerDown)="startCanvasDrag(w.key, $event)"
|
|
@@ -41108,7 +41246,7 @@ class DynamicWidgetPageComponent {
|
|
|
41108
41246
|
[toolbarLabel]="widgetContextToolbarLabel(w.key)"
|
|
41109
41247
|
[contextLabel]="widgetContextLabel(w)"
|
|
41110
41248
|
[contextTooltip]="widgetContextTooltip(w)"
|
|
41111
|
-
[showAssistant]="
|
|
41249
|
+
[showAssistant]="canRequestWidgetAssistant()"
|
|
41112
41250
|
[assistantLabel]="widgetAssistantLabel()"
|
|
41113
41251
|
[assistantTooltip]="widgetAssistantTooltip()"
|
|
41114
41252
|
[showComponentSettings]="
|
|
@@ -41120,6 +41258,7 @@ class DynamicWidgetPageComponent {
|
|
|
41120
41258
|
[shellSettingsLabel]="widgetSettingsLabel()"
|
|
41121
41259
|
[shellSettingsTooltip]="widgetSettingsTooltip()"
|
|
41122
41260
|
[moreActionsLabel]="moreWidgetActionsLabel()"
|
|
41261
|
+
[showRemove]="canRemoveWidgets()"
|
|
41123
41262
|
[removeLabel]="widgetRemoveLabel()"
|
|
41124
41263
|
(assistant)="requestWidgetAssistant(w.key)"
|
|
41125
41264
|
(componentSettings)="openWidgetComponentSettings(w.key)"
|
|
@@ -41186,11 +41325,9 @@ class DynamicWidgetPageComponent {
|
|
|
41186
41325
|
<div
|
|
41187
41326
|
class="pdx-widget"
|
|
41188
41327
|
[attr.data-widget-key]="w.key"
|
|
41189
|
-
[class.pdx-widget--interactive]="
|
|
41190
|
-
enableCustomization
|
|
41191
|
-
"
|
|
41328
|
+
[class.pdx-widget--interactive]="canSelectWidgets()"
|
|
41192
41329
|
[class.pdx-widget--selected]="
|
|
41193
|
-
|
|
41330
|
+
canSelectWidgets() && isWidgetSelected(w.key)
|
|
41194
41331
|
"
|
|
41195
41332
|
[class]="w.renderClassName || w.className || ''"
|
|
41196
41333
|
[style.gridColumn]="widgetGridColumn(w)"
|
|
@@ -41223,7 +41360,7 @@ class DynamicWidgetPageComponent {
|
|
|
41223
41360
|
"
|
|
41224
41361
|
[contextLabel]="widgetContextLabel(w)"
|
|
41225
41362
|
[contextTooltip]="widgetContextTooltip(w)"
|
|
41226
|
-
[showAssistant]="
|
|
41363
|
+
[showAssistant]="canRequestWidgetAssistant()"
|
|
41227
41364
|
[assistantLabel]="widgetAssistantLabel()"
|
|
41228
41365
|
[assistantTooltip]="widgetAssistantTooltip()"
|
|
41229
41366
|
[showComponentSettings]="
|
|
@@ -41241,6 +41378,7 @@ class DynamicWidgetPageComponent {
|
|
|
41241
41378
|
[shellSettingsLabel]="widgetSettingsLabel()"
|
|
41242
41379
|
[shellSettingsTooltip]="widgetSettingsTooltip()"
|
|
41243
41380
|
[moreActionsLabel]="moreWidgetActionsLabel()"
|
|
41381
|
+
[showRemove]="canRemoveWidgets()"
|
|
41244
41382
|
[removeLabel]="widgetRemoveLabel()"
|
|
41245
41383
|
(assistant)="requestWidgetAssistant(w.key)"
|
|
41246
41384
|
(componentSettings)="
|
|
@@ -41267,9 +41405,9 @@ class DynamicWidgetPageComponent {
|
|
|
41267
41405
|
<div
|
|
41268
41406
|
class="pdx-widget"
|
|
41269
41407
|
[attr.data-widget-key]="w.key"
|
|
41270
|
-
[class.pdx-widget--interactive]="
|
|
41408
|
+
[class.pdx-widget--interactive]="canSelectWidgets()"
|
|
41271
41409
|
[class.pdx-widget--selected]="
|
|
41272
|
-
|
|
41410
|
+
canSelectWidgets() && isWidgetSelected(w.key)
|
|
41273
41411
|
"
|
|
41274
41412
|
[class]="widgetClassName(w)"
|
|
41275
41413
|
[style.gridColumn]="widgetGridColumn(w)"
|
|
@@ -41298,7 +41436,7 @@ class DynamicWidgetPageComponent {
|
|
|
41298
41436
|
[toolbarLabel]="widgetContextToolbarLabel(w.key)"
|
|
41299
41437
|
[contextLabel]="widgetContextLabel(w)"
|
|
41300
41438
|
[contextTooltip]="widgetContextTooltip(w)"
|
|
41301
|
-
[showAssistant]="
|
|
41439
|
+
[showAssistant]="canRequestWidgetAssistant()"
|
|
41302
41440
|
[assistantLabel]="widgetAssistantLabel()"
|
|
41303
41441
|
[assistantTooltip]="widgetAssistantTooltip()"
|
|
41304
41442
|
[showComponentSettings]="
|
|
@@ -41312,6 +41450,7 @@ class DynamicWidgetPageComponent {
|
|
|
41312
41450
|
[shellSettingsLabel]="widgetSettingsLabel()"
|
|
41313
41451
|
[shellSettingsTooltip]="widgetSettingsTooltip()"
|
|
41314
41452
|
[moreActionsLabel]="moreWidgetActionsLabel()"
|
|
41453
|
+
[showRemove]="canRemoveWidgets()"
|
|
41315
41454
|
[removeLabel]="widgetRemoveLabel()"
|
|
41316
41455
|
(assistant)="requestWidgetAssistant(w.key)"
|
|
41317
41456
|
(componentSettings)="
|
|
@@ -41332,9 +41471,9 @@ class DynamicWidgetPageComponent {
|
|
|
41332
41471
|
<div
|
|
41333
41472
|
class="pdx-widget"
|
|
41334
41473
|
[attr.data-widget-key]="w.key"
|
|
41335
|
-
[class.pdx-widget--interactive]="
|
|
41474
|
+
[class.pdx-widget--interactive]="canSelectWidgets()"
|
|
41336
41475
|
[class.pdx-widget--selected]="
|
|
41337
|
-
|
|
41476
|
+
canSelectWidgets() && isWidgetSelected(w.key)
|
|
41338
41477
|
"
|
|
41339
41478
|
[class]="widgetClassName(w)"
|
|
41340
41479
|
[style.gridColumn]="widgetGridColumn(w)"
|
|
@@ -41363,7 +41502,7 @@ class DynamicWidgetPageComponent {
|
|
|
41363
41502
|
[toolbarLabel]="widgetContextToolbarLabel(w.key)"
|
|
41364
41503
|
[contextLabel]="widgetContextLabel(w)"
|
|
41365
41504
|
[contextTooltip]="widgetContextTooltip(w)"
|
|
41366
|
-
[showAssistant]="
|
|
41505
|
+
[showAssistant]="canRequestWidgetAssistant()"
|
|
41367
41506
|
[assistantLabel]="widgetAssistantLabel()"
|
|
41368
41507
|
[assistantTooltip]="widgetAssistantTooltip()"
|
|
41369
41508
|
[showComponentSettings]="
|
|
@@ -41375,6 +41514,7 @@ class DynamicWidgetPageComponent {
|
|
|
41375
41514
|
[shellSettingsLabel]="widgetSettingsLabel()"
|
|
41376
41515
|
[shellSettingsTooltip]="widgetSettingsTooltip()"
|
|
41377
41516
|
[moreActionsLabel]="moreWidgetActionsLabel()"
|
|
41517
|
+
[showRemove]="canRemoveWidgets()"
|
|
41378
41518
|
[removeLabel]="widgetRemoveLabel()"
|
|
41379
41519
|
(assistant)="requestWidgetAssistant(w.key)"
|
|
41380
41520
|
(componentSettings)="openWidgetComponentSettings(w.key)"
|
|
@@ -41392,7 +41532,7 @@ class DynamicWidgetPageComponent {
|
|
|
41392
41532
|
</div>
|
|
41393
41533
|
}
|
|
41394
41534
|
</div>
|
|
41395
|
-
`, isInline: true, styles: [":host{display:block;min-width:0}.pdx-page-wrapper{position:relative;display:block;background:var(--pdx-page-bg, transparent);color:var(--pdx-page-color, inherit)}.pdx-page{display:grid;gap:var(--pdx-page-gap, 12px);grid-template-columns:minmax(0,1fr)}.pdx-page--canvas{align-items:start;grid-auto-flow:dense}.pdx-page-wrapper.editing .pdx-page--canvas{padding-block-start:var(--pdx-canvas-context-toolbar-safe-area, 22px);padding-block-end:22px;padding-inline:22px;box-sizing:border-box}.pdx-page-settings{position:sticky;top:8px;z-index:2;color:inherit;margin-bottom:6px}.pdx-widget{position:relative;background:var(--pfx-surface, transparent);border-radius:6px;min-width:0;min-height:0}.pdx-widget--interactive{cursor:pointer}.pdx-widget--selected:before{content:\"\";position:absolute;inset:0;border:1px dashed color-mix(in srgb,var(--md-sys-color-primary) 34%,transparent);border-radius:14px;pointer-events:none;z-index:1;box-shadow:0 0 0 1px color-mix(in srgb,var(--md-sys-color-primary) 6%,transparent),0 8px 20px color-mix(in srgb,var(--md-sys-color-primary) 6%,transparent)}.pdx-widget--canvas{align-self:stretch;--pdx-resize-gradient-horizontal: linear-gradient( 90deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-resize-gradient-vertical: linear-gradient( 180deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-resize-gradient-diagonal-se: linear-gradient( 135deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-resize-gradient-diagonal-sw: linear-gradient( 225deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-active-resize-gradient: var(--pdx-resize-gradient-diagonal-se)}.pdx-widget--canvas:after{content:\"\";position:absolute;inset:0;padding:2px;border-radius:14px;background:var(--pdx-active-resize-gradient);opacity:0;pointer-events:none;transition:opacity .14s ease,filter .14s ease;filter:saturate(1.02) drop-shadow(0 0 5px color-mix(in srgb,var(--md-sys-color-primary) 10%,transparent));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.pdx-widget--canvas-selected:before,.pdx-widget--canvas-blocked:before{content:\"\";position:absolute;inset:0;border-radius:14px;pointer-events:none;z-index:1;transition:opacity .14s ease,box-shadow .14s ease,border-color .14s ease}.pdx-widget--canvas-blocked:before{border:1px solid color-mix(in srgb,var(--md-sys-color-error) 74%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--md-sys-color-error) 20%,transparent),0 10px 24px color-mix(in srgb,var(--md-sys-color-error) 12%,transparent)}.pdx-widget--canvas:has(.pdx-canvas-resize:hover):after,.pdx-widget--canvas:has(.pdx-canvas-resize:focus-visible):after{opacity:.82}.pdx-widget--canvas:has(.pdx-canvas-resize--north:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--north:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--south:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--south:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-horizontal)}.pdx-widget--canvas:has(.pdx-canvas-resize--east:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--east:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--west:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--west:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-vertical)}.pdx-widget--canvas:has(.pdx-canvas-resize--north-east:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--north-east:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--south-west:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--south-west:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-diagonal-sw)}.pdx-widget--canvas:has(.pdx-canvas-resize--north-west:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--north-west:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--south-east:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--south-east:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-diagonal-se)}.pdx-canvas-resize{position:absolute;z-index:7;border:0;padding:0;margin:0;background:transparent;touch-action:none;cursor:pointer;opacity:0;pointer-events:none;transform:scale(.94);transition:opacity .14s ease,transform .14s ease,filter .14s ease;filter:saturate(.9)}.pdx-widget--canvas:hover .pdx-canvas-resize,.pdx-widget--canvas:focus-within .pdx-canvas-resize,.pdx-widget--canvas-selected .pdx-canvas-resize{opacity:.88;pointer-events:auto;transform:scale(1);filter:saturate(1)}.pdx-widget--canvas:has(.pdx-shell.expanded) .pdx-canvas-resize,.pdx-widget--canvas:has(.pdx-shell.fullscreen) .pdx-canvas-resize{opacity:0;pointer-events:none;transform:scale(.94)}.pdx-canvas-resize-grip{display:block;width:9px;height:9px;border-radius:999px;border:1px solid color-mix(in srgb,var(--md-sys-color-primary) 42%,var(--md-sys-color-outline-variant) 58%);background:color-mix(in srgb,var(--md-sys-color-surface) 92%,var(--md-sys-color-primary) 8%);box-shadow:0 1px 4px color-mix(in srgb,var(--md-sys-color-shadow) 10%,transparent);transition:transform .14s ease,border-color .14s ease,background .14s ease,box-shadow .14s ease}.pdx-canvas-resize:hover .pdx-canvas-resize-grip,.pdx-canvas-resize:focus-visible .pdx-canvas-resize-grip{border-color:color-mix(in srgb,var(--md-sys-color-primary) 58%,var(--md-sys-color-outline-variant) 42%);background:color-mix(in srgb,var(--md-sys-color-surface) 84%,var(--md-sys-color-primary) 16%);box-shadow:0 2px 7px color-mix(in srgb,var(--md-sys-color-primary) 14%,transparent);transform:scale(1.04)}.pdx-canvas-resize--north,.pdx-canvas-resize--south{left:50%;width:52px;height:44px;margin-left:-26px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--north{top:-22px;cursor:ns-resize}.pdx-canvas-resize--south{bottom:-22px;cursor:ns-resize}.pdx-canvas-resize--east,.pdx-canvas-resize--west{top:50%;width:44px;height:52px;margin-top:-26px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--east{right:-22px;cursor:ew-resize}.pdx-canvas-resize--west{left:-22px;cursor:ew-resize}.pdx-canvas-resize--north-east,.pdx-canvas-resize--north-west,.pdx-canvas-resize--south-east,.pdx-canvas-resize--south-west{width:44px;height:44px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--north-east{top:-22px;right:-22px;cursor:nesw-resize}.pdx-canvas-resize--north-west{top:-22px;left:-22px;cursor:nwse-resize}.pdx-canvas-resize--south-east{bottom:-22px;right:-22px;cursor:nwse-resize}.pdx-canvas-resize--south-west{bottom:-22px;left:-22px;cursor:nesw-resize}.pdx-canvas-snap-preview{position:relative;align-self:stretch;border-radius:12px;pointer-events:none;z-index:0;background:linear-gradient(135deg,color-mix(in srgb,var(--md-sys-color-primary) 10%,transparent),color-mix(in srgb,var(--md-sys-color-tertiary) 12%,transparent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--md-sys-color-primary) 42%,transparent),inset 0 0 0 2px color-mix(in srgb,var(--md-sys-color-surface) 55%,transparent);animation:pdx-snap-preview-pulse .48s ease-out infinite alternate}.pdx-canvas-snap-preview:before,.pdx-canvas-snap-preview:after{content:\"\";position:absolute;border-radius:999px;background:color-mix(in srgb,var(--md-sys-color-primary) 82%,var(--md-sys-color-tertiary) 18%);opacity:.72}.pdx-canvas-snap-preview:before{inset:0 auto 0 0;width:3px}.pdx-canvas-snap-preview:after{inset:0 0 auto;height:3px}.pdx-canvas-snap-preview--invalid{background:linear-gradient(135deg,color-mix(in srgb,var(--md-sys-color-error) 18%,transparent),color-mix(in srgb,var(--md-sys-color-error-container) 22%,transparent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--md-sys-color-error) 58%,transparent),inset 0 0 0 2px color-mix(in srgb,var(--md-sys-color-surface) 40%,transparent)}.pdx-canvas-snap-preview--invalid:before,.pdx-canvas-snap-preview--invalid:after{background:color-mix(in srgb,var(--md-sys-color-error) 86%,var(--md-sys-color-error-container) 14%)}.pdx-canvas-resize:focus-visible{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}.pdx-canvas-resize:hover .pdx-canvas-resize-grip,.pdx-canvas-resize:focus-visible .pdx-canvas-resize-grip{border-color:transparent;box-shadow:0 0 0 1px color-mix(in srgb,var(--md-sys-color-primary) 20%,transparent),var(--mat-elevation-level3)}.pdx-canvas-resize--north:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--north:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--south:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--south:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-horizontal)}.pdx-canvas-resize--east:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--east:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--west:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--west:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-vertical)}.pdx-canvas-resize--north-east:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--north-east:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--south-west:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--south-west:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-diagonal-sw)}.pdx-canvas-resize--north-west:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--north-west:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--south-east:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--south-east:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-diagonal-se)}.pdx-canvas-resize:hover .pdx-canvas-resize-grip,.pdx-canvas-resize:focus-visible .pdx-canvas-resize-grip{transform:scale(1.08)}@keyframes pdx-snap-preview-pulse{0%{opacity:.72;transform:scale(.996)}to{opacity:1;transform:scale(1)}}.pdx-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pdx-group{display:grid;gap:12px;grid-column:1 / -1;padding:12px;border-radius:16px;background:color-mix(in srgb,var(--md-sys-color-surface-container-low) 76%,transparent);border:1px solid color-mix(in srgb,var(--md-sys-color-outline-variant) 72%,transparent)}.pdx-group--hero{padding:16px;background:linear-gradient(180deg,color-mix(in srgb,var(--md-sys-color-primary-container) 42%,transparent),color-mix(in srgb,var(--md-sys-color-surface-container-low) 86%,transparent))}.pdx-group--rail{align-self:start}.pdx-group-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.pdx-group-title{font-size:.95rem;font-weight:600;color:var(--md-sys-color-on-surface)}.pdx-group-content{display:grid;gap:12px}.pdx-group-content--stack{grid-template-columns:minmax(0,1fr)}.pdx-group-content--row{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.pdx-group-content--grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.pdx-group-tabs{display:grid;gap:12px}.pdx-tabs-header{display:flex;flex-wrap:wrap;gap:8px}.pdx-tab-chip{appearance:none;border:1px solid var(--md-sys-color-outline-variant);background:var(--md-sys-color-surface-container-lowest);color:var(--md-sys-color-on-surface);border-radius:999px;padding:8px 12px;font:inherit;cursor:pointer}.pdx-tab-chip.active{border-color:var(--md-sys-color-primary);background:color-mix(in srgb,var(--md-sys-color-primary-container) 78%,transparent);color:var(--md-sys-color-on-primary-container)}.pdx-page-wrapper.editing .pdx-widget-settings{opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: PraxisIconButtonComponent, selector: "button[praxisIconButton]", inputs: ["praxisIconButton", "size", "appearance", "presentation", "pressed", "busy"] }, { kind: "component", type: DynamicWidgetContextToolbarComponent, selector: "praxis-dynamic-widget-context-toolbar", inputs: ["toolbarLabel", "contextLabel", "contextTooltip", "showAssistant", "assistantLabel", "assistantTooltip", "showComponentSettings", "componentSettingsLabel", "componentSettingsTooltip", "showShellSettings", "shellSettingsLabel", "shellSettingsTooltip", "moreActionsLabel", "removeLabel"], outputs: ["assistant", "componentSettings", "shellSettings", "remove"] }, { kind: "directive", type: DynamicWidgetLoaderDirective, selector: "[dynamicWidgetLoader]", inputs: ["dynamicWidgetLoader", "ownerWidgetKey", "context", "strictValidation", "autoWireOutputs"], outputs: ["widgetEvent", "widgetDiagnostic"], exportAs: ["dynamicWidgetLoader"] }, { kind: "component", type: WidgetShellComponent, selector: "praxis-widget-shell", inputs: ["shell", "context", "dragSurfaceEnabled", "dragSurfaceLabel"], outputs: ["action", "dragSurfacePointerDown", "dragSurfaceKeydown"] }] });
|
|
41535
|
+
`, isInline: true, styles: [":host{display:block;min-width:0}.pdx-page-wrapper{position:relative;display:block;background:var(--pdx-page-bg, transparent);color:var(--pdx-page-color, inherit)}.pdx-page{display:grid;gap:var(--pdx-page-gap, 12px);grid-template-columns:minmax(0,1fr)}.pdx-page--canvas{align-items:start;grid-auto-flow:dense}.pdx-page-wrapper.editing .pdx-page--canvas{padding-block-start:var(--pdx-canvas-context-toolbar-safe-area, 22px);padding-block-end:22px;padding-inline:22px;box-sizing:border-box}.pdx-page-settings{position:sticky;top:8px;z-index:2;color:inherit;margin-bottom:6px}.pdx-widget{position:relative;background:var(--pfx-surface, transparent);border-radius:6px;min-width:0;min-height:0}.pdx-widget--interactive{cursor:pointer}.pdx-widget--selected:before{content:\"\";position:absolute;inset:0;border:1px dashed color-mix(in srgb,var(--md-sys-color-primary) 34%,transparent);border-radius:14px;pointer-events:none;z-index:1;box-shadow:0 0 0 1px color-mix(in srgb,var(--md-sys-color-primary) 6%,transparent),0 8px 20px color-mix(in srgb,var(--md-sys-color-primary) 6%,transparent)}.pdx-widget--canvas{align-self:stretch;--pdx-resize-gradient-horizontal: linear-gradient( 90deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-resize-gradient-vertical: linear-gradient( 180deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-resize-gradient-diagonal-se: linear-gradient( 135deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-resize-gradient-diagonal-sw: linear-gradient( 225deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-active-resize-gradient: var(--pdx-resize-gradient-diagonal-se)}.pdx-widget--canvas:after{content:\"\";position:absolute;inset:0;padding:2px;border-radius:14px;background:var(--pdx-active-resize-gradient);opacity:0;pointer-events:none;transition:opacity .14s ease,filter .14s ease;filter:saturate(1.02) drop-shadow(0 0 5px color-mix(in srgb,var(--md-sys-color-primary) 10%,transparent));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.pdx-widget--canvas-selected:before,.pdx-widget--canvas-blocked:before{content:\"\";position:absolute;inset:0;border-radius:14px;pointer-events:none;z-index:1;transition:opacity .14s ease,box-shadow .14s ease,border-color .14s ease}.pdx-widget--canvas-blocked:before{border:1px solid color-mix(in srgb,var(--md-sys-color-error) 74%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--md-sys-color-error) 20%,transparent),0 10px 24px color-mix(in srgb,var(--md-sys-color-error) 12%,transparent)}.pdx-widget--canvas:has(.pdx-canvas-resize:hover):after,.pdx-widget--canvas:has(.pdx-canvas-resize:focus-visible):after{opacity:.82}.pdx-widget--canvas:has(.pdx-canvas-resize--north:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--north:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--south:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--south:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-horizontal)}.pdx-widget--canvas:has(.pdx-canvas-resize--east:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--east:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--west:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--west:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-vertical)}.pdx-widget--canvas:has(.pdx-canvas-resize--north-east:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--north-east:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--south-west:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--south-west:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-diagonal-sw)}.pdx-widget--canvas:has(.pdx-canvas-resize--north-west:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--north-west:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--south-east:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--south-east:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-diagonal-se)}.pdx-canvas-resize{position:absolute;z-index:7;border:0;padding:0;margin:0;background:transparent;touch-action:none;cursor:pointer;opacity:0;pointer-events:none;transform:scale(.94);transition:opacity .14s ease,transform .14s ease,filter .14s ease;filter:saturate(.9)}.pdx-widget--canvas:hover .pdx-canvas-resize,.pdx-widget--canvas:focus-within .pdx-canvas-resize,.pdx-widget--canvas-selected .pdx-canvas-resize{opacity:.88;pointer-events:auto;transform:scale(1);filter:saturate(1)}.pdx-widget--canvas:has(.pdx-shell.expanded) .pdx-canvas-resize,.pdx-widget--canvas:has(.pdx-shell.fullscreen) .pdx-canvas-resize{opacity:0;pointer-events:none;transform:scale(.94)}.pdx-canvas-resize-grip{display:block;width:9px;height:9px;border-radius:999px;border:1px solid color-mix(in srgb,var(--md-sys-color-primary) 42%,var(--md-sys-color-outline-variant) 58%);background:color-mix(in srgb,var(--md-sys-color-surface) 92%,var(--md-sys-color-primary) 8%);box-shadow:0 1px 4px color-mix(in srgb,var(--md-sys-color-shadow) 10%,transparent);transition:transform .14s ease,border-color .14s ease,background .14s ease,box-shadow .14s ease}.pdx-canvas-resize:hover .pdx-canvas-resize-grip,.pdx-canvas-resize:focus-visible .pdx-canvas-resize-grip{border-color:color-mix(in srgb,var(--md-sys-color-primary) 58%,var(--md-sys-color-outline-variant) 42%);background:color-mix(in srgb,var(--md-sys-color-surface) 84%,var(--md-sys-color-primary) 16%);box-shadow:0 2px 7px color-mix(in srgb,var(--md-sys-color-primary) 14%,transparent);transform:scale(1.04)}.pdx-canvas-resize--north,.pdx-canvas-resize--south{left:50%;width:52px;height:44px;margin-left:-26px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--north{top:-22px;cursor:ns-resize}.pdx-canvas-resize--south{bottom:-22px;cursor:ns-resize}.pdx-canvas-resize--east,.pdx-canvas-resize--west{top:50%;width:44px;height:52px;margin-top:-26px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--east{right:-22px;cursor:ew-resize}.pdx-canvas-resize--west{left:-22px;cursor:ew-resize}.pdx-canvas-resize--north-east,.pdx-canvas-resize--north-west,.pdx-canvas-resize--south-east,.pdx-canvas-resize--south-west{width:44px;height:44px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--north-east{top:-22px;right:-22px;cursor:nesw-resize}.pdx-canvas-resize--north-west{top:-22px;left:-22px;cursor:nwse-resize}.pdx-canvas-resize--south-east{bottom:-22px;right:-22px;cursor:nwse-resize}.pdx-canvas-resize--south-west{bottom:-22px;left:-22px;cursor:nesw-resize}.pdx-canvas-snap-preview{position:relative;align-self:stretch;border-radius:12px;pointer-events:none;z-index:0;background:linear-gradient(135deg,color-mix(in srgb,var(--md-sys-color-primary) 10%,transparent),color-mix(in srgb,var(--md-sys-color-tertiary) 12%,transparent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--md-sys-color-primary) 42%,transparent),inset 0 0 0 2px color-mix(in srgb,var(--md-sys-color-surface) 55%,transparent);animation:pdx-snap-preview-pulse .48s ease-out infinite alternate}.pdx-canvas-snap-preview:before,.pdx-canvas-snap-preview:after{content:\"\";position:absolute;border-radius:999px;background:color-mix(in srgb,var(--md-sys-color-primary) 82%,var(--md-sys-color-tertiary) 18%);opacity:.72}.pdx-canvas-snap-preview:before{inset:0 auto 0 0;width:3px}.pdx-canvas-snap-preview:after{inset:0 0 auto;height:3px}.pdx-canvas-snap-preview--invalid{background:linear-gradient(135deg,color-mix(in srgb,var(--md-sys-color-error) 18%,transparent),color-mix(in srgb,var(--md-sys-color-error-container) 22%,transparent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--md-sys-color-error) 58%,transparent),inset 0 0 0 2px color-mix(in srgb,var(--md-sys-color-surface) 40%,transparent)}.pdx-canvas-snap-preview--invalid:before,.pdx-canvas-snap-preview--invalid:after{background:color-mix(in srgb,var(--md-sys-color-error) 86%,var(--md-sys-color-error-container) 14%)}.pdx-canvas-resize:focus-visible{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}.pdx-canvas-resize:hover .pdx-canvas-resize-grip,.pdx-canvas-resize:focus-visible .pdx-canvas-resize-grip{border-color:transparent;box-shadow:0 0 0 1px color-mix(in srgb,var(--md-sys-color-primary) 20%,transparent),var(--mat-elevation-level3)}.pdx-canvas-resize--north:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--north:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--south:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--south:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-horizontal)}.pdx-canvas-resize--east:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--east:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--west:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--west:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-vertical)}.pdx-canvas-resize--north-east:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--north-east:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--south-west:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--south-west:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-diagonal-sw)}.pdx-canvas-resize--north-west:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--north-west:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--south-east:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--south-east:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-diagonal-se)}.pdx-canvas-resize:hover .pdx-canvas-resize-grip,.pdx-canvas-resize:focus-visible .pdx-canvas-resize-grip{transform:scale(1.08)}@keyframes pdx-snap-preview-pulse{0%{opacity:.72;transform:scale(.996)}to{opacity:1;transform:scale(1)}}.pdx-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pdx-group{display:grid;gap:12px;grid-column:1 / -1;padding:12px;border-radius:16px;background:color-mix(in srgb,var(--md-sys-color-surface-container-low) 76%,transparent);border:1px solid color-mix(in srgb,var(--md-sys-color-outline-variant) 72%,transparent)}.pdx-group--hero{padding:16px;background:linear-gradient(180deg,color-mix(in srgb,var(--md-sys-color-primary-container) 42%,transparent),color-mix(in srgb,var(--md-sys-color-surface-container-low) 86%,transparent))}.pdx-group--rail{align-self:start}.pdx-group-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.pdx-group-title{font-size:.95rem;font-weight:600;color:var(--md-sys-color-on-surface)}.pdx-group-content{display:grid;gap:12px}.pdx-group-content--stack{grid-template-columns:minmax(0,1fr)}.pdx-group-content--row{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.pdx-group-content--grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.pdx-group-tabs{display:grid;gap:12px}.pdx-tabs-header{display:flex;flex-wrap:wrap;gap:8px}.pdx-tab-chip{appearance:none;border:1px solid var(--md-sys-color-outline-variant);background:var(--md-sys-color-surface-container-lowest);color:var(--md-sys-color-on-surface);border-radius:999px;padding:8px 12px;font:inherit;cursor:pointer}.pdx-tab-chip.active{border-color:var(--md-sys-color-primary);background:color-mix(in srgb,var(--md-sys-color-primary-container) 78%,transparent);color:var(--md-sys-color-on-primary-container)}.pdx-page-wrapper.editing .pdx-widget-settings{opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: PraxisIconButtonComponent, selector: "button[praxisIconButton]", inputs: ["praxisIconButton", "size", "appearance", "presentation", "pressed", "busy"] }, { kind: "component", type: DynamicWidgetContextToolbarComponent, selector: "praxis-dynamic-widget-context-toolbar", inputs: ["toolbarLabel", "contextLabel", "contextTooltip", "showAssistant", "assistantLabel", "assistantTooltip", "showComponentSettings", "componentSettingsLabel", "componentSettingsTooltip", "showShellSettings", "shellSettingsLabel", "shellSettingsTooltip", "showRemove", "moreActionsLabel", "removeLabel"], outputs: ["assistant", "componentSettings", "shellSettings", "remove"] }, { kind: "directive", type: DynamicWidgetLoaderDirective, selector: "[dynamicWidgetLoader]", inputs: ["dynamicWidgetLoader", "ownerWidgetKey", "context", "strictValidation", "autoWireOutputs"], outputs: ["widgetEvent", "widgetDiagnostic"], exportAs: ["dynamicWidgetLoader"] }, { kind: "component", type: WidgetShellComponent, selector: "praxis-widget-shell", inputs: ["shell", "context", "dragSurfaceEnabled", "dragSurfaceLabel"], outputs: ["action", "dragSurfacePointerDown", "dragSurfaceKeydown"] }] });
|
|
41396
41536
|
}
|
|
41397
41537
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: DynamicWidgetPageComponent, decorators: [{
|
|
41398
41538
|
type: Component,
|
|
@@ -41413,7 +41553,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
41413
41553
|
[attr.data-motion]="pageThemeMotion"
|
|
41414
41554
|
[ngStyle]="pageThemeTokenStyle"
|
|
41415
41555
|
>
|
|
41416
|
-
@if (
|
|
41556
|
+
@if (canOpenPageSettings()) {
|
|
41417
41557
|
<button
|
|
41418
41558
|
class="pdx-page-settings"
|
|
41419
41559
|
praxisIconButton="ms:settings"
|
|
@@ -41438,15 +41578,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
41438
41578
|
<div
|
|
41439
41579
|
class="pdx-widget pdx-widget--canvas"
|
|
41440
41580
|
[attr.data-widget-key]="w.key"
|
|
41441
|
-
[class.pdx-widget--interactive]="
|
|
41581
|
+
[class.pdx-widget--interactive]="canSelectWidgets()"
|
|
41442
41582
|
[class.pdx-widget--selected]="
|
|
41443
|
-
|
|
41583
|
+
canSelectWidgets() && isWidgetSelected(w.key)
|
|
41444
41584
|
"
|
|
41445
41585
|
[class.pdx-widget--canvas-selected]="
|
|
41446
|
-
|
|
41586
|
+
canCustomizeCanvas() && isWidgetSelected(w.key)
|
|
41447
41587
|
"
|
|
41448
41588
|
[class.pdx-widget--canvas-blocked]="
|
|
41449
|
-
|
|
41589
|
+
canCustomizeCanvas() && isCanvasWidgetBlocked(w.key)
|
|
41450
41590
|
"
|
|
41451
41591
|
[class]="widgetClassName(w)"
|
|
41452
41592
|
[style.gridColumn]="widgetGridColumn(w)"
|
|
@@ -41456,7 +41596,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
41456
41596
|
(click)="selectWidgetFromHostEvent(w.key, $event)"
|
|
41457
41597
|
(focusin)="selectWidgetFromHostEvent(w.key, $event)"
|
|
41458
41598
|
>
|
|
41459
|
-
@if (
|
|
41599
|
+
@if (canCustomizeCanvas()) {
|
|
41460
41600
|
@for (handle of canvasResizeHandles; track handle.id) {
|
|
41461
41601
|
<button
|
|
41462
41602
|
class="pdx-canvas-resize"
|
|
@@ -41477,7 +41617,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
41477
41617
|
<praxis-widget-shell
|
|
41478
41618
|
[shell]="widgetShellForRender(w)"
|
|
41479
41619
|
[context]="mergedContext"
|
|
41480
|
-
[dragSurfaceEnabled]="
|
|
41620
|
+
[dragSurfaceEnabled]="canCustomizeCanvas() && isCanvasMode()"
|
|
41481
41621
|
[dragSurfaceLabel]="dragWidgetLabel()"
|
|
41482
41622
|
(action)="onShellAction(w.key, $event)"
|
|
41483
41623
|
(dragSurfacePointerDown)="startCanvasDrag(w.key, $event)"
|
|
@@ -41501,7 +41641,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
41501
41641
|
[toolbarLabel]="widgetContextToolbarLabel(w.key)"
|
|
41502
41642
|
[contextLabel]="widgetContextLabel(w)"
|
|
41503
41643
|
[contextTooltip]="widgetContextTooltip(w)"
|
|
41504
|
-
[showAssistant]="
|
|
41644
|
+
[showAssistant]="canRequestWidgetAssistant()"
|
|
41505
41645
|
[assistantLabel]="widgetAssistantLabel()"
|
|
41506
41646
|
[assistantTooltip]="widgetAssistantTooltip()"
|
|
41507
41647
|
[showComponentSettings]="
|
|
@@ -41513,6 +41653,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
41513
41653
|
[shellSettingsLabel]="widgetSettingsLabel()"
|
|
41514
41654
|
[shellSettingsTooltip]="widgetSettingsTooltip()"
|
|
41515
41655
|
[moreActionsLabel]="moreWidgetActionsLabel()"
|
|
41656
|
+
[showRemove]="canRemoveWidgets()"
|
|
41516
41657
|
[removeLabel]="widgetRemoveLabel()"
|
|
41517
41658
|
(assistant)="requestWidgetAssistant(w.key)"
|
|
41518
41659
|
(componentSettings)="openWidgetComponentSettings(w.key)"
|
|
@@ -41579,11 +41720,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
41579
41720
|
<div
|
|
41580
41721
|
class="pdx-widget"
|
|
41581
41722
|
[attr.data-widget-key]="w.key"
|
|
41582
|
-
[class.pdx-widget--interactive]="
|
|
41583
|
-
enableCustomization
|
|
41584
|
-
"
|
|
41723
|
+
[class.pdx-widget--interactive]="canSelectWidgets()"
|
|
41585
41724
|
[class.pdx-widget--selected]="
|
|
41586
|
-
|
|
41725
|
+
canSelectWidgets() && isWidgetSelected(w.key)
|
|
41587
41726
|
"
|
|
41588
41727
|
[class]="w.renderClassName || w.className || ''"
|
|
41589
41728
|
[style.gridColumn]="widgetGridColumn(w)"
|
|
@@ -41616,7 +41755,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
41616
41755
|
"
|
|
41617
41756
|
[contextLabel]="widgetContextLabel(w)"
|
|
41618
41757
|
[contextTooltip]="widgetContextTooltip(w)"
|
|
41619
|
-
[showAssistant]="
|
|
41758
|
+
[showAssistant]="canRequestWidgetAssistant()"
|
|
41620
41759
|
[assistantLabel]="widgetAssistantLabel()"
|
|
41621
41760
|
[assistantTooltip]="widgetAssistantTooltip()"
|
|
41622
41761
|
[showComponentSettings]="
|
|
@@ -41634,6 +41773,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
41634
41773
|
[shellSettingsLabel]="widgetSettingsLabel()"
|
|
41635
41774
|
[shellSettingsTooltip]="widgetSettingsTooltip()"
|
|
41636
41775
|
[moreActionsLabel]="moreWidgetActionsLabel()"
|
|
41776
|
+
[showRemove]="canRemoveWidgets()"
|
|
41637
41777
|
[removeLabel]="widgetRemoveLabel()"
|
|
41638
41778
|
(assistant)="requestWidgetAssistant(w.key)"
|
|
41639
41779
|
(componentSettings)="
|
|
@@ -41660,9 +41800,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
41660
41800
|
<div
|
|
41661
41801
|
class="pdx-widget"
|
|
41662
41802
|
[attr.data-widget-key]="w.key"
|
|
41663
|
-
[class.pdx-widget--interactive]="
|
|
41803
|
+
[class.pdx-widget--interactive]="canSelectWidgets()"
|
|
41664
41804
|
[class.pdx-widget--selected]="
|
|
41665
|
-
|
|
41805
|
+
canSelectWidgets() && isWidgetSelected(w.key)
|
|
41666
41806
|
"
|
|
41667
41807
|
[class]="widgetClassName(w)"
|
|
41668
41808
|
[style.gridColumn]="widgetGridColumn(w)"
|
|
@@ -41691,7 +41831,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
41691
41831
|
[toolbarLabel]="widgetContextToolbarLabel(w.key)"
|
|
41692
41832
|
[contextLabel]="widgetContextLabel(w)"
|
|
41693
41833
|
[contextTooltip]="widgetContextTooltip(w)"
|
|
41694
|
-
[showAssistant]="
|
|
41834
|
+
[showAssistant]="canRequestWidgetAssistant()"
|
|
41695
41835
|
[assistantLabel]="widgetAssistantLabel()"
|
|
41696
41836
|
[assistantTooltip]="widgetAssistantTooltip()"
|
|
41697
41837
|
[showComponentSettings]="
|
|
@@ -41705,6 +41845,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
41705
41845
|
[shellSettingsLabel]="widgetSettingsLabel()"
|
|
41706
41846
|
[shellSettingsTooltip]="widgetSettingsTooltip()"
|
|
41707
41847
|
[moreActionsLabel]="moreWidgetActionsLabel()"
|
|
41848
|
+
[showRemove]="canRemoveWidgets()"
|
|
41708
41849
|
[removeLabel]="widgetRemoveLabel()"
|
|
41709
41850
|
(assistant)="requestWidgetAssistant(w.key)"
|
|
41710
41851
|
(componentSettings)="
|
|
@@ -41725,9 +41866,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
41725
41866
|
<div
|
|
41726
41867
|
class="pdx-widget"
|
|
41727
41868
|
[attr.data-widget-key]="w.key"
|
|
41728
|
-
[class.pdx-widget--interactive]="
|
|
41869
|
+
[class.pdx-widget--interactive]="canSelectWidgets()"
|
|
41729
41870
|
[class.pdx-widget--selected]="
|
|
41730
|
-
|
|
41871
|
+
canSelectWidgets() && isWidgetSelected(w.key)
|
|
41731
41872
|
"
|
|
41732
41873
|
[class]="widgetClassName(w)"
|
|
41733
41874
|
[style.gridColumn]="widgetGridColumn(w)"
|
|
@@ -41756,7 +41897,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
41756
41897
|
[toolbarLabel]="widgetContextToolbarLabel(w.key)"
|
|
41757
41898
|
[contextLabel]="widgetContextLabel(w)"
|
|
41758
41899
|
[contextTooltip]="widgetContextTooltip(w)"
|
|
41759
|
-
[showAssistant]="
|
|
41900
|
+
[showAssistant]="canRequestWidgetAssistant()"
|
|
41760
41901
|
[assistantLabel]="widgetAssistantLabel()"
|
|
41761
41902
|
[assistantTooltip]="widgetAssistantTooltip()"
|
|
41762
41903
|
[showComponentSettings]="
|
|
@@ -41768,6 +41909,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
41768
41909
|
[shellSettingsLabel]="widgetSettingsLabel()"
|
|
41769
41910
|
[shellSettingsTooltip]="widgetSettingsTooltip()"
|
|
41770
41911
|
[moreActionsLabel]="moreWidgetActionsLabel()"
|
|
41912
|
+
[showRemove]="canRemoveWidgets()"
|
|
41771
41913
|
[removeLabel]="widgetRemoveLabel()"
|
|
41772
41914
|
(assistant)="requestWidgetAssistant(w.key)"
|
|
41773
41915
|
(componentSettings)="openWidgetComponentSettings(w.key)"
|
|
@@ -41797,6 +41939,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
41797
41939
|
type: Input
|
|
41798
41940
|
}], enableCustomization: [{
|
|
41799
41941
|
type: Input
|
|
41942
|
+
}], authoringCapabilities: [{
|
|
41943
|
+
type: Input
|
|
41800
41944
|
}], showPageSettingsButton: [{
|
|
41801
41945
|
type: Input
|
|
41802
41946
|
}], shellEditorComponent: [{
|
|
@@ -41867,6 +42011,11 @@ const PRAXIS_DYNAMIC_PAGE_COMPONENT_METADATA = {
|
|
|
41867
42011
|
type: 'boolean',
|
|
41868
42012
|
description: 'Habilita affordances de edição na página.',
|
|
41869
42013
|
},
|
|
42014
|
+
{
|
|
42015
|
+
name: 'authoringCapabilities',
|
|
42016
|
+
type: 'WidgetPageAuthoringCapabilities',
|
|
42017
|
+
description: 'Restringe granularmente as operações de authoring permitidas pelo host.',
|
|
42018
|
+
},
|
|
41870
42019
|
{
|
|
41871
42020
|
name: 'showPageSettingsButton',
|
|
41872
42021
|
type: 'boolean',
|