@praxisui/core 6.0.0-beta.0 → 7.0.0-beta.0
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/fesm2022/praxisui-core.mjs +844 -260
- package/index.d.ts +423 -152
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, InjectionToken, Injectable, inject, Inject, Optional, makeEnvironmentProviders, ENVIRONMENT_INITIALIZER,
|
|
2
|
+
import { Component, InjectionToken, Injectable, inject, Inject, Optional, makeEnvironmentProviders, ENVIRONMENT_INITIALIZER, APP_INITIALIZER, ErrorHandler, EventEmitter, Output, Input, ChangeDetectionStrategy, Directive, SecurityContext, ViewContainerRef, ContentChild, signal, HostListener, ViewChild, computed } 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, map as map$1 } from 'rxjs';
|
|
@@ -10,12 +10,12 @@ import { Router, ActivatedRoute } from '@angular/router';
|
|
|
10
10
|
import * as i1$1 from '@angular/forms';
|
|
11
11
|
import { Validators, FormGroup, FormControl, FormsModule } from '@angular/forms';
|
|
12
12
|
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
13
|
+
import * as i3$1 from '@angular/material/icon';
|
|
14
|
+
import { MatIconRegistry, MatIconModule } from '@angular/material/icon';
|
|
13
15
|
import * as i2 from '@angular/material/button';
|
|
14
16
|
import { MatButtonModule } from '@angular/material/button';
|
|
15
17
|
import * as i3 from '@angular/material/form-field';
|
|
16
18
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
17
|
-
import * as i3$1 from '@angular/material/icon';
|
|
18
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
19
19
|
import * as i5 from '@angular/material/input';
|
|
20
20
|
import { MatInputModule } from '@angular/material/input';
|
|
21
21
|
import * as i6 from '@angular/material/select';
|
|
@@ -8737,6 +8737,328 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
|
|
|
8737
8737
|
args: [{ providedIn: 'any' }]
|
|
8738
8738
|
}] });
|
|
8739
8739
|
|
|
8740
|
+
class CrudOperationResolutionService {
|
|
8741
|
+
discovery = inject(ResourceDiscoveryService);
|
|
8742
|
+
resolve(request) {
|
|
8743
|
+
const operation = request.operation;
|
|
8744
|
+
const metadataResourcePath = this.normalizeResourcePath(request.resourcePath);
|
|
8745
|
+
if (!metadataResourcePath) {
|
|
8746
|
+
throw new Error('CrudOperationResolutionService requires resourcePath.');
|
|
8747
|
+
}
|
|
8748
|
+
const resourcePath = this.resolveCanonicalResourcePath(request, metadataResourcePath);
|
|
8749
|
+
const diagnostics = [];
|
|
8750
|
+
const resolutionOptions = this.toDiscoveryOptions(request);
|
|
8751
|
+
if (this.hasExplicitContract(request)) {
|
|
8752
|
+
return this.buildExplicitResolution(request, resourcePath, diagnostics, resolutionOptions);
|
|
8753
|
+
}
|
|
8754
|
+
const capabilities = request.capabilities ?? null;
|
|
8755
|
+
const operationCapability = capabilities?.operations?.[operation] ??
|
|
8756
|
+
this.buildCapabilityFromCanonicalFlags(capabilities, operation);
|
|
8757
|
+
const scope = this.resolveScope(operationCapability, operation);
|
|
8758
|
+
const preferredMethod = this.resolvePreferredMethod(operationCapability, operation);
|
|
8759
|
+
const matchingSurface = this.findSurface(request.surfaces ?? capabilities?.surfaces ?? [], operation);
|
|
8760
|
+
if (matchingSurface) {
|
|
8761
|
+
return this.buildSurfaceResolution({
|
|
8762
|
+
operation,
|
|
8763
|
+
resourcePath,
|
|
8764
|
+
resourceId: request.resourceId ?? null,
|
|
8765
|
+
diagnostics,
|
|
8766
|
+
resolutionOptions,
|
|
8767
|
+
capability: operationCapability,
|
|
8768
|
+
surface: matchingSurface,
|
|
8769
|
+
});
|
|
8770
|
+
}
|
|
8771
|
+
const linkResolution = this.resolveLink(operation, request.links, resolutionOptions, operationCapability);
|
|
8772
|
+
if (linkResolution) {
|
|
8773
|
+
return {
|
|
8774
|
+
operation,
|
|
8775
|
+
source: 'link',
|
|
8776
|
+
resourcePath,
|
|
8777
|
+
resourceId: request.resourceId ?? null,
|
|
8778
|
+
scope,
|
|
8779
|
+
supported: operationCapability?.supported ?? true,
|
|
8780
|
+
visible: this.isAvailable(operationCapability),
|
|
8781
|
+
enabled: this.isAvailable(operationCapability),
|
|
8782
|
+
availability: operationCapability?.availability ?? null,
|
|
8783
|
+
schemaUrl: this.resolveCanonicalSchemaUrl(operation, resourcePath, preferredMethod, resolutionOptions),
|
|
8784
|
+
responseSchemaUrl: operation === 'view'
|
|
8785
|
+
? this.resolveCanonicalSchemaUrl('view', resourcePath, preferredMethod, resolutionOptions)
|
|
8786
|
+
: null,
|
|
8787
|
+
submitUrl: linkResolution.href,
|
|
8788
|
+
submitMethod: operation === 'view'
|
|
8789
|
+
? preferredMethod
|
|
8790
|
+
: (linkResolution.method ?? preferredMethod)?.toLowerCase() ?? null,
|
|
8791
|
+
diagnostics,
|
|
8792
|
+
};
|
|
8793
|
+
}
|
|
8794
|
+
return this.buildConventionResolution({
|
|
8795
|
+
operation,
|
|
8796
|
+
resourcePath,
|
|
8797
|
+
resourceId: request.resourceId ?? null,
|
|
8798
|
+
diagnostics,
|
|
8799
|
+
resolutionOptions,
|
|
8800
|
+
capability: operationCapability,
|
|
8801
|
+
preferredMethod,
|
|
8802
|
+
scope,
|
|
8803
|
+
});
|
|
8804
|
+
}
|
|
8805
|
+
buildExplicitResolution(request, resourcePath, diagnostics, options) {
|
|
8806
|
+
return {
|
|
8807
|
+
operation: request.operation,
|
|
8808
|
+
source: 'explicit',
|
|
8809
|
+
resourcePath,
|
|
8810
|
+
resourceId: request.resourceId ?? null,
|
|
8811
|
+
scope: this.defaultScope(request.operation),
|
|
8812
|
+
supported: true,
|
|
8813
|
+
visible: true,
|
|
8814
|
+
enabled: true,
|
|
8815
|
+
availability: { allowed: true, metadata: { source: 'explicit' } },
|
|
8816
|
+
schemaUrl: request.explicit?.schemaUrl
|
|
8817
|
+
? this.discovery.resolveHref(request.explicit.schemaUrl, options)
|
|
8818
|
+
: null,
|
|
8819
|
+
responseSchemaUrl: request.explicit?.responseSchemaUrl
|
|
8820
|
+
? this.discovery.resolveHref(request.explicit.responseSchemaUrl, options)
|
|
8821
|
+
: null,
|
|
8822
|
+
submitUrl: request.explicit?.submitUrl
|
|
8823
|
+
? this.discovery.resolveHref(request.explicit.submitUrl, options)
|
|
8824
|
+
: null,
|
|
8825
|
+
submitMethod: request.explicit?.submitMethod
|
|
8826
|
+
? String(request.explicit.submitMethod).trim().toLowerCase()
|
|
8827
|
+
: null,
|
|
8828
|
+
diagnostics,
|
|
8829
|
+
};
|
|
8830
|
+
}
|
|
8831
|
+
buildSurfaceResolution(params) {
|
|
8832
|
+
const { operation, resourcePath, resourceId, diagnostics, resolutionOptions, capability, surface } = params;
|
|
8833
|
+
const isWritable = this.isWritableSurface(surface.kind);
|
|
8834
|
+
return {
|
|
8835
|
+
operation,
|
|
8836
|
+
source: capability ? 'capability' : 'surface',
|
|
8837
|
+
resourcePath,
|
|
8838
|
+
resourceId,
|
|
8839
|
+
scope: surface.scope,
|
|
8840
|
+
supported: capability?.supported ?? true,
|
|
8841
|
+
visible: this.isAvailable(capability, surface),
|
|
8842
|
+
enabled: this.isAvailable(capability, surface),
|
|
8843
|
+
availability: surface.availability ?? capability?.availability ?? null,
|
|
8844
|
+
schemaUrl: surface.schemaUrl
|
|
8845
|
+
? this.discovery.resolveHref(surface.schemaUrl, resolutionOptions)
|
|
8846
|
+
: this.resolveCanonicalSchemaUrl(operation, resourcePath, this.resolvePreferredMethod(capability, operation), resolutionOptions),
|
|
8847
|
+
responseSchemaUrl: operation === 'view' && surface.schemaUrl
|
|
8848
|
+
? this.discovery.resolveHref(surface.schemaUrl, resolutionOptions)
|
|
8849
|
+
: null,
|
|
8850
|
+
submitUrl: isWritable
|
|
8851
|
+
? this.discovery.resolveHref(this.resolveActualOperationPath(surface.path, resourceId, diagnostics), resolutionOptions)
|
|
8852
|
+
: null,
|
|
8853
|
+
submitMethod: isWritable ? String(surface.method || '').trim().toLowerCase() || null : null,
|
|
8854
|
+
diagnostics,
|
|
8855
|
+
};
|
|
8856
|
+
}
|
|
8857
|
+
buildConventionResolution(params) {
|
|
8858
|
+
const { operation, resourcePath, resourceId, diagnostics, resolutionOptions, capability, preferredMethod, scope } = params;
|
|
8859
|
+
const submitUrl = this.resolveConventionSubmitUrl(operation, resourcePath, resourceId, diagnostics, resolutionOptions);
|
|
8860
|
+
return {
|
|
8861
|
+
operation,
|
|
8862
|
+
source: 'convention',
|
|
8863
|
+
resourcePath,
|
|
8864
|
+
resourceId,
|
|
8865
|
+
scope,
|
|
8866
|
+
supported: capability?.supported ?? true,
|
|
8867
|
+
visible: this.isAvailable(capability),
|
|
8868
|
+
enabled: this.isAvailable(capability),
|
|
8869
|
+
availability: capability?.availability ?? null,
|
|
8870
|
+
schemaUrl: this.resolveCanonicalSchemaUrl(operation, resourcePath, preferredMethod, resolutionOptions),
|
|
8871
|
+
responseSchemaUrl: operation === 'view'
|
|
8872
|
+
? this.resolveCanonicalSchemaUrl('view', resourcePath, preferredMethod, resolutionOptions)
|
|
8873
|
+
: null,
|
|
8874
|
+
submitUrl,
|
|
8875
|
+
submitMethod: operation === 'view' ? preferredMethod : preferredMethod?.toLowerCase() ?? null,
|
|
8876
|
+
diagnostics,
|
|
8877
|
+
};
|
|
8878
|
+
}
|
|
8879
|
+
resolveCanonicalSchemaUrl(operation, resourcePath, preferredMethod, options) {
|
|
8880
|
+
if (operation === 'delete') {
|
|
8881
|
+
return null;
|
|
8882
|
+
}
|
|
8883
|
+
const { path, method, schemaType } = this.buildCanonicalSchemaParams(operation, resourcePath, preferredMethod);
|
|
8884
|
+
const query = new URLSearchParams({
|
|
8885
|
+
path,
|
|
8886
|
+
operation: method.toLowerCase(),
|
|
8887
|
+
schemaType,
|
|
8888
|
+
});
|
|
8889
|
+
return this.discovery.resolveHref(`/schemas/filtered?${query.toString()}`, options);
|
|
8890
|
+
}
|
|
8891
|
+
buildCanonicalSchemaParams(operation, resourcePath, preferredMethod) {
|
|
8892
|
+
if (operation === 'create') {
|
|
8893
|
+
return { path: resourcePath, method: 'POST', schemaType: 'request' };
|
|
8894
|
+
}
|
|
8895
|
+
const itemPath = `${resourcePath}/{id}`;
|
|
8896
|
+
if (operation === 'view') {
|
|
8897
|
+
return { path: itemPath, method: 'GET', schemaType: 'response' };
|
|
8898
|
+
}
|
|
8899
|
+
return {
|
|
8900
|
+
path: itemPath,
|
|
8901
|
+
method: (preferredMethod || 'PUT').toUpperCase(),
|
|
8902
|
+
schemaType: 'request',
|
|
8903
|
+
};
|
|
8904
|
+
}
|
|
8905
|
+
resolveConventionSubmitUrl(operation, resourcePath, resourceId, diagnostics, options) {
|
|
8906
|
+
if (operation === 'view') {
|
|
8907
|
+
return null;
|
|
8908
|
+
}
|
|
8909
|
+
if (operation === 'create') {
|
|
8910
|
+
return this.discovery.resolveHref(resourcePath, options);
|
|
8911
|
+
}
|
|
8912
|
+
if (resourceId == null) {
|
|
8913
|
+
diagnostics.push(`Operation "${operation}" requires resourceId for canonical submit target resolution.`);
|
|
8914
|
+
return null;
|
|
8915
|
+
}
|
|
8916
|
+
return this.discovery.resolveHref(`${resourcePath}/${resourceId}`, options);
|
|
8917
|
+
}
|
|
8918
|
+
resolveLink(operation, links, options, capability) {
|
|
8919
|
+
const rel = String(capability?.preferredRel || this.operationRel(operation)).trim();
|
|
8920
|
+
const link = this.discovery.getLink(links, rel);
|
|
8921
|
+
if (!link?.href) {
|
|
8922
|
+
return null;
|
|
8923
|
+
}
|
|
8924
|
+
return {
|
|
8925
|
+
href: this.discovery.resolveHref(link.href, options),
|
|
8926
|
+
method: String(link.method || '').trim().toUpperCase()
|
|
8927
|
+
|| capability?.preferredMethod?.toUpperCase()
|
|
8928
|
+
|| this.defaultMethod(operation),
|
|
8929
|
+
};
|
|
8930
|
+
}
|
|
8931
|
+
buildCapabilityFromCanonicalFlags(capabilities, operation) {
|
|
8932
|
+
if (!capabilities?.canonicalOperations) {
|
|
8933
|
+
return null;
|
|
8934
|
+
}
|
|
8935
|
+
const canonicalKey = operation === 'view' ? 'byId' : operation === 'edit' ? 'update' : operation;
|
|
8936
|
+
if (!(canonicalKey in capabilities.canonicalOperations)) {
|
|
8937
|
+
return null;
|
|
8938
|
+
}
|
|
8939
|
+
return {
|
|
8940
|
+
id: operation,
|
|
8941
|
+
supported: !!capabilities.canonicalOperations[canonicalKey],
|
|
8942
|
+
scope: this.defaultScope(operation),
|
|
8943
|
+
preferredMethod: this.defaultMethod(operation),
|
|
8944
|
+
preferredRel: this.operationRel(operation),
|
|
8945
|
+
availability: { allowed: true, metadata: { source: 'canonicalOperations' } },
|
|
8946
|
+
};
|
|
8947
|
+
}
|
|
8948
|
+
findSurface(surfaces, operation) {
|
|
8949
|
+
const candidates = surfaces.filter((surface) => this.matchesOperation(surface, operation));
|
|
8950
|
+
if (operation === 'create') {
|
|
8951
|
+
return candidates.find((surface) => surface.id.toLowerCase() === 'create') ?? candidates[0] ?? null;
|
|
8952
|
+
}
|
|
8953
|
+
if (operation === 'view') {
|
|
8954
|
+
return candidates.find((surface) => ['detail', 'view'].includes(surface.id.toLowerCase())) ?? candidates[0] ?? null;
|
|
8955
|
+
}
|
|
8956
|
+
if (operation === 'edit') {
|
|
8957
|
+
return candidates.find((surface) => ['edit', 'update'].includes(surface.id.toLowerCase())) ?? candidates[0] ?? null;
|
|
8958
|
+
}
|
|
8959
|
+
return null;
|
|
8960
|
+
}
|
|
8961
|
+
matchesOperation(surface, operation) {
|
|
8962
|
+
if (operation === 'create') {
|
|
8963
|
+
return surface.scope === 'COLLECTION' && this.isWritableSurface(surface.kind);
|
|
8964
|
+
}
|
|
8965
|
+
if (operation === 'view') {
|
|
8966
|
+
return surface.scope === 'ITEM' && this.isReadableSurface(surface.kind);
|
|
8967
|
+
}
|
|
8968
|
+
if (operation === 'edit') {
|
|
8969
|
+
return surface.scope === 'ITEM' && this.isWritableSurface(surface.kind);
|
|
8970
|
+
}
|
|
8971
|
+
return false;
|
|
8972
|
+
}
|
|
8973
|
+
isReadableSurface(kind) {
|
|
8974
|
+
return kind === 'VIEW' || kind === 'READ_PROJECTION';
|
|
8975
|
+
}
|
|
8976
|
+
isWritableSurface(kind) {
|
|
8977
|
+
return kind === 'FORM' || kind === 'PARTIAL_FORM';
|
|
8978
|
+
}
|
|
8979
|
+
resolveScope(capability, operation) {
|
|
8980
|
+
return capability?.scope ?? this.defaultScope(operation);
|
|
8981
|
+
}
|
|
8982
|
+
resolvePreferredMethod(capability, operation) {
|
|
8983
|
+
return capability?.preferredMethod?.toUpperCase() ?? this.defaultMethod(operation);
|
|
8984
|
+
}
|
|
8985
|
+
resolveActualOperationPath(pathTemplate, resourceId, diagnostics) {
|
|
8986
|
+
if (!/\{id\}/.test(pathTemplate)) {
|
|
8987
|
+
return pathTemplate;
|
|
8988
|
+
}
|
|
8989
|
+
if (resourceId == null) {
|
|
8990
|
+
diagnostics.push(`Path "${pathTemplate}" requires resourceId to resolve the concrete target.`);
|
|
8991
|
+
return pathTemplate;
|
|
8992
|
+
}
|
|
8993
|
+
return pathTemplate.replace(/\{id\}/g, encodeURIComponent(String(resourceId)));
|
|
8994
|
+
}
|
|
8995
|
+
hasExplicitContract(request) {
|
|
8996
|
+
return !!(request.explicit?.schemaUrl ||
|
|
8997
|
+
request.explicit?.responseSchemaUrl ||
|
|
8998
|
+
request.explicit?.submitUrl ||
|
|
8999
|
+
request.explicit?.submitMethod);
|
|
9000
|
+
}
|
|
9001
|
+
isAvailable(capability, surface) {
|
|
9002
|
+
if (surface?.availability) {
|
|
9003
|
+
return surface.availability.allowed !== false;
|
|
9004
|
+
}
|
|
9005
|
+
if (capability?.availability) {
|
|
9006
|
+
return capability.availability.allowed !== false;
|
|
9007
|
+
}
|
|
9008
|
+
return capability?.supported !== false;
|
|
9009
|
+
}
|
|
9010
|
+
operationRel(operation) {
|
|
9011
|
+
if (operation === 'view') {
|
|
9012
|
+
return 'self';
|
|
9013
|
+
}
|
|
9014
|
+
return operation;
|
|
9015
|
+
}
|
|
9016
|
+
defaultScope(operation) {
|
|
9017
|
+
return operation === 'create' ? 'COLLECTION' : 'ITEM';
|
|
9018
|
+
}
|
|
9019
|
+
defaultMethod(operation) {
|
|
9020
|
+
switch (operation) {
|
|
9021
|
+
case 'create':
|
|
9022
|
+
return 'POST';
|
|
9023
|
+
case 'view':
|
|
9024
|
+
return 'GET';
|
|
9025
|
+
case 'edit':
|
|
9026
|
+
return 'PUT';
|
|
9027
|
+
case 'delete':
|
|
9028
|
+
return 'DELETE';
|
|
9029
|
+
}
|
|
9030
|
+
}
|
|
9031
|
+
normalizeResourcePath(resourcePath) {
|
|
9032
|
+
const normalized = String(resourcePath || '').trim().replace(/\/+/g, '/');
|
|
9033
|
+
if (!normalized) {
|
|
9034
|
+
return '';
|
|
9035
|
+
}
|
|
9036
|
+
return normalized.startsWith('/') ? normalized : `/${normalized}`;
|
|
9037
|
+
}
|
|
9038
|
+
resolveCanonicalResourcePath(request, fallbackResourcePath) {
|
|
9039
|
+
const capabilityResourcePath = this.normalizeResourcePath(request.capabilities?.resourcePath || '');
|
|
9040
|
+
if (capabilityResourcePath) {
|
|
9041
|
+
return capabilityResourcePath;
|
|
9042
|
+
}
|
|
9043
|
+
return fallbackResourcePath;
|
|
9044
|
+
}
|
|
9045
|
+
toDiscoveryOptions(request) {
|
|
9046
|
+
if (!request.endpointKey && !request.apiUrlEntry) {
|
|
9047
|
+
return undefined;
|
|
9048
|
+
}
|
|
9049
|
+
return {
|
|
9050
|
+
...(request.endpointKey ? { endpointKey: request.endpointKey } : {}),
|
|
9051
|
+
...(request.apiUrlEntry ? { apiUrlEntry: request.apiUrlEntry } : {}),
|
|
9052
|
+
};
|
|
9053
|
+
}
|
|
9054
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: CrudOperationResolutionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
9055
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: CrudOperationResolutionService, providedIn: 'any' });
|
|
9056
|
+
}
|
|
9057
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: CrudOperationResolutionService, decorators: [{
|
|
9058
|
+
type: Injectable,
|
|
9059
|
+
args: [{ providedIn: 'any' }]
|
|
9060
|
+
}] });
|
|
9061
|
+
|
|
8740
9062
|
const DEFAULT_FAMILIES = [
|
|
8741
9063
|
'chart',
|
|
8742
9064
|
'analytic-table',
|
|
@@ -9280,6 +9602,30 @@ function providePraxisAnalyticsGlobalActions(opts = {}) {
|
|
|
9280
9602
|
};
|
|
9281
9603
|
}
|
|
9282
9604
|
|
|
9605
|
+
const DEFAULT_FONT_SET_CLASS = ['material-symbols-outlined', 'mat-ligature-font'];
|
|
9606
|
+
function normalizeDefaultFontSetClass(options) {
|
|
9607
|
+
const provided = options?.defaultFontSetClass?.filter((value) => typeof value === 'string' && value.trim().length);
|
|
9608
|
+
return provided?.length ? provided : DEFAULT_FONT_SET_CLASS;
|
|
9609
|
+
}
|
|
9610
|
+
function providePraxisIconDefaults(options) {
|
|
9611
|
+
const defaultFontSetClass = normalizeDefaultFontSetClass(options);
|
|
9612
|
+
return [
|
|
9613
|
+
{
|
|
9614
|
+
provide: APP_INITIALIZER,
|
|
9615
|
+
multi: true,
|
|
9616
|
+
deps: [MatIconRegistry],
|
|
9617
|
+
useFactory: (iconRegistry) => () => {
|
|
9618
|
+
iconRegistry.registerFontClassAlias('ms', 'material-symbols-outlined mat-ligature-font');
|
|
9619
|
+
iconRegistry.registerFontClassAlias('mso', 'material-symbols-outlined mat-ligature-font');
|
|
9620
|
+
iconRegistry.registerFontClassAlias('msr', 'material-symbols-rounded mat-ligature-font');
|
|
9621
|
+
iconRegistry.registerFontClassAlias('mss', 'material-symbols-sharp mat-ligature-font');
|
|
9622
|
+
iconRegistry.registerFontClassAlias('mi', 'material-icons mat-ligature-font');
|
|
9623
|
+
iconRegistry.setDefaultFontSetClass(...defaultFontSetClass);
|
|
9624
|
+
},
|
|
9625
|
+
},
|
|
9626
|
+
];
|
|
9627
|
+
}
|
|
9628
|
+
|
|
9283
9629
|
/**
|
|
9284
9630
|
* Registers only the default visual renderer for Praxis loading.
|
|
9285
9631
|
*
|
|
@@ -11498,6 +11844,14 @@ const FieldDataType = {
|
|
|
11498
11844
|
* - Supports Material Design 3 specifications
|
|
11499
11845
|
*/
|
|
11500
11846
|
|
|
11847
|
+
function createEmptyRichContentDocument() {
|
|
11848
|
+
return {
|
|
11849
|
+
kind: 'praxis.rich-content',
|
|
11850
|
+
version: '1.0.0',
|
|
11851
|
+
nodes: [],
|
|
11852
|
+
};
|
|
11853
|
+
}
|
|
11854
|
+
|
|
11501
11855
|
function defaultGenerateId(kind, used) {
|
|
11502
11856
|
// determinístico + compacto, evitando Math.random (facilita tests/replays)
|
|
11503
11857
|
let seq = 1;
|
|
@@ -11788,10 +12142,10 @@ function createDefaultFormConfig() {
|
|
|
11788
12142
|
],
|
|
11789
12143
|
},
|
|
11790
12144
|
],
|
|
11791
|
-
formBlocksBefore:
|
|
11792
|
-
formBlocksBeforeActions:
|
|
12145
|
+
formBlocksBefore: createEmptyRichContentDocument(),
|
|
12146
|
+
formBlocksBeforeActions: createEmptyRichContentDocument(),
|
|
11793
12147
|
formBlocksBeforeActionsPlacement: 'afterSections',
|
|
11794
|
-
formBlocksAfter:
|
|
12148
|
+
formBlocksAfter: createEmptyRichContentDocument(),
|
|
11795
12149
|
// Default mode hints (didactic tooltips)
|
|
11796
12150
|
hints: getDefaultFormHints(),
|
|
11797
12151
|
};
|
|
@@ -11806,10 +12160,10 @@ function isValidFormConfig(config) {
|
|
|
11806
12160
|
function createEmptyFormConfig() {
|
|
11807
12161
|
return {
|
|
11808
12162
|
sections: [],
|
|
11809
|
-
formBlocksBefore:
|
|
11810
|
-
formBlocksBeforeActions:
|
|
12163
|
+
formBlocksBefore: createEmptyRichContentDocument(),
|
|
12164
|
+
formBlocksBeforeActions: createEmptyRichContentDocument(),
|
|
11811
12165
|
formBlocksBeforeActionsPlacement: 'afterSections',
|
|
11812
|
-
formBlocksAfter:
|
|
12166
|
+
formBlocksAfter: createEmptyRichContentDocument(),
|
|
11813
12167
|
};
|
|
11814
12168
|
}
|
|
11815
12169
|
/**
|
|
@@ -12011,10 +12365,10 @@ function buildFormConfigFromEditorialTemplate(template, options = {}) {
|
|
|
12011
12365
|
const overrides = options.overrides ?? {};
|
|
12012
12366
|
const base = {
|
|
12013
12367
|
sections: template.layout?.sections ?? [],
|
|
12014
|
-
formBlocksBefore: template.layout?.formBlocksBefore ??
|
|
12015
|
-
formBlocksBeforeActions: template.layout?.formBlocksBeforeActions ??
|
|
12368
|
+
formBlocksBefore: template.layout?.formBlocksBefore ?? createEmptyRichContentDocument(),
|
|
12369
|
+
formBlocksBeforeActions: template.layout?.formBlocksBeforeActions ?? createEmptyRichContentDocument(),
|
|
12016
12370
|
formBlocksBeforeActionsPlacement: template.layout?.formBlocksBeforeActionsPlacement ?? 'afterSections',
|
|
12017
|
-
formBlocksAfter: template.layout?.formBlocksAfter ??
|
|
12371
|
+
formBlocksAfter: template.layout?.formBlocksAfter ?? createEmptyRichContentDocument(),
|
|
12018
12372
|
editorialContext: template.defaults?.editorialContext,
|
|
12019
12373
|
fieldMetadata: template.defaults?.fieldMetadata ?? [],
|
|
12020
12374
|
actions: template.layout?.actions,
|
|
@@ -12079,12 +12433,62 @@ function mergeTemplateReference(base, metadataPatch, overridePatch) {
|
|
|
12079
12433
|
};
|
|
12080
12434
|
}
|
|
12081
12435
|
|
|
12436
|
+
function richDoc(...nodes) {
|
|
12437
|
+
return {
|
|
12438
|
+
kind: 'praxis.rich-content',
|
|
12439
|
+
version: '1.0.0',
|
|
12440
|
+
nodes,
|
|
12441
|
+
};
|
|
12442
|
+
}
|
|
12443
|
+
function richFooterCard(config) {
|
|
12444
|
+
return richDoc({
|
|
12445
|
+
type: 'card',
|
|
12446
|
+
title: config.title,
|
|
12447
|
+
subtitle: config.subtitle,
|
|
12448
|
+
content: [
|
|
12449
|
+
...(config.links?.length
|
|
12450
|
+
? [
|
|
12451
|
+
{
|
|
12452
|
+
type: 'compose',
|
|
12453
|
+
direction: 'row',
|
|
12454
|
+
wrap: true,
|
|
12455
|
+
items: config.links.map((label) => ({
|
|
12456
|
+
type: 'badge',
|
|
12457
|
+
label,
|
|
12458
|
+
})),
|
|
12459
|
+
},
|
|
12460
|
+
]
|
|
12461
|
+
: []),
|
|
12462
|
+
],
|
|
12463
|
+
});
|
|
12464
|
+
}
|
|
12465
|
+
function richIntroCard(config) {
|
|
12466
|
+
return richDoc({
|
|
12467
|
+
type: 'card',
|
|
12468
|
+
title: config.title,
|
|
12469
|
+
subtitle: config.subtitle,
|
|
12470
|
+
content: [
|
|
12471
|
+
...(config.badge
|
|
12472
|
+
? [
|
|
12473
|
+
{
|
|
12474
|
+
type: 'badge',
|
|
12475
|
+
label: config.badge,
|
|
12476
|
+
},
|
|
12477
|
+
]
|
|
12478
|
+
: []),
|
|
12479
|
+
{
|
|
12480
|
+
type: 'text',
|
|
12481
|
+
text: config.description,
|
|
12482
|
+
},
|
|
12483
|
+
],
|
|
12484
|
+
});
|
|
12485
|
+
}
|
|
12082
12486
|
const EVENT_REGISTRATION_EDITORIAL_TEMPLATE = {
|
|
12083
12487
|
templateId: 'event-registration',
|
|
12084
12488
|
version: '1.0.0',
|
|
12085
12489
|
metadata: {
|
|
12086
12490
|
title: 'Event Registration',
|
|
12087
|
-
description: 'Template editorial para
|
|
12491
|
+
description: 'Template editorial para inscricoes institucionais, eventos, workshops e programas com contexto pre-submit.',
|
|
12088
12492
|
category: 'registration',
|
|
12089
12493
|
tags: ['event', 'registration', 'editorial', 'consent'],
|
|
12090
12494
|
source: 'catalog',
|
|
@@ -12107,99 +12511,101 @@ const EVENT_REGISTRATION_EDITORIAL_TEMPLATE = {
|
|
|
12107
12511
|
{ key: 'eventContext.dateLabel', type: 'string' },
|
|
12108
12512
|
],
|
|
12109
12513
|
layout: {
|
|
12110
|
-
formBlocksBefore:
|
|
12111
|
-
|
|
12112
|
-
|
|
12113
|
-
|
|
12114
|
-
|
|
12115
|
-
|
|
12116
|
-
|
|
12117
|
-
|
|
12118
|
-
|
|
12119
|
-
|
|
12120
|
-
|
|
12121
|
-
|
|
12514
|
+
formBlocksBefore: richDoc({
|
|
12515
|
+
type: 'mediaBlock',
|
|
12516
|
+
title: { type: 'text', text: 'Inscricao em evento institucional' },
|
|
12517
|
+
subtitle: { type: 'text', text: 'Template editorial' },
|
|
12518
|
+
meta: {
|
|
12519
|
+
type: 'compose',
|
|
12520
|
+
direction: 'row',
|
|
12521
|
+
wrap: true,
|
|
12522
|
+
items: [
|
|
12523
|
+
{ type: 'badge', label: 'registration' },
|
|
12524
|
+
{ type: 'text', text: 'Fluxo institucional reutilizavel' },
|
|
12525
|
+
],
|
|
12122
12526
|
},
|
|
12123
|
-
|
|
12124
|
-
|
|
12125
|
-
|
|
12126
|
-
|
|
12127
|
-
|
|
12128
|
-
|
|
12129
|
-
|
|
12130
|
-
|
|
12131
|
-
appearance: 'plain',
|
|
12132
|
-
contentFormat: 'markdown',
|
|
12133
|
-
content: 'Use dados atualizados, revise os consentimentos e confirme sua disponibilidade antes do envio.',
|
|
12527
|
+
}, {
|
|
12528
|
+
type: 'card',
|
|
12529
|
+
title: 'Como preencher',
|
|
12530
|
+
subtitle: 'Orientacao inicial',
|
|
12531
|
+
content: [
|
|
12532
|
+
{
|
|
12533
|
+
type: 'text',
|
|
12534
|
+
text: 'Use dados atualizados, revise os consentimentos e confirme sua disponibilidade antes do envio.',
|
|
12134
12535
|
},
|
|
12135
|
-
|
|
12136
|
-
|
|
12536
|
+
],
|
|
12537
|
+
}),
|
|
12137
12538
|
sections: [
|
|
12138
12539
|
{
|
|
12139
12540
|
id: 'registration',
|
|
12140
12541
|
appearance: 'step',
|
|
12141
12542
|
stepLabel: '1',
|
|
12142
|
-
title: '
|
|
12143
|
-
description: 'Dados principais do participante e
|
|
12543
|
+
title: 'Inscricao',
|
|
12544
|
+
description: 'Dados principais do participante e criterios de participacao.',
|
|
12144
12545
|
rows: [
|
|
12145
12546
|
{ id: 'row-name', columns: [{ id: 'col-name', fields: ['fullName'] }] },
|
|
12146
12547
|
{ id: 'row-email', columns: [{ id: 'col-email', fields: ['email'] }] },
|
|
12147
|
-
{
|
|
12148
|
-
|
|
12548
|
+
{
|
|
12549
|
+
id: 'row-attendance',
|
|
12550
|
+
columns: [{ id: 'col-attendance', fields: ['attendanceMode'] }],
|
|
12551
|
+
},
|
|
12552
|
+
{
|
|
12553
|
+
id: 'row-company',
|
|
12554
|
+
columns: [{ id: 'col-company', fields: ['organizationName'] }],
|
|
12555
|
+
},
|
|
12149
12556
|
{ id: 'row-role', columns: [{ id: 'col-role', fields: ['jobTitle'] }] },
|
|
12150
|
-
{
|
|
12151
|
-
|
|
12152
|
-
|
|
12557
|
+
{
|
|
12558
|
+
id: 'row-source',
|
|
12559
|
+
columns: [{ id: 'col-source', fields: ['discoverySource'] }],
|
|
12560
|
+
},
|
|
12561
|
+
{
|
|
12562
|
+
id: 'row-photo-consent',
|
|
12563
|
+
columns: [{ id: 'col-photo-consent', fields: ['photoConsent'] }],
|
|
12564
|
+
},
|
|
12565
|
+
{
|
|
12566
|
+
id: 'row-privacy-consent',
|
|
12567
|
+
columns: [{ id: 'col-privacy-consent', fields: ['privacyConsent'] }],
|
|
12568
|
+
},
|
|
12153
12569
|
],
|
|
12154
12570
|
},
|
|
12155
12571
|
],
|
|
12156
|
-
formBlocksBeforeActions:
|
|
12157
|
-
|
|
12158
|
-
|
|
12159
|
-
|
|
12160
|
-
|
|
12161
|
-
|
|
12162
|
-
|
|
12163
|
-
|
|
12164
|
-
|
|
12165
|
-
context: '${accountContext}',
|
|
12166
|
-
fields: [
|
|
12167
|
-
{ label: 'Nome', valuePath: 'user.name', fallback: '-' },
|
|
12168
|
-
{ label: 'E-mail', valuePath: 'user.email', fallback: '-' },
|
|
12169
|
-
],
|
|
12170
|
-
actionId: 'switch-user',
|
|
12171
|
-
actionLabel: 'Trocar conta',
|
|
12572
|
+
formBlocksBeforeActions: richDoc({
|
|
12573
|
+
type: 'card',
|
|
12574
|
+
title: 'Conta usada no preenchimento',
|
|
12575
|
+
subtitle: 'Resumo contextual antes do envio.',
|
|
12576
|
+
content: [
|
|
12577
|
+
{
|
|
12578
|
+
type: 'metric',
|
|
12579
|
+
label: 'Nome',
|
|
12580
|
+
valueExpr: '${accountContext.user.name}',
|
|
12172
12581
|
},
|
|
12173
|
-
|
|
12174
|
-
|
|
12175
|
-
|
|
12176
|
-
|
|
12177
|
-
instanceId: 'template:event-registration:privacy',
|
|
12178
|
-
title: 'Privacidade e uso de dados',
|
|
12179
|
-
severity: 'muted',
|
|
12180
|
-
appearance: 'plain',
|
|
12181
|
-
contentFormat: 'markdown',
|
|
12182
|
-
content: 'Ao enviar a inscrição, o participante reconhece o tratamento dos dados para credenciamento, comunicações e operação do evento.',
|
|
12582
|
+
{
|
|
12583
|
+
type: 'metric',
|
|
12584
|
+
label: 'E-mail',
|
|
12585
|
+
valueExpr: '${accountContext.user.email}',
|
|
12183
12586
|
},
|
|
12184
|
-
|
|
12185
|
-
|
|
12186
|
-
|
|
12187
|
-
formBlocksAfter: [
|
|
12188
|
-
{
|
|
12189
|
-
id: 'widget:footer-links',
|
|
12190
|
-
inputs: {
|
|
12191
|
-
instanceId: 'template:event-registration:footer',
|
|
12192
|
-
brandText: 'Praxis UI',
|
|
12193
|
-
secondaryText: 'Template editorial reutilizável para experiências de inscrição.',
|
|
12194
|
-
layout: 'inline',
|
|
12195
|
-
appearance: 'plain',
|
|
12196
|
-
links: [
|
|
12197
|
-
{ label: 'Privacidade', href: '/privacidade' },
|
|
12198
|
-
{ label: 'Termos', href: '/termos' },
|
|
12199
|
-
],
|
|
12587
|
+
{
|
|
12588
|
+
type: 'text',
|
|
12589
|
+
text: 'Se necessario, troque o contexto da conta antes de concluir a inscricao.',
|
|
12200
12590
|
},
|
|
12201
|
-
|
|
12202
|
-
|
|
12591
|
+
],
|
|
12592
|
+
}, {
|
|
12593
|
+
type: 'card',
|
|
12594
|
+
title: 'Privacidade e uso de dados',
|
|
12595
|
+
subtitle: 'Antes do envio',
|
|
12596
|
+
content: [
|
|
12597
|
+
{
|
|
12598
|
+
type: 'text',
|
|
12599
|
+
text: 'Ao enviar a inscricao, o participante reconhece o tratamento dos dados para credenciamento, comunicacoes e operacao do evento.',
|
|
12600
|
+
},
|
|
12601
|
+
],
|
|
12602
|
+
}),
|
|
12603
|
+
formBlocksBeforeActionsPlacement: 'insideLastSection',
|
|
12604
|
+
formBlocksAfter: richFooterCard({
|
|
12605
|
+
title: 'Praxis UI',
|
|
12606
|
+
subtitle: 'Template editorial reutilizavel para experiencias de inscricao.',
|
|
12607
|
+
links: ['Privacidade', 'Termos'],
|
|
12608
|
+
}),
|
|
12203
12609
|
actions: {
|
|
12204
12610
|
placement: 'afterSections',
|
|
12205
12611
|
position: 'right',
|
|
@@ -12207,7 +12613,7 @@ const EVENT_REGISTRATION_EDITORIAL_TEMPLATE = {
|
|
|
12207
12613
|
spacing: 'normal',
|
|
12208
12614
|
submit: {
|
|
12209
12615
|
visible: true,
|
|
12210
|
-
label: 'Enviar
|
|
12616
|
+
label: 'Enviar inscricao',
|
|
12211
12617
|
type: 'submit',
|
|
12212
12618
|
color: 'primary',
|
|
12213
12619
|
variant: 'raised',
|
|
@@ -12228,8 +12634,19 @@ const EVENT_REGISTRATION_EDITORIAL_TEMPLATE = {
|
|
|
12228
12634
|
},
|
|
12229
12635
|
defaults: {
|
|
12230
12636
|
fieldMetadata: [
|
|
12231
|
-
{
|
|
12232
|
-
|
|
12637
|
+
{
|
|
12638
|
+
name: 'fullName',
|
|
12639
|
+
label: 'Nome completo*',
|
|
12640
|
+
controlType: 'input',
|
|
12641
|
+
required: true,
|
|
12642
|
+
},
|
|
12643
|
+
{
|
|
12644
|
+
name: 'email',
|
|
12645
|
+
label: 'E-mail*',
|
|
12646
|
+
controlType: 'email',
|
|
12647
|
+
required: true,
|
|
12648
|
+
readonly: true,
|
|
12649
|
+
},
|
|
12233
12650
|
{
|
|
12234
12651
|
name: 'attendanceMode',
|
|
12235
12652
|
label: 'Como pretende participar?*',
|
|
@@ -12241,7 +12658,12 @@ const EVENT_REGISTRATION_EDITORIAL_TEMPLATE = {
|
|
|
12241
12658
|
{ text: 'Online', value: 'ONLINE' },
|
|
12242
12659
|
],
|
|
12243
12660
|
},
|
|
12244
|
-
{
|
|
12661
|
+
{
|
|
12662
|
+
name: 'organizationName',
|
|
12663
|
+
label: 'Empresa ou instituicao*',
|
|
12664
|
+
controlType: 'input',
|
|
12665
|
+
required: true,
|
|
12666
|
+
},
|
|
12245
12667
|
{ name: 'jobTitle', label: 'Cargo', controlType: 'input' },
|
|
12246
12668
|
{
|
|
12247
12669
|
name: 'discoverySource',
|
|
@@ -12251,7 +12673,7 @@ const EVENT_REGISTRATION_EDITORIAL_TEMPLATE = {
|
|
|
12251
12673
|
options: [
|
|
12252
12674
|
{ text: 'Site institucional', value: 'WEBSITE' },
|
|
12253
12675
|
{ text: 'LinkedIn', value: 'LINKEDIN' },
|
|
12254
|
-
{ text: '
|
|
12676
|
+
{ text: 'Indicacao', value: 'REFERRAL' },
|
|
12255
12677
|
{ text: 'Outro', value: 'OTHER' },
|
|
12256
12678
|
],
|
|
12257
12679
|
},
|
|
@@ -12267,7 +12689,7 @@ const EVENT_REGISTRATION_EDITORIAL_TEMPLATE = {
|
|
|
12267
12689
|
},
|
|
12268
12690
|
{
|
|
12269
12691
|
name: 'privacyConsent',
|
|
12270
|
-
label: 'Aceito a
|
|
12692
|
+
label: 'Aceito a politica de privacidade e o tratamento dos dados informados.',
|
|
12271
12693
|
controlType: 'checkbox',
|
|
12272
12694
|
selectionMode: 'boolean',
|
|
12273
12695
|
variant: 'consent',
|
|
@@ -12283,7 +12705,7 @@ const EMPLOYEE_ONBOARDING_EDITORIAL_TEMPLATE = {
|
|
|
12283
12705
|
version: '1.0.0',
|
|
12284
12706
|
metadata: {
|
|
12285
12707
|
title: 'Employee Onboarding',
|
|
12286
|
-
description: 'Template editorial para
|
|
12708
|
+
description: 'Template editorial para admissao, pre-boarding e coleta inicial de dados de colaboradores.',
|
|
12287
12709
|
category: 'onboarding',
|
|
12288
12710
|
tags: ['employee', 'onboarding', 'hr', 'documents'],
|
|
12289
12711
|
source: 'catalog',
|
|
@@ -12305,39 +12727,35 @@ const EMPLOYEE_ONBOARDING_EDITORIAL_TEMPLATE = {
|
|
|
12305
12727
|
{ key: 'manager.name', type: 'string' },
|
|
12306
12728
|
],
|
|
12307
12729
|
layout: {
|
|
12308
|
-
formBlocksBefore:
|
|
12309
|
-
|
|
12310
|
-
|
|
12311
|
-
|
|
12312
|
-
|
|
12313
|
-
|
|
12314
|
-
|
|
12315
|
-
|
|
12316
|
-
|
|
12317
|
-
|
|
12318
|
-
|
|
12319
|
-
|
|
12320
|
-
},
|
|
12321
|
-
{
|
|
12322
|
-
id: 'widget:rich-text-block',
|
|
12323
|
-
inputs: {
|
|
12324
|
-
instanceId: 'template:employee-onboarding:summary',
|
|
12325
|
-
title: 'O que será coletado',
|
|
12326
|
-
subtitle: 'Resumo do fluxo',
|
|
12327
|
-
icon: 'badge',
|
|
12328
|
-
variant: 'subtle',
|
|
12329
|
-
appearance: 'plain',
|
|
12330
|
-
contentFormat: 'markdown',
|
|
12331
|
-
content: '- dados pessoais e de contato\n- preferências operacionais iniciais\n- anexos e termos obrigatórios',
|
|
12332
|
-
},
|
|
12730
|
+
formBlocksBefore: richDoc({
|
|
12731
|
+
type: 'mediaBlock',
|
|
12732
|
+
title: { type: 'text', text: 'Boas-vindas ao processo de onboarding' },
|
|
12733
|
+
subtitle: { type: 'text', text: 'Template corporativo' },
|
|
12734
|
+
meta: {
|
|
12735
|
+
type: 'compose',
|
|
12736
|
+
direction: 'row',
|
|
12737
|
+
wrap: true,
|
|
12738
|
+
items: [
|
|
12739
|
+
{ type: 'badge', label: 'onboarding' },
|
|
12740
|
+
{ type: 'text', text: 'Admissao, conferencia e preferencias iniciais' },
|
|
12741
|
+
],
|
|
12333
12742
|
},
|
|
12334
|
-
|
|
12743
|
+
}, {
|
|
12744
|
+
type: 'card',
|
|
12745
|
+
title: 'O que sera coletado',
|
|
12746
|
+
subtitle: 'Resumo do fluxo',
|
|
12747
|
+
content: [
|
|
12748
|
+
{ type: 'text', text: 'Dados pessoais e de contato.' },
|
|
12749
|
+
{ type: 'text', text: 'Preferencias operacionais iniciais.' },
|
|
12750
|
+
{ type: 'text', text: 'Anexos e termos obrigatorios.' },
|
|
12751
|
+
],
|
|
12752
|
+
}),
|
|
12335
12753
|
sections: [
|
|
12336
12754
|
{
|
|
12337
12755
|
id: 'identity',
|
|
12338
12756
|
appearance: 'step',
|
|
12339
12757
|
stepLabel: '1',
|
|
12340
|
-
title: '
|
|
12758
|
+
title: 'Identificacao',
|
|
12341
12759
|
description: 'Dados essenciais para cadastro inicial do colaborador.',
|
|
12342
12760
|
rows: [
|
|
12343
12761
|
{
|
|
@@ -12360,28 +12778,34 @@ const EMPLOYEE_ONBOARDING_EDITORIAL_TEMPLATE = {
|
|
|
12360
12778
|
id: 'operations',
|
|
12361
12779
|
appearance: 'step',
|
|
12362
12780
|
stepLabel: '2',
|
|
12363
|
-
title: '
|
|
12364
|
-
description: 'Dados para
|
|
12781
|
+
title: 'Operacao inicial',
|
|
12782
|
+
description: 'Dados para preparacao do ambiente e comunicacao inicial.',
|
|
12365
12783
|
rows: [
|
|
12366
|
-
{
|
|
12367
|
-
|
|
12368
|
-
|
|
12369
|
-
|
|
12784
|
+
{
|
|
12785
|
+
id: 'row-equipment',
|
|
12786
|
+
columns: [{ id: 'col-equipment', fields: ['needsEquipment'] }],
|
|
12787
|
+
},
|
|
12788
|
+
{
|
|
12789
|
+
id: 'row-address',
|
|
12790
|
+
columns: [{ id: 'col-address', fields: ['shippingAddress'] }],
|
|
12791
|
+
},
|
|
12792
|
+
{
|
|
12793
|
+
id: 'row-notes',
|
|
12794
|
+
columns: [{ id: 'col-notes', fields: ['accessibilityNotes'] }],
|
|
12795
|
+
},
|
|
12796
|
+
{
|
|
12797
|
+
id: 'row-privacy',
|
|
12798
|
+
columns: [{ id: 'col-privacy', fields: ['privacyConsent'] }],
|
|
12799
|
+
},
|
|
12370
12800
|
],
|
|
12371
12801
|
},
|
|
12372
12802
|
],
|
|
12373
|
-
formBlocksBeforeActions:
|
|
12374
|
-
|
|
12375
|
-
|
|
12376
|
-
|
|
12377
|
-
|
|
12378
|
-
|
|
12379
|
-
severity: 'info',
|
|
12380
|
-
appearance: 'plain',
|
|
12381
|
-
content: 'As informações deste fluxo são usadas exclusivamente para cadastro interno, provisionamento e comunicação de onboarding.',
|
|
12382
|
-
},
|
|
12383
|
-
},
|
|
12384
|
-
],
|
|
12803
|
+
formBlocksBeforeActions: richIntroCard({
|
|
12804
|
+
title: 'Uso interno',
|
|
12805
|
+
subtitle: 'Antes do envio',
|
|
12806
|
+
badge: 'info',
|
|
12807
|
+
description: 'As informacoes deste fluxo sao usadas exclusivamente para cadastro interno, provisionamento e comunicacao de onboarding.',
|
|
12808
|
+
}),
|
|
12385
12809
|
formBlocksBeforeActionsPlacement: 'afterSections',
|
|
12386
12810
|
actions: {
|
|
12387
12811
|
placement: 'afterSections',
|
|
@@ -12393,14 +12817,34 @@ const EMPLOYEE_ONBOARDING_EDITORIAL_TEMPLATE = {
|
|
|
12393
12817
|
color: 'primary',
|
|
12394
12818
|
variant: 'raised',
|
|
12395
12819
|
},
|
|
12396
|
-
cancel: {
|
|
12397
|
-
|
|
12820
|
+
cancel: {
|
|
12821
|
+
visible: false,
|
|
12822
|
+
label: 'Cancelar',
|
|
12823
|
+
type: 'button',
|
|
12824
|
+
color: 'basic',
|
|
12825
|
+
},
|
|
12826
|
+
reset: {
|
|
12827
|
+
visible: false,
|
|
12828
|
+
label: 'Reset',
|
|
12829
|
+
type: 'reset',
|
|
12830
|
+
color: 'basic',
|
|
12831
|
+
},
|
|
12398
12832
|
},
|
|
12399
12833
|
},
|
|
12400
12834
|
defaults: {
|
|
12401
12835
|
fieldMetadata: [
|
|
12402
|
-
{
|
|
12403
|
-
|
|
12836
|
+
{
|
|
12837
|
+
name: 'fullName',
|
|
12838
|
+
label: 'Nome completo*',
|
|
12839
|
+
controlType: 'input',
|
|
12840
|
+
required: true,
|
|
12841
|
+
},
|
|
12842
|
+
{
|
|
12843
|
+
name: 'corporateEmail',
|
|
12844
|
+
label: 'E-mail corporativo*',
|
|
12845
|
+
controlType: 'email',
|
|
12846
|
+
required: true,
|
|
12847
|
+
},
|
|
12404
12848
|
{ name: 'phoneNumber', label: 'Telefone', controlType: 'input' },
|
|
12405
12849
|
{
|
|
12406
12850
|
name: 'workModel',
|
|
@@ -12409,7 +12853,7 @@ const EMPLOYEE_ONBOARDING_EDITORIAL_TEMPLATE = {
|
|
|
12409
12853
|
required: true,
|
|
12410
12854
|
options: [
|
|
12411
12855
|
{ text: 'Presencial', value: 'ONSITE' },
|
|
12412
|
-
{ text: '
|
|
12856
|
+
{ text: 'Hibrido', value: 'HYBRID' },
|
|
12413
12857
|
{ text: 'Remoto', value: 'REMOTE' },
|
|
12414
12858
|
],
|
|
12415
12859
|
},
|
|
@@ -12420,14 +12864,22 @@ const EMPLOYEE_ONBOARDING_EDITORIAL_TEMPLATE = {
|
|
|
12420
12864
|
required: true,
|
|
12421
12865
|
options: [
|
|
12422
12866
|
{ text: 'Sim', value: 'YES' },
|
|
12423
|
-
{ text: '
|
|
12867
|
+
{ text: 'Nao', value: 'NO' },
|
|
12424
12868
|
],
|
|
12425
12869
|
},
|
|
12426
|
-
{
|
|
12427
|
-
|
|
12870
|
+
{
|
|
12871
|
+
name: 'shippingAddress',
|
|
12872
|
+
label: 'Endereco para envio',
|
|
12873
|
+
controlType: 'textarea',
|
|
12874
|
+
},
|
|
12875
|
+
{
|
|
12876
|
+
name: 'accessibilityNotes',
|
|
12877
|
+
label: 'Observacoes de acessibilidade ou preferencias',
|
|
12878
|
+
controlType: 'textarea',
|
|
12879
|
+
},
|
|
12428
12880
|
{
|
|
12429
12881
|
name: 'privacyConsent',
|
|
12430
|
-
label: 'Confirmo
|
|
12882
|
+
label: 'Confirmo ciencia sobre o tratamento dos meus dados no processo de onboarding.',
|
|
12431
12883
|
controlType: 'checkbox',
|
|
12432
12884
|
selectionMode: 'boolean',
|
|
12433
12885
|
variant: 'consent',
|
|
@@ -12443,7 +12895,7 @@ const EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_TEMPLATE = {
|
|
|
12443
12895
|
version: '1.0.0',
|
|
12444
12896
|
metadata: {
|
|
12445
12897
|
title: 'Employee Onboarding Guided',
|
|
12446
|
-
description: 'Template editorial guiado para onboarding com
|
|
12898
|
+
description: 'Template editorial guiado para onboarding com identificacao enriquecida, preparacao operacional e actions orientadas por etapa.',
|
|
12447
12899
|
category: 'onboarding',
|
|
12448
12900
|
tags: ['employee', 'onboarding', 'hr', 'guided', 'wizard'],
|
|
12449
12901
|
source: 'catalog',
|
|
@@ -12469,7 +12921,7 @@ const EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_TEMPLATE = {
|
|
|
12469
12921
|
id: 'identity',
|
|
12470
12922
|
appearance: 'step',
|
|
12471
12923
|
stepLabel: '1',
|
|
12472
|
-
title: '
|
|
12924
|
+
title: 'Identificacao',
|
|
12473
12925
|
description: 'Preencha seus dados para que possamos configurar seu acesso.',
|
|
12474
12926
|
rows: [
|
|
12475
12927
|
{
|
|
@@ -12500,8 +12952,8 @@ const EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_TEMPLATE = {
|
|
|
12500
12952
|
id: 'operations',
|
|
12501
12953
|
appearance: 'step',
|
|
12502
12954
|
stepLabel: '2',
|
|
12503
|
-
title: '
|
|
12504
|
-
description: 'Configure os recursos
|
|
12955
|
+
title: 'Operacao inicial',
|
|
12956
|
+
description: 'Configure os recursos necessarios para o primeiro dia.',
|
|
12505
12957
|
rows: [
|
|
12506
12958
|
{
|
|
12507
12959
|
id: 'operations-row-1',
|
|
@@ -12510,7 +12962,10 @@ const EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_TEMPLATE = {
|
|
|
12510
12962
|
{
|
|
12511
12963
|
id: 'operations-row-2',
|
|
12512
12964
|
columns: [
|
|
12513
|
-
{
|
|
12965
|
+
{
|
|
12966
|
+
id: 'operations-col-observations',
|
|
12967
|
+
fields: ['accessibilityNotes'],
|
|
12968
|
+
},
|
|
12514
12969
|
],
|
|
12515
12970
|
},
|
|
12516
12971
|
{
|
|
@@ -12520,9 +12975,9 @@ const EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_TEMPLATE = {
|
|
|
12520
12975
|
],
|
|
12521
12976
|
},
|
|
12522
12977
|
],
|
|
12523
|
-
formBlocksBefore:
|
|
12524
|
-
formBlocksBeforeActions:
|
|
12525
|
-
formBlocksAfter:
|
|
12978
|
+
formBlocksBefore: richDoc(),
|
|
12979
|
+
formBlocksBeforeActions: richDoc(),
|
|
12980
|
+
formBlocksAfter: richDoc(),
|
|
12526
12981
|
actions: {
|
|
12527
12982
|
placement: 'afterSections',
|
|
12528
12983
|
position: 'split',
|
|
@@ -12530,7 +12985,7 @@ const EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_TEMPLATE = {
|
|
|
12530
12985
|
spacing: 'normal',
|
|
12531
12986
|
submit: {
|
|
12532
12987
|
visible: true,
|
|
12533
|
-
label: '
|
|
12988
|
+
label: 'Proximo',
|
|
12534
12989
|
type: 'submit',
|
|
12535
12990
|
color: 'primary',
|
|
12536
12991
|
variant: 'raised',
|
|
@@ -12555,8 +13010,18 @@ const EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_TEMPLATE = {
|
|
|
12555
13010
|
},
|
|
12556
13011
|
defaults: {
|
|
12557
13012
|
fieldMetadata: [
|
|
12558
|
-
{
|
|
12559
|
-
|
|
13013
|
+
{
|
|
13014
|
+
name: 'fullName',
|
|
13015
|
+
label: 'Nome completo *',
|
|
13016
|
+
controlType: 'input',
|
|
13017
|
+
required: true,
|
|
13018
|
+
},
|
|
13019
|
+
{
|
|
13020
|
+
name: 'corporateEmail',
|
|
13021
|
+
label: 'E-mail corporativo *',
|
|
13022
|
+
controlType: 'email',
|
|
13023
|
+
required: true,
|
|
13024
|
+
},
|
|
12560
13025
|
{ name: 'phoneNumber', label: 'Telefone', controlType: 'input' },
|
|
12561
13026
|
{
|
|
12562
13027
|
name: 'department',
|
|
@@ -12584,7 +13049,7 @@ const EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_TEMPLATE = {
|
|
|
12584
13049
|
},
|
|
12585
13050
|
{
|
|
12586
13051
|
name: 'startDate',
|
|
12587
|
-
label: 'Data de
|
|
13052
|
+
label: 'Data de inicio',
|
|
12588
13053
|
controlType: 'date',
|
|
12589
13054
|
required: true,
|
|
12590
13055
|
},
|
|
@@ -12597,17 +13062,17 @@ const EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_TEMPLATE = {
|
|
|
12597
13062
|
options: [
|
|
12598
13063
|
{ text: 'Presencial', value: 'Presencial' },
|
|
12599
13064
|
{ text: 'Remoto', value: 'Remoto' },
|
|
12600
|
-
{ text: '
|
|
13065
|
+
{ text: 'Hibrido', value: 'Hibrido' },
|
|
12601
13066
|
],
|
|
12602
13067
|
},
|
|
12603
13068
|
{
|
|
12604
13069
|
name: 'accessibilityNotes',
|
|
12605
|
-
label: '
|
|
13070
|
+
label: 'Observacoes adicionais',
|
|
12606
13071
|
controlType: 'textarea',
|
|
12607
13072
|
},
|
|
12608
13073
|
{
|
|
12609
13074
|
name: 'privacyConsent',
|
|
12610
|
-
label: 'Confirmo
|
|
13075
|
+
label: 'Confirmo ciencia sobre o tratamento dos meus dados no processo de onboarding.',
|
|
12611
13076
|
controlType: 'checkbox',
|
|
12612
13077
|
selectionMode: 'boolean',
|
|
12613
13078
|
variant: 'consent',
|
|
@@ -12623,7 +13088,7 @@ const PRIVACY_CONSENT_EDITORIAL_TEMPLATE = {
|
|
|
12623
13088
|
version: '1.0.0',
|
|
12624
13089
|
metadata: {
|
|
12625
13090
|
title: 'Privacy Consent',
|
|
12626
|
-
description: 'Template focado em aceite
|
|
13091
|
+
description: 'Template focado em aceite explicito, base legal, preferencias de comunicacao e registro de consentimento.',
|
|
12627
13092
|
category: 'consent',
|
|
12628
13093
|
tags: ['privacy', 'consent', 'compliance', 'legal'],
|
|
12629
13094
|
source: 'catalog',
|
|
@@ -12641,49 +13106,43 @@ const PRIVACY_CONSENT_EDITORIAL_TEMPLATE = {
|
|
|
12641
13106
|
{ key: 'policy.updatedAt', type: 'date' },
|
|
12642
13107
|
],
|
|
12643
13108
|
layout: {
|
|
12644
|
-
formBlocksBefore:
|
|
12645
|
-
|
|
12646
|
-
|
|
12647
|
-
|
|
12648
|
-
|
|
12649
|
-
|
|
12650
|
-
severity: 'info',
|
|
12651
|
-
appearance: 'card',
|
|
12652
|
-
contentFormat: 'markdown',
|
|
12653
|
-
content: 'Use este template quando o objetivo principal do fluxo for registrar ciência, aceite e preferências relacionadas a privacidade.',
|
|
12654
|
-
},
|
|
12655
|
-
},
|
|
12656
|
-
],
|
|
13109
|
+
formBlocksBefore: richIntroCard({
|
|
13110
|
+
title: 'Consentimento e tratamento de dados',
|
|
13111
|
+
subtitle: 'Template regulatorio',
|
|
13112
|
+
badge: 'info',
|
|
13113
|
+
description: 'Use este template quando o objetivo principal do fluxo for registrar ciencia, aceite e preferencias relacionadas a privacidade.',
|
|
13114
|
+
}),
|
|
12657
13115
|
sections: [
|
|
12658
13116
|
{
|
|
12659
13117
|
id: 'consent',
|
|
12660
13118
|
appearance: 'card',
|
|
12661
|
-
title: '
|
|
12662
|
-
description: 'Aceites
|
|
13119
|
+
title: 'Preferencias e consentimentos',
|
|
13120
|
+
description: 'Aceites explicitos e canais opcionais de comunicacao.',
|
|
12663
13121
|
rows: [
|
|
12664
|
-
{
|
|
12665
|
-
|
|
12666
|
-
|
|
12667
|
-
|
|
13122
|
+
{
|
|
13123
|
+
id: 'row-primary',
|
|
13124
|
+
columns: [{ id: 'col-primary', fields: ['privacyConsent'] }],
|
|
13125
|
+
},
|
|
13126
|
+
{
|
|
13127
|
+
id: 'row-marketing',
|
|
13128
|
+
columns: [{ id: 'col-marketing', fields: ['marketingConsent'] }],
|
|
13129
|
+
},
|
|
13130
|
+
{
|
|
13131
|
+
id: 'row-channels',
|
|
13132
|
+
columns: [{ id: 'col-channels', fields: ['preferredChannel'] }],
|
|
13133
|
+
},
|
|
13134
|
+
{
|
|
13135
|
+
id: 'row-observation',
|
|
13136
|
+
columns: [{ id: 'col-observation', fields: ['consentNotes'] }],
|
|
13137
|
+
},
|
|
12668
13138
|
],
|
|
12669
13139
|
},
|
|
12670
13140
|
],
|
|
12671
|
-
formBlocksAfter:
|
|
12672
|
-
|
|
12673
|
-
|
|
12674
|
-
|
|
12675
|
-
|
|
12676
|
-
brandText: 'Praxis UI',
|
|
12677
|
-
secondaryText: 'Template para fluxos regulatórios e comprovação de consentimento.',
|
|
12678
|
-
layout: 'inline',
|
|
12679
|
-
appearance: 'divider',
|
|
12680
|
-
links: [
|
|
12681
|
-
{ label: 'Política de Privacidade', href: '/privacidade' },
|
|
12682
|
-
{ label: 'Canal LGPD', href: '/lgpd' },
|
|
12683
|
-
],
|
|
12684
|
-
},
|
|
12685
|
-
},
|
|
12686
|
-
],
|
|
13141
|
+
formBlocksAfter: richFooterCard({
|
|
13142
|
+
title: 'Praxis UI',
|
|
13143
|
+
subtitle: 'Template para fluxos regulatorios e comprovacao de consentimento.',
|
|
13144
|
+
links: ['Politica de Privacidade', 'Canal LGPD'],
|
|
13145
|
+
}),
|
|
12687
13146
|
actions: {
|
|
12688
13147
|
placement: 'afterSections',
|
|
12689
13148
|
position: 'right',
|
|
@@ -12694,15 +13153,25 @@ const PRIVACY_CONSENT_EDITORIAL_TEMPLATE = {
|
|
|
12694
13153
|
color: 'primary',
|
|
12695
13154
|
variant: 'raised',
|
|
12696
13155
|
},
|
|
12697
|
-
cancel: {
|
|
12698
|
-
|
|
13156
|
+
cancel: {
|
|
13157
|
+
visible: false,
|
|
13158
|
+
label: 'Cancelar',
|
|
13159
|
+
type: 'button',
|
|
13160
|
+
color: 'basic',
|
|
13161
|
+
},
|
|
13162
|
+
reset: {
|
|
13163
|
+
visible: false,
|
|
13164
|
+
label: 'Reset',
|
|
13165
|
+
type: 'reset',
|
|
13166
|
+
color: 'basic',
|
|
13167
|
+
},
|
|
12699
13168
|
},
|
|
12700
13169
|
},
|
|
12701
13170
|
defaults: {
|
|
12702
13171
|
fieldMetadata: [
|
|
12703
13172
|
{
|
|
12704
13173
|
name: 'privacyConsent',
|
|
12705
|
-
label: 'Li e aceito a
|
|
13174
|
+
label: 'Li e aceito a politica de privacidade aplicavel.',
|
|
12706
13175
|
controlType: 'checkbox',
|
|
12707
13176
|
selectionMode: 'boolean',
|
|
12708
13177
|
variant: 'consent',
|
|
@@ -12712,7 +13181,7 @@ const PRIVACY_CONSENT_EDITORIAL_TEMPLATE = {
|
|
|
12712
13181
|
},
|
|
12713
13182
|
{
|
|
12714
13183
|
name: 'marketingConsent',
|
|
12715
|
-
label: 'Aceito receber
|
|
13184
|
+
label: 'Aceito receber comunicacoes institucionais e materiais relacionados.',
|
|
12716
13185
|
controlType: 'checkbox',
|
|
12717
13186
|
selectionMode: 'boolean',
|
|
12718
13187
|
variant: 'consent',
|
|
@@ -12720,7 +13189,7 @@ const PRIVACY_CONSENT_EDITORIAL_TEMPLATE = {
|
|
|
12720
13189
|
},
|
|
12721
13190
|
{
|
|
12722
13191
|
name: 'preferredChannel',
|
|
12723
|
-
label: 'Canal preferencial de
|
|
13192
|
+
label: 'Canal preferencial de comunicacao',
|
|
12724
13193
|
controlType: 'select',
|
|
12725
13194
|
options: [
|
|
12726
13195
|
{ text: 'E-mail', value: 'EMAIL' },
|
|
@@ -12730,7 +13199,7 @@ const PRIVACY_CONSENT_EDITORIAL_TEMPLATE = {
|
|
|
12730
13199
|
},
|
|
12731
13200
|
{
|
|
12732
13201
|
name: 'consentNotes',
|
|
12733
|
-
label: '
|
|
13202
|
+
label: 'Observacoes adicionais',
|
|
12734
13203
|
controlType: 'textarea',
|
|
12735
13204
|
},
|
|
12736
13205
|
],
|
|
@@ -18392,11 +18861,11 @@ function providePraxisHeroBannerMetadata() {
|
|
|
18392
18861
|
|
|
18393
18862
|
/**
|
|
18394
18863
|
* Binds a stored icon string to a mat-icon element supporting:
|
|
18395
|
-
* - Material Icons (classic ligatures): "mi:pending"
|
|
18864
|
+
* - Material Icons (classic ligatures): "mi:pending"
|
|
18396
18865
|
* - Material Symbols Outlined: "mso:right_click" or "ms:right_click"
|
|
18397
18866
|
* - Material Symbols Rounded: "msr:right_click"
|
|
18398
18867
|
* - Material Symbols Sharp: "mss:right_click"
|
|
18399
|
-
* Falls back to
|
|
18868
|
+
* Falls back to Material Symbols Outlined when prefix is omitted.
|
|
18400
18869
|
*/
|
|
18401
18870
|
class PraxisIconDirective {
|
|
18402
18871
|
el;
|
|
@@ -18437,16 +18906,18 @@ class PraxisIconDirective {
|
|
|
18437
18906
|
this.rd.addClass(host, 'material-symbols-sharp');
|
|
18438
18907
|
break;
|
|
18439
18908
|
case 'mi':
|
|
18440
|
-
default:
|
|
18441
18909
|
this.rd.addClass(host, 'material-icons');
|
|
18442
18910
|
break;
|
|
18911
|
+
default:
|
|
18912
|
+
this.rd.addClass(host, 'material-symbols-outlined');
|
|
18913
|
+
break;
|
|
18443
18914
|
}
|
|
18444
18915
|
host.textContent = name;
|
|
18445
18916
|
}
|
|
18446
18917
|
parse(raw) {
|
|
18447
18918
|
const colon = raw.indexOf(':');
|
|
18448
18919
|
if (colon <= 0)
|
|
18449
|
-
return { family: '
|
|
18920
|
+
return { family: 'mso', name: raw };
|
|
18450
18921
|
const prefix = raw.slice(0, colon).toLowerCase();
|
|
18451
18922
|
const name = raw.slice(colon + 1).trim() || raw;
|
|
18452
18923
|
if (prefix === 'ms' || prefix === 'mso')
|
|
@@ -19404,6 +19875,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
|
|
|
19404
19875
|
type: Output
|
|
19405
19876
|
}] } });
|
|
19406
19877
|
|
|
19878
|
+
const WIDGET_SHELL_I18N_NAMESPACE = 'widgetShell';
|
|
19879
|
+
const WIDGET_SHELL_I18N_CONFIG = {
|
|
19880
|
+
namespaces: {
|
|
19881
|
+
[WIDGET_SHELL_I18N_NAMESPACE]: {
|
|
19882
|
+
'pt-BR': {
|
|
19883
|
+
'controls.moreActions': 'Mais ações',
|
|
19884
|
+
'controls.expandContent': 'Expandir conteúdo',
|
|
19885
|
+
'controls.collapseContent': 'Recolher conteúdo',
|
|
19886
|
+
'controls.exitFullscreen': 'Sair da tela cheia',
|
|
19887
|
+
'controls.enterFullscreen': 'Tela cheia',
|
|
19888
|
+
},
|
|
19889
|
+
'en-US': {
|
|
19890
|
+
'controls.moreActions': 'More actions',
|
|
19891
|
+
'controls.expandContent': 'Expand content',
|
|
19892
|
+
'controls.collapseContent': 'Collapse content',
|
|
19893
|
+
'controls.exitFullscreen': 'Exit fullscreen',
|
|
19894
|
+
'controls.enterFullscreen': 'Fullscreen',
|
|
19895
|
+
},
|
|
19896
|
+
},
|
|
19897
|
+
},
|
|
19898
|
+
};
|
|
19899
|
+
|
|
19407
19900
|
const BUILTIN_SHELL_PRESETS = {
|
|
19408
19901
|
'dark-glass': {
|
|
19409
19902
|
card: {
|
|
@@ -19425,10 +19918,10 @@ const BUILTIN_SHELL_PRESETS = {
|
|
|
19425
19918
|
},
|
|
19426
19919
|
'light-neutral': {
|
|
19427
19920
|
card: {
|
|
19428
|
-
background: '#
|
|
19429
|
-
borderColor: '#
|
|
19430
|
-
borderRadius: '
|
|
19431
|
-
shadow: '0
|
|
19921
|
+
background: '#f8fafc',
|
|
19922
|
+
borderColor: '#d7dfeb',
|
|
19923
|
+
borderRadius: '12px',
|
|
19924
|
+
shadow: '0 4px 12px rgba(15, 23, 42, 0.06)',
|
|
19432
19925
|
},
|
|
19433
19926
|
header: {
|
|
19434
19927
|
titleColor: '#1f2937',
|
|
@@ -19451,6 +19944,7 @@ const BUILTIN_SHELL_PRESETS = {
|
|
|
19451
19944
|
},
|
|
19452
19945
|
};
|
|
19453
19946
|
class WidgetShellComponent {
|
|
19947
|
+
i18n = inject(PraxisI18nService);
|
|
19454
19948
|
shell;
|
|
19455
19949
|
context = null;
|
|
19456
19950
|
dragSurfaceEnabled = false;
|
|
@@ -19471,7 +19965,6 @@ class WidgetShellComponent {
|
|
|
19471
19965
|
this.collapsed = !!this.shell?.collapsed;
|
|
19472
19966
|
this.expanded = !!this.shell?.expanded;
|
|
19473
19967
|
this.fullscreen = !!this.shell?.fullscreen;
|
|
19474
|
-
// no-op: debug logs removed
|
|
19475
19968
|
}
|
|
19476
19969
|
get shellEnabled() {
|
|
19477
19970
|
return !!this.shell && this.shell.kind !== 'none';
|
|
@@ -19536,6 +20029,9 @@ class WidgetShellComponent {
|
|
|
19536
20029
|
this.expanded = false;
|
|
19537
20030
|
this.fullscreen = false;
|
|
19538
20031
|
}
|
|
20032
|
+
moreActionsLabel() {
|
|
20033
|
+
return this.t('controls.moreActions', 'Mais ações');
|
|
20034
|
+
}
|
|
19539
20035
|
handleWindowAction(action) {
|
|
19540
20036
|
if (action.id === 'collapse') {
|
|
19541
20037
|
this.collapsed = !this.collapsed;
|
|
@@ -19554,8 +20050,9 @@ class WidgetShellComponent {
|
|
|
19554
20050
|
this.expanded = true;
|
|
19555
20051
|
this.collapsed = false;
|
|
19556
20052
|
}
|
|
19557
|
-
else
|
|
20053
|
+
else {
|
|
19558
20054
|
this.expanded = false;
|
|
20055
|
+
}
|
|
19559
20056
|
return { payload: { fullscreen: this.fullscreen } };
|
|
19560
20057
|
}
|
|
19561
20058
|
return null;
|
|
@@ -19571,8 +20068,10 @@ class WidgetShellComponent {
|
|
|
19571
20068
|
actions.push({
|
|
19572
20069
|
id: 'collapse',
|
|
19573
20070
|
placement: 'window',
|
|
19574
|
-
icon: this.collapsed ? 'unfold_more' : 'unfold_less',
|
|
19575
|
-
tooltip: this.collapsed
|
|
20071
|
+
icon: this.collapsed ? 'ms:unfold_more' : 'ms:unfold_less',
|
|
20072
|
+
tooltip: this.collapsed
|
|
20073
|
+
? this.t('controls.expandContent', 'Expandir conteúdo')
|
|
20074
|
+
: this.t('controls.collapseContent', 'Recolher conteúdo'),
|
|
19576
20075
|
variant: 'icon',
|
|
19577
20076
|
});
|
|
19578
20077
|
}
|
|
@@ -19580,8 +20079,10 @@ class WidgetShellComponent {
|
|
|
19580
20079
|
actions.push({
|
|
19581
20080
|
id: 'fullscreen',
|
|
19582
20081
|
placement: 'window',
|
|
19583
|
-
icon: this.fullscreen ? 'close_fullscreen' : 'open_in_full',
|
|
19584
|
-
tooltip: this.fullscreen
|
|
20082
|
+
icon: this.fullscreen ? 'ms:close_fullscreen' : 'ms:open_in_full',
|
|
20083
|
+
tooltip: this.fullscreen
|
|
20084
|
+
? this.t('controls.exitFullscreen', 'Sair da tela cheia')
|
|
20085
|
+
: this.t('controls.enterFullscreen', 'Tela cheia'),
|
|
19585
20086
|
variant: 'icon',
|
|
19586
20087
|
});
|
|
19587
20088
|
}
|
|
@@ -19621,8 +20122,11 @@ class WidgetShellComponent {
|
|
|
19621
20122
|
? !!target.closest('button, a, input, select, textarea, [role="button"], [mat-menu-trigger-for]')
|
|
19622
20123
|
: false;
|
|
19623
20124
|
}
|
|
20125
|
+
t(key, fallback) {
|
|
20126
|
+
return this.i18n.t(key, undefined, fallback, WIDGET_SHELL_I18N_NAMESPACE);
|
|
20127
|
+
}
|
|
19624
20128
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: WidgetShellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
19625
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: WidgetShellComponent, isStandalone: true, selector: "praxis-widget-shell", inputs: { shell: "shell", context: "context", dragSurfaceEnabled: "dragSurfaceEnabled", dragSurfaceLabel: "dragSurfaceLabel" }, outputs: { action: "action", dragSurfacePointerDown: "dragSurfacePointerDown", dragSurfaceKeydown: "dragSurfaceKeydown" }, queries: [{ propertyName: "loader", first: true, predicate: DynamicWidgetLoaderDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
20129
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: WidgetShellComponent, isStandalone: true, selector: "praxis-widget-shell", inputs: { shell: "shell", context: "context", dragSurfaceEnabled: "dragSurfaceEnabled", dragSurfaceLabel: "dragSurfaceLabel" }, outputs: { action: "action", dragSurfacePointerDown: "dragSurfacePointerDown", dragSurfaceKeydown: "dragSurfaceKeydown" }, providers: [providePraxisI18nConfig(WIDGET_SHELL_I18N_CONFIG)], queries: [{ propertyName: "loader", first: true, predicate: DynamicWidgetLoaderDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
19626
20130
|
<section
|
|
19627
20131
|
class="pdx-shell"
|
|
19628
20132
|
[class.no-shell]="!shellEnabled"
|
|
@@ -19702,13 +20206,13 @@ class WidgetShellComponent {
|
|
|
19702
20206
|
<button
|
|
19703
20207
|
mat-icon-button
|
|
19704
20208
|
type="button"
|
|
19705
|
-
[matTooltip]="
|
|
20209
|
+
[matTooltip]="moreActionsLabel()"
|
|
19706
20210
|
matTooltipPosition="below"
|
|
19707
|
-
aria-label="
|
|
20211
|
+
[attr.aria-label]="moreActionsLabel()"
|
|
19708
20212
|
[matMenuTriggerFor]="overflowMenu"
|
|
19709
20213
|
(click)="$event.stopPropagation()"
|
|
19710
20214
|
>
|
|
19711
|
-
<mat-icon
|
|
20215
|
+
<mat-icon praxisIcon="ms:more_horiz"></mat-icon>
|
|
19712
20216
|
</button>
|
|
19713
20217
|
}
|
|
19714
20218
|
}
|
|
@@ -19754,11 +20258,11 @@ class WidgetShellComponent {
|
|
|
19754
20258
|
@if (expanded || fullscreen) {
|
|
19755
20259
|
<div class="pdx-shell-backdrop" (click)="closeOverlay()"></div>
|
|
19756
20260
|
}
|
|
19757
|
-
`, isInline: true, styles: [":host{display:block;height:100%}.pdx-shell{position:relative;height:100%;display:flex;flex-direction:column}.pdx-shell.no-shell{background:transparent;border:none;border-radius:0;box-shadow:none}.pdx-shell.dashboard{background:var(--pdx-shell-card-bg, var(--pdx-dashboard-card-bg, var(--md-sys-color-surface-container-low)));border:1px solid var(--pdx-shell-card-border, var(--pdx-dashboard-card-border, var(--md-sys-color-outline-variant)));border-radius:var(--pdx-shell-card-radius,
|
|
20261
|
+
`, isInline: true, styles: [":host{display:block;height:100%}.pdx-shell{position:relative;height:100%;display:flex;flex-direction:column}.pdx-shell.no-shell{background:transparent;border:none;border-radius:0;box-shadow:none}.pdx-shell.dashboard{background:var(--pdx-shell-card-bg, var(--pdx-dashboard-card-bg, var(--md-sys-color-surface-container-low)));border:1px solid var(--pdx-shell-card-border, var(--pdx-dashboard-card-border, var(--md-sys-color-outline-variant)));border-radius:var(--pdx-shell-card-radius, 12px);box-shadow:var(--pdx-shell-card-shadow, 0 4px 12px rgba(15, 23, 42, .06));overflow:hidden}.pdx-shell-header{display:flex;align-items:center;gap:10px;padding:8px 10px 7px;border-bottom:1px solid var(--pdx-shell-header-border, var(--md-sys-color-outline-variant));background:var(--pdx-shell-header-bg, var(--md-sys-color-surface-container))}.pdx-shell-header--drag-enabled{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.pdx-shell-header--drag-enabled:active{cursor:grabbing}.pdx-shell-header--drag-enabled:focus-visible{outline:2px solid color-mix(in srgb,var(--md-sys-color-primary) 72%,white 28%);outline-offset:-2px}.pdx-shell-title{display:flex;align-items:center;gap:8px;min-width:0;flex:1;color:var(--pdx-shell-title-color, inherit)}.pdx-shell-title mat-icon{color:var(--pdx-shell-icon-color, currentColor)}.pdx-shell-text{min-width:0}.pdx-shell-title-text{font-weight:var(--pdx-shell-title-weight, 600);font-size:var(--pdx-shell-title-size, 13px);line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pdx-shell-subtitle{font-size:var(--pdx-shell-subtitle-size, 11px);opacity:.75;color:var(--pdx-shell-subtitle-color, currentColor);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pdx-shell-actions,.pdx-shell-window-actions{display:flex;align-items:center;gap:4px}.pdx-shell-window-actions{margin-left:auto}.pdx-action-outlined{border:1px solid var(--md-sys-color-outline-variant);border-radius:999px;padding:0 10px}.pdx-action-text{padding:0 8px}.pdx-action-label{font-size:12px;font-weight:500}.pdx-shell-body{flex:1;min-height:0;padding:var(--pdx-shell-body-padding, 8px 10px 10px 10px);background:var(--pdx-shell-body-bg, transparent);color:var(--pdx-shell-body-color, inherit)}.pdx-shell.no-shell .pdx-shell-body{padding:0}.pdx-shell-body.hidden{display:none}.pdx-shell.collapsed .pdx-shell-header{border-bottom-color:transparent}.pdx-shell.expanded .pdx-shell-body,.pdx-shell.fullscreen .pdx-shell-body{overflow:auto;display:flex;flex-direction:column;min-height:0}.pdx-shell.expanded .pdx-shell-body>*,.pdx-shell.fullscreen .pdx-shell-body>*{flex:1 1 auto;min-height:0;width:100%}.pdx-shell.expanded{position:fixed;top:10vh;left:50%;width:min(920px,92vw);height:min(640px,82vh);transform:translate(-50%);z-index:var(--praxis-layer-widget-shell-expanded, 1290);box-shadow:var(--mat-elevation-level8)}.pdx-shell.fullscreen{position:fixed;top:50%;left:50%;width:95vw;height:95vh;transform:translate(-50%,-50%);z-index:var(--praxis-layer-widget-shell-fullscreen, 1291);box-shadow:var(--mat-elevation-level8)}.pdx-shell-backdrop{position:fixed;inset:0;z-index:var(--praxis-layer-widget-shell-backdrop, 1280);background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
19758
20262
|
}
|
|
19759
20263
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: WidgetShellComponent, decorators: [{
|
|
19760
20264
|
type: Component,
|
|
19761
|
-
args: [{ selector: 'praxis-widget-shell', standalone: true, imports: [CommonModule, MatButtonModule, MatIconModule, MatMenuModule, MatTooltipModule, PraxisIconDirective], template: `
|
|
20265
|
+
args: [{ selector: 'praxis-widget-shell', standalone: true, imports: [CommonModule, MatButtonModule, MatIconModule, MatMenuModule, MatTooltipModule, PraxisIconDirective], providers: [providePraxisI18nConfig(WIDGET_SHELL_I18N_CONFIG)], template: `
|
|
19762
20266
|
<section
|
|
19763
20267
|
class="pdx-shell"
|
|
19764
20268
|
[class.no-shell]="!shellEnabled"
|
|
@@ -19838,13 +20342,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
|
|
|
19838
20342
|
<button
|
|
19839
20343
|
mat-icon-button
|
|
19840
20344
|
type="button"
|
|
19841
|
-
[matTooltip]="
|
|
20345
|
+
[matTooltip]="moreActionsLabel()"
|
|
19842
20346
|
matTooltipPosition="below"
|
|
19843
|
-
aria-label="
|
|
20347
|
+
[attr.aria-label]="moreActionsLabel()"
|
|
19844
20348
|
[matMenuTriggerFor]="overflowMenu"
|
|
19845
20349
|
(click)="$event.stopPropagation()"
|
|
19846
20350
|
>
|
|
19847
|
-
<mat-icon
|
|
20351
|
+
<mat-icon praxisIcon="ms:more_horiz"></mat-icon>
|
|
19848
20352
|
</button>
|
|
19849
20353
|
}
|
|
19850
20354
|
}
|
|
@@ -19890,7 +20394,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
|
|
|
19890
20394
|
@if (expanded || fullscreen) {
|
|
19891
20395
|
<div class="pdx-shell-backdrop" (click)="closeOverlay()"></div>
|
|
19892
20396
|
}
|
|
19893
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;height:100%}.pdx-shell{position:relative;height:100%;display:flex;flex-direction:column}.pdx-shell.no-shell{background:transparent;border:none;border-radius:0;box-shadow:none}.pdx-shell.dashboard{background:var(--pdx-shell-card-bg, var(--pdx-dashboard-card-bg, var(--md-sys-color-surface-container-low)));border:1px solid var(--pdx-shell-card-border, var(--pdx-dashboard-card-border, var(--md-sys-color-outline-variant)));border-radius:var(--pdx-shell-card-radius,
|
|
20397
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;height:100%}.pdx-shell{position:relative;height:100%;display:flex;flex-direction:column}.pdx-shell.no-shell{background:transparent;border:none;border-radius:0;box-shadow:none}.pdx-shell.dashboard{background:var(--pdx-shell-card-bg, var(--pdx-dashboard-card-bg, var(--md-sys-color-surface-container-low)));border:1px solid var(--pdx-shell-card-border, var(--pdx-dashboard-card-border, var(--md-sys-color-outline-variant)));border-radius:var(--pdx-shell-card-radius, 12px);box-shadow:var(--pdx-shell-card-shadow, 0 4px 12px rgba(15, 23, 42, .06));overflow:hidden}.pdx-shell-header{display:flex;align-items:center;gap:10px;padding:8px 10px 7px;border-bottom:1px solid var(--pdx-shell-header-border, var(--md-sys-color-outline-variant));background:var(--pdx-shell-header-bg, var(--md-sys-color-surface-container))}.pdx-shell-header--drag-enabled{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.pdx-shell-header--drag-enabled:active{cursor:grabbing}.pdx-shell-header--drag-enabled:focus-visible{outline:2px solid color-mix(in srgb,var(--md-sys-color-primary) 72%,white 28%);outline-offset:-2px}.pdx-shell-title{display:flex;align-items:center;gap:8px;min-width:0;flex:1;color:var(--pdx-shell-title-color, inherit)}.pdx-shell-title mat-icon{color:var(--pdx-shell-icon-color, currentColor)}.pdx-shell-text{min-width:0}.pdx-shell-title-text{font-weight:var(--pdx-shell-title-weight, 600);font-size:var(--pdx-shell-title-size, 13px);line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pdx-shell-subtitle{font-size:var(--pdx-shell-subtitle-size, 11px);opacity:.75;color:var(--pdx-shell-subtitle-color, currentColor);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pdx-shell-actions,.pdx-shell-window-actions{display:flex;align-items:center;gap:4px}.pdx-shell-window-actions{margin-left:auto}.pdx-action-outlined{border:1px solid var(--md-sys-color-outline-variant);border-radius:999px;padding:0 10px}.pdx-action-text{padding:0 8px}.pdx-action-label{font-size:12px;font-weight:500}.pdx-shell-body{flex:1;min-height:0;padding:var(--pdx-shell-body-padding, 8px 10px 10px 10px);background:var(--pdx-shell-body-bg, transparent);color:var(--pdx-shell-body-color, inherit)}.pdx-shell.no-shell .pdx-shell-body{padding:0}.pdx-shell-body.hidden{display:none}.pdx-shell.collapsed .pdx-shell-header{border-bottom-color:transparent}.pdx-shell.expanded .pdx-shell-body,.pdx-shell.fullscreen .pdx-shell-body{overflow:auto;display:flex;flex-direction:column;min-height:0}.pdx-shell.expanded .pdx-shell-body>*,.pdx-shell.fullscreen .pdx-shell-body>*{flex:1 1 auto;min-height:0;width:100%}.pdx-shell.expanded{position:fixed;top:10vh;left:50%;width:min(920px,92vw);height:min(640px,82vh);transform:translate(-50%);z-index:var(--praxis-layer-widget-shell-expanded, 1290);box-shadow:var(--mat-elevation-level8)}.pdx-shell.fullscreen{position:fixed;top:50%;left:50%;width:95vw;height:95vh;transform:translate(-50%,-50%);z-index:var(--praxis-layer-widget-shell-fullscreen, 1291);box-shadow:var(--mat-elevation-level8)}.pdx-shell-backdrop{position:fixed;inset:0;z-index:var(--praxis-layer-widget-shell-backdrop, 1280);background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}\n"] }]
|
|
19894
20398
|
}], propDecorators: { shell: [{
|
|
19895
20399
|
type: Input
|
|
19896
20400
|
}], context: [{
|
|
@@ -22821,6 +23325,9 @@ const DYNAMIC_WIDGET_PAGE_I18N_CONFIG = {
|
|
|
22821
23325
|
[DYNAMIC_WIDGET_PAGE_I18N_NAMESPACE]: {
|
|
22822
23326
|
'pt-BR': {
|
|
22823
23327
|
'controls.pageSettings': 'Configurar página',
|
|
23328
|
+
'controls.widgetSettings': 'Configurar widget',
|
|
23329
|
+
'controls.widgetSettingsTooltip': 'Abrir configurações do widget',
|
|
23330
|
+
'controls.cardSettings': 'Configurar card',
|
|
22824
23331
|
'controls.widgetLayoutToolbar': 'Ações de layout do widget',
|
|
22825
23332
|
'controls.dragWidget': 'Arrastar widget',
|
|
22826
23333
|
'controls.resizeWidget': 'Redimensionar widget',
|
|
@@ -22841,6 +23348,9 @@ const DYNAMIC_WIDGET_PAGE_I18N_CONFIG = {
|
|
|
22841
23348
|
},
|
|
22842
23349
|
'en-US': {
|
|
22843
23350
|
'controls.pageSettings': 'Configure page',
|
|
23351
|
+
'controls.widgetSettings': 'Configure widget',
|
|
23352
|
+
'controls.widgetSettingsTooltip': 'Open widget settings',
|
|
23353
|
+
'controls.cardSettings': 'Configure card',
|
|
22844
23354
|
'controls.widgetLayoutToolbar': 'Widget layout actions',
|
|
22845
23355
|
'controls.dragWidget': 'Drag widget',
|
|
22846
23356
|
'controls.resizeWidget': 'Resize widget',
|
|
@@ -23116,13 +23626,19 @@ class DynamicWidgetPageComponent {
|
|
|
23116
23626
|
return;
|
|
23117
23627
|
}
|
|
23118
23628
|
const page = this.ensurePageDefinition();
|
|
23119
|
-
const
|
|
23120
|
-
|
|
23629
|
+
const widgetInputPatchResult = this.applyWidgetInputPatchToPage(page, fromKey, evt?.payload);
|
|
23630
|
+
const pageWithPatchedInputs = widgetInputPatchResult.page;
|
|
23631
|
+
const cycle = this.dispatchWidgetEventToComposition(pageWithPatchedInputs, fromKey, evt);
|
|
23632
|
+
if (!cycle || !cycle.matchedLinkIds.length) {
|
|
23633
|
+
if (widgetInputPatchResult.changed) {
|
|
23634
|
+
this.applyPageUpdate(pageWithPatchedInputs, true, undefined, false, true);
|
|
23635
|
+
}
|
|
23121
23636
|
return;
|
|
23122
|
-
|
|
23637
|
+
}
|
|
23638
|
+
const state = this.stateFromCompositionSnapshot(pageWithPatchedInputs.state, cycle.snapshot.state.primaryValues);
|
|
23123
23639
|
const runtimeStatePaths = Array.from(new Set((cycle.snapshot.state.changedPaths || []).filter((path) => typeof path === 'string')));
|
|
23124
23640
|
const updatedPrimaryStatePaths = runtimeStatePaths.filter((path) => (!this.areStateValuesEqual(this.conn.extractByPath(this.stateRuntime.normalizeState(page.state).values || {}, path), this.conn.extractByPath(state.values || {}, path))));
|
|
23125
|
-
let widgets = this.cloneWidgets(
|
|
23641
|
+
let widgets = this.cloneWidgets(pageWithPatchedInputs.widgets || []);
|
|
23126
23642
|
const directDelivery = this.applyCompositionWidgetDeliveries(widgets, cycle);
|
|
23127
23643
|
widgets = directDelivery.widgets;
|
|
23128
23644
|
const projectedWidgets = this.compositionRuntime.projectStateWidgetInputs(this.compositionDefinition, {
|
|
@@ -23132,11 +23648,63 @@ class DynamicWidgetPageComponent {
|
|
|
23132
23648
|
}).widgets;
|
|
23133
23649
|
const stateProjectionChanged = !this.areStateValuesEqual(widgets, projectedWidgets);
|
|
23134
23650
|
widgets = projectedWidgets;
|
|
23135
|
-
const nextRuntime = this.buildStateRuntime(state,
|
|
23136
|
-
if (!updatedPrimaryStatePaths.length && !directDelivery.changed && !stateProjectionChanged) {
|
|
23651
|
+
const nextRuntime = this.buildStateRuntime(state, pageWithPatchedInputs.context);
|
|
23652
|
+
if (!updatedPrimaryStatePaths.length && !directDelivery.changed && !stateProjectionChanged && !widgetInputPatchResult.changed) {
|
|
23137
23653
|
return;
|
|
23138
23654
|
}
|
|
23139
|
-
this.applyPageUpdate({ ...
|
|
23655
|
+
this.applyPageUpdate({ ...pageWithPatchedInputs, widgets, state }, true, nextRuntime, false);
|
|
23656
|
+
}
|
|
23657
|
+
applyWidgetInputPatchToPage(page, widgetKey, payload) {
|
|
23658
|
+
const inputPatch = this.extractWidgetInputPatch(payload);
|
|
23659
|
+
if (!inputPatch) {
|
|
23660
|
+
return { page, changed: false };
|
|
23661
|
+
}
|
|
23662
|
+
const widgets = this.cloneWidgets(page.widgets || []);
|
|
23663
|
+
const widgetIndex = widgets.findIndex((widget) => widget.key === widgetKey);
|
|
23664
|
+
if (widgetIndex < 0) {
|
|
23665
|
+
return { page, changed: false };
|
|
23666
|
+
}
|
|
23667
|
+
const currentInputs = this.cloneStateValues(widgets[widgetIndex].definition.inputs || {});
|
|
23668
|
+
let nextInputs = currentInputs;
|
|
23669
|
+
let patchChanged = false;
|
|
23670
|
+
for (const [path, value] of Object.entries(inputPatch)) {
|
|
23671
|
+
const normalizedPath = typeof path === 'string' ? path.trim() : '';
|
|
23672
|
+
if (!normalizedPath) {
|
|
23673
|
+
continue;
|
|
23674
|
+
}
|
|
23675
|
+
const candidateInputs = this.conn.setValueAtPath(nextInputs, normalizedPath, this.cloneStateValues(value));
|
|
23676
|
+
if (!this.areStateValuesEqual(nextInputs, candidateInputs)) {
|
|
23677
|
+
nextInputs = candidateInputs;
|
|
23678
|
+
patchChanged = true;
|
|
23679
|
+
}
|
|
23680
|
+
}
|
|
23681
|
+
if (!patchChanged) {
|
|
23682
|
+
return { page, changed: false };
|
|
23683
|
+
}
|
|
23684
|
+
widgets[widgetIndex] = {
|
|
23685
|
+
...widgets[widgetIndex],
|
|
23686
|
+
definition: {
|
|
23687
|
+
...widgets[widgetIndex].definition,
|
|
23688
|
+
inputs: nextInputs,
|
|
23689
|
+
},
|
|
23690
|
+
};
|
|
23691
|
+
return {
|
|
23692
|
+
page: {
|
|
23693
|
+
...page,
|
|
23694
|
+
widgets,
|
|
23695
|
+
},
|
|
23696
|
+
changed: true,
|
|
23697
|
+
};
|
|
23698
|
+
}
|
|
23699
|
+
extractWidgetInputPatch(payload) {
|
|
23700
|
+
if (!payload || typeof payload !== 'object' || Array.isArray(payload)) {
|
|
23701
|
+
return null;
|
|
23702
|
+
}
|
|
23703
|
+
const candidate = payload.inputPatch;
|
|
23704
|
+
if (!candidate || typeof candidate !== 'object' || Array.isArray(candidate)) {
|
|
23705
|
+
return null;
|
|
23706
|
+
}
|
|
23707
|
+
return candidate;
|
|
23140
23708
|
}
|
|
23141
23709
|
buildStateRuntime(state, pageContext) {
|
|
23142
23710
|
return this.stateRuntime.buildRuntimeSnapshot(state, this.buildStateContext(pageContext));
|
|
@@ -23523,7 +24091,7 @@ class DynamicWidgetPageComponent {
|
|
|
23523
24091
|
const uiShell = page.context?.ui?.shell || {};
|
|
23524
24092
|
const ref = this.settingsPanel.open({
|
|
23525
24093
|
id: `dynamic-page-shell:${key}`,
|
|
23526
|
-
title: 'Configurar
|
|
24094
|
+
title: this.t('controls.cardSettings', 'Configurar card'),
|
|
23527
24095
|
content: {
|
|
23528
24096
|
component: editor,
|
|
23529
24097
|
inputs: {
|
|
@@ -23548,7 +24116,7 @@ class DynamicWidgetPageComponent {
|
|
|
23548
24116
|
const uiShell = page.context?.ui?.shell || {};
|
|
23549
24117
|
const ref = this.settingsPanel.open({
|
|
23550
24118
|
id: 'dynamic-page-settings',
|
|
23551
|
-
title: 'Configurar
|
|
24119
|
+
title: this.t('controls.pageSettings', 'Configurar página'),
|
|
23552
24120
|
content: {
|
|
23553
24121
|
component: editor,
|
|
23554
24122
|
inputs: {
|
|
@@ -23610,27 +24178,29 @@ class DynamicWidgetPageComponent {
|
|
|
23610
24178
|
themePreset: themePreset || undefined,
|
|
23611
24179
|
}, persist);
|
|
23612
24180
|
}
|
|
23613
|
-
applyPageUpdate(next, persist = true, runtime = this.buildStateRuntime(next.state, next.context), syncCompositionAdapter = true) {
|
|
24181
|
+
applyPageUpdate(next, persist = true, runtime = this.buildStateRuntime(next.state, next.context), syncCompositionAdapter = true, skipStateWidgetProjection = false) {
|
|
23614
24182
|
this.assertNoLegacyConnections(next);
|
|
23615
24183
|
const normalized = { ...next, state: runtime.state };
|
|
23616
24184
|
const normalizedWidgets = this.applyEditShellActions(normalized.widgets || []);
|
|
23617
24185
|
const bootstrapSnapshot = syncCompositionAdapter
|
|
23618
24186
|
? this.bootstrapCompositionAdapter(normalized)
|
|
23619
24187
|
: undefined;
|
|
23620
|
-
const stateBoundWidgets =
|
|
23621
|
-
?
|
|
23622
|
-
:
|
|
23623
|
-
? this.
|
|
23624
|
-
|
|
23625
|
-
|
|
23626
|
-
|
|
23627
|
-
|
|
23628
|
-
|
|
23629
|
-
|
|
23630
|
-
|
|
23631
|
-
|
|
23632
|
-
|
|
23633
|
-
|
|
24188
|
+
const stateBoundWidgets = skipStateWidgetProjection
|
|
24189
|
+
? normalizedWidgets
|
|
24190
|
+
: bootstrapSnapshot
|
|
24191
|
+
? this.applyBootstrapCompositionHydration(normalizedWidgets, bootstrapSnapshot)
|
|
24192
|
+
: this.compositionDefinition
|
|
24193
|
+
? this.compositionRuntime.projectStateWidgetInputs(this.compositionDefinition, {
|
|
24194
|
+
widgets: normalizedWidgets,
|
|
24195
|
+
state: {
|
|
24196
|
+
primaryValues: this.cloneStateValues(runtime.primaryValues),
|
|
24197
|
+
derivedValues: this.cloneStateValues(runtime.derivedValues),
|
|
24198
|
+
transientValues: {},
|
|
24199
|
+
changedPaths: [],
|
|
24200
|
+
diagnostics: [],
|
|
24201
|
+
},
|
|
24202
|
+
}).widgets
|
|
24203
|
+
: normalizedWidgets;
|
|
23634
24204
|
const hydrated = this.resolvePagePresets({ ...normalized, widgets: stateBoundWidgets });
|
|
23635
24205
|
this.pageDefinition = hydrated;
|
|
23636
24206
|
this.page = hydrated;
|
|
@@ -23915,6 +24485,12 @@ class DynamicWidgetPageComponent {
|
|
|
23915
24485
|
isCanvasMode() {
|
|
23916
24486
|
return !!this.canvas;
|
|
23917
24487
|
}
|
|
24488
|
+
shouldAutoWireOutputs(widget) {
|
|
24489
|
+
if (this.enableCustomization) {
|
|
24490
|
+
return true;
|
|
24491
|
+
}
|
|
24492
|
+
return widget?.definition?.inputs?.['enableCustomization'] === true;
|
|
24493
|
+
}
|
|
23918
24494
|
selectCanvasWidget(widgetKey) {
|
|
23919
24495
|
if (this.selectedCanvasWidgetKey !== widgetKey) {
|
|
23920
24496
|
this.selectedCanvasWidgetKey = widgetKey;
|
|
@@ -24727,7 +25303,7 @@ class DynamicWidgetPageComponent {
|
|
|
24727
25303
|
[attr.aria-label]="pageSettingsLabel()"
|
|
24728
25304
|
(click)="openPageSettings()"
|
|
24729
25305
|
>
|
|
24730
|
-
<mat-icon>settings</mat-icon>
|
|
25306
|
+
<mat-icon fontSet="material-symbols-outlined">settings</mat-icon>
|
|
24731
25307
|
</button>
|
|
24732
25308
|
}
|
|
24733
25309
|
<div
|
|
@@ -24782,6 +25358,7 @@ class DynamicWidgetPageComponent {
|
|
|
24782
25358
|
[ownerWidgetKey]="w.key"
|
|
24783
25359
|
[context]="mergedContext"
|
|
24784
25360
|
[strictValidation]="strictValidation"
|
|
25361
|
+
[autoWireOutputs]="shouldAutoWireOutputs(w)"
|
|
24785
25362
|
(widgetEvent)="onWidgetEvent(w.key, $event)"
|
|
24786
25363
|
(widgetDiagnostic)="onWidgetDiagnostic(w.key, $event)"
|
|
24787
25364
|
></ng-container>
|
|
@@ -24839,6 +25416,7 @@ class DynamicWidgetPageComponent {
|
|
|
24839
25416
|
[ownerWidgetKey]="w.key"
|
|
24840
25417
|
[context]="mergedContext"
|
|
24841
25418
|
[strictValidation]="strictValidation"
|
|
25419
|
+
[autoWireOutputs]="shouldAutoWireOutputs(w)"
|
|
24842
25420
|
(widgetEvent)="onWidgetEvent(w.key, $event)"
|
|
24843
25421
|
(widgetDiagnostic)="onWidgetDiagnostic(w.key, $event)"
|
|
24844
25422
|
></ng-container>
|
|
@@ -24863,6 +25441,7 @@ class DynamicWidgetPageComponent {
|
|
|
24863
25441
|
[ownerWidgetKey]="w.key"
|
|
24864
25442
|
[context]="mergedContext"
|
|
24865
25443
|
[strictValidation]="strictValidation"
|
|
25444
|
+
[autoWireOutputs]="shouldAutoWireOutputs(w)"
|
|
24866
25445
|
(widgetEvent)="onWidgetEvent(w.key, $event)"
|
|
24867
25446
|
(widgetDiagnostic)="onWidgetDiagnostic(w.key, $event)"
|
|
24868
25447
|
></ng-container>
|
|
@@ -24886,6 +25465,7 @@ class DynamicWidgetPageComponent {
|
|
|
24886
25465
|
[ownerWidgetKey]="w.key"
|
|
24887
25466
|
[context]="mergedContext"
|
|
24888
25467
|
[strictValidation]="strictValidation"
|
|
25468
|
+
[autoWireOutputs]="shouldAutoWireOutputs(w)"
|
|
24889
25469
|
(widgetEvent)="onWidgetEvent(w.key, $event)"
|
|
24890
25470
|
(widgetDiagnostic)="onWidgetDiagnostic(w.key, $event)"
|
|
24891
25471
|
></ng-container>
|
|
@@ -24898,7 +25478,7 @@ class DynamicWidgetPageComponent {
|
|
|
24898
25478
|
<div class="pdx-sr-only" aria-live="polite">{{ layoutAnnouncement }}</div>
|
|
24899
25479
|
}
|
|
24900
25480
|
</div>
|
|
24901
|
-
`, isInline: true, styles: [".pdx-page-wrapper{position:relative;display:block}.pdx-page{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}.pdx-page--canvas{align-items:start;grid-auto-flow:dense}.pdx-page-settings{position:sticky;top:8px;z-index:2;border:1px solid var(--md-sys-color-outline-variant);background:var(--md-sys-color-surface-container-low);color:inherit;border-radius:999px;margin-bottom:8px}.pdx-widget{position:relative;background:var(--pfx-surface, transparent);border-radius:8px;min-width:0;min-height:0}.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-selected:before{border:1px dashed color-mix(in srgb,var(--md-sys-color-primary) 34%,transparent);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-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-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:40px;height:18px;margin-left:-20px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--north{top:-8px;cursor:ns-resize}.pdx-canvas-resize--south{bottom:-8px;cursor:ns-resize}.pdx-canvas-resize--east,.pdx-canvas-resize--west{top:50%;width:18px;height:40px;margin-top:-20px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--east{right:-8px;cursor:ew-resize}.pdx-canvas-resize--west{left:-8px;cursor:ew-resize}.pdx-canvas-resize--north-east,.pdx-canvas-resize--north-west,.pdx-canvas-resize--south-east,.pdx-canvas-resize--south-west{width:18px;height:18px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--north-east{top:-8px;right:-8px;cursor:nesw-resize}.pdx-canvas-resize--north-west{top:-8px;left:-8px;cursor:nwse-resize}.pdx-canvas-resize--south-east{bottom:-8px;right:-8px;cursor:nwse-resize}.pdx-canvas-resize--south-west{bottom:-8px;left:-8px;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$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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: 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"] }] });
|
|
25481
|
+
`, isInline: true, styles: [".pdx-page-wrapper{position:relative;display:block}.pdx-page{display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}.pdx-page--canvas{align-items:start;grid-auto-flow:dense}.pdx-page-settings{position:sticky;top:8px;z-index:2;border:1px solid var(--md-sys-color-outline-variant);background:var(--md-sys-color-surface-container-low);color:inherit;border-radius:12px;width:36px;height:36px;margin-bottom:6px}.pdx-widget{position:relative;background:var(--pfx-surface, transparent);border-radius:6px;min-width:0;min-height:0}.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-selected:before{border:1px dashed color-mix(in srgb,var(--md-sys-color-primary) 34%,transparent);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-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-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:40px;height:18px;margin-left:-20px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--north{top:-8px;cursor:ns-resize}.pdx-canvas-resize--south{bottom:-8px;cursor:ns-resize}.pdx-canvas-resize--east,.pdx-canvas-resize--west{top:50%;width:18px;height:40px;margin-top:-20px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--east{right:-8px;cursor:ew-resize}.pdx-canvas-resize--west{left:-8px;cursor:ew-resize}.pdx-canvas-resize--north-east,.pdx-canvas-resize--north-west,.pdx-canvas-resize--south-east,.pdx-canvas-resize--south-west{width:18px;height:18px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--north-east{top:-8px;right:-8px;cursor:nesw-resize}.pdx-canvas-resize--north-west{top:-8px;left:-8px;cursor:nwse-resize}.pdx-canvas-resize--south-east{bottom:-8px;right:-8px;cursor:nwse-resize}.pdx-canvas-resize--south-west{bottom:-8px;left:-8px;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$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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: 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"] }] });
|
|
24902
25482
|
}
|
|
24903
25483
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: DynamicWidgetPageComponent, decorators: [{
|
|
24904
25484
|
type: Component,
|
|
@@ -24914,7 +25494,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
|
|
|
24914
25494
|
[attr.aria-label]="pageSettingsLabel()"
|
|
24915
25495
|
(click)="openPageSettings()"
|
|
24916
25496
|
>
|
|
24917
|
-
<mat-icon>settings</mat-icon>
|
|
25497
|
+
<mat-icon fontSet="material-symbols-outlined">settings</mat-icon>
|
|
24918
25498
|
</button>
|
|
24919
25499
|
}
|
|
24920
25500
|
<div
|
|
@@ -24969,6 +25549,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
|
|
|
24969
25549
|
[ownerWidgetKey]="w.key"
|
|
24970
25550
|
[context]="mergedContext"
|
|
24971
25551
|
[strictValidation]="strictValidation"
|
|
25552
|
+
[autoWireOutputs]="shouldAutoWireOutputs(w)"
|
|
24972
25553
|
(widgetEvent)="onWidgetEvent(w.key, $event)"
|
|
24973
25554
|
(widgetDiagnostic)="onWidgetDiagnostic(w.key, $event)"
|
|
24974
25555
|
></ng-container>
|
|
@@ -25026,6 +25607,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
|
|
|
25026
25607
|
[ownerWidgetKey]="w.key"
|
|
25027
25608
|
[context]="mergedContext"
|
|
25028
25609
|
[strictValidation]="strictValidation"
|
|
25610
|
+
[autoWireOutputs]="shouldAutoWireOutputs(w)"
|
|
25029
25611
|
(widgetEvent)="onWidgetEvent(w.key, $event)"
|
|
25030
25612
|
(widgetDiagnostic)="onWidgetDiagnostic(w.key, $event)"
|
|
25031
25613
|
></ng-container>
|
|
@@ -25050,6 +25632,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
|
|
|
25050
25632
|
[ownerWidgetKey]="w.key"
|
|
25051
25633
|
[context]="mergedContext"
|
|
25052
25634
|
[strictValidation]="strictValidation"
|
|
25635
|
+
[autoWireOutputs]="shouldAutoWireOutputs(w)"
|
|
25053
25636
|
(widgetEvent)="onWidgetEvent(w.key, $event)"
|
|
25054
25637
|
(widgetDiagnostic)="onWidgetDiagnostic(w.key, $event)"
|
|
25055
25638
|
></ng-container>
|
|
@@ -25073,6 +25656,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
|
|
|
25073
25656
|
[ownerWidgetKey]="w.key"
|
|
25074
25657
|
[context]="mergedContext"
|
|
25075
25658
|
[strictValidation]="strictValidation"
|
|
25659
|
+
[autoWireOutputs]="shouldAutoWireOutputs(w)"
|
|
25076
25660
|
(widgetEvent)="onWidgetEvent(w.key, $event)"
|
|
25077
25661
|
(widgetDiagnostic)="onWidgetDiagnostic(w.key, $event)"
|
|
25078
25662
|
></ng-container>
|
|
@@ -25085,7 +25669,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
|
|
|
25085
25669
|
<div class="pdx-sr-only" aria-live="polite">{{ layoutAnnouncement }}</div>
|
|
25086
25670
|
}
|
|
25087
25671
|
</div>
|
|
25088
|
-
`, styles: [".pdx-page-wrapper{position:relative;display:block}.pdx-page{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}.pdx-page--canvas{align-items:start;grid-auto-flow:dense}.pdx-page-settings{position:sticky;top:8px;z-index:2;border:1px solid var(--md-sys-color-outline-variant);background:var(--md-sys-color-surface-container-low);color:inherit;border-radius:999px;margin-bottom:8px}.pdx-widget{position:relative;background:var(--pfx-surface, transparent);border-radius:8px;min-width:0;min-height:0}.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-selected:before{border:1px dashed color-mix(in srgb,var(--md-sys-color-primary) 34%,transparent);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-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-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:40px;height:18px;margin-left:-20px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--north{top:-8px;cursor:ns-resize}.pdx-canvas-resize--south{bottom:-8px;cursor:ns-resize}.pdx-canvas-resize--east,.pdx-canvas-resize--west{top:50%;width:18px;height:40px;margin-top:-20px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--east{right:-8px;cursor:ew-resize}.pdx-canvas-resize--west{left:-8px;cursor:ew-resize}.pdx-canvas-resize--north-east,.pdx-canvas-resize--north-west,.pdx-canvas-resize--south-east,.pdx-canvas-resize--south-west{width:18px;height:18px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--north-east{top:-8px;right:-8px;cursor:nesw-resize}.pdx-canvas-resize--north-west{top:-8px;left:-8px;cursor:nwse-resize}.pdx-canvas-resize--south-east{bottom:-8px;right:-8px;cursor:nwse-resize}.pdx-canvas-resize--south-west{bottom:-8px;left:-8px;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"] }]
|
|
25672
|
+
`, styles: [".pdx-page-wrapper{position:relative;display:block}.pdx-page{display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}.pdx-page--canvas{align-items:start;grid-auto-flow:dense}.pdx-page-settings{position:sticky;top:8px;z-index:2;border:1px solid var(--md-sys-color-outline-variant);background:var(--md-sys-color-surface-container-low);color:inherit;border-radius:12px;width:36px;height:36px;margin-bottom:6px}.pdx-widget{position:relative;background:var(--pfx-surface, transparent);border-radius:6px;min-width:0;min-height:0}.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-selected:before{border:1px dashed color-mix(in srgb,var(--md-sys-color-primary) 34%,transparent);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-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-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:40px;height:18px;margin-left:-20px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--north{top:-8px;cursor:ns-resize}.pdx-canvas-resize--south{bottom:-8px;cursor:ns-resize}.pdx-canvas-resize--east,.pdx-canvas-resize--west{top:50%;width:18px;height:40px;margin-top:-20px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--east{right:-8px;cursor:ew-resize}.pdx-canvas-resize--west{left:-8px;cursor:ew-resize}.pdx-canvas-resize--north-east,.pdx-canvas-resize--north-west,.pdx-canvas-resize--south-east,.pdx-canvas-resize--south-west{width:18px;height:18px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--north-east{top:-8px;right:-8px;cursor:nesw-resize}.pdx-canvas-resize--north-west{top:-8px;left:-8px;cursor:nwse-resize}.pdx-canvas-resize--south-east{bottom:-8px;right:-8px;cursor:nwse-resize}.pdx-canvas-resize--south-west{bottom:-8px;left:-8px;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"] }]
|
|
25089
25673
|
}], ctorParameters: () => [], propDecorators: { pageCanvasHost: [{
|
|
25090
25674
|
type: ViewChild,
|
|
25091
25675
|
args: ['pageCanvasHost']
|
|
@@ -26575,4 +27159,4 @@ function provideHookWhitelist(allowed) {
|
|
|
26575
27159
|
* Generated bundle index. Do not edit.
|
|
26576
27160
|
*/
|
|
26577
27161
|
|
|
26578
|
-
export { API_CONFIG_STORAGE_OPTIONS, API_URL, ASYNC_CONFIG_STORAGE, AllowedFileTypes, AnalyticsPresentationResolver, AnalyticsSchemaContractService, AnalyticsStatsRequestBuilderService, ApiConfigStorage, ApiEndpoint, BUILTIN_PAGE_LAYOUT_PRESETS, BUILTIN_PAGE_THEME_PRESETS, BUILTIN_SHELL_PRESETS, CONFIG_STORAGE, CONNECTION_STORAGE, ComponentKeyService, ComponentMetadataRegistry, CompositionRuntimeFacade, ConsoleLoggerSink, DEFAULT_FIELD_SELECTOR_CONTROL_TYPE_MAP, DEFAULT_JSON_LOGIC_OPERATORS, DEFAULT_TABLE_CONFIG, DYNAMIC_PAGE_AI_CAPABILITIES, DYNAMIC_PAGE_COMPONENT_CONTEXT_PACK, DYNAMIC_PAGE_CONFIG_EDITOR, DYNAMIC_PAGE_SHELL_EDITOR, DefaultLoadingRenderer, DeferredAsyncConfigStorage, DynamicFormService, DynamicWidgetLoaderDirective, DynamicWidgetPageComponent, EDITORIAL_ALLOWED_CONTENT_FORMATS, EDITORIAL_COMPLIANCE_PRESETS, EDITORIAL_EXTERNAL_LINK_REL, EDITORIAL_FORM_TEMPLATE_CATALOG, EDITORIAL_HTML_ENABLED, EDITORIAL_MARKDOWN_IMAGES_ENABLED, EDITORIAL_SOLUTION_CATALOG, EDITORIAL_SOLUTION_PRESETS, EDITORIAL_THEME_PRESETS, EDITORIAL_WIDGET_CONVENTION_INPUTS, EDITORIAL_WIDGET_TAG, EMPLOYEE_ONBOARDING_EDITORIAL_SOLUTION, EMPLOYEE_ONBOARDING_EDITORIAL_TEMPLATE, EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_SOLUTION, EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_TEMPLATE, EVENT_REGISTRATION_EDITORIAL_SOLUTION, EVENT_REGISTRATION_EDITORIAL_TEMPLATE, EmptyStateCardComponent, ErrorMessageService, FIELD_METADATA_CAPABILITIES, FIELD_SELECTOR_REGISTRY_BASE, FIELD_SELECTOR_REGISTRY_DISABLE_DEFAULTS, FIELD_SELECTOR_REGISTRY_OVERRIDES, FORM_HOOKS, FORM_HOOKS_PRESETS, FORM_HOOKS_WHITELIST, FORM_HOOK_RESOLVERS, FieldControlType, FieldDataType, FieldSelectorRegistry, FormHooksRegistry, GLOBAL_ACTION_CATALOG$1 as GLOBAL_ACTION_CATALOG, GLOBAL_ACTION_HANDLERS, GLOBAL_ACTION_CATALOG as GLOBAL_ACTION_SPEC_CATALOG, GLOBAL_ACTION_UI_SCHEMAS, GLOBAL_ANALYTICS_SERVICE, GLOBAL_API_CLIENT, GLOBAL_CONFIG, GLOBAL_DIALOG_SERVICE, GLOBAL_ROUTE_GUARD_RESOLVER, GLOBAL_SURFACE_SERVICE, GLOBAL_TOAST_SERVICE, GenericCrudService, GlobalActionService, GlobalConfigService, INLINE_FILTER_ALIAS_TOKENS, INLINE_FILTER_CONTROL_TYPES, INLINE_FILTER_CONTROL_TYPE_SET, INLINE_FILTER_CONTROL_TYPE_VALUES, INLINE_FILTER_TOKEN_TO_BASE_CONTROL_TYPE, INLINE_FILTER_TOKEN_TO_CONTROL_TYPE, IconPickerService, IconPosition, IconSize, LOGGER_LEVEL_BY_ENV, LOGGER_LEVEL_PRIORITY, LoadingOrchestrator, LocalConnectionStorage, LocalStorageAsyncAdapter, LocalStorageCacheAdapter, LocalStorageConfigService, LoggerService, LoggerThrottleTracker, LoggerWarnOnceTracker, MemoryCacheAdapter, NumericFormat, OVERLAY_DECIDER_DEBUG, OVERLAY_DECISION_MATRIX, ObservabilityDashboardService, OverlayDeciderService, PRAXIS_CORPORATE_SENSITIVE_KEYS, PRAXIS_DEFAULT_OBSERVABILITY_ALERT_RULES, PRAXIS_DYNAMIC_PAGE_COMPONENT_METADATA, PRAXIS_FOOTER_LINKS_METADATA, PRAXIS_GLOBAL_ACTION_CATALOG, PRAXIS_GLOBAL_CONFIG_BOOTSTRAP_OPTIONS, PRAXIS_GLOBAL_CONFIG_BOOTSTRAP_READY, PRAXIS_GLOBAL_CONFIG_TENANT_RESOLVER, PRAXIS_HERO_BANNER_METADATA, PRAXIS_I18N_CONFIG, PRAXIS_I18N_TRANSLATOR, PRAXIS_JSON_LOGIC_OPERATORS, PRAXIS_LAYER_SCALE_DEFAULTS, PRAXIS_LAYER_SCALE_VARS, PRAXIS_LEGAL_NOTICE_METADATA, PRAXIS_LOADING_CTX, PRAXIS_LOADING_RENDERER, PRAXIS_LOGGER_CONFIG, PRAXIS_LOGGER_SINKS, PRAXIS_OBSERVABILITY_DASHBOARD_OPTIONS, PRAXIS_RICH_TEXT_BLOCK_METADATA, PRAXIS_TELEMETRY_TRANSPORT, PRAXIS_USER_CONTEXT_SUMMARY_METADATA, PRIVACY_CONSENT_EDITORIAL_SOLUTION, PRIVACY_CONSENT_EDITORIAL_TEMPLATE, PraxisCore, PraxisFooterLinksComponent, PraxisGlobalErrorHandler, PraxisHeroBannerComponent, PraxisI18nService, PraxisIconDirective, PraxisIconPickerComponent, PraxisJsonLogicError, PraxisJsonLogicService, PraxisLayerScaleStyleService, PraxisLegalNoticeComponent, PraxisLoadingInterceptor, PraxisRichTextBlockComponent, PraxisSurfaceHostComponent, PraxisUserContextSummaryComponent, RESOURCE_DISCOVERY_I18N_CONFIG, RESOURCE_DISCOVERY_I18N_NAMESPACE, RULE_PROPERTY_SCHEMA, RemoteConfigStorage, ResourceActionOpenAdapterService, ResourceDiscoveryService, ResourceQuickConnectComponent, ResourceSurfaceOpenAdapterService, SCHEMA_VIEWER_CONTEXT, SETTINGS_PANEL_BRIDGE, SETTINGS_PANEL_DATA, STEPPER_CONFIG_EDITOR, SURFACE_DRAWER_BRIDGE, SURFACE_OPEN_I18N_CONFIG, SURFACE_OPEN_I18N_NAMESPACE, SURFACE_OPEN_PRESETS, SchemaMetadataClient, SchemaNormalizerService, SchemaViewerComponent, SurfaceBindingRuntimeService, SurfaceOpenActionEditorComponent, TABLE_CONFIG_EDITOR, TableConfigService, TelemetryLoggerSink, TelemetryService, ValidationPattern, WidgetPageStateRuntimeService, WidgetShellComponent, applyLocalCustomizations$2 as applyLocalCustomizations, applyLocalCustomizations$1 as applyLocalFormCustomizations, buildAngularValidators, buildApiUrl, buildBaseColumnFromDef, buildBaseFormField, buildFormConfigFromEditorialTemplate, buildHeaders, buildPageKey, buildPraxisLayerScaleCss, buildSchemaId, buildValidatorsFromValidatorOptions, cancelIfCpfInvalidHook, clampRange, cloneTableConfig, cnpjAlphaValidator, collapseWhitespace, composeHeadersWithVersion, conditionalAsyncValidator, convertFormLayoutToConfig, createCorporateLoggerConfig, createCorporateObservabilityOptions, createCpfCnpjValidator, createDefaultFormConfig, createDefaultTableConfig, createEmptyFormConfig, createPersistedPage, customAsyncValidatorFn, customValidatorFn, debounceAsyncValidator, deepMerge, ensureIds, ensureNoConflictsHookFactory, ensurePageIds, extractNormalizedError, fetchWithETag, fileTypeValidator, fillUndefined, generateId, getDefaultFormHints, getEditorialCompliancePresetById, getEditorialFormTemplateById, getEditorialFormTemplateCatalog, getEditorialSolutionById, getEditorialSolutionCatalog, getEditorialSolutionPresetById, getEditorialThemePresetById, getEssentialConfig, getFieldMetadataCapabilities, getGlobalActionCatalog, getGlobalActionUiSchema, getReferencedFieldMetadata, getTextTransformer, interpolatePraxisTranslation, isAllowedEditorialContentFormat, isAllowedEditorialHref, isCssTextTransform, isEditorialComponentMeta, isInlineFilterControlType, isRangeValidForFilter, isTableConfigV2, isValidFormConfig, isValidTableConfig, legacyCnpjValidator, legacyCpfValidator, logOnErrorHook, mapFieldDefinitionToMetadata, mapFieldDefinitionsToMetadata, matchFieldValidator, maxFileSizeValidator, mergeFieldMetadata, mergePraxisI18nConfigs, mergeTableConfigs, migrateFormLayoutRule, migrateLegacyCompositionLink, migrateLegacyCompositionLinks, minWordsValidator, normalizeControlTypeKey, normalizeControlTypeToken, normalizeEditorialLink, normalizeEnd, normalizeFieldConstraints, normalizeFormConfig, normalizeFormMetadata, normalizePath, normalizePraxisDataQueryContext, normalizeResourceAvailabilityReasonCode, normalizeStart, normalizeUnknownError, notifySuccessHook, parseJsonResponseOrEmpty, praxisLoadingInterceptorFn, prefillFromContextHook, provideDefaultFormHooks, provideFieldSelectorRegistryBase, provideFieldSelectorRegistryOverride, provideFieldSelectorRegistryRuntime, provideFormHookPresets, provideFormHooks, provideGlobalActionCatalog, provideGlobalActionHandler, provideGlobalConfig, provideGlobalConfigReady, provideGlobalConfigSeed, provideGlobalConfigTenant, provideHookResolvers, provideHookWhitelist, provideOverlayDecisionMatrix, providePraxisAnalyticsGlobalActions, providePraxisDynamicPageMetadata, providePraxisFooterLinksMetadata, providePraxisGlobalActionCatalog, providePraxisGlobalActions, providePraxisGlobalConfigBootstrap, providePraxisHeroBannerMetadata, providePraxisHttpLoading, providePraxisI18n, providePraxisI18nConfig, providePraxisI18nTranslator, providePraxisJsonLogicOperator, providePraxisLegalNoticeMetadata, providePraxisLoadingDefaults, providePraxisLogging, providePraxisRichTextBlockMetadata, providePraxisToastGlobalActions, providePraxisUserContextSummaryMetadata, provideRemoteGlobalConfig, reconcileFilterConfig, reconcileFormConfig, reconcileTableConfig, removeDiacritics, reportTelemetryHookFactory, requiredCheckedValidator, resolveBuiltinPresets, resolveControlTypeAlias, resolveDefaultValuePresentationFormat, resolveHidden, resolveInlineFilterControlType, resolveInlineFilterControlTypeToBaseControlType, resolveLoggerConfig, resolveObservabilityOptions, resolveOffset, resolveOrder, resolvePraxisFilterCriteria, resolveResourceAvailabilityReasonKey, resolveSpan, resolveValuePresentation, resolveValuePresentationLocale, slugify, stripMasksHook, supportsImplicitValuePresentation, syncWithServerMetadata, toCamel, toCapitalize, toKebab, toPascal, toSentenceCase, toSnake, toTitleCase, translateResourceAvailabilityReason, translateResourceDiscoveryText, translateUnavailableWorkflowMessage, trim, uniqueAsyncValidator, urlValidator, withMessage, withPraxisHttpLoading };
|
|
27162
|
+
export { API_CONFIG_STORAGE_OPTIONS, API_URL, ASYNC_CONFIG_STORAGE, AllowedFileTypes, AnalyticsPresentationResolver, AnalyticsSchemaContractService, AnalyticsStatsRequestBuilderService, ApiConfigStorage, ApiEndpoint, BUILTIN_PAGE_LAYOUT_PRESETS, BUILTIN_PAGE_THEME_PRESETS, BUILTIN_SHELL_PRESETS, CONFIG_STORAGE, CONNECTION_STORAGE, ComponentKeyService, ComponentMetadataRegistry, CompositionRuntimeFacade, ConsoleLoggerSink, CrudOperationResolutionService, DEFAULT_FIELD_SELECTOR_CONTROL_TYPE_MAP, DEFAULT_JSON_LOGIC_OPERATORS, DEFAULT_TABLE_CONFIG, DYNAMIC_PAGE_AI_CAPABILITIES, DYNAMIC_PAGE_COMPONENT_CONTEXT_PACK, DYNAMIC_PAGE_CONFIG_EDITOR, DYNAMIC_PAGE_SHELL_EDITOR, DefaultLoadingRenderer, DeferredAsyncConfigStorage, DynamicFormService, DynamicWidgetLoaderDirective, DynamicWidgetPageComponent, EDITORIAL_ALLOWED_CONTENT_FORMATS, EDITORIAL_COMPLIANCE_PRESETS, EDITORIAL_EXTERNAL_LINK_REL, EDITORIAL_FORM_TEMPLATE_CATALOG, EDITORIAL_HTML_ENABLED, EDITORIAL_MARKDOWN_IMAGES_ENABLED, EDITORIAL_SOLUTION_CATALOG, EDITORIAL_SOLUTION_PRESETS, EDITORIAL_THEME_PRESETS, EDITORIAL_WIDGET_CONVENTION_INPUTS, EDITORIAL_WIDGET_TAG, EMPLOYEE_ONBOARDING_EDITORIAL_SOLUTION, EMPLOYEE_ONBOARDING_EDITORIAL_TEMPLATE, EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_SOLUTION, EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_TEMPLATE, EVENT_REGISTRATION_EDITORIAL_SOLUTION, EVENT_REGISTRATION_EDITORIAL_TEMPLATE, EmptyStateCardComponent, ErrorMessageService, FIELD_METADATA_CAPABILITIES, FIELD_SELECTOR_REGISTRY_BASE, FIELD_SELECTOR_REGISTRY_DISABLE_DEFAULTS, FIELD_SELECTOR_REGISTRY_OVERRIDES, FORM_HOOKS, FORM_HOOKS_PRESETS, FORM_HOOKS_WHITELIST, FORM_HOOK_RESOLVERS, FieldControlType, FieldDataType, FieldSelectorRegistry, FormHooksRegistry, GLOBAL_ACTION_CATALOG$1 as GLOBAL_ACTION_CATALOG, GLOBAL_ACTION_HANDLERS, GLOBAL_ACTION_CATALOG as GLOBAL_ACTION_SPEC_CATALOG, GLOBAL_ACTION_UI_SCHEMAS, GLOBAL_ANALYTICS_SERVICE, GLOBAL_API_CLIENT, GLOBAL_CONFIG, GLOBAL_DIALOG_SERVICE, GLOBAL_ROUTE_GUARD_RESOLVER, GLOBAL_SURFACE_SERVICE, GLOBAL_TOAST_SERVICE, GenericCrudService, GlobalActionService, GlobalConfigService, INLINE_FILTER_ALIAS_TOKENS, INLINE_FILTER_CONTROL_TYPES, INLINE_FILTER_CONTROL_TYPE_SET, INLINE_FILTER_CONTROL_TYPE_VALUES, INLINE_FILTER_TOKEN_TO_BASE_CONTROL_TYPE, INLINE_FILTER_TOKEN_TO_CONTROL_TYPE, IconPickerService, IconPosition, IconSize, LOGGER_LEVEL_BY_ENV, LOGGER_LEVEL_PRIORITY, LoadingOrchestrator, LocalConnectionStorage, LocalStorageAsyncAdapter, LocalStorageCacheAdapter, LocalStorageConfigService, LoggerService, LoggerThrottleTracker, LoggerWarnOnceTracker, MemoryCacheAdapter, NumericFormat, OVERLAY_DECIDER_DEBUG, OVERLAY_DECISION_MATRIX, ObservabilityDashboardService, OverlayDeciderService, PRAXIS_CORPORATE_SENSITIVE_KEYS, PRAXIS_DEFAULT_OBSERVABILITY_ALERT_RULES, PRAXIS_DYNAMIC_PAGE_COMPONENT_METADATA, PRAXIS_FOOTER_LINKS_METADATA, PRAXIS_GLOBAL_ACTION_CATALOG, PRAXIS_GLOBAL_CONFIG_BOOTSTRAP_OPTIONS, PRAXIS_GLOBAL_CONFIG_BOOTSTRAP_READY, PRAXIS_GLOBAL_CONFIG_TENANT_RESOLVER, PRAXIS_HERO_BANNER_METADATA, PRAXIS_I18N_CONFIG, PRAXIS_I18N_TRANSLATOR, PRAXIS_JSON_LOGIC_OPERATORS, PRAXIS_LAYER_SCALE_DEFAULTS, PRAXIS_LAYER_SCALE_VARS, PRAXIS_LEGAL_NOTICE_METADATA, PRAXIS_LOADING_CTX, PRAXIS_LOADING_RENDERER, PRAXIS_LOGGER_CONFIG, PRAXIS_LOGGER_SINKS, PRAXIS_OBSERVABILITY_DASHBOARD_OPTIONS, PRAXIS_RICH_TEXT_BLOCK_METADATA, PRAXIS_TELEMETRY_TRANSPORT, PRAXIS_USER_CONTEXT_SUMMARY_METADATA, PRIVACY_CONSENT_EDITORIAL_SOLUTION, PRIVACY_CONSENT_EDITORIAL_TEMPLATE, PraxisCore, PraxisFooterLinksComponent, PraxisGlobalErrorHandler, PraxisHeroBannerComponent, PraxisI18nService, PraxisIconDirective, PraxisIconPickerComponent, PraxisJsonLogicError, PraxisJsonLogicService, PraxisLayerScaleStyleService, PraxisLegalNoticeComponent, PraxisLoadingInterceptor, PraxisRichTextBlockComponent, PraxisSurfaceHostComponent, PraxisUserContextSummaryComponent, RESOURCE_DISCOVERY_I18N_CONFIG, RESOURCE_DISCOVERY_I18N_NAMESPACE, RULE_PROPERTY_SCHEMA, RemoteConfigStorage, ResourceActionOpenAdapterService, ResourceDiscoveryService, ResourceQuickConnectComponent, ResourceSurfaceOpenAdapterService, SCHEMA_VIEWER_CONTEXT, SETTINGS_PANEL_BRIDGE, SETTINGS_PANEL_DATA, STEPPER_CONFIG_EDITOR, SURFACE_DRAWER_BRIDGE, SURFACE_OPEN_I18N_CONFIG, SURFACE_OPEN_I18N_NAMESPACE, SURFACE_OPEN_PRESETS, SchemaMetadataClient, SchemaNormalizerService, SchemaViewerComponent, SurfaceBindingRuntimeService, SurfaceOpenActionEditorComponent, TABLE_CONFIG_EDITOR, TableConfigService, TelemetryLoggerSink, TelemetryService, ValidationPattern, WidgetPageStateRuntimeService, WidgetShellComponent, applyLocalCustomizations$2 as applyLocalCustomizations, applyLocalCustomizations$1 as applyLocalFormCustomizations, buildAngularValidators, buildApiUrl, buildBaseColumnFromDef, buildBaseFormField, buildFormConfigFromEditorialTemplate, buildHeaders, buildPageKey, buildPraxisLayerScaleCss, buildSchemaId, buildValidatorsFromValidatorOptions, cancelIfCpfInvalidHook, clampRange, cloneTableConfig, cnpjAlphaValidator, collapseWhitespace, composeHeadersWithVersion, conditionalAsyncValidator, convertFormLayoutToConfig, createCorporateLoggerConfig, createCorporateObservabilityOptions, createCpfCnpjValidator, createDefaultFormConfig, createDefaultTableConfig, createEmptyFormConfig, createEmptyRichContentDocument, createPersistedPage, customAsyncValidatorFn, customValidatorFn, debounceAsyncValidator, deepMerge, ensureIds, ensureNoConflictsHookFactory, ensurePageIds, extractNormalizedError, fetchWithETag, fileTypeValidator, fillUndefined, generateId, getDefaultFormHints, getEditorialCompliancePresetById, getEditorialFormTemplateById, getEditorialFormTemplateCatalog, getEditorialSolutionById, getEditorialSolutionCatalog, getEditorialSolutionPresetById, getEditorialThemePresetById, getEssentialConfig, getFieldMetadataCapabilities, getGlobalActionCatalog, getGlobalActionUiSchema, getReferencedFieldMetadata, getTextTransformer, interpolatePraxisTranslation, isAllowedEditorialContentFormat, isAllowedEditorialHref, isCssTextTransform, isEditorialComponentMeta, isInlineFilterControlType, isRangeValidForFilter, isTableConfigV2, isValidFormConfig, isValidTableConfig, legacyCnpjValidator, legacyCpfValidator, logOnErrorHook, mapFieldDefinitionToMetadata, mapFieldDefinitionsToMetadata, matchFieldValidator, maxFileSizeValidator, mergeFieldMetadata, mergePraxisI18nConfigs, mergeTableConfigs, migrateFormLayoutRule, migrateLegacyCompositionLink, migrateLegacyCompositionLinks, minWordsValidator, normalizeControlTypeKey, normalizeControlTypeToken, normalizeEditorialLink, normalizeEnd, normalizeFieldConstraints, normalizeFormConfig, normalizeFormMetadata, normalizePath, normalizePraxisDataQueryContext, normalizeResourceAvailabilityReasonCode, normalizeStart, normalizeUnknownError, notifySuccessHook, parseJsonResponseOrEmpty, praxisLoadingInterceptorFn, prefillFromContextHook, provideDefaultFormHooks, provideFieldSelectorRegistryBase, provideFieldSelectorRegistryOverride, provideFieldSelectorRegistryRuntime, provideFormHookPresets, provideFormHooks, provideGlobalActionCatalog, provideGlobalActionHandler, provideGlobalConfig, provideGlobalConfigReady, provideGlobalConfigSeed, provideGlobalConfigTenant, provideHookResolvers, provideHookWhitelist, provideOverlayDecisionMatrix, providePraxisAnalyticsGlobalActions, providePraxisDynamicPageMetadata, providePraxisFooterLinksMetadata, providePraxisGlobalActionCatalog, providePraxisGlobalActions, providePraxisGlobalConfigBootstrap, providePraxisHeroBannerMetadata, providePraxisHttpLoading, providePraxisI18n, providePraxisI18nConfig, providePraxisI18nTranslator, providePraxisIconDefaults, providePraxisJsonLogicOperator, providePraxisLegalNoticeMetadata, providePraxisLoadingDefaults, providePraxisLogging, providePraxisRichTextBlockMetadata, providePraxisToastGlobalActions, providePraxisUserContextSummaryMetadata, provideRemoteGlobalConfig, reconcileFilterConfig, reconcileFormConfig, reconcileTableConfig, removeDiacritics, reportTelemetryHookFactory, requiredCheckedValidator, resolveBuiltinPresets, resolveControlTypeAlias, resolveDefaultValuePresentationFormat, resolveHidden, resolveInlineFilterControlType, resolveInlineFilterControlTypeToBaseControlType, resolveLoggerConfig, resolveObservabilityOptions, resolveOffset, resolveOrder, resolvePraxisFilterCriteria, resolveResourceAvailabilityReasonKey, resolveSpan, resolveValuePresentation, resolveValuePresentationLocale, slugify, stripMasksHook, supportsImplicitValuePresentation, syncWithServerMetadata, toCamel, toCapitalize, toKebab, toPascal, toSentenceCase, toSnake, toTitleCase, translateResourceAvailabilityReason, translateResourceDiscoveryText, translateUnavailableWorkflowMessage, trim, uniqueAsyncValidator, urlValidator, withMessage, withPraxisHttpLoading };
|