@praxisui/core 9.0.0-beta.71 → 9.0.0-beta.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -0
- package/ai/component-registry.json +142 -93
- package/fesm2022/praxisui-core.mjs +487 -61
- package/package.json +1 -1
- package/types/praxisui-core.d.ts +97 -6
|
@@ -4697,7 +4697,9 @@ class GenericCrudService {
|
|
|
4697
4697
|
catch { }
|
|
4698
4698
|
const entryToCache = { schema: body, schemaHash, meta: { version: '2.0.0', name: (schemaTypeParam === 'request' ? 'Filter/Request Schema' : 'Schema'), createdAt: nowIso2, updatedAt: nowIso2, resourcePath: this.resourcePath, idField: idFieldFromBody2, schemaId, apiOrigin: origin } };
|
|
4699
4699
|
this._schemaCache.set(schemaId, entryToCache);
|
|
4700
|
-
|
|
4700
|
+
if (schemaTypeParam === 'response') {
|
|
4701
|
+
this.updateLastResourceMetadataFromSchema(body);
|
|
4702
|
+
}
|
|
4701
4703
|
return of(this.schemaNormalizer.normalizeSchema(body));
|
|
4702
4704
|
}),
|
|
4703
4705
|
// Angular HttpClient may surface 304 as error; also handle status 0 (CORS/network) by reusing cache
|
|
@@ -4708,7 +4710,9 @@ class GenericCrudService {
|
|
|
4708
4710
|
try {
|
|
4709
4711
|
const cachedHash = cached.schemaHash || '';
|
|
4710
4712
|
this._lastSchemaInfo = { schemaId, schemaHash: cachedHash };
|
|
4711
|
-
|
|
4713
|
+
if (schemaTypeParam === 'response') {
|
|
4714
|
+
this.updateLastResourceMetadataFromSchema(cached.schema);
|
|
4715
|
+
}
|
|
4712
4716
|
}
|
|
4713
4717
|
catch { }
|
|
4714
4718
|
return of(this.schemaNormalizer.normalizeSchema(cached.schema));
|
|
@@ -4732,7 +4736,9 @@ class GenericCrudService {
|
|
|
4732
4736
|
const now = new Date().toISOString();
|
|
4733
4737
|
const entry = { schema: fresh, schemaHash: '', meta: { version: '2.0.0', name: (schemaTypeParam === 'request' ? 'Filter/Request Schema' : 'Schema'), createdAt: now, updatedAt: now, resourcePath: this.resourcePath, schemaId, apiOrigin: origin } };
|
|
4734
4738
|
this._schemaCache.set(schemaId, entry);
|
|
4735
|
-
|
|
4739
|
+
if (schemaTypeParam === 'response') {
|
|
4740
|
+
this.updateLastResourceMetadataFromSchema(fresh);
|
|
4741
|
+
}
|
|
4736
4742
|
}), map((fresh) => this.schemaNormalizer.normalizeSchema(fresh)), catchError(this.handleError));
|
|
4737
4743
|
}));
|
|
4738
4744
|
}
|
|
@@ -6778,6 +6784,102 @@ const PRAXIS_I18N_CONFIG = new InjectionToken('PRAXIS_I18N_CONFIG', {
|
|
|
6778
6784
|
});
|
|
6779
6785
|
const PRAXIS_I18N_TRANSLATOR = new InjectionToken('PRAXIS_I18N_TRANSLATOR');
|
|
6780
6786
|
|
|
6787
|
+
const COMPONENT_METADATA_REGISTRY_I18N_NAMESPACE = 'componentMetadataRegistry';
|
|
6788
|
+
const COMPONENT_METADATA_REGISTRY_I18N_CONFIG = {
|
|
6789
|
+
namespaces: {
|
|
6790
|
+
[COMPONENT_METADATA_REGISTRY_I18N_NAMESPACE]: {
|
|
6791
|
+
'pt-BR': {
|
|
6792
|
+
'inputs.resourceId.label': 'ID do recurso',
|
|
6793
|
+
'inputs.resourceId.description': 'Identificador único do recurso atual (ex.: payload.id).',
|
|
6794
|
+
'inputs.resourcePath.label': 'Caminho do recurso',
|
|
6795
|
+
'inputs.resourcePath.description': 'Endpoint/base ou caminho do recurso (ex.: human-resources/funcionarios).',
|
|
6796
|
+
'inputs.formId.label': 'Formulário',
|
|
6797
|
+
'inputs.formId.description': 'Identificador do formulário a ser exibido/atualizado.',
|
|
6798
|
+
'inputs.tableId.label': 'Tabela',
|
|
6799
|
+
'inputs.tableId.description': 'Identificador da tabela a ser exibida/atualizada.',
|
|
6800
|
+
'inputs.config.label': 'Configuração',
|
|
6801
|
+
'inputs.config.description': 'Objeto de configuração declarativo para o componente.',
|
|
6802
|
+
'inputs.mode.label': 'Modo',
|
|
6803
|
+
'inputs.mode.description': 'Modo de operação (ex.: view, edit, create).',
|
|
6804
|
+
'inputs.filterCriteria.label': 'Filtro',
|
|
6805
|
+
'inputs.filterCriteria.description': 'Critérios de filtro (JSON/expressão) aplicados a dados/listas.',
|
|
6806
|
+
'inputs.bindingOrder.label': 'Ordem de binding',
|
|
6807
|
+
'inputs.bindingOrder.description': 'Ordem de avaliação/atribuição das entradas do componente.',
|
|
6808
|
+
'inputs.instanceId.label': 'ID da instância',
|
|
6809
|
+
'inputs.instanceId.description': 'Identificador estável da instância do widget para telemetria, testes e correlação.',
|
|
6810
|
+
'inputs.analyticsId.label': 'ID de analytics',
|
|
6811
|
+
'inputs.analyticsId.description': 'Identificador lógico usado para telemetria e análise agregada do widget.',
|
|
6812
|
+
'inputs.ariaLabel.label': 'Rótulo acessível',
|
|
6813
|
+
'inputs.ariaLabel.description': 'Rótulo acessível aplicado ao bloco editorial quando necessário.',
|
|
6814
|
+
'inputs.contentFormat.label': 'Formato do conteúdo',
|
|
6815
|
+
'inputs.contentFormat.description': 'Formato editorial permitido para renderização do conteúdo (ex.: plain, markdown).',
|
|
6816
|
+
'inputs.links.label': 'Links',
|
|
6817
|
+
'inputs.links.description': 'Lista de links editoriais com política explícita de navegação e segurança.',
|
|
6818
|
+
'outputs.rowClick.label': 'Clique na linha',
|
|
6819
|
+
'outputs.rowClick.description': 'Emitido ao clicar/selecionar uma linha na tabela.',
|
|
6820
|
+
'outputs.widgetEvent.label': 'Evento do widget',
|
|
6821
|
+
'outputs.widgetEvent.description': 'Eventos internos reemitidos com contexto do container.',
|
|
6822
|
+
'outputs.submit.label': 'Enviar',
|
|
6823
|
+
'outputs.submit.description': 'Emitido quando o formulário é enviado.',
|
|
6824
|
+
'outputs.valueChange.label': 'Mudança de valor',
|
|
6825
|
+
'outputs.valueChange.description': 'Emitido quando o valor é alterado.',
|
|
6826
|
+
'outputs.selectionChange.label': 'Mudança de seleção',
|
|
6827
|
+
'outputs.selectionChange.description': 'Alterações na seleção de itens/linhas.',
|
|
6828
|
+
'outputs.loaded.label': 'Carregado',
|
|
6829
|
+
'outputs.loaded.description': 'Sinaliza conclusão de carregamento inicial.',
|
|
6830
|
+
'outputs.error.label': 'Erro',
|
|
6831
|
+
'outputs.error.description': 'Erros durante operações/ações.',
|
|
6832
|
+
'outputs.change.label': 'Alteração',
|
|
6833
|
+
'outputs.change.description': 'Eventos genéricos de alteração.',
|
|
6834
|
+
},
|
|
6835
|
+
'en-US': {
|
|
6836
|
+
'inputs.resourceId.label': 'Resource ID',
|
|
6837
|
+
'inputs.resourceId.description': 'Unique identifier of the current resource (for example, payload.id).',
|
|
6838
|
+
'inputs.resourcePath.label': 'Resource path',
|
|
6839
|
+
'inputs.resourcePath.description': 'Endpoint/base or resource path (for example, human-resources/funcionarios).',
|
|
6840
|
+
'inputs.formId.label': 'Form',
|
|
6841
|
+
'inputs.formId.description': 'Identifier of the form to display or update.',
|
|
6842
|
+
'inputs.tableId.label': 'Table',
|
|
6843
|
+
'inputs.tableId.description': 'Identifier of the table to display or update.',
|
|
6844
|
+
'inputs.config.label': 'Configuration',
|
|
6845
|
+
'inputs.config.description': 'Declarative configuration object for the component.',
|
|
6846
|
+
'inputs.mode.label': 'Mode',
|
|
6847
|
+
'inputs.mode.description': 'Operation mode (for example, view, edit, create).',
|
|
6848
|
+
'inputs.filterCriteria.label': 'Filter',
|
|
6849
|
+
'inputs.filterCriteria.description': 'Filter criteria (JSON/expression) applied to data or lists.',
|
|
6850
|
+
'inputs.bindingOrder.label': 'Binding order',
|
|
6851
|
+
'inputs.bindingOrder.description': 'Evaluation/assignment order for component inputs.',
|
|
6852
|
+
'inputs.instanceId.label': 'Instance ID',
|
|
6853
|
+
'inputs.instanceId.description': 'Stable widget instance identifier for telemetry, tests and correlation.',
|
|
6854
|
+
'inputs.analyticsId.label': 'Analytics ID',
|
|
6855
|
+
'inputs.analyticsId.description': 'Logical identifier used for telemetry and aggregate widget analysis.',
|
|
6856
|
+
'inputs.ariaLabel.label': 'Accessible label',
|
|
6857
|
+
'inputs.ariaLabel.description': 'Accessible label applied to the editorial block when needed.',
|
|
6858
|
+
'inputs.contentFormat.label': 'Content format',
|
|
6859
|
+
'inputs.contentFormat.description': 'Allowed editorial format for rendering content (for example, plain, markdown).',
|
|
6860
|
+
'inputs.links.label': 'Links',
|
|
6861
|
+
'inputs.links.description': 'List of editorial links with explicit navigation and security policy.',
|
|
6862
|
+
'outputs.rowClick.label': 'Row click',
|
|
6863
|
+
'outputs.rowClick.description': 'Emitted when a table row is clicked or selected.',
|
|
6864
|
+
'outputs.widgetEvent.label': 'Widget event',
|
|
6865
|
+
'outputs.widgetEvent.description': 'Internal events re-emitted with container context.',
|
|
6866
|
+
'outputs.submit.label': 'Submit',
|
|
6867
|
+
'outputs.submit.description': 'Emitted when the form is submitted.',
|
|
6868
|
+
'outputs.valueChange.label': 'Value change',
|
|
6869
|
+
'outputs.valueChange.description': 'Emitted when the value changes.',
|
|
6870
|
+
'outputs.selectionChange.label': 'Selection change',
|
|
6871
|
+
'outputs.selectionChange.description': 'Changes in item or row selection.',
|
|
6872
|
+
'outputs.loaded.label': 'Loaded',
|
|
6873
|
+
'outputs.loaded.description': 'Signals completion of initial loading.',
|
|
6874
|
+
'outputs.error.label': 'Error',
|
|
6875
|
+
'outputs.error.description': 'Errors during operations/actions.',
|
|
6876
|
+
'outputs.change.label': 'Change',
|
|
6877
|
+
'outputs.change.description': 'Generic change events.',
|
|
6878
|
+
},
|
|
6879
|
+
},
|
|
6880
|
+
},
|
|
6881
|
+
};
|
|
6882
|
+
|
|
6781
6883
|
function interpolatePraxisTranslation(template, params) {
|
|
6782
6884
|
if (!template || !params)
|
|
6783
6885
|
return template;
|
|
@@ -6938,7 +7040,7 @@ class PraxisI18nService {
|
|
|
6938
7040
|
: this.configs
|
|
6939
7041
|
? [this.configs]
|
|
6940
7042
|
: [];
|
|
6941
|
-
return mergePraxisI18nConfigs(globalI18n, ...cfgs);
|
|
7043
|
+
return mergePraxisI18nConfigs(COMPONENT_METADATA_REGISTRY_I18N_CONFIG, globalI18n, ...cfgs);
|
|
6942
7044
|
}
|
|
6943
7045
|
lookup(key, locale, namespace) {
|
|
6944
7046
|
const cfg = this.getConfig();
|
|
@@ -7024,40 +7126,44 @@ class ComponentMetadataRegistry {
|
|
|
7024
7126
|
/** Register a component metadata entry. */
|
|
7025
7127
|
register(meta) {
|
|
7026
7128
|
const normalized = this.normalizeMeta(meta);
|
|
7129
|
+
this.assertCanRegisterMetadata(normalized);
|
|
7027
7130
|
this.rawMetadataMap.set(normalized.id, meta);
|
|
7028
7131
|
this.metadataMap.set(normalized.id, normalized);
|
|
7029
7132
|
const legacyControlType = normalized.componentType ? this.normalizeComponentType(normalized.componentType) : undefined;
|
|
7030
|
-
if (legacyControlType
|
|
7133
|
+
if (legacyControlType) {
|
|
7031
7134
|
this.legacyControlTypeIndex.set(legacyControlType, normalized.id);
|
|
7032
7135
|
}
|
|
7033
7136
|
}
|
|
7034
7137
|
/** Register an editorial descriptor that can later be resolved by controlType or metadata id. */
|
|
7035
7138
|
registerEditorial(meta) {
|
|
7036
7139
|
const normalized = this.normalizeEditorialDescriptor(meta);
|
|
7140
|
+
this.assertCanRegisterEditorialMetadata(normalized);
|
|
7037
7141
|
this.editorialMetadataMap.set(normalized.componentMetaId, normalized);
|
|
7038
7142
|
this.editorialControlTypeIndex.set(this.normalizeComponentType(normalized.controlType), normalized.componentMetaId);
|
|
7039
7143
|
}
|
|
7040
7144
|
/** Retrieve metadata by its unique id. */
|
|
7041
7145
|
get(id) {
|
|
7042
|
-
|
|
7146
|
+
const meta = this.metadataMap.get(this.normalizeComponentType(id));
|
|
7147
|
+
return meta ? this.cloneComponentDocMeta(meta) : undefined;
|
|
7043
7148
|
}
|
|
7044
7149
|
/** Retrieve an editorial descriptor by its id or controlType. */
|
|
7045
7150
|
getEditorial(idOrControlType) {
|
|
7046
7151
|
const normalized = this.normalizeComponentType(idOrControlType);
|
|
7047
7152
|
const direct = this.editorialMetadataMap.get(normalized);
|
|
7048
7153
|
if (direct) {
|
|
7049
|
-
return direct;
|
|
7154
|
+
return this.cloneEditorialDescriptor(direct);
|
|
7050
7155
|
}
|
|
7051
7156
|
const resolvedId = this.editorialControlTypeIndex.get(normalized);
|
|
7052
|
-
|
|
7157
|
+
const meta = resolvedId ? this.editorialMetadataMap.get(resolvedId) : undefined;
|
|
7158
|
+
return meta ? this.cloneEditorialDescriptor(meta) : undefined;
|
|
7053
7159
|
}
|
|
7054
7160
|
/** List all registered metadata entries. */
|
|
7055
7161
|
getAll() {
|
|
7056
|
-
return Array.from(this.metadataMap.values());
|
|
7162
|
+
return Array.from(this.metadataMap.values()).map((meta) => this.cloneComponentDocMeta(meta));
|
|
7057
7163
|
}
|
|
7058
7164
|
/** List all registered editorial descriptors. */
|
|
7059
7165
|
getAllEditorial() {
|
|
7060
|
-
return Array.from(this.editorialMetadataMap.values());
|
|
7166
|
+
return Array.from(this.editorialMetadataMap.values()).map((meta) => this.cloneEditorialDescriptor(meta));
|
|
7061
7167
|
}
|
|
7062
7168
|
/**
|
|
7063
7169
|
* Resolve metadata editorial already localized for a component id, controlType or raw metadata.
|
|
@@ -7083,34 +7189,34 @@ class ComponentMetadataRegistry {
|
|
|
7083
7189
|
normalizeMeta(meta) {
|
|
7084
7190
|
const normalizedId = this.normalizeComponentType(meta.id);
|
|
7085
7191
|
const inputDefaults = {
|
|
7086
|
-
resourceId:
|
|
7087
|
-
resourcePath:
|
|
7088
|
-
formId:
|
|
7089
|
-
tableId:
|
|
7090
|
-
config:
|
|
7091
|
-
mode:
|
|
7092
|
-
filterCriteria:
|
|
7093
|
-
bindingOrder:
|
|
7192
|
+
resourceId: this.defaultCopy('inputs.resourceId', 'ID do recurso', 'Identificador único do recurso atual (ex.: payload.id).'),
|
|
7193
|
+
resourcePath: this.defaultCopy('inputs.resourcePath', 'Caminho do recurso', 'Endpoint/base ou caminho do recurso (ex.: human-resources/funcionarios).'),
|
|
7194
|
+
formId: this.defaultCopy('inputs.formId', 'Formulário', 'Identificador do formulário a ser exibido/atualizado.'),
|
|
7195
|
+
tableId: this.defaultCopy('inputs.tableId', 'Tabela', 'Identificador da tabela a ser exibida/atualizada.'),
|
|
7196
|
+
config: this.defaultCopy('inputs.config', 'Configuração', 'Objeto de configuração declarativo para o componente.'),
|
|
7197
|
+
mode: this.defaultCopy('inputs.mode', 'Modo', 'Modo de operação (ex.: view, edit, create).'),
|
|
7198
|
+
filterCriteria: this.defaultCopy('inputs.filterCriteria', 'Filtro', 'Critérios de filtro (JSON/expressão) aplicados a dados/listas.'),
|
|
7199
|
+
bindingOrder: this.defaultCopy('inputs.bindingOrder', 'Ordem de binding', 'Ordem de avaliação/atribuição das entradas do componente.'),
|
|
7094
7200
|
};
|
|
7095
7201
|
const editorialInputDefaults = {
|
|
7096
|
-
instanceId:
|
|
7097
|
-
analyticsId:
|
|
7098
|
-
ariaLabel:
|
|
7099
|
-
contentFormat:
|
|
7100
|
-
links:
|
|
7202
|
+
instanceId: this.defaultCopy('inputs.instanceId', 'ID da instância', 'Identificador estável da instância do widget para telemetria, testes e correlação.'),
|
|
7203
|
+
analyticsId: this.defaultCopy('inputs.analyticsId', 'ID de analytics', 'Identificador lógico usado para telemetria e análise agregada do widget.'),
|
|
7204
|
+
ariaLabel: this.defaultCopy('inputs.ariaLabel', 'Rótulo acessível', 'Rótulo acessível aplicado ao bloco editorial quando necessário.'),
|
|
7205
|
+
contentFormat: this.defaultCopy('inputs.contentFormat', 'Formato do conteúdo', 'Formato editorial permitido para renderização do conteúdo (ex.: plain, markdown).'),
|
|
7206
|
+
links: this.defaultCopy('inputs.links', 'Links', 'Lista de links editoriais com política explícita de navegação e segurança.'),
|
|
7101
7207
|
};
|
|
7102
7208
|
const effectiveInputDefaults = isEditorialComponentMeta(meta)
|
|
7103
7209
|
? { ...inputDefaults, ...editorialInputDefaults }
|
|
7104
7210
|
: inputDefaults;
|
|
7105
7211
|
const outputDefaults = {
|
|
7106
|
-
rowClick:
|
|
7107
|
-
widgetEvent:
|
|
7108
|
-
submit:
|
|
7109
|
-
valueChange:
|
|
7110
|
-
selectionChange:
|
|
7111
|
-
loaded:
|
|
7112
|
-
error:
|
|
7113
|
-
change:
|
|
7212
|
+
rowClick: this.defaultCopy('outputs.rowClick', 'Clique na linha', 'Emitido ao clicar/selecionar uma linha na tabela.'),
|
|
7213
|
+
widgetEvent: this.defaultCopy('outputs.widgetEvent', 'Evento do widget', 'Eventos internos reemitidos com contexto do container.'),
|
|
7214
|
+
submit: this.defaultCopy('outputs.submit', 'Enviar', 'Emitido quando o formulário é enviado.'),
|
|
7215
|
+
valueChange: this.defaultCopy('outputs.valueChange', 'Mudança de valor', 'Emitido quando o valor é alterado.'),
|
|
7216
|
+
selectionChange: this.defaultCopy('outputs.selectionChange', 'Mudança de seleção', 'Alterações na seleção de itens/linhas.'),
|
|
7217
|
+
loaded: this.defaultCopy('outputs.loaded', 'Carregado', 'Sinaliza conclusão de carregamento inicial.'),
|
|
7218
|
+
error: this.defaultCopy('outputs.error', 'Erro', 'Erros durante operações/ações.'),
|
|
7219
|
+
change: this.defaultCopy('outputs.change', 'Alteração', 'Eventos genéricos de alteração.'),
|
|
7114
7220
|
};
|
|
7115
7221
|
const normInputs = (meta.inputs || []).map((inp) => {
|
|
7116
7222
|
const d = effectiveInputDefaults[inp.name];
|
|
@@ -7118,8 +7224,8 @@ class ComponentMetadataRegistry {
|
|
|
7118
7224
|
return inp;
|
|
7119
7225
|
return {
|
|
7120
7226
|
...inp,
|
|
7121
|
-
label: inp.label || d.label,
|
|
7122
|
-
description: inp.description || d.description,
|
|
7227
|
+
label: inp.label || this.resolveDefaultCopy(d.label),
|
|
7228
|
+
description: inp.description || this.resolveDefaultCopy(d.description),
|
|
7123
7229
|
};
|
|
7124
7230
|
});
|
|
7125
7231
|
const normOutputs = (meta.outputs || []).map((out) => {
|
|
@@ -7128,8 +7234,8 @@ class ComponentMetadataRegistry {
|
|
|
7128
7234
|
return out;
|
|
7129
7235
|
return {
|
|
7130
7236
|
...out,
|
|
7131
|
-
label: out.label || d.label,
|
|
7132
|
-
description: out.description || d.description,
|
|
7237
|
+
label: out.label || this.resolveDefaultCopy(d.label),
|
|
7238
|
+
description: out.description || this.resolveDefaultCopy(d.description),
|
|
7133
7239
|
};
|
|
7134
7240
|
});
|
|
7135
7241
|
const normPorts = meta.ports?.map((port) => this.clonePortContract(port));
|
|
@@ -7158,6 +7264,29 @@ class ComponentMetadataRegistry {
|
|
|
7158
7264
|
tags: meta.tags?.slice(),
|
|
7159
7265
|
};
|
|
7160
7266
|
}
|
|
7267
|
+
assertCanRegisterMetadata(meta) {
|
|
7268
|
+
if (this.metadataMap.has(meta.id)) {
|
|
7269
|
+
throw new Error(`Component metadata id collision: ${meta.id}`);
|
|
7270
|
+
}
|
|
7271
|
+
const legacyControlType = meta.componentType ? this.normalizeComponentType(meta.componentType) : undefined;
|
|
7272
|
+
if (!legacyControlType) {
|
|
7273
|
+
return;
|
|
7274
|
+
}
|
|
7275
|
+
const existingId = this.legacyControlTypeIndex.get(legacyControlType);
|
|
7276
|
+
if (existingId && existingId !== meta.id) {
|
|
7277
|
+
throw new Error(`Component metadata legacy componentType collision: ${legacyControlType}`);
|
|
7278
|
+
}
|
|
7279
|
+
}
|
|
7280
|
+
assertCanRegisterEditorialMetadata(meta) {
|
|
7281
|
+
if (this.editorialMetadataMap.has(meta.componentMetaId)) {
|
|
7282
|
+
throw new Error(`Component editorial metadata id collision: ${meta.componentMetaId}`);
|
|
7283
|
+
}
|
|
7284
|
+
const controlType = this.normalizeComponentType(meta.controlType);
|
|
7285
|
+
const existingId = this.editorialControlTypeIndex.get(controlType);
|
|
7286
|
+
if (existingId && existingId !== meta.componentMetaId) {
|
|
7287
|
+
throw new Error(`Component editorial controlType collision: ${controlType}`);
|
|
7288
|
+
}
|
|
7289
|
+
}
|
|
7161
7290
|
resolveEditorialDescriptor(meta, options) {
|
|
7162
7291
|
return {
|
|
7163
7292
|
controlType: meta.controlType,
|
|
@@ -7236,6 +7365,31 @@ class ComponentMetadataRegistry {
|
|
|
7236
7365
|
const resolved = this.resolveTextValue(value, undefined, options);
|
|
7237
7366
|
return resolved || undefined;
|
|
7238
7367
|
}
|
|
7368
|
+
defaultCopy(keyPrefix, label, description) {
|
|
7369
|
+
return {
|
|
7370
|
+
label: {
|
|
7371
|
+
key: `${keyPrefix}.label`,
|
|
7372
|
+
text: label,
|
|
7373
|
+
},
|
|
7374
|
+
...(description
|
|
7375
|
+
? {
|
|
7376
|
+
description: {
|
|
7377
|
+
key: `${keyPrefix}.description`,
|
|
7378
|
+
text: description,
|
|
7379
|
+
},
|
|
7380
|
+
}
|
|
7381
|
+
: {}),
|
|
7382
|
+
};
|
|
7383
|
+
}
|
|
7384
|
+
resolveDefaultCopy(value) {
|
|
7385
|
+
if (!value) {
|
|
7386
|
+
return undefined;
|
|
7387
|
+
}
|
|
7388
|
+
if (!this.i18n) {
|
|
7389
|
+
return typeof value === 'string' ? value : value.text ?? value.key ?? '';
|
|
7390
|
+
}
|
|
7391
|
+
return this.i18n.resolve(value, undefined, COMPONENT_METADATA_REGISTRY_I18N_NAMESPACE);
|
|
7392
|
+
}
|
|
7239
7393
|
isEditorialDescriptor(value) {
|
|
7240
7394
|
return 'controlType' in value && 'componentMetaId' in value;
|
|
7241
7395
|
}
|
|
@@ -7256,9 +7410,61 @@ class ComponentMetadataRegistry {
|
|
|
7256
7410
|
...(port.schema ? { schema: { ...port.schema } } : {}),
|
|
7257
7411
|
...(compatibility ? { compatibility } : {}),
|
|
7258
7412
|
...(port.exposure ? { exposure: { ...port.exposure } } : {}),
|
|
7259
|
-
...(port.examples ? { examples: port.examples
|
|
7413
|
+
...(port.examples ? { examples: this.cloneValue(port.examples) } : {}),
|
|
7414
|
+
};
|
|
7415
|
+
}
|
|
7416
|
+
cloneComponentDocMeta(meta) {
|
|
7417
|
+
return {
|
|
7418
|
+
...meta,
|
|
7419
|
+
inputs: meta.inputs?.map((input) => ({
|
|
7420
|
+
...input,
|
|
7421
|
+
...(input.default !== undefined ? { default: this.cloneValue(input.default) } : {}),
|
|
7422
|
+
})),
|
|
7423
|
+
outputs: meta.outputs?.map((output) => ({ ...output })),
|
|
7424
|
+
actions: meta.actions?.map((action) => ({
|
|
7425
|
+
...action,
|
|
7426
|
+
...(action.payloadSchema ? { payloadSchema: this.cloneValue(action.payloadSchema) } : {}),
|
|
7427
|
+
})),
|
|
7428
|
+
commands: meta.commands?.map((command) => ({
|
|
7429
|
+
...command,
|
|
7430
|
+
...(command.payloadSchema ? { payloadSchema: this.cloneValue(command.payloadSchema) } : {}),
|
|
7431
|
+
})),
|
|
7432
|
+
ports: meta.ports?.map((port) => this.clonePortContract(port)),
|
|
7433
|
+
configEditor: meta.configEditor ? { ...meta.configEditor } : undefined,
|
|
7434
|
+
authoringManifestRef: meta.authoringManifestRef ? { ...meta.authoringManifestRef } : undefined,
|
|
7435
|
+
tags: meta.tags?.slice(),
|
|
7436
|
+
insertionPresets: meta.insertionPresets?.map((preset) => ({
|
|
7437
|
+
...preset,
|
|
7438
|
+
...(preset.inputs ? { inputs: this.cloneValue(preset.inputs) } : {}),
|
|
7439
|
+
})),
|
|
7440
|
+
layoutHints: meta.layoutHints ? { ...meta.layoutHints } : undefined,
|
|
7441
|
+
};
|
|
7442
|
+
}
|
|
7443
|
+
cloneEditorialDescriptor(meta) {
|
|
7444
|
+
return {
|
|
7445
|
+
...meta,
|
|
7446
|
+
tags: meta.tags?.slice(),
|
|
7447
|
+
inputs: meta.inputs?.map((input) => ({
|
|
7448
|
+
...input,
|
|
7449
|
+
...(input.default !== undefined ? { default: this.cloneValue(input.default) } : {}),
|
|
7450
|
+
})),
|
|
7451
|
+
outputs: meta.outputs?.map((output) => ({
|
|
7452
|
+
...output,
|
|
7453
|
+
...(output.default !== undefined ? { default: this.cloneValue(output.default) } : {}),
|
|
7454
|
+
})),
|
|
7260
7455
|
};
|
|
7261
7456
|
}
|
|
7457
|
+
cloneValue(value) {
|
|
7458
|
+
if (value == null || typeof value !== 'object') {
|
|
7459
|
+
return value;
|
|
7460
|
+
}
|
|
7461
|
+
try {
|
|
7462
|
+
return structuredClone(value);
|
|
7463
|
+
}
|
|
7464
|
+
catch {
|
|
7465
|
+
return JSON.parse(JSON.stringify(value));
|
|
7466
|
+
}
|
|
7467
|
+
}
|
|
7262
7468
|
normalizeComponentType(type) {
|
|
7263
7469
|
return this.componentTypeAliases[type] ?? type;
|
|
7264
7470
|
}
|
|
@@ -13178,8 +13384,11 @@ class DomainCatalogService {
|
|
|
13178
13384
|
const params = new HttpParams()
|
|
13179
13385
|
.set('serviceKey', options.serviceKey || DEFAULT_SERVICE_KEY)
|
|
13180
13386
|
.set('limit', String(options.limit ?? DEFAULT_RELEASE_LIMIT));
|
|
13387
|
+
const scopedParams = options.resourceKey
|
|
13388
|
+
? params.set('resourceKey', options.resourceKey)
|
|
13389
|
+
: params;
|
|
13181
13390
|
return this.http.get(this.discovery.resolveHref(RELEASES_HREF, options), {
|
|
13182
|
-
params,
|
|
13391
|
+
params: scopedParams,
|
|
13183
13392
|
headers: this.resolveHeaders(options),
|
|
13184
13393
|
});
|
|
13185
13394
|
}
|
|
@@ -13202,7 +13411,8 @@ class DomainCatalogService {
|
|
|
13202
13411
|
return this.listReleases(options).pipe(map$1((releases) => releases.find((release) => this.releaseMatchesResource(release, resourceKey)) ?? null));
|
|
13203
13412
|
}
|
|
13204
13413
|
getGovernanceContext(options) {
|
|
13205
|
-
|
|
13414
|
+
const { limit: itemLimit, ...releaseOptions } = options;
|
|
13415
|
+
return this.findLatestReleaseForResource(options.resourceKey, releaseOptions).pipe(switchMap$1((release) => {
|
|
13206
13416
|
if (!release?.releaseKey) {
|
|
13207
13417
|
return of({
|
|
13208
13418
|
resourceKey: options.resourceKey,
|
|
@@ -13215,7 +13425,7 @@ class DomainCatalogService {
|
|
|
13215
13425
|
...options,
|
|
13216
13426
|
type: 'governance',
|
|
13217
13427
|
query: options.query,
|
|
13218
|
-
limit:
|
|
13428
|
+
limit: itemLimit ?? DEFAULT_ITEM_LIMIT,
|
|
13219
13429
|
}).pipe(map$1((items) => ({
|
|
13220
13430
|
resourceKey: options.resourceKey,
|
|
13221
13431
|
query: options.query,
|
|
@@ -14292,6 +14502,10 @@ class RelatedResourceSurfaceResolverService {
|
|
|
14292
14502
|
tableId: request.tableId || this.buildStableTableId(surface, relatedResource, parentResourceId),
|
|
14293
14503
|
config: this.buildTableConfig(surface, relatedResource, request),
|
|
14294
14504
|
queryContext,
|
|
14505
|
+
enableCustomization: request.enableCustomization === true,
|
|
14506
|
+
...(this.trim(request.authoringCapability)
|
|
14507
|
+
? { authoringCapability: this.trim(request.authoringCapability) }
|
|
14508
|
+
: {}),
|
|
14295
14509
|
};
|
|
14296
14510
|
payload.context = {
|
|
14297
14511
|
...(payload.context || {}),
|
|
@@ -14319,6 +14533,8 @@ class RelatedResourceSurfaceResolverService {
|
|
|
14319
14533
|
const hasTableConfig = !!tableConfig && typeof tableConfig === 'object' && !Array.isArray(tableConfig);
|
|
14320
14534
|
const hasEmptyState = !!emptyState && typeof emptyState === 'object' && !Array.isArray(emptyState);
|
|
14321
14535
|
const base = hasTableConfig ? tableConfig : {};
|
|
14536
|
+
const toolbar = this.objectValue(base['toolbar']);
|
|
14537
|
+
const columnsVisibility = this.objectValue(toolbar['columnsVisibility']);
|
|
14322
14538
|
const behavior = this.objectValue(base['behavior']);
|
|
14323
14539
|
const currentEmptyState = this.objectValue(behavior['emptyState']);
|
|
14324
14540
|
const hasCurrentEmptyState = Object.keys(currentEmptyState).length > 0;
|
|
@@ -14335,6 +14551,13 @@ class RelatedResourceSurfaceResolverService {
|
|
|
14335
14551
|
}
|
|
14336
14552
|
return {
|
|
14337
14553
|
...base,
|
|
14554
|
+
toolbar: {
|
|
14555
|
+
...toolbar,
|
|
14556
|
+
columnsVisibility: {
|
|
14557
|
+
enabled: false,
|
|
14558
|
+
...columnsVisibility,
|
|
14559
|
+
},
|
|
14560
|
+
},
|
|
14338
14561
|
behavior: {
|
|
14339
14562
|
...behavior,
|
|
14340
14563
|
emptyState: resolvedEmptyState,
|
|
@@ -14726,6 +14949,7 @@ class SurfaceOpenMaterializerService {
|
|
|
14726
14949
|
'metadata',
|
|
14727
14950
|
'context',
|
|
14728
14951
|
'enableCustomization',
|
|
14952
|
+
'authoringCapability',
|
|
14729
14953
|
],
|
|
14730
14954
|
outputs: {
|
|
14731
14955
|
afterOpen: 'emit',
|
|
@@ -14771,7 +14995,8 @@ class SurfaceOpenMaterializerService {
|
|
|
14771
14995
|
relatedResourceCrud: true,
|
|
14772
14996
|
},
|
|
14773
14997
|
},
|
|
14774
|
-
enableCustomization: previousInputs['enableCustomization'] ??
|
|
14998
|
+
enableCustomization: previousInputs['enableCustomization'] ?? false,
|
|
14999
|
+
authoringCapability: previousInputs['authoringCapability'] ?? undefined,
|
|
14775
15000
|
},
|
|
14776
15001
|
},
|
|
14777
15002
|
context: this.mergeMaterializationContext(payload, {
|
|
@@ -14801,6 +15026,7 @@ class SurfaceOpenMaterializerService {
|
|
|
14801
15026
|
'data',
|
|
14802
15027
|
'config',
|
|
14803
15028
|
'enableCustomization',
|
|
15029
|
+
'authoringCapability',
|
|
14804
15030
|
],
|
|
14805
15031
|
outputs: {
|
|
14806
15032
|
rowClick: 'emit',
|
|
@@ -14819,7 +15045,7 @@ class SurfaceOpenMaterializerService {
|
|
|
14819
15045
|
icon: payload.icon,
|
|
14820
15046
|
data,
|
|
14821
15047
|
config: this.buildLocalTableConfig(fields, data, payload),
|
|
14822
|
-
enableCustomization: previousInputs['enableCustomization'] ??
|
|
15048
|
+
enableCustomization: previousInputs['enableCustomization'] ?? false,
|
|
14823
15049
|
},
|
|
14824
15050
|
},
|
|
14825
15051
|
context: this.mergeMaterializationContext(payload, {
|
|
@@ -14884,6 +15110,7 @@ class SurfaceOpenMaterializerService {
|
|
|
14884
15110
|
'subtitle',
|
|
14885
15111
|
'icon',
|
|
14886
15112
|
'enableCustomization',
|
|
15113
|
+
'authoringCapability',
|
|
14887
15114
|
'dense',
|
|
14888
15115
|
'horizontalScroll',
|
|
14889
15116
|
'autoDelete',
|
|
@@ -17179,6 +17406,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
17179
17406
|
type: Optional
|
|
17180
17407
|
}] }] });
|
|
17181
17408
|
|
|
17409
|
+
const PRAXIS_THEME_SURFACE_DEFAULTS = {
|
|
17410
|
+
surface: 'var(--md-sys-color-surface)',
|
|
17411
|
+
surfaceRaised: 'var(--md-sys-color-surface-container)',
|
|
17412
|
+
surfaceOverlay: 'var(--md-sys-color-surface-container-high)',
|
|
17413
|
+
onSurface: 'var(--md-sys-color-on-surface)',
|
|
17414
|
+
onSurfaceMuted: 'var(--md-sys-color-on-surface-variant)',
|
|
17415
|
+
outline: 'var(--md-sys-color-outline-variant)',
|
|
17416
|
+
outlineStrong: 'var(--md-sys-color-outline)',
|
|
17417
|
+
focusOutline: 'var(--md-sys-color-primary)',
|
|
17418
|
+
elevation: 'var(--md-sys-elevation-level2, 0 8px 24px rgb(0 0 0 / 0.12))',
|
|
17419
|
+
};
|
|
17420
|
+
const PRAXIS_THEME_SURFACE_VARS = {
|
|
17421
|
+
surface: '--praxis-theme-surface',
|
|
17422
|
+
surfaceRaised: '--praxis-theme-surface-raised',
|
|
17423
|
+
surfaceOverlay: '--praxis-theme-surface-overlay',
|
|
17424
|
+
onSurface: '--praxis-theme-on-surface',
|
|
17425
|
+
onSurfaceMuted: '--praxis-theme-on-surface-muted',
|
|
17426
|
+
outline: '--praxis-theme-outline',
|
|
17427
|
+
outlineStrong: '--praxis-theme-outline-strong',
|
|
17428
|
+
focusOutline: '--praxis-theme-focus-outline',
|
|
17429
|
+
elevation: '--praxis-theme-elevation',
|
|
17430
|
+
};
|
|
17431
|
+
function buildPraxisThemeSurfaceCss(tokens = {}) {
|
|
17432
|
+
const resolved = { ...PRAXIS_THEME_SURFACE_DEFAULTS, ...tokens };
|
|
17433
|
+
return `
|
|
17434
|
+
:root {
|
|
17435
|
+
${PRAXIS_THEME_SURFACE_VARS.surface}: ${resolved.surface};
|
|
17436
|
+
${PRAXIS_THEME_SURFACE_VARS.surfaceRaised}: ${resolved.surfaceRaised};
|
|
17437
|
+
${PRAXIS_THEME_SURFACE_VARS.surfaceOverlay}: ${resolved.surfaceOverlay};
|
|
17438
|
+
${PRAXIS_THEME_SURFACE_VARS.onSurface}: ${resolved.onSurface};
|
|
17439
|
+
${PRAXIS_THEME_SURFACE_VARS.onSurfaceMuted}: ${resolved.onSurfaceMuted};
|
|
17440
|
+
${PRAXIS_THEME_SURFACE_VARS.outline}: ${resolved.outline};
|
|
17441
|
+
${PRAXIS_THEME_SURFACE_VARS.outlineStrong}: ${resolved.outlineStrong};
|
|
17442
|
+
${PRAXIS_THEME_SURFACE_VARS.focusOutline}: ${resolved.focusOutline};
|
|
17443
|
+
${PRAXIS_THEME_SURFACE_VARS.elevation}: ${resolved.elevation};
|
|
17444
|
+
}
|
|
17445
|
+
`;
|
|
17446
|
+
}
|
|
17447
|
+
|
|
17182
17448
|
/** Set the current tenant for GlobalConfigService at app boot. */
|
|
17183
17449
|
function provideGlobalConfigTenant(tenantId) {
|
|
17184
17450
|
return {
|
|
@@ -22615,6 +22881,159 @@ function words(input) {
|
|
|
22615
22881
|
return separated ? separated.split(/\s+/) : [];
|
|
22616
22882
|
}
|
|
22617
22883
|
|
|
22884
|
+
const ISO_DATE_ONLY_RE = /^\d{4}-\d{2}-\d{2}$/;
|
|
22885
|
+
function isProgrammaticDateRangePreset(value) {
|
|
22886
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
22887
|
+
return false;
|
|
22888
|
+
}
|
|
22889
|
+
const candidate = value;
|
|
22890
|
+
return (typeof candidate.id === 'string' &&
|
|
22891
|
+
typeof candidate.label === 'string' &&
|
|
22892
|
+
typeof candidate.calculateRange === 'function');
|
|
22893
|
+
}
|
|
22894
|
+
function isStaticDateRangePreset(value) {
|
|
22895
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
22896
|
+
return false;
|
|
22897
|
+
}
|
|
22898
|
+
const candidate = value;
|
|
22899
|
+
return (typeof candidate.id === 'string' &&
|
|
22900
|
+
typeof candidate.label === 'string' &&
|
|
22901
|
+
typeof candidate.startDate === 'string' &&
|
|
22902
|
+
typeof candidate.endDate === 'string' &&
|
|
22903
|
+
typeof candidate.calculateRange !== 'function');
|
|
22904
|
+
}
|
|
22905
|
+
function staticDateRangePresetToPreset(preset, opts = {}) {
|
|
22906
|
+
return {
|
|
22907
|
+
id: preset.id,
|
|
22908
|
+
label: preset.label,
|
|
22909
|
+
icon: preset.icon,
|
|
22910
|
+
description: preset.description,
|
|
22911
|
+
order: preset.order,
|
|
22912
|
+
category: 'custom',
|
|
22913
|
+
calculateRange: () => resolveStaticDateRangePresetValue(preset, opts),
|
|
22914
|
+
};
|
|
22915
|
+
}
|
|
22916
|
+
function resolveDateRangeShortcutPreset(shortcut, builtins, opts = {}) {
|
|
22917
|
+
if (typeof shortcut === 'string') {
|
|
22918
|
+
return builtins[shortcut] ?? null;
|
|
22919
|
+
}
|
|
22920
|
+
if (isProgrammaticDateRangePreset(shortcut)) {
|
|
22921
|
+
return shortcut;
|
|
22922
|
+
}
|
|
22923
|
+
if (isStaticDateRangePreset(shortcut)) {
|
|
22924
|
+
return staticDateRangePresetToPreset(shortcut, opts);
|
|
22925
|
+
}
|
|
22926
|
+
return null;
|
|
22927
|
+
}
|
|
22928
|
+
function resolveDateRangeShortcutPresets(shortcuts, builtins, opts = {}) {
|
|
22929
|
+
const resolved = [];
|
|
22930
|
+
for (const shortcut of shortcuts) {
|
|
22931
|
+
const preset = resolveDateRangeShortcutPreset(shortcut, builtins, opts);
|
|
22932
|
+
if (preset) {
|
|
22933
|
+
resolved.push(preset);
|
|
22934
|
+
}
|
|
22935
|
+
}
|
|
22936
|
+
return resolved;
|
|
22937
|
+
}
|
|
22938
|
+
function resolveStaticDateRangePresetValue(preset, opts) {
|
|
22939
|
+
const timezone = isValidTimeZone(preset.timeZone)
|
|
22940
|
+
? preset.timeZone
|
|
22941
|
+
: opts.timezone;
|
|
22942
|
+
const invalidValue = () => ({
|
|
22943
|
+
startDate: null,
|
|
22944
|
+
endDate: null,
|
|
22945
|
+
preset: preset.id,
|
|
22946
|
+
label: preset.label,
|
|
22947
|
+
timezone,
|
|
22948
|
+
});
|
|
22949
|
+
if (preset.timeZone && !isValidTimeZone(preset.timeZone)) {
|
|
22950
|
+
return invalidValue();
|
|
22951
|
+
}
|
|
22952
|
+
if (!isStaticPresetEffective(preset, opts.referenceDate ?? opts.now ?? new Date(), timezone)) {
|
|
22953
|
+
return invalidValue();
|
|
22954
|
+
}
|
|
22955
|
+
const start = dateOnlyBoundary(preset.startDate, 'start', timezone);
|
|
22956
|
+
const end = dateOnlyBoundary(preset.endDate, 'end', timezone);
|
|
22957
|
+
if (!start || !end || start > end) {
|
|
22958
|
+
return invalidValue();
|
|
22959
|
+
}
|
|
22960
|
+
let value = {
|
|
22961
|
+
startDate: normalizeStart(start, timezone),
|
|
22962
|
+
endDate: normalizeEnd(end, timezone),
|
|
22963
|
+
preset: preset.id,
|
|
22964
|
+
label: preset.label,
|
|
22965
|
+
timezone,
|
|
22966
|
+
};
|
|
22967
|
+
value = clampRange(value, opts.minDate ?? null, opts.maxDate ?? null, timezone);
|
|
22968
|
+
if (!value.startDate || !value.endDate || value.startDate > value.endDate) {
|
|
22969
|
+
return invalidValue();
|
|
22970
|
+
}
|
|
22971
|
+
if (!isRangeValidForFilter(value, opts.dateFilter, opts.strictFilter ?? true)) {
|
|
22972
|
+
return invalidValue();
|
|
22973
|
+
}
|
|
22974
|
+
return value;
|
|
22975
|
+
}
|
|
22976
|
+
function isStaticPresetEffective(preset, referenceDate, timezone) {
|
|
22977
|
+
const reference = normalizeStart(referenceDate, timezone);
|
|
22978
|
+
const effectiveFrom = preset.effectiveFrom
|
|
22979
|
+
? dateOnlyBoundary(preset.effectiveFrom, 'start', timezone)
|
|
22980
|
+
: null;
|
|
22981
|
+
const effectiveTo = preset.effectiveTo
|
|
22982
|
+
? dateOnlyBoundary(preset.effectiveTo, 'end', timezone)
|
|
22983
|
+
: null;
|
|
22984
|
+
if (preset.effectiveFrom && !effectiveFrom) {
|
|
22985
|
+
return false;
|
|
22986
|
+
}
|
|
22987
|
+
if (preset.effectiveTo && !effectiveTo) {
|
|
22988
|
+
return false;
|
|
22989
|
+
}
|
|
22990
|
+
if (effectiveFrom && reference < effectiveFrom) {
|
|
22991
|
+
return false;
|
|
22992
|
+
}
|
|
22993
|
+
if (effectiveTo && reference > effectiveTo) {
|
|
22994
|
+
return false;
|
|
22995
|
+
}
|
|
22996
|
+
return true;
|
|
22997
|
+
}
|
|
22998
|
+
function parseDateOnlyParts(value) {
|
|
22999
|
+
if (!ISO_DATE_ONLY_RE.test(value)) {
|
|
23000
|
+
return null;
|
|
23001
|
+
}
|
|
23002
|
+
const [year, month, day] = value.split('-').map(Number);
|
|
23003
|
+
const date = new Date(Date.UTC(year, month - 1, day));
|
|
23004
|
+
if (date.getUTCFullYear() !== year ||
|
|
23005
|
+
date.getUTCMonth() !== month - 1 ||
|
|
23006
|
+
date.getUTCDate() !== day) {
|
|
23007
|
+
return null;
|
|
23008
|
+
}
|
|
23009
|
+
return { year, monthIndex: month - 1, day };
|
|
23010
|
+
}
|
|
23011
|
+
function dateOnlyBoundary(value, which, timezone) {
|
|
23012
|
+
const parts = parseDateOnlyParts(value);
|
|
23013
|
+
if (!parts) {
|
|
23014
|
+
return null;
|
|
23015
|
+
}
|
|
23016
|
+
if (timezone) {
|
|
23017
|
+
return datePartsToTimeZoneBoundary(parts, which, timezone);
|
|
23018
|
+
}
|
|
23019
|
+
const h = which === 'start' ? 0 : 23;
|
|
23020
|
+
const min = which === 'start' ? 0 : 59;
|
|
23021
|
+
const s = which === 'start' ? 0 : 59;
|
|
23022
|
+
const ms = which === 'start' ? 0 : 999;
|
|
23023
|
+
return new Date(parts.year, parts.monthIndex, parts.day, h, min, s, ms);
|
|
23024
|
+
}
|
|
23025
|
+
function isValidTimeZone(timeZone) {
|
|
23026
|
+
if (!timeZone) {
|
|
23027
|
+
return false;
|
|
23028
|
+
}
|
|
23029
|
+
try {
|
|
23030
|
+
new Intl.DateTimeFormat('en-US', { timeZone }).format(new Date());
|
|
23031
|
+
return true;
|
|
23032
|
+
}
|
|
23033
|
+
catch {
|
|
23034
|
+
return false;
|
|
23035
|
+
}
|
|
23036
|
+
}
|
|
22618
23037
|
/** Normalize a date to start of day (00:00:00.000) respecting timezone if provided. */
|
|
22619
23038
|
function normalizeStart(date, timezone) {
|
|
22620
23039
|
return normalizeAtBoundary(date, 'start', timezone);
|
|
@@ -22626,7 +23045,6 @@ function normalizeEnd(date, timezone) {
|
|
|
22626
23045
|
function normalizeAtBoundary(date, which, timezone) {
|
|
22627
23046
|
const d = new Date(date);
|
|
22628
23047
|
if (timezone) {
|
|
22629
|
-
// Build from local parts interpreted in the target timezone using Intl
|
|
22630
23048
|
const parts = new Intl.DateTimeFormat('en-CA', {
|
|
22631
23049
|
timeZone: timezone,
|
|
22632
23050
|
year: 'numeric',
|
|
@@ -22639,17 +23057,11 @@ function normalizeAtBoundary(date, which, timezone) {
|
|
|
22639
23057
|
acc[p.type] = p.value;
|
|
22640
23058
|
return acc;
|
|
22641
23059
|
}, {});
|
|
22642
|
-
|
|
22643
|
-
|
|
22644
|
-
|
|
22645
|
-
|
|
22646
|
-
|
|
22647
|
-
const s = which === 'start' ? 0 : 59;
|
|
22648
|
-
const ms = which === 'start' ? 0 : 999;
|
|
22649
|
-
// Construct as if in local time then shift using the timezone offset at that instant
|
|
22650
|
-
const local = new Date(y, m, day, h, min, s, ms);
|
|
22651
|
-
const tzOffset = getTimeZoneOffsetMs(timezone, local);
|
|
22652
|
-
return new Date(local.getTime() - tzOffset + local.getTimezoneOffset() * 60_000);
|
|
23060
|
+
return datePartsToTimeZoneBoundary({
|
|
23061
|
+
year: Number(parts.year),
|
|
23062
|
+
monthIndex: Number(parts.month) - 1,
|
|
23063
|
+
day: Number(parts.day),
|
|
23064
|
+
}, which, timezone);
|
|
22653
23065
|
}
|
|
22654
23066
|
if (which === 'start') {
|
|
22655
23067
|
d.setHours(0, 0, 0, 0);
|
|
@@ -22659,8 +23071,16 @@ function normalizeAtBoundary(date, which, timezone) {
|
|
|
22659
23071
|
}
|
|
22660
23072
|
return d;
|
|
22661
23073
|
}
|
|
23074
|
+
function datePartsToTimeZoneBoundary(parts, which, timezone) {
|
|
23075
|
+
const h = which === 'start' ? 0 : 23;
|
|
23076
|
+
const min = which === 'start' ? 0 : 59;
|
|
23077
|
+
const s = which === 'start' ? 0 : 59;
|
|
23078
|
+
const ms = which === 'start' ? 0 : 999;
|
|
23079
|
+
const utcBoundary = new Date(Date.UTC(parts.year, parts.monthIndex, parts.day, h, min, s, ms));
|
|
23080
|
+
const tzOffset = getTimeZoneOffsetMs(timezone, utcBoundary);
|
|
23081
|
+
return new Date(utcBoundary.getTime() - tzOffset);
|
|
23082
|
+
}
|
|
22662
23083
|
function getTimeZoneOffsetMs(timeZone, date) {
|
|
22663
|
-
// Approximate the offset between target timezone and UTC in ms at given date
|
|
22664
23084
|
const f = new Intl.DateTimeFormat('en-US', {
|
|
22665
23085
|
timeZone,
|
|
22666
23086
|
hour12: false,
|
|
@@ -22673,8 +23093,8 @@ function getTimeZoneOffsetMs(timeZone, date) {
|
|
|
22673
23093
|
});
|
|
22674
23094
|
const parts = f.formatToParts(date);
|
|
22675
23095
|
const get = (t) => Number(parts.find((p) => p.type === t)?.value || 0);
|
|
22676
|
-
const
|
|
22677
|
-
return
|
|
23096
|
+
const zonedWallClockAsUtc = Date.UTC(get('year'), get('month') - 1, get('day'), get('hour'), get('minute'), get('second'), date.getUTCMilliseconds());
|
|
23097
|
+
return zonedWallClockAsUtc - date.getTime();
|
|
22678
23098
|
}
|
|
22679
23099
|
function clampRange(range, minDate, maxDate, timezone) {
|
|
22680
23100
|
let { startDate, endDate } = range;
|
|
@@ -37780,6 +38200,8 @@ class PraxisRelatedResourceOutletComponent {
|
|
|
37780
38200
|
icon = input(null, ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
37781
38201
|
tableId = input(null, ...(ngDevMode ? [{ debugName: "tableId" }] : /* istanbul ignore next */ []));
|
|
37782
38202
|
tableConfig = input(null, ...(ngDevMode ? [{ debugName: "tableConfig" }] : /* istanbul ignore next */ []));
|
|
38203
|
+
enableCustomization = input(false, ...(ngDevMode ? [{ debugName: "enableCustomization" }] : /* istanbul ignore next */ []));
|
|
38204
|
+
authoringCapability = input(null, ...(ngDevMode ? [{ debugName: "authoringCapability" }] : /* istanbul ignore next */ []));
|
|
37783
38205
|
emptyState = input(null, ...(ngDevMode ? [{ debugName: "emptyState" }] : /* istanbul ignore next */ []));
|
|
37784
38206
|
queryContext = input(null, ...(ngDevMode ? [{ debugName: "queryContext" }] : /* istanbul ignore next */ []));
|
|
37785
38207
|
mode = input('inline', ...(ngDevMode ? [{ debugName: "mode" }] : /* istanbul ignore next */ []));
|
|
@@ -37815,6 +38237,8 @@ class PraxisRelatedResourceOutletComponent {
|
|
|
37815
38237
|
icon: this.icon(),
|
|
37816
38238
|
tableId: this.tableId(),
|
|
37817
38239
|
tableConfig: this.tableConfig(),
|
|
38240
|
+
enableCustomization: this.enableCustomization(),
|
|
38241
|
+
authoringCapability: this.authoringCapability(),
|
|
37818
38242
|
emptyState: this.emptyState(),
|
|
37819
38243
|
queryContext: this.queryContext(),
|
|
37820
38244
|
apiEndpointKey: this.apiEndpointKey(),
|
|
@@ -38062,7 +38486,7 @@ class PraxisRelatedResourceOutletComponent {
|
|
|
38062
38486
|
return typeof value === 'string' ? value.trim() : '';
|
|
38063
38487
|
}
|
|
38064
38488
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PraxisRelatedResourceOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
38065
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PraxisRelatedResourceOutletComponent, isStandalone: true, selector: "praxis-related-resource-outlet", inputs: { surface: { classPropertyName: "surface", publicName: "surface", isSignal: true, isRequired: false, transformFunction: null }, surfaceId: { classPropertyName: "surfaceId", publicName: "surfaceId", isSignal: true, isRequired: false, transformFunction: null }, surfaceCatalog: { classPropertyName: "surfaceCatalog", publicName: "surfaceCatalog", isSignal: true, isRequired: false, transformFunction: null }, discoverySource: { classPropertyName: "discoverySource", publicName: "discoverySource", isSignal: true, isRequired: false, transformFunction: null }, parentLinks: { classPropertyName: "parentLinks", publicName: "parentLinks", isSignal: true, isRequired: false, transformFunction: null }, apiEndpointKey: { classPropertyName: "apiEndpointKey", publicName: "apiEndpointKey", isSignal: true, isRequired: false, transformFunction: null }, apiUrlEntry: { classPropertyName: "apiUrlEntry", publicName: "apiUrlEntry", isSignal: true, isRequired: false, transformFunction: null }, parentRecord: { classPropertyName: "parentRecord", publicName: "parentRecord", isSignal: true, isRequired: false, transformFunction: null }, parentResourceId: { classPropertyName: "parentResourceId", publicName: "parentResourceId", isSignal: true, isRequired: false, transformFunction: null }, parentResourcePath: { classPropertyName: "parentResourcePath", publicName: "parentResourcePath", isSignal: true, isRequired: false, transformFunction: null }, presentation: { classPropertyName: "presentation", publicName: "presentation", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, tableId: { classPropertyName: "tableId", publicName: "tableId", isSignal: true, isRequired: false, transformFunction: null }, tableConfig: { classPropertyName: "tableConfig", publicName: "tableConfig", isSignal: true, isRequired: false, transformFunction: null }, emptyState: { classPropertyName: "emptyState", publicName: "emptyState", isSignal: true, isRequired: false, transformFunction: null }, queryContext: { classPropertyName: "queryContext", publicName: "queryContext", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, stateReason: { classPropertyName: "stateReason", publicName: "stateReason", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, strictValidation: { classPropertyName: "strictValidation", publicName: "strictValidation", isSignal: true, isRequired: false, transformFunction: null }, ownerWidgetKey: { classPropertyName: "ownerWidgetKey", publicName: "ownerWidgetKey", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { surfaceOpen: "surfaceOpen", widgetEvent: "widgetEvent", resourceEvent: "resourceEvent" }, host: { attributes: { "data-praxis-related-resource-outlet": "core" }, properties: { "attr.data-state": "renderResolution().state" } }, providers: [providePraxisI18nConfig(RELATED_RESOURCE_OUTLET_I18N_CONFIG)], ngImport: i0, template: `
|
|
38489
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PraxisRelatedResourceOutletComponent, isStandalone: true, selector: "praxis-related-resource-outlet", inputs: { surface: { classPropertyName: "surface", publicName: "surface", isSignal: true, isRequired: false, transformFunction: null }, surfaceId: { classPropertyName: "surfaceId", publicName: "surfaceId", isSignal: true, isRequired: false, transformFunction: null }, surfaceCatalog: { classPropertyName: "surfaceCatalog", publicName: "surfaceCatalog", isSignal: true, isRequired: false, transformFunction: null }, discoverySource: { classPropertyName: "discoverySource", publicName: "discoverySource", isSignal: true, isRequired: false, transformFunction: null }, parentLinks: { classPropertyName: "parentLinks", publicName: "parentLinks", isSignal: true, isRequired: false, transformFunction: null }, apiEndpointKey: { classPropertyName: "apiEndpointKey", publicName: "apiEndpointKey", isSignal: true, isRequired: false, transformFunction: null }, apiUrlEntry: { classPropertyName: "apiUrlEntry", publicName: "apiUrlEntry", isSignal: true, isRequired: false, transformFunction: null }, parentRecord: { classPropertyName: "parentRecord", publicName: "parentRecord", isSignal: true, isRequired: false, transformFunction: null }, parentResourceId: { classPropertyName: "parentResourceId", publicName: "parentResourceId", isSignal: true, isRequired: false, transformFunction: null }, parentResourcePath: { classPropertyName: "parentResourcePath", publicName: "parentResourcePath", isSignal: true, isRequired: false, transformFunction: null }, presentation: { classPropertyName: "presentation", publicName: "presentation", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, tableId: { classPropertyName: "tableId", publicName: "tableId", isSignal: true, isRequired: false, transformFunction: null }, tableConfig: { classPropertyName: "tableConfig", publicName: "tableConfig", isSignal: true, isRequired: false, transformFunction: null }, enableCustomization: { classPropertyName: "enableCustomization", publicName: "enableCustomization", isSignal: true, isRequired: false, transformFunction: null }, authoringCapability: { classPropertyName: "authoringCapability", publicName: "authoringCapability", isSignal: true, isRequired: false, transformFunction: null }, emptyState: { classPropertyName: "emptyState", publicName: "emptyState", isSignal: true, isRequired: false, transformFunction: null }, queryContext: { classPropertyName: "queryContext", publicName: "queryContext", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, stateReason: { classPropertyName: "stateReason", publicName: "stateReason", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, strictValidation: { classPropertyName: "strictValidation", publicName: "strictValidation", isSignal: true, isRequired: false, transformFunction: null }, ownerWidgetKey: { classPropertyName: "ownerWidgetKey", publicName: "ownerWidgetKey", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { surfaceOpen: "surfaceOpen", widgetEvent: "widgetEvent", resourceEvent: "resourceEvent" }, host: { attributes: { "data-praxis-related-resource-outlet": "core" }, properties: { "attr.data-state": "renderResolution().state" } }, providers: [providePraxisI18nConfig(RELATED_RESOURCE_OUTLET_I18N_CONFIG)], ngImport: i0, template: `
|
|
38066
38490
|
<section class="pdx-related-outlet" [class.pdx-related-outlet--compact]="compact()">
|
|
38067
38491
|
@if (renderResolution().state === 'ready' && mode() === 'inline' && renderResolution().payload?.widget) {
|
|
38068
38492
|
<ng-container
|
|
@@ -38153,7 +38577,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
38153
38577
|
}
|
|
38154
38578
|
</section>
|
|
38155
38579
|
`, styles: [":host{display:block;min-width:0}.pdx-related-outlet{display:block;min-width:0;color:var(--md-sys-color-on-surface, currentColor)}.pdx-related-outlet__state{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--pdx-related-outlet-gap, 12px);min-height:var(--pdx-related-outlet-min-height, 64px);padding:var(--pdx-related-outlet-padding, 12px);border:1px solid var(--md-sys-color-outline-variant, rgba(0, 0, 0, .16));border-radius:var(--pdx-related-outlet-radius, 8px);background:var(--md-sys-color-surface-container-low, var(--md-sys-color-surface, transparent))}.pdx-related-outlet--compact .pdx-related-outlet__state{min-height:var(--pdx-related-outlet-compact-min-height, 48px);padding:var(--pdx-related-outlet-compact-padding, 8px 10px)}.pdx-related-outlet__state--ready{border-color:var(--md-sys-color-primary, currentColor)}.pdx-related-outlet__icon{display:inline-grid;place-items:center;width:32px;height:32px;color:var(--md-sys-color-primary, currentColor)}.pdx-related-outlet__state--busy .pdx-related-outlet__icon{color:var(--md-sys-color-secondary, currentColor)}.pdx-related-outlet__copy{display:grid;gap:2px;min-width:0}.pdx-related-outlet__copy h3,.pdx-related-outlet__copy p{margin:0}.pdx-related-outlet__copy h3{font:var(--md-sys-typescale-title-small, 600 .95rem/1.25rem system-ui);color:var(--md-sys-color-on-surface, currentColor)}.pdx-related-outlet__copy p{font:var(--md-sys-typescale-body-small, 400 .82rem/1.15rem system-ui);color:var(--md-sys-color-on-surface-variant, currentColor)}@media(max-width:600px){.pdx-related-outlet__state{grid-template-columns:auto minmax(0,1fr)}.pdx-related-outlet__state button{grid-column:1 / -1;justify-self:start}}\n"] }]
|
|
38156
|
-
}], ctorParameters: () => [], propDecorators: { surface: [{ type: i0.Input, args: [{ isSignal: true, alias: "surface", required: false }] }], surfaceId: [{ type: i0.Input, args: [{ isSignal: true, alias: "surfaceId", required: false }] }], surfaceCatalog: [{ type: i0.Input, args: [{ isSignal: true, alias: "surfaceCatalog", required: false }] }], discoverySource: [{ type: i0.Input, args: [{ isSignal: true, alias: "discoverySource", required: false }] }], parentLinks: [{ type: i0.Input, args: [{ isSignal: true, alias: "parentLinks", required: false }] }], apiEndpointKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "apiEndpointKey", required: false }] }], apiUrlEntry: [{ type: i0.Input, args: [{ isSignal: true, alias: "apiUrlEntry", required: false }] }], parentRecord: [{ type: i0.Input, args: [{ isSignal: true, alias: "parentRecord", required: false }] }], parentResourceId: [{ type: i0.Input, args: [{ isSignal: true, alias: "parentResourceId", required: false }] }], parentResourcePath: [{ type: i0.Input, args: [{ isSignal: true, alias: "parentResourcePath", required: false }] }], presentation: [{ type: i0.Input, args: [{ isSignal: true, alias: "presentation", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], tableId: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableId", required: false }] }], tableConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableConfig", required: false }] }], emptyState: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyState", required: false }] }], queryContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "queryContext", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }], stateReason: [{ type: i0.Input, args: [{ isSignal: true, alias: "stateReason", required: false }] }], compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }], strictValidation: [{ type: i0.Input, args: [{ isSignal: true, alias: "strictValidation", required: false }] }], ownerWidgetKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "ownerWidgetKey", required: false }] }], surfaceOpen: [{ type: i0.Output, args: ["surfaceOpen"] }], widgetEvent: [{ type: i0.Output, args: ["widgetEvent"] }], resourceEvent: [{ type: i0.Output, args: ["resourceEvent"] }] } });
|
|
38580
|
+
}], ctorParameters: () => [], propDecorators: { surface: [{ type: i0.Input, args: [{ isSignal: true, alias: "surface", required: false }] }], surfaceId: [{ type: i0.Input, args: [{ isSignal: true, alias: "surfaceId", required: false }] }], surfaceCatalog: [{ type: i0.Input, args: [{ isSignal: true, alias: "surfaceCatalog", required: false }] }], discoverySource: [{ type: i0.Input, args: [{ isSignal: true, alias: "discoverySource", required: false }] }], parentLinks: [{ type: i0.Input, args: [{ isSignal: true, alias: "parentLinks", required: false }] }], apiEndpointKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "apiEndpointKey", required: false }] }], apiUrlEntry: [{ type: i0.Input, args: [{ isSignal: true, alias: "apiUrlEntry", required: false }] }], parentRecord: [{ type: i0.Input, args: [{ isSignal: true, alias: "parentRecord", required: false }] }], parentResourceId: [{ type: i0.Input, args: [{ isSignal: true, alias: "parentResourceId", required: false }] }], parentResourcePath: [{ type: i0.Input, args: [{ isSignal: true, alias: "parentResourcePath", required: false }] }], presentation: [{ type: i0.Input, args: [{ isSignal: true, alias: "presentation", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], tableId: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableId", required: false }] }], tableConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableConfig", required: false }] }], enableCustomization: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableCustomization", required: false }] }], authoringCapability: [{ type: i0.Input, args: [{ isSignal: true, alias: "authoringCapability", required: false }] }], emptyState: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyState", required: false }] }], queryContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "queryContext", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }], stateReason: [{ type: i0.Input, args: [{ isSignal: true, alias: "stateReason", required: false }] }], compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }], strictValidation: [{ type: i0.Input, args: [{ isSignal: true, alias: "strictValidation", required: false }] }], ownerWidgetKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "ownerWidgetKey", required: false }] }], surfaceOpen: [{ type: i0.Output, args: ["surfaceOpen"] }], widgetEvent: [{ type: i0.Output, args: ["widgetEvent"] }], resourceEvent: [{ type: i0.Output, args: ["resourceEvent"] }] } });
|
|
38157
38581
|
|
|
38158
38582
|
const PRAXIS_RELATED_RESOURCE_OUTLET_COMPONENT_METADATA = {
|
|
38159
38583
|
id: 'praxis-related-resource-outlet',
|
|
@@ -38176,6 +38600,8 @@ const PRAXIS_RELATED_RESOURCE_OUTLET_COMPONENT_METADATA = {
|
|
|
38176
38600
|
{ name: 'queryContext', type: 'RelatedResourceQueryContext | null', description: 'QueryContext base mesclado com o filtro canônico da relação filha.' },
|
|
38177
38601
|
{ name: 'tableConfig', type: 'Record<string, unknown> | null', description: 'Configuracao parcial da tabela filha materializada, mesclada ao preset canonico.' },
|
|
38178
38602
|
{ name: 'emptyState', type: 'Record<string, unknown> | null', description: 'Override opcional para behavior.emptyState da tabela filha. Quando omitido, o outlet deriva texto, icone, layout e ação create a partir de surface.relatedResource e dos metadados da surface.' },
|
|
38603
|
+
{ name: 'enableCustomization', type: 'boolean', description: 'Opt-in explicito para authoring governado da tabela filha.', default: false },
|
|
38604
|
+
{ name: 'authoringCapability', type: 'string | null', description: 'Capability publica do EnterpriseRuntimeContext exigida quando o authoring da tabela filha estiver habilitado.' },
|
|
38179
38605
|
{ name: 'mode', type: "'inline' | 'open-action'", description: 'Renderiza a tabela filha inline ou emite payload para abertura host-mediated.', default: 'inline' },
|
|
38180
38606
|
{ name: 'state', type: 'RelatedResourceResolutionState | null', description: 'Override de estado para hosts/outlets que estejam carregando discovery remoto.' },
|
|
38181
38607
|
{ name: 'compact', type: 'boolean', description: 'Reduz densidade visual dos estados não materializados.', default: false },
|
|
@@ -38263,7 +38689,7 @@ class EmptyStateCardComponent {
|
|
|
38263
38689
|
</div>
|
|
38264
38690
|
</mat-card-content>
|
|
38265
38691
|
</mat-card>
|
|
38266
|
-
`, isInline: true, styles: [".empty-card{display:block;margin:var(--pdx-empty-state-margin, 12px);border-color:var(--pdx-empty-state-border-color, var(--md-sys-color-outline-variant));border-radius:var(--pdx-empty-state-radius, 8px);background:var(--pdx-empty-state-bg, var(--md-sys-color-surface));color:var(--pdx-empty-state-fg, var(--md-sys-color-on-surface));--empty-icon-color: var(--pdx-empty-state-icon-color, var(--md-sys-color-on-surface-variant))}.empty-card.empty-inline,.empty-card.variant-inline{margin:var(--pdx-empty-state-inline-margin, 8px 0)}.empty-card.variant-panel{margin:var(--pdx-empty-state-panel-margin, 0)}.empty-card.variant-transparent{margin:var(--pdx-empty-state-transparent-margin, 0);border-color:transparent;background:transparent;box-shadow:none}.content{display:flex;align-items:center;gap:var(--pdx-empty-state-gap, 12px)}.align-center .content{flex-direction:column;justify-content:center;text-align:center}.icon{display:inline-grid;place-items:center;flex:0 0 auto;font-size:var(--pdx-empty-state-icon-size, 32px);width:var(--pdx-empty-state-icon-box-size, 32px);height:var(--pdx-empty-state-icon-box-size, 32px);color:var(--empty-icon-color)}.icon-circle .icon,.icon-soft .icon{width:var(--pdx-empty-state-icon-container-size, 44px);height:var(--pdx-empty-state-icon-container-size, 44px);border-radius:var(--pdx-empty-state-icon-container-radius, 999px);font-size:var(--pdx-empty-state-icon-container-icon-size, 22px)}.icon-circle .icon{border:1px solid var(--pdx-empty-state-icon-container-border-color, color-mix(in srgb, var(--empty-icon-color) 24%, transparent));background:var(--pdx-empty-state-icon-container-bg, color-mix(in srgb, var(--empty-icon-color) 10%, transparent))}.icon-soft .icon{background:var(--pdx-empty-state-icon-container-bg, color-mix(in srgb, var(--empty-icon-color) 10%, transparent))}.texts{display:grid;gap:var(--pdx-empty-state-text-gap, 4px)}.align-center .texts{justify-items:center}.title{margin:0;font-family:var(--pdx-empty-state-title-font-family, var(--md-sys-typescale-title-small-font-family, inherit));font-size:var(--pdx-empty-state-title-font-size, 16px);font-weight:var(--pdx-empty-state-title-font-weight, 600);line-height:var(--pdx-empty-state-title-line-height, 1.3);color:var(--pdx-empty-state-title-color, var(--md-sys-color-on-surface))}.desc{margin:0;max-width:var(--pdx-empty-state-description-max-width, none);font-family:var(--pdx-empty-state-description-font-family, var(--md-sys-typescale-body-medium-font-family, inherit));font-size:var(--pdx-empty-state-description-font-size, inherit);line-height:var(--pdx-empty-state-description-line-height, 1.4);color:var(--pdx-empty-state-description-color, var(--md-sys-color-on-surface-variant))}.actions{display:flex;justify-content:var(--pdx-empty-state-actions-justify, flex-start);gap:var(--pdx-empty-state-actions-gap, 8px);margin-top:var(--pdx-empty-state-actions-margin-top, 12px);flex-wrap:wrap}.align-center .actions{justify-content:var(--pdx-empty-state-actions-justify, center)}.density-compact .content{gap:var(--pdx-empty-state-compact-gap, 8px)}.density-compact .icon{font-size:var(--pdx-empty-state-compact-icon-size, 24px);width:var(--pdx-empty-state-compact-icon-box-size, 24px);height:var(--pdx-empty-state-compact-icon-box-size, 24px)}.density-compact.icon-circle .icon,.density-compact.icon-soft .icon{width:var(--pdx-empty-state-compact-icon-container-size, 36px);height:var(--pdx-empty-state-compact-icon-container-size, 36px);font-size:var(--pdx-empty-state-compact-icon-container-icon-size, 20px)}.empty-card.tone-primary{--empty-icon-color: var(--md-sys-color-primary)}.empty-card.tone-secondary{--empty-icon-color: var(--md-sys-color-secondary)}\n"], dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$1.MatCardContent, selector: "mat-card-content" }, { 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: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
38692
|
+
`, isInline: true, styles: [".empty-card{display:block;margin:var(--pdx-empty-state-margin, 12px);border-color:var(--pdx-empty-state-border-color, var(--md-sys-color-outline-variant));border-radius:var(--pdx-empty-state-radius, 8px);background:var(--pdx-empty-state-bg, var(--md-sys-color-surface));color:var(--pdx-empty-state-fg, var(--md-sys-color-on-surface));--empty-icon-color: var(--pdx-empty-state-icon-color, var(--md-sys-color-on-surface-variant))}.empty-card.empty-inline,.empty-card.variant-inline{margin:var(--pdx-empty-state-inline-margin, 8px 0)}.empty-card.variant-panel{margin:var(--pdx-empty-state-panel-margin, 0)}.empty-card.variant-transparent{margin:var(--pdx-empty-state-transparent-margin, 0);border-color:transparent;background:transparent;box-shadow:none}.content{display:flex;align-items:center;gap:var(--pdx-empty-state-gap, 12px)}.align-center .content{flex-direction:column;justify-content:center;text-align:center}.icon{display:inline-grid;place-items:center;flex:0 0 auto;font-size:var(--pdx-empty-state-icon-size, 32px);width:var(--pdx-empty-state-icon-box-size, 32px);height:var(--pdx-empty-state-icon-box-size, 32px);color:var(--empty-icon-color)}.icon-circle .icon,.icon-soft .icon{width:var(--pdx-empty-state-icon-container-size, 44px);height:var(--pdx-empty-state-icon-container-size, 44px);border-radius:var(--pdx-empty-state-icon-container-radius, 999px);font-size:var(--pdx-empty-state-icon-container-icon-size, 22px)}.icon-circle .icon{border:1px solid var(--pdx-empty-state-icon-container-border-color, color-mix(in srgb, var(--empty-icon-color) 24%, transparent));background:var(--pdx-empty-state-icon-container-bg, color-mix(in srgb, var(--empty-icon-color) 10%, transparent))}.icon-soft .icon{background:var(--pdx-empty-state-icon-container-bg, color-mix(in srgb, var(--empty-icon-color) 10%, transparent))}.texts{display:grid;gap:var(--pdx-empty-state-text-gap, 4px)}.align-center .texts{justify-items:center}.title{margin:0;font-family:var(--pdx-empty-state-title-font-family, var(--md-sys-typescale-title-small-font-family, inherit));font-size:var(--pdx-empty-state-title-font-size, 16px);font-weight:var(--pdx-empty-state-title-font-weight, 600);line-height:var(--pdx-empty-state-title-line-height, 1.3);color:var(--pdx-empty-state-title-color, var(--md-sys-color-on-surface))}.desc{margin:0;max-width:var(--pdx-empty-state-description-max-width, none);font-family:var(--pdx-empty-state-description-font-family, var(--md-sys-typescale-body-medium-font-family, inherit));font-size:var(--pdx-empty-state-description-font-size, inherit);line-height:var(--pdx-empty-state-description-line-height, 1.4);color:var(--pdx-empty-state-description-color, var(--md-sys-color-on-surface-variant))}.actions{display:flex;justify-content:var(--pdx-empty-state-actions-justify, flex-start);gap:var(--pdx-empty-state-actions-gap, 8px);margin-top:var(--pdx-empty-state-actions-margin-top, 12px);flex-wrap:wrap}.actions .mat-mdc-button-base{height:var(--pdx-empty-state-action-height, auto);min-height:var(--pdx-empty-state-action-height, auto)}.align-center .actions{justify-content:var(--pdx-empty-state-actions-justify, center)}.density-compact .content{gap:var(--pdx-empty-state-compact-gap, 8px)}.density-compact .icon{font-size:var(--pdx-empty-state-compact-icon-size, 24px);width:var(--pdx-empty-state-compact-icon-box-size, 24px);height:var(--pdx-empty-state-compact-icon-box-size, 24px)}.density-compact.icon-circle .icon,.density-compact.icon-soft .icon{width:var(--pdx-empty-state-compact-icon-container-size, 36px);height:var(--pdx-empty-state-compact-icon-container-size, 36px);font-size:var(--pdx-empty-state-compact-icon-container-icon-size, 20px)}.empty-card.tone-primary{--empty-icon-color: var(--md-sys-color-primary)}.empty-card.tone-secondary{--empty-icon-color: var(--md-sys-color-secondary)}\n"], dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$1.MatCardContent, selector: "mat-card-content" }, { 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: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
38267
38693
|
}
|
|
38268
38694
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: EmptyStateCardComponent, decorators: [{
|
|
38269
38695
|
type: Component,
|
|
@@ -38314,7 +38740,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
38314
38740
|
</div>
|
|
38315
38741
|
</mat-card-content>
|
|
38316
38742
|
</mat-card>
|
|
38317
|
-
`, styles: [".empty-card{display:block;margin:var(--pdx-empty-state-margin, 12px);border-color:var(--pdx-empty-state-border-color, var(--md-sys-color-outline-variant));border-radius:var(--pdx-empty-state-radius, 8px);background:var(--pdx-empty-state-bg, var(--md-sys-color-surface));color:var(--pdx-empty-state-fg, var(--md-sys-color-on-surface));--empty-icon-color: var(--pdx-empty-state-icon-color, var(--md-sys-color-on-surface-variant))}.empty-card.empty-inline,.empty-card.variant-inline{margin:var(--pdx-empty-state-inline-margin, 8px 0)}.empty-card.variant-panel{margin:var(--pdx-empty-state-panel-margin, 0)}.empty-card.variant-transparent{margin:var(--pdx-empty-state-transparent-margin, 0);border-color:transparent;background:transparent;box-shadow:none}.content{display:flex;align-items:center;gap:var(--pdx-empty-state-gap, 12px)}.align-center .content{flex-direction:column;justify-content:center;text-align:center}.icon{display:inline-grid;place-items:center;flex:0 0 auto;font-size:var(--pdx-empty-state-icon-size, 32px);width:var(--pdx-empty-state-icon-box-size, 32px);height:var(--pdx-empty-state-icon-box-size, 32px);color:var(--empty-icon-color)}.icon-circle .icon,.icon-soft .icon{width:var(--pdx-empty-state-icon-container-size, 44px);height:var(--pdx-empty-state-icon-container-size, 44px);border-radius:var(--pdx-empty-state-icon-container-radius, 999px);font-size:var(--pdx-empty-state-icon-container-icon-size, 22px)}.icon-circle .icon{border:1px solid var(--pdx-empty-state-icon-container-border-color, color-mix(in srgb, var(--empty-icon-color) 24%, transparent));background:var(--pdx-empty-state-icon-container-bg, color-mix(in srgb, var(--empty-icon-color) 10%, transparent))}.icon-soft .icon{background:var(--pdx-empty-state-icon-container-bg, color-mix(in srgb, var(--empty-icon-color) 10%, transparent))}.texts{display:grid;gap:var(--pdx-empty-state-text-gap, 4px)}.align-center .texts{justify-items:center}.title{margin:0;font-family:var(--pdx-empty-state-title-font-family, var(--md-sys-typescale-title-small-font-family, inherit));font-size:var(--pdx-empty-state-title-font-size, 16px);font-weight:var(--pdx-empty-state-title-font-weight, 600);line-height:var(--pdx-empty-state-title-line-height, 1.3);color:var(--pdx-empty-state-title-color, var(--md-sys-color-on-surface))}.desc{margin:0;max-width:var(--pdx-empty-state-description-max-width, none);font-family:var(--pdx-empty-state-description-font-family, var(--md-sys-typescale-body-medium-font-family, inherit));font-size:var(--pdx-empty-state-description-font-size, inherit);line-height:var(--pdx-empty-state-description-line-height, 1.4);color:var(--pdx-empty-state-description-color, var(--md-sys-color-on-surface-variant))}.actions{display:flex;justify-content:var(--pdx-empty-state-actions-justify, flex-start);gap:var(--pdx-empty-state-actions-gap, 8px);margin-top:var(--pdx-empty-state-actions-margin-top, 12px);flex-wrap:wrap}.align-center .actions{justify-content:var(--pdx-empty-state-actions-justify, center)}.density-compact .content{gap:var(--pdx-empty-state-compact-gap, 8px)}.density-compact .icon{font-size:var(--pdx-empty-state-compact-icon-size, 24px);width:var(--pdx-empty-state-compact-icon-box-size, 24px);height:var(--pdx-empty-state-compact-icon-box-size, 24px)}.density-compact.icon-circle .icon,.density-compact.icon-soft .icon{width:var(--pdx-empty-state-compact-icon-container-size, 36px);height:var(--pdx-empty-state-compact-icon-container-size, 36px);font-size:var(--pdx-empty-state-compact-icon-container-icon-size, 20px)}.empty-card.tone-primary{--empty-icon-color: var(--md-sys-color-primary)}.empty-card.tone-secondary{--empty-icon-color: var(--md-sys-color-secondary)}\n"] }]
|
|
38743
|
+
`, styles: [".empty-card{display:block;margin:var(--pdx-empty-state-margin, 12px);border-color:var(--pdx-empty-state-border-color, var(--md-sys-color-outline-variant));border-radius:var(--pdx-empty-state-radius, 8px);background:var(--pdx-empty-state-bg, var(--md-sys-color-surface));color:var(--pdx-empty-state-fg, var(--md-sys-color-on-surface));--empty-icon-color: var(--pdx-empty-state-icon-color, var(--md-sys-color-on-surface-variant))}.empty-card.empty-inline,.empty-card.variant-inline{margin:var(--pdx-empty-state-inline-margin, 8px 0)}.empty-card.variant-panel{margin:var(--pdx-empty-state-panel-margin, 0)}.empty-card.variant-transparent{margin:var(--pdx-empty-state-transparent-margin, 0);border-color:transparent;background:transparent;box-shadow:none}.content{display:flex;align-items:center;gap:var(--pdx-empty-state-gap, 12px)}.align-center .content{flex-direction:column;justify-content:center;text-align:center}.icon{display:inline-grid;place-items:center;flex:0 0 auto;font-size:var(--pdx-empty-state-icon-size, 32px);width:var(--pdx-empty-state-icon-box-size, 32px);height:var(--pdx-empty-state-icon-box-size, 32px);color:var(--empty-icon-color)}.icon-circle .icon,.icon-soft .icon{width:var(--pdx-empty-state-icon-container-size, 44px);height:var(--pdx-empty-state-icon-container-size, 44px);border-radius:var(--pdx-empty-state-icon-container-radius, 999px);font-size:var(--pdx-empty-state-icon-container-icon-size, 22px)}.icon-circle .icon{border:1px solid var(--pdx-empty-state-icon-container-border-color, color-mix(in srgb, var(--empty-icon-color) 24%, transparent));background:var(--pdx-empty-state-icon-container-bg, color-mix(in srgb, var(--empty-icon-color) 10%, transparent))}.icon-soft .icon{background:var(--pdx-empty-state-icon-container-bg, color-mix(in srgb, var(--empty-icon-color) 10%, transparent))}.texts{display:grid;gap:var(--pdx-empty-state-text-gap, 4px)}.align-center .texts{justify-items:center}.title{margin:0;font-family:var(--pdx-empty-state-title-font-family, var(--md-sys-typescale-title-small-font-family, inherit));font-size:var(--pdx-empty-state-title-font-size, 16px);font-weight:var(--pdx-empty-state-title-font-weight, 600);line-height:var(--pdx-empty-state-title-line-height, 1.3);color:var(--pdx-empty-state-title-color, var(--md-sys-color-on-surface))}.desc{margin:0;max-width:var(--pdx-empty-state-description-max-width, none);font-family:var(--pdx-empty-state-description-font-family, var(--md-sys-typescale-body-medium-font-family, inherit));font-size:var(--pdx-empty-state-description-font-size, inherit);line-height:var(--pdx-empty-state-description-line-height, 1.4);color:var(--pdx-empty-state-description-color, var(--md-sys-color-on-surface-variant))}.actions{display:flex;justify-content:var(--pdx-empty-state-actions-justify, flex-start);gap:var(--pdx-empty-state-actions-gap, 8px);margin-top:var(--pdx-empty-state-actions-margin-top, 12px);flex-wrap:wrap}.actions .mat-mdc-button-base{height:var(--pdx-empty-state-action-height, auto);min-height:var(--pdx-empty-state-action-height, auto)}.align-center .actions{justify-content:var(--pdx-empty-state-actions-justify, center)}.density-compact .content{gap:var(--pdx-empty-state-compact-gap, 8px)}.density-compact .icon{font-size:var(--pdx-empty-state-compact-icon-size, 24px);width:var(--pdx-empty-state-compact-icon-box-size, 24px);height:var(--pdx-empty-state-compact-icon-box-size, 24px)}.density-compact.icon-circle .icon,.density-compact.icon-soft .icon{width:var(--pdx-empty-state-compact-icon-container-size, 36px);height:var(--pdx-empty-state-compact-icon-container-size, 36px);font-size:var(--pdx-empty-state-compact-icon-container-icon-size, 20px)}.empty-card.tone-primary{--empty-icon-color: var(--md-sys-color-primary)}.empty-card.tone-secondary{--empty-icon-color: var(--md-sys-color-secondary)}\n"] }]
|
|
38318
38744
|
}], propDecorators: { icon: [{
|
|
38319
38745
|
type: Input
|
|
38320
38746
|
}], title: [{
|
|
@@ -39687,4 +40113,4 @@ function provideHookWhitelist(allowed) {
|
|
|
39687
40113
|
* Generated bundle index. Do not edit.
|
|
39688
40114
|
*/
|
|
39689
40115
|
|
|
39690
|
-
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, DOMAIN_CATALOG_COMPONENT_CONTEXT_PACK, DOMAIN_CATALOG_CONTEXT_HINT_SCHEMA_VERSION, DYNAMIC_PAGE_AI_CAPABILITIES, DYNAMIC_PAGE_COMPONENT_CONTEXT_PACK, DYNAMIC_PAGE_CONFIG_EDITOR, DYNAMIC_PAGE_SHELL_EDITOR, DefaultLoadingRenderer, DeferredAsyncConfigStorage, DomainCatalogService, DomainKnowledgeService, DomainRuleService, 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, EnterpriseRuntimeContextService, 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, GLOBAL_ACTION_HANDLERS, 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, NestedPortCatalogService, NestedWidgetConfigAccessor, NumericFormat, OVERLAY_DECIDER_DEBUG, OVERLAY_DECISION_MATRIX, ObservabilityDashboardService, OverlayDeciderService, PRAXIS_COLLECTION_EXPORT_HTTP_OPTIONS, PRAXIS_COLLECTION_EXPORT_PROVIDER, PRAXIS_CORPORATE_SENSITIVE_KEYS, PRAXIS_DEFAULT_EXPORT_SECURITY_POLICY, PRAXIS_DEFAULT_OBSERVABILITY_ALERT_RULES, PRAXIS_DYNAMIC_PAGE_COMPONENT_METADATA, PRAXIS_ENTERPRISE_RUNTIME_CONTEXT_OPTIONS, PRAXIS_ENTERPRISE_RUNTIME_CONTEXT_READY, PRAXIS_EXPORT_FORMULA_PREFIXES, PRAXIS_EXPORT_SECURITY_POLICY, 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_QUERY_FILTER_EXPRESSION_SCHEMA_VERSION, PRAXIS_RELATED_RESOURCE_OUTLET_COMPONENT_METADATA, PRAXIS_RICH_TEXT_BLOCK_METADATA, PRAXIS_TABLE_DETAIL_INLINE_NODE_RESOLVERS, PRAXIS_TABLE_DETAIL_INLINE_RENDERERS, PRAXIS_TELEMETRY_TRANSPORT, PRAXIS_USER_CONTEXT_SUMMARY_METADATA, PRIVACY_CONSENT_EDITORIAL_SOLUTION, PRIVACY_CONSENT_EDITORIAL_TEMPLATE, PraxisCollectionExportService, PraxisCore, PraxisFooterLinksComponent, PraxisGlobalErrorHandler, PraxisHeroBannerComponent, PraxisHttpCollectionExportProvider, PraxisI18nService, PraxisIconDirective, PraxisIconPickerComponent, PraxisJsonLogicError, PraxisJsonLogicService, PraxisLayerScaleStyleService, PraxisLegalNoticeComponent, PraxisLoadingInterceptor, PraxisRelatedResourceOutletComponent, PraxisResourceIdentityComponent, PraxisRichTextBlockComponent, PraxisRuntimeComponentObservationRegistryService, PraxisSurfaceHostComponent, PraxisUserContextSummaryComponent, RESOURCE_DISCOVERY_I18N_CONFIG, RESOURCE_DISCOVERY_I18N_NAMESPACE, RULE_PROPERTY_SCHEMA, RelatedResourceSurfaceResolverService, 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, SurfaceOpenMaterializerService, SurfaceOutletRegistryService, TABLE_CONFIG_EDITOR, TableConfigService, TelemetryLoggerSink, TelemetryService, ValidationPattern, WidgetPageStateRuntimeService, WidgetShellComponent, applyLocalCustomizations$2 as applyLocalCustomizations, applyLocalCustomizations$1 as applyLocalFormCustomizations, assertPraxisCollectionExportArtifact, assertPraxisRuntimeComponentObservationSerializable, buildAngularValidators, buildApiUrl, buildBaseColumnFromDef, buildBaseFormField, buildFormConfigFromEditorialTemplate, buildHeaders, buildPageKey, buildPraxisEffectDistinctKey, buildPraxisLayerScaleCss, buildSchemaId, buildSchemaIdStorageKeySegment, buildValidatorsFromValidatorOptions, cancelIfCpfInvalidHook, clampRange, classifyEntityLookupResult, clonePraxisRuntimeComponentObservation, cloneTableConfig, cnpjAlphaValidator, collapseWhitespace, composeHeadersWithVersion, conditionalAsyncValidator, convertFormLayoutToConfig, createCorporateLoggerConfig, createCorporateObservabilityOptions, createCpfCnpjValidator, createDefaultFormConfig, createDefaultTableConfig, createEmptyFormConfig, createEmptyRichContentDocument, createFieldLayoutItem, createPersistedPage, customAsyncValidatorFn, customValidatorFn, debounceAsyncValidator, deepMerge, domainKnowledgeTimelineToRichContentDocument, domainRuleTimelineToRichContentDocument, ensureIds, ensureNoConflictsHookFactory, ensurePageIds, escapePraxisExportCell, evaluateFieldAccess, extractNormalizedError, fetchWithETag, fileTypeValidator, fillUndefined, generateId, getDefaultFormHints, getEditorialCompliancePresetById, getEditorialFormTemplateById, getEditorialFormTemplateCatalog, getEditorialSolutionById, getEditorialSolutionCatalog, getEditorialSolutionPresetById, getEditorialThemePresetById, getEssentialConfig, getFieldMetadataCapabilities, getFormColumnFieldNames, getFormLayoutFieldNames, getGlobalActionCatalog, getGlobalActionPayloadActualType, getGlobalActionPayloadTypeIssue, getGlobalActionUiSchema, getMissingGlobalActionPayloadKeys, getReferencedFieldMetadata, getRequiredGlobalActionPayloadKeys, getTextTransformer, hasMeaningfulGlobalActionPayloadValue, hasPraxisCollectionExportArtifact, interpolatePraxisTranslation, isAllowedEditorialContentFormat, isAllowedEditorialHref, isCssTextTransform, isEditorialComponentMeta, isEntityLookupMultiplePayloadMode, isEntityLookupPayloadMode, isEntityLookupPayloadModeCompatible, isEntityLookupResultSelectable, isEntityLookupSinglePayloadMode, isFormLayoutItem, isGlobalActionRef, isInlineFilterControlType, isLookupDialogSize, isLookupFilterFieldType, isLookupFilterOperator, isPraxisPresentationVisualizationTableSafe, isPraxisRuntimeGlobalActionEffect, isRangeValidForFilter, isRequiredGlobalActionParamPayloadMissing, isRequiredGlobalActionPayloadMissing, isTableConfigV2, isValidFormConfig, isValidTableConfig, legacyCnpjValidator, legacyCpfValidator, logOnErrorHook, mapFieldDefinitionToMetadata, mapFieldDefinitionsToMetadata, matchFieldValidator, materializeFormLayoutFromMetadata, materializeResourceIdentity, maxFileSizeValidator, mergeFieldMetadata, mergePraxisI18nConfigs, mergeTableConfigs, migrateFormLayoutRule, migrateLegacyCompositionLink, migrateLegacyCompositionLinks, minWordsValidator, normalizeControlTypeKey, normalizeControlTypeToken, normalizeEditorialLink, normalizeEnd, normalizeFieldAccessMetadata, normalizeFieldConstraints, normalizeFieldPresentation, normalizeFormConfig, normalizeFormLayoutItems, normalizeFormMetadata, normalizeGlobalActionRef$1 as normalizeGlobalActionRef, normalizeLayoutPolicy, normalizeLookupFilterRequest, normalizePath, normalizePraxisDataQueryContext, normalizePraxisEffectPolicy, normalizePraxisPresentationVisualization, normalizePraxisQueryFilterExpression, normalizePraxisQueryFilterNode, normalizeResourceAvailabilityReasonCode, normalizeResourceIdentityContract, normalizeStart, normalizeUnknownError, normalizeWidgetEventPath, notifySuccessHook, parseJsonResponseOrEmpty, praxisLoadingInterceptorFn, prefillFromContextHook, provideDefaultFormHooks, provideFieldSelectorRegistryBase, provideFieldSelectorRegistryOverride, provideFieldSelectorRegistryRuntime, provideFormHookPresets, provideFormHooks, provideGlobalActionCatalog, provideGlobalActionHandler, provideGlobalConfig, provideGlobalConfigReady, provideGlobalConfigSeed, provideGlobalConfigTenant, provideHookResolvers, provideHookWhitelist, provideOverlayDecisionMatrix, providePraxisAnalyticsGlobalActions, providePraxisCollectionExportProvider, providePraxisDynamicPageMetadata, providePraxisEnterpriseRuntimeContext, providePraxisFooterLinksMetadata, providePraxisGlobalActionCatalog, providePraxisGlobalActions, providePraxisGlobalConfigBootstrap, providePraxisHeroBannerMetadata, providePraxisHttpCollectionExportProvider, providePraxisHttpLoading, providePraxisI18n, providePraxisI18nConfig, providePraxisI18nTranslator, providePraxisIconDefaults, providePraxisJsonLogicOperator, providePraxisJsonLogicOperatorOverride, providePraxisLegalNoticeMetadata, providePraxisLoadingDefaults, providePraxisLogging, providePraxisRelatedResourceOutletMetadata, providePraxisRichTextBlockMetadata, providePraxisToastGlobalActions, providePraxisUserContextSummaryMetadata, provideRemoteGlobalConfig, readPraxisExportValue, reconcileFilterConfig, reconcileFormConfig, reconcileTableConfig, registerPraxisRuntimeComponentObservation, removeDiacritics, renderPraxisPresentationVisualizationHtml, reportTelemetryHookFactory, requiredCheckedValidator, requiredPresenceValidator, resolveBuiltinPresets, resolveColumnTypeFromFieldDefinition, resolveControlTypeAlias, resolveDefaultValuePresentationFormat, resolveEntityLookupPayloadMode, resolveFieldPresentation, resolveHidden, resolveInlineFilterControlType, resolveInlineFilterControlTypeToBaseControlType, resolveLoggerConfig, resolveObservabilityOptions, resolveOffset, resolveOrder, resolvePraxisCollectionExportItems, resolvePraxisExportFields, resolvePraxisExportScope, resolvePraxisFilterCriteria, resolveResourceAvailabilityReasonKey, resolveSpan, resolveTextMaskFormat, resolveTextMaskFormatFromFieldDefinition, resolveValuePresentation, resolveValuePresentationLocale, serializeEntityLookupValueForPayload, serializeOptionSourceFilterRequest, serializePraxisCollectionToCsv, serializePraxisCollectionToExcel, serializePraxisCollectionToJson, slugify, stripMasksHook, supportsImplicitValuePresentation, syncWithServerMetadata, toCamel, toCapitalize, toKebab, toPascal, toSentenceCase, toSnake, toTitleCase, translateResourceAvailabilityReason, translateResourceDiscoveryText, translateUnavailableWorkflowMessage, trim, uniqueAsyncValidator, urlValidator, validateGlobalActionRef, validateGlobalActionRefs, withFormConfigSections, withMessage, withPraxisHttpLoading };
|
|
40116
|
+
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, COMPONENT_METADATA_REGISTRY_I18N_CONFIG, COMPONENT_METADATA_REGISTRY_I18N_NAMESPACE, CONFIG_STORAGE, CONNECTION_STORAGE, ComponentKeyService, ComponentMetadataRegistry, CompositionRuntimeFacade, ConsoleLoggerSink, CrudOperationResolutionService, DEFAULT_FIELD_SELECTOR_CONTROL_TYPE_MAP, DEFAULT_JSON_LOGIC_OPERATORS, DEFAULT_TABLE_CONFIG, DOMAIN_CATALOG_COMPONENT_CONTEXT_PACK, DOMAIN_CATALOG_CONTEXT_HINT_SCHEMA_VERSION, DYNAMIC_PAGE_AI_CAPABILITIES, DYNAMIC_PAGE_COMPONENT_CONTEXT_PACK, DYNAMIC_PAGE_CONFIG_EDITOR, DYNAMIC_PAGE_SHELL_EDITOR, DefaultLoadingRenderer, DeferredAsyncConfigStorage, DomainCatalogService, DomainKnowledgeService, DomainRuleService, 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, EnterpriseRuntimeContextService, 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, GLOBAL_ACTION_HANDLERS, 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, NestedPortCatalogService, NestedWidgetConfigAccessor, NumericFormat, OVERLAY_DECIDER_DEBUG, OVERLAY_DECISION_MATRIX, ObservabilityDashboardService, OverlayDeciderService, PRAXIS_COLLECTION_EXPORT_HTTP_OPTIONS, PRAXIS_COLLECTION_EXPORT_PROVIDER, PRAXIS_CORPORATE_SENSITIVE_KEYS, PRAXIS_DEFAULT_EXPORT_SECURITY_POLICY, PRAXIS_DEFAULT_OBSERVABILITY_ALERT_RULES, PRAXIS_DYNAMIC_PAGE_COMPONENT_METADATA, PRAXIS_ENTERPRISE_RUNTIME_CONTEXT_OPTIONS, PRAXIS_ENTERPRISE_RUNTIME_CONTEXT_READY, PRAXIS_EXPORT_FORMULA_PREFIXES, PRAXIS_EXPORT_SECURITY_POLICY, 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_QUERY_FILTER_EXPRESSION_SCHEMA_VERSION, PRAXIS_RELATED_RESOURCE_OUTLET_COMPONENT_METADATA, PRAXIS_RICH_TEXT_BLOCK_METADATA, PRAXIS_TABLE_DETAIL_INLINE_NODE_RESOLVERS, PRAXIS_TABLE_DETAIL_INLINE_RENDERERS, PRAXIS_TELEMETRY_TRANSPORT, PRAXIS_THEME_SURFACE_DEFAULTS, PRAXIS_THEME_SURFACE_VARS, PRAXIS_USER_CONTEXT_SUMMARY_METADATA, PRIVACY_CONSENT_EDITORIAL_SOLUTION, PRIVACY_CONSENT_EDITORIAL_TEMPLATE, PraxisCollectionExportService, PraxisCore, PraxisFooterLinksComponent, PraxisGlobalErrorHandler, PraxisHeroBannerComponent, PraxisHttpCollectionExportProvider, PraxisI18nService, PraxisIconDirective, PraxisIconPickerComponent, PraxisJsonLogicError, PraxisJsonLogicService, PraxisLayerScaleStyleService, PraxisLegalNoticeComponent, PraxisLoadingInterceptor, PraxisRelatedResourceOutletComponent, PraxisResourceIdentityComponent, PraxisRichTextBlockComponent, PraxisRuntimeComponentObservationRegistryService, PraxisSurfaceHostComponent, PraxisUserContextSummaryComponent, RESOURCE_DISCOVERY_I18N_CONFIG, RESOURCE_DISCOVERY_I18N_NAMESPACE, RULE_PROPERTY_SCHEMA, RelatedResourceSurfaceResolverService, 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, SurfaceOpenMaterializerService, SurfaceOutletRegistryService, TABLE_CONFIG_EDITOR, TableConfigService, TelemetryLoggerSink, TelemetryService, ValidationPattern, WidgetPageStateRuntimeService, WidgetShellComponent, applyLocalCustomizations$2 as applyLocalCustomizations, applyLocalCustomizations$1 as applyLocalFormCustomizations, assertPraxisCollectionExportArtifact, assertPraxisRuntimeComponentObservationSerializable, buildAngularValidators, buildApiUrl, buildBaseColumnFromDef, buildBaseFormField, buildFormConfigFromEditorialTemplate, buildHeaders, buildPageKey, buildPraxisEffectDistinctKey, buildPraxisLayerScaleCss, buildPraxisThemeSurfaceCss, buildSchemaId, buildSchemaIdStorageKeySegment, buildValidatorsFromValidatorOptions, cancelIfCpfInvalidHook, clampRange, classifyEntityLookupResult, clonePraxisRuntimeComponentObservation, cloneTableConfig, cnpjAlphaValidator, collapseWhitespace, composeHeadersWithVersion, conditionalAsyncValidator, convertFormLayoutToConfig, createCorporateLoggerConfig, createCorporateObservabilityOptions, createCpfCnpjValidator, createDefaultFormConfig, createDefaultTableConfig, createEmptyFormConfig, createEmptyRichContentDocument, createFieldLayoutItem, createPersistedPage, customAsyncValidatorFn, customValidatorFn, debounceAsyncValidator, deepMerge, domainKnowledgeTimelineToRichContentDocument, domainRuleTimelineToRichContentDocument, ensureIds, ensureNoConflictsHookFactory, ensurePageIds, escapePraxisExportCell, evaluateFieldAccess, extractNormalizedError, fetchWithETag, fileTypeValidator, fillUndefined, generateId, getDefaultFormHints, getEditorialCompliancePresetById, getEditorialFormTemplateById, getEditorialFormTemplateCatalog, getEditorialSolutionById, getEditorialSolutionCatalog, getEditorialSolutionPresetById, getEditorialThemePresetById, getEssentialConfig, getFieldMetadataCapabilities, getFormColumnFieldNames, getFormLayoutFieldNames, getGlobalActionCatalog, getGlobalActionPayloadActualType, getGlobalActionPayloadTypeIssue, getGlobalActionUiSchema, getMissingGlobalActionPayloadKeys, getReferencedFieldMetadata, getRequiredGlobalActionPayloadKeys, getTextTransformer, hasMeaningfulGlobalActionPayloadValue, hasPraxisCollectionExportArtifact, interpolatePraxisTranslation, isAllowedEditorialContentFormat, isAllowedEditorialHref, isCssTextTransform, isEditorialComponentMeta, isEntityLookupMultiplePayloadMode, isEntityLookupPayloadMode, isEntityLookupPayloadModeCompatible, isEntityLookupResultSelectable, isEntityLookupSinglePayloadMode, isFormLayoutItem, isGlobalActionRef, isInlineFilterControlType, isLookupDialogSize, isLookupFilterFieldType, isLookupFilterOperator, isPraxisPresentationVisualizationTableSafe, isPraxisRuntimeGlobalActionEffect, isProgrammaticDateRangePreset, isRangeValidForFilter, isRequiredGlobalActionParamPayloadMissing, isRequiredGlobalActionPayloadMissing, isStaticDateRangePreset, isTableConfigV2, isValidFormConfig, isValidTableConfig, legacyCnpjValidator, legacyCpfValidator, logOnErrorHook, mapFieldDefinitionToMetadata, mapFieldDefinitionsToMetadata, matchFieldValidator, materializeFormLayoutFromMetadata, materializeResourceIdentity, maxFileSizeValidator, mergeFieldMetadata, mergePraxisI18nConfigs, mergeTableConfigs, migrateFormLayoutRule, migrateLegacyCompositionLink, migrateLegacyCompositionLinks, minWordsValidator, normalizeControlTypeKey, normalizeControlTypeToken, normalizeEditorialLink, normalizeEnd, normalizeFieldAccessMetadata, normalizeFieldConstraints, normalizeFieldPresentation, normalizeFormConfig, normalizeFormLayoutItems, normalizeFormMetadata, normalizeGlobalActionRef$1 as normalizeGlobalActionRef, normalizeLayoutPolicy, normalizeLookupFilterRequest, normalizePath, normalizePraxisDataQueryContext, normalizePraxisEffectPolicy, normalizePraxisPresentationVisualization, normalizePraxisQueryFilterExpression, normalizePraxisQueryFilterNode, normalizeResourceAvailabilityReasonCode, normalizeResourceIdentityContract, normalizeStart, normalizeUnknownError, normalizeWidgetEventPath, notifySuccessHook, parseJsonResponseOrEmpty, praxisLoadingInterceptorFn, prefillFromContextHook, provideDefaultFormHooks, provideFieldSelectorRegistryBase, provideFieldSelectorRegistryOverride, provideFieldSelectorRegistryRuntime, provideFormHookPresets, provideFormHooks, provideGlobalActionCatalog, provideGlobalActionHandler, provideGlobalConfig, provideGlobalConfigReady, provideGlobalConfigSeed, provideGlobalConfigTenant, provideHookResolvers, provideHookWhitelist, provideOverlayDecisionMatrix, providePraxisAnalyticsGlobalActions, providePraxisCollectionExportProvider, providePraxisDynamicPageMetadata, providePraxisEnterpriseRuntimeContext, providePraxisFooterLinksMetadata, providePraxisGlobalActionCatalog, providePraxisGlobalActions, providePraxisGlobalConfigBootstrap, providePraxisHeroBannerMetadata, providePraxisHttpCollectionExportProvider, providePraxisHttpLoading, providePraxisI18n, providePraxisI18nConfig, providePraxisI18nTranslator, providePraxisIconDefaults, providePraxisJsonLogicOperator, providePraxisJsonLogicOperatorOverride, providePraxisLegalNoticeMetadata, providePraxisLoadingDefaults, providePraxisLogging, providePraxisRelatedResourceOutletMetadata, providePraxisRichTextBlockMetadata, providePraxisToastGlobalActions, providePraxisUserContextSummaryMetadata, provideRemoteGlobalConfig, readPraxisExportValue, reconcileFilterConfig, reconcileFormConfig, reconcileTableConfig, registerPraxisRuntimeComponentObservation, removeDiacritics, renderPraxisPresentationVisualizationHtml, reportTelemetryHookFactory, requiredCheckedValidator, requiredPresenceValidator, resolveBuiltinPresets, resolveColumnTypeFromFieldDefinition, resolveControlTypeAlias, resolveDateRangeShortcutPreset, resolveDateRangeShortcutPresets, resolveDefaultValuePresentationFormat, resolveEntityLookupPayloadMode, resolveFieldPresentation, resolveHidden, resolveInlineFilterControlType, resolveInlineFilterControlTypeToBaseControlType, resolveLoggerConfig, resolveObservabilityOptions, resolveOffset, resolveOrder, resolvePraxisCollectionExportItems, resolvePraxisExportFields, resolvePraxisExportScope, resolvePraxisFilterCriteria, resolveResourceAvailabilityReasonKey, resolveSpan, resolveTextMaskFormat, resolveTextMaskFormatFromFieldDefinition, resolveValuePresentation, resolveValuePresentationLocale, serializeEntityLookupValueForPayload, serializeOptionSourceFilterRequest, serializePraxisCollectionToCsv, serializePraxisCollectionToExcel, serializePraxisCollectionToJson, slugify, staticDateRangePresetToPreset, stripMasksHook, supportsImplicitValuePresentation, syncWithServerMetadata, toCamel, toCapitalize, toKebab, toPascal, toSentenceCase, toSnake, toTitleCase, translateResourceAvailabilityReason, translateResourceDiscoveryText, translateUnavailableWorkflowMessage, trim, uniqueAsyncValidator, urlValidator, validateGlobalActionRef, validateGlobalActionRefs, withFormConfigSections, withMessage, withPraxisHttpLoading };
|