@praxisui/core 9.0.0-beta.22 → 9.0.0-beta.26
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/ai/component-registry.json +4 -4
- package/fesm2022/praxisui-core.mjs +878 -202
- package/package.json +1 -1
- package/types/praxisui-core.d.ts +169 -19
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-
|
|
3
|
+
"generatedAt": "2026-07-01T18:24:10.710Z",
|
|
4
4
|
"packageName": "@praxisui/core",
|
|
5
|
-
"packageVersion": "9.0.0-beta.
|
|
5
|
+
"packageVersion": "9.0.0-beta.26",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 3,
|
|
@@ -3159,9 +3159,9 @@
|
|
|
3159
3159
|
{
|
|
3160
3160
|
"chunkIndex": 27,
|
|
3161
3161
|
"chunkKind": "recipe",
|
|
3162
|
-
"content": "{\n \"_comment\": \"Recipe para agentes criarem uma Praxis Dynamic Page com formulario de lifecycle usando regras, validacao reativa e actions.\",\n \"_comment2\": \"Use quando a meta for mostrar conditionalDisplay, conditionalRequired, formRules e workflow fields em praxis-dynamic-form.\",\n \"templateMeta\": {\n \"registryKey\": \"praxis-dynamic-page\",\n \"variantId\": \"lifecycle-form\",\n \"status\": \"public-example\",\n \"useWhen\": \"Create a metadata-driven edit form with lifecycle rules and host-owned workflow fields.\",\n \"examplePrompts\": [\n \"crie um formulario com regras condicionais para funcionario\",\n \"mostre conditionalDisplay e conditionalRequired no dynamic form\",\n \"gere uma pagina de lifecycle com validacao reativa e actions\"\n ]\n },\n \"platformValue\": {\n \"canonicalContract\": \"praxis-metadata-starter publishes the funcionario resource contract; host workflow fields remain explicit UI state.\",\n \"referenceApi\": \"praxis-api-quickstart serves funcionario detail data, options and capabilities.\",\n \"angularRuntime\": \"@praxisui/dynamic-form applies sections, fieldMetadata, conditional rules, validation and action placement.\",\n \"publicExamples\": \"praxis-ui-landing-page exposes this envelope, runtime preview and feature coverage.\",\n \"agentCorpus\": \"This recipe teaches LLMs how to add lifecycle logic without redefining backend resource semantics.\"\n },\n \"operationalEvidence\": {\n \"baseUrl\": \"https://praxis-api-quickstart.onrender.com\",\n \"safeFirstIds\": [\n \"filtered-schema-response-funcionarios\",\n \"funcionarios-get-by-id\",\n \"cargos-options-filter\",\n \"departamentos-options-filter\"\n ],\n \"pendingHttpIds\": [],\n \"httpExamples\": [\n \"praxisui-http-examples/http/metadata/filtered_schema_response_funcionarios.http\",\n \"praxisui-http-examples/http/resources/funcionarios_get_by_id.http\",\n \"praxisui-http-examples/http/resources/cargos_options_filter.http\",\n \"praxisui-http-examples/http/resources/departamentos_options_filter.http\"\n ]\n },\n \"authoringGuidance\": [\n \"Keep persisted resource fields aligned to the published response schema.\",\n \"Use host-owned workflow fields for lifecycle decisions that are not part of the canonical resource DTO.\",\n \"Use conditionalDisplay and conditionalRequired for field-level rules.\",\n \"Use formRules for section, row, column, action or field property patches driven by form state.\",\n \"Use behavior.reactiveValidation or inputs.reactiveValidation when rules should re-evaluate during editing.\",\n \"Use asyncSelect with canonical option endpoints for assignment changes.\"\n ],\n \"teaches\": [\n \"dynamic-form.conditionalDisplay\",\n \"dynamic-form.conditionalRequired\",\n \"dynamic-form.formRules\",\n \"dynamic-form.reactiveValidation\",\n \"dynamic-form.actions.custom\",\n \"dynamic-fields.asyncSelect\",\n \"dynamic-fields.currency\",\n \"remote-options\",\n \"host-workflow-fields\"\n ],\n \"page\": {\n \"layout\": {\n \"orientation\": \"columns\",\n \"columns\": 1,\n \"gap\": \"16px\"\n },\n \"widgets\": [\n {\n \"key\": \"funcionarioLifecycleForm\",\n \"shell\": {\n \"kind\": \"dashboard-card\",\n \"icon\": \"rule\",\n \"title\": \"Funcionario lifecycle\",\n \"subtitle\": \"Rules, validations and workflow-only fields\"\n },\n \"definition\": {\n \"id\": \"praxis-dynamic-form\",\n \"bindingOrder\": [\n \"config\",\n \"resourcePath\",\n \"formId\",\n \"resourceId\",\n \"initialValue\"\n ],\n \"inputs\": {\n \"formId\": \"human-resources-funcionarios-lifecycle\",\n \"resourcePath\": \"human-resources/funcionarios\",\n \"resourceId\": 1,\n \"mode\": \"edit\",\n \"reactiveValidation\": true,\n \"reactiveValidationDebounceMs\": 200,\n \"initialValue\": {\n \"lifecycleAction\": \"UPDATE_ASSIGNMENT\",\n \"keepPayrollActive\": true\n },\n \"config\": {\n \"metadata\": {\n \"name\": \"Funcionario lifecycle workflow\",\n \"version\": \"1.0.0\"\n },\n \"behavior\": {\n \"reactiveValidation\": true,\n \"reactiveValidationDebounceMs\": 200\n },\n \"sections\": [\n {\n \"id\": \"current-state\",\n \"title\": \"Current state\",\n \"description\": \"Read the current employee data before choosing a lifecycle path.\",\n \"appearance\": \"outlined\",\n \"rows\": [\n {\n \"id\": \"current-state-row\",\n \"columns\": [\n {\n \"id\": \"current-identity\",\n \"span\": {\n \"md\": 6,\n \"lg\": 6\n },\n \"fields\": [\n \"nomeCompleto\",\n \"email\",\n \"ativo\"\n ]\n },\n {\n \"id\": \"current-assignment\",\n \"span\": {\n \"md\": 6,\n \"lg\": 6\n },\n \"fields\": [\n \"cargoId\",\n \"departamentoId\",\n \"salario\"\n ]\n }\n ]\n }\n ]\n },\n {\n \"id\": \"workflow-decision\",\n \"title\": \"Lifecycle decision\",\n \"description\": \"Host-owned workflow fields drive conditional display and validation.\",\n \"appearance\": \"outlined\",\n \"rows\": [\n {\n \"id\": \"decision-row-1\",\n \"columns\": [\n {\n \"id\": \"decision-main\",\n \"span\": {\n \"md\": 6,\n \"lg\": 6\n },\n \"fields\": [\n \"lifecycleAction\",\n \"effectiveDate\"\n ]\n },\n {\n \"id\": \"decision-flags\",\n \"span\": {\n \"md\": 6,\n \"lg\": 6\n },\n \"fields\": [\n \"keepPayrollActive\",\n \"requiresManagerApproval\"\n ]\n }\n ]\n }\n ]\n },\n {\n \"id\": \"assignment-change\",\n \"title\": \"Assignment change\",\n \"description\": \"Only required when the selected lifecycle path changes assignment.\",\n \"appearance\": \"outlined\",\n \"rows\": [\n {\n \"id\": \"assignment-change-row\",\n \"columns\": [\n {\n \"id\": \"assignment-change-main\",\n \"span\": {\n \"md\": 6,\n \"lg\": 6\n },\n \"fields\": [\n \"newCargoId\",\n \"newDepartamentoId\"\n ]\n },\n {\n \"id\": \"assignment-change-payroll\",\n \"span\": {\n \"md\": 6,\n \"lg\": 6\n },\n \"fields\": [\n \"newSalary\",\n \"assignmentReason\"\n ]\n }\n ]\n }\n ]\n },\n {\n \"id\": \"deactivation\",\n \"title\": \"Deactivation\",\n \"description\": \"Visible only for deactivation requests.\",\n \"appearance\": \"outlined\",\n \"rows\": [\n {\n \"id\": \"deactivation-row\",\n \"columns\": [\n {\n \"id\": \"deactivation-main\",\n \"fields\": [\n \"deactivationReason\",\n \"deactivationNotes\"\n ]\n }\n ]\n }\n ]\n }\n ],\n \"fieldMetadata\": [\n {\n \"name\": \"nomeCompleto\",\n \"label\": \"Nome Completo\",\n \"controlType\": \"input\",\n \"readonly\": true,\n \"validators\": {\n \"required\": true,\n \"maxLength\": 160\n }\n },\n {\n \"name\": \"email\",\n \"label\": \"Email\",\n \"controlType\": \"email\",\n \"readonly\": true,\n \"validators\": {\n \"email\": true\n }\n },\n {\n \"name\": \"ativo\",\n \"label\": \"Ativo\",\n \"controlType\": \"toggle\",\n \"readonly\": true\n },\n {\n \"name\": \"cargoId\",\n \"label\": \"Cargo atual\",\n \"controlType\": \"asyncSelect\",\n \"endpoint\": \"/api/human-resources/cargos/options/filter\",\n \"displayField\": \"label\",\n \"valueField\": \"id\",\n \"readonly\": true\n },\n {\n \"name\": \"departamentoId\",\n \"label\": \"Departamento atual\",\n \"controlType\": \"asyncSelect\",\n \"endpoint\": \"/api/human-resources/departamentos/options/filter\",\n \"displayField\": \"label\",\n \"valueField\": \"id\",\n \"readonly\": true\n },\n {\n \"name\": \"salario\",\n \"label\": \"Salario atual\",\n \"controlType\": \"currency\",\n \"currencyCode\": \"BRL\",\n \"locale\": \"pt-BR\",\n \"readonly\": true\n },\n {\n \"name\": \"lifecycleAction\",\n \"label\": \"Lifecycle action\",\n \"controlType\": \"select\",\n \"validators\": {\n \"required\": true\n },\n \"options\": [\n {\n \"label\": \"Update assignment\",\n \"value\": \"UPDATE_ASSIGNMENT\"\n },\n {\n \"label\": \"Promote\",\n \"value\": \"PROMOTE\"\n },\n {\n \"label\": \"Deactivate\",\n \"value\": \"DEACTIVATE\"\n }\n ]\n },\n {\n \"name\": \"effectiveDate\",\n \"label\": \"Effective date\",\n \"controlType\": \"date\",\n \"validators\": {\n \"required\": true\n }\n },\n {\n \"name\": \"keepPayrollActive\",\n \"label\": \"Keep payroll active\",\n \"controlType\": \"toggle\",\n \"conditionalDisplay\": \"lifecycleAction != 'DEACTIVATE'\"\n },\n {\n \"name\": \"requiresManagerApproval\",\n \"label\": \"Requires manager approval\",\n \"controlType\": \"checkbox\",\n \"conditionalDisplay\": \"lifecycleAction == 'PROMOTE' || lifecycleAction == 'DEACTIVATE'\",\n \"conditionalRequired\": \"lifecycleAction == 'PROMOTE' || lifecycleAction == 'DEACTIVATE'\"\n },\n {\n \"name\": \"newCargoId\",\n \"label\": \"New cargo\",\n \"controlType\": \"asyncSelect\",\n \"endpoint\": \"/api/human-resources/cargos/options/filter\",\n \"displayField\": \"label\",\n \"valueField\": \"id\",\n \"conditionalDisplay\": \"lifecycleAction == 'UPDATE_ASSIGNMENT' || lifecycleAction == 'PROMOTE'\",\n \"conditionalRequired\": \"lifecycleAction == 'UPDATE_ASSIGNMENT' || lifecycleAction == 'PROMOTE'\"\n },\n {\n \"name\": \"newDepartamentoId\",\n \"label\": \"New departamento\",\n \"controlType\": \"asyncSelect\",\n \"endpoint\": \"/api/human-resources/departamentos/options/filter\",\n \"displayField\": \"label\",\n \"valueField\": \"id\",\n \"conditionalDisplay\": \"lifecycleAction == 'UPDATE_ASSIGNMENT' || lifecycleAction == 'PROMOTE'\",\n \"conditionalRequired\": \"lifecycleAction == 'UPDATE_ASSIGNMENT'\"\n },\n {\n \"name\": \"newSalary\",\n \"label\": \"New salary\",\n \"controlType\": \"currency\",\n \"currencyCode\": \"BRL\",\n \"locale\": \"pt-BR\",\n \"validators\": {\n \"min\": 0\n },\n \"conditionalDisplay\": \"lifecycleAction == 'PROMOTE'\",\n \"conditionalRequired\": \"lifecycleAction == 'PROMOTE'\"\n },\n {\n \"name\": \"assignmentReason\",\n \"label\": \"Assignment reason\",\n \"controlType\": \"textarea\",\n \"rows\": 3,\n \"validators\": {\n \"minLength\": 12,\n \"maxLength\": 500\n },\n \"conditionalDisplay\": \"lifecycleAction == 'UPDATE_ASSIGNMENT' || lifecycleAction == 'PROMOTE'\",\n \"conditionalRequired\": \"lifecycleAction == 'UPDATE_ASSIGNMENT' || lifecycleAction == 'PROMOTE'\"\n },\n {\n \"name\": \"deactivationReason\",\n \"label\": \"Deactivation reason\",\n \"controlType\": \"select\",\n \"options\": [\n {\n \"label\": \"Contract ended\",\n \"value\": \"CONTRACT_ENDED\"\n },\n {\n \"label\": \"Transferred\",\n \"value\": \"TRANSFERRED\"\n },\n {\n \"label\": \"Security hold\",\n \"value\": \"SECURITY_HOLD\"\n }\n ],\n \"conditionalDisplay\": \"lifecycleAction == 'DEACTIVATE'\",\n \"conditionalRequired\": \"lifecycleAction == 'DEACTIVATE'\"\n },\n {\n \"name\": \"deactivationNotes\",\n \"label\": \"Deactivation notes\",\n \"controlType\": \"textarea\",\n \"rows\": 4,\n \"validators\": {\n \"minLength\": 20,\n \"maxLength\": 800\n },\n \"conditionalDisplay\": \"lifecycleAction == 'DEACTIVATE'\",\n \"conditionalRequired\": \"lifecycleAction == 'DEACTIVATE'\"\n }\n ],\n \"formRules\": [\n {\n \"id\": \"deactivation-hides-assignment-change\",\n \"name\": \"Deactivation hides assignment change section\",\n \"targetType\": \"section\",\n \"targetId\": \"assignment-change\",\n \"condition\": \"lifecycleAction == 'DEACTIVATE'\",\n \"effect\": {\n \"propertiesWhenTrue\": {\n \"visible\": false\n },\n \"propertiesWhenFalse\": {\n \"visible\": true\n }\n }\n },\n {\n \"id\": \"assignment-path-hides-deactivation-section\",\n \"name\": \"Assignment paths hide deactivation section\",\n \"targetType\": \"section\",\n \"targetId\": \"deactivation\",\n \"condition\": \"lifecycleAction == 'DEACTIVATE'\",\n \"effect\": {\n \"propertiesWhenTrue\": {\n \"visible\": true\n },\n \"propertiesWhenFalse\": {\n \"visible\": false\n }\n }\n }\n ],\n \"actions\": {\n \"submit\": {\n \"id\": \"submit-lifecycle-request\",\n \"label\": \"Submit request\",\n \"icon\": \"send\",\n \"color\": \"primary\",\n \"visible\": true,\n \"type\": \"submit\"\n },\n \"cancel\": {\n \"id\": \"cancel-lifecycle\",\n \"label\": \"Cancel\",\n \"icon\": \"close\",\n \"visible\": true,\n \"type\": \"button\"\n },\n \"reset\": {\n \"id\": \"reset-lifecycle\",\n \"label\": \"Reset workflow\",\n \"visible\": true,\n \"type\": \"reset\"\n },\n \"custom\": [\n {\n \"id\": \"preview-policy\",\n \"label\": \"Preview policy\",\n \"icon\": \"policy\",\n \"visible\": true,\n \"action\": \"previewPolicy\"\n }\n ],\n \"position\": \"right\",\n \"placement\": \"afterSections\",\n \"spacing\": \"normal\"\n }\n }\n }\n }\n }\n ]\n }\n}\n",
|
|
3162
|
+
"content": "{\n \"_comment\": \"Recipe para agentes criarem uma Praxis Dynamic Page com formulario de lifecycle usando regras, validacao reativa e actions.\",\n \"_comment2\": \"Use quando a meta for mostrar conditionalDisplay, conditionalRequired, formRules e workflow fields em praxis-dynamic-form.\",\n \"templateMeta\": {\n \"registryKey\": \"praxis-dynamic-page\",\n \"variantId\": \"lifecycle-form\",\n \"status\": \"public-example\",\n \"useWhen\": \"Create a metadata-driven edit form with lifecycle rules and host-owned workflow fields.\",\n \"examplePrompts\": [\n \"crie um formulario com regras condicionais para funcionario\",\n \"mostre conditionalDisplay e conditionalRequired no dynamic form\",\n \"gere uma pagina de lifecycle com validacao reativa e actions\"\n ]\n },\n \"platformValue\": {\n \"canonicalContract\": \"praxis-metadata-starter publishes the funcionario resource contract; host workflow fields remain explicit UI state.\",\n \"referenceApi\": \"praxis-api-quickstart serves funcionario detail data, options and capabilities.\",\n \"angularRuntime\": \"@praxisui/dynamic-form applies sections, fieldMetadata, conditional rules, validation and action placement.\",\n \"publicExamples\": \"praxis-ui-landing-page exposes this envelope, runtime preview and feature coverage.\",\n \"agentCorpus\": \"This recipe teaches LLMs how to add lifecycle logic without redefining backend resource semantics.\"\n },\n \"operationalEvidence\": {\n \"baseUrl\": \"https://praxis-api-quickstart.onrender.com\",\n \"safeFirstIds\": [\n \"filtered-schema-response-funcionarios\",\n \"funcionarios-get-by-id\",\n \"cargos-options-filter\",\n \"departamentos-options-filter\"\n ],\n \"pendingHttpIds\": [],\n \"httpExamples\": [\n \"praxisui-http-examples/http/metadata/filtered_schema_response_funcionarios.http\",\n \"praxisui-http-examples/http/resources/funcionarios_get_by_id.http\",\n \"praxisui-http-examples/http/resources/cargos_options_filter.http\",\n \"praxisui-http-examples/http/resources/departamentos_options_filter.http\"\n ]\n },\n \"authoringGuidance\": [\n \"Keep persisted resource fields aligned to the published response schema.\",\n \"Use host-owned workflow fields for lifecycle decisions that are not part of the canonical resource DTO.\",\n \"Use conditionalDisplay and conditionalRequired for field-level rules.\",\n \"Use formRules for section, row, column, action or field property patches driven by form state.\",\n \"Use behavior.reactiveValidation or inputs.reactiveValidation when rules should re-evaluate during editing.\",\n \"Use asyncSelect with canonical option endpoints for assignment changes.\"\n ],\n \"teaches\": [\n \"dynamic-form.conditionalDisplay\",\n \"dynamic-form.conditionalRequired\",\n \"dynamic-form.formRules\",\n \"dynamic-form.reactiveValidation\",\n \"dynamic-form.actions.custom\",\n \"dynamic-fields.asyncSelect\",\n \"dynamic-fields.currency\",\n \"remote-options\",\n \"host-workflow-fields\"\n ],\n \"page\": {\n \"layout\": {\n \"orientation\": \"columns\",\n \"columns\": 1,\n \"gap\": \"16px\"\n },\n \"widgets\": [\n {\n \"key\": \"funcionarioLifecycleForm\",\n \"shell\": {\n \"kind\": \"dashboard-card\",\n \"icon\": \"rule\",\n \"title\": \"Funcionario lifecycle\",\n \"subtitle\": \"Rules, validations and workflow-only fields\"\n },\n \"definition\": {\n \"id\": \"praxis-dynamic-form\",\n \"bindingOrder\": [\n \"config\",\n \"resourcePath\",\n \"formId\",\n \"resourceId\",\n \"initialValue\"\n ],\n \"inputs\": {\n \"formId\": \"human-resources-funcionarios-lifecycle\",\n \"resourcePath\": \"human-resources/funcionarios\",\n \"resourceId\": 1,\n \"mode\": \"edit\",\n \"reactiveValidation\": true,\n \"reactiveValidationDebounceMs\": 200,\n \"initialValue\": {\n \"lifecycleAction\": \"UPDATE_ASSIGNMENT\",\n \"keepPayrollActive\": true\n },\n \"config\": {\n \"metadata\": {\n \"name\": \"Funcionario lifecycle workflow\",\n \"version\": \"1.0.0\"\n },\n \"behavior\": {\n \"reactiveValidation\": true,\n \"reactiveValidationDebounceMs\": 200\n },\n \"sections\": [\n {\n \"id\": \"current-state\",\n \"title\": \"Current state\",\n \"description\": \"Read the current employee data before choosing a lifecycle path.\",\n \"appearance\": \"outlined\",\n \"rows\": [\n {\n \"id\": \"current-state-row\",\n \"columns\": [\n {\n \"id\": \"current-identity\",\n \"span\": {\n \"md\": 6,\n \"lg\": 6\n },\n \"fields\": [\n \"nomeCompleto\",\n \"email\",\n \"ativo\"\n ]\n },\n {\n \"id\": \"current-assignment\",\n \"span\": {\n \"md\": 6,\n \"lg\": 6\n },\n \"fields\": [\n \"cargoId\",\n \"departamentoId\",\n \"salario\"\n ]\n }\n ]\n }\n ]\n },\n {\n \"id\": \"workflow-decision\",\n \"title\": \"Lifecycle decision\",\n \"description\": \"Host-owned workflow fields drive conditional display and validation.\",\n \"appearance\": \"outlined\",\n \"rows\": [\n {\n \"id\": \"decision-row-1\",\n \"columns\": [\n {\n \"id\": \"decision-main\",\n \"span\": {\n \"md\": 6,\n \"lg\": 6\n },\n \"fields\": [\n \"lifecycleAction\",\n \"effectiveDate\"\n ]\n },\n {\n \"id\": \"decision-flags\",\n \"span\": {\n \"md\": 6,\n \"lg\": 6\n },\n \"fields\": [\n \"keepPayrollActive\",\n \"requiresManagerApproval\"\n ]\n }\n ]\n }\n ]\n },\n {\n \"id\": \"assignment-change\",\n \"title\": \"Assignment change\",\n \"description\": \"Only required when the selected lifecycle path changes assignment.\",\n \"appearance\": \"outlined\",\n \"rows\": [\n {\n \"id\": \"assignment-change-row\",\n \"columns\": [\n {\n \"id\": \"assignment-change-main\",\n \"span\": {\n \"md\": 6,\n \"lg\": 6\n },\n \"fields\": [\n \"newCargoId\",\n \"newDepartamentoId\"\n ]\n },\n {\n \"id\": \"assignment-change-payroll\",\n \"span\": {\n \"md\": 6,\n \"lg\": 6\n },\n \"fields\": [\n \"newSalary\",\n \"assignmentReason\"\n ]\n }\n ]\n }\n ]\n },\n {\n \"id\": \"deactivation\",\n \"title\": \"Deactivation\",\n \"description\": \"Visible only for deactivation requests.\",\n \"appearance\": \"outlined\",\n \"rows\": [\n {\n \"id\": \"deactivation-row\",\n \"columns\": [\n {\n \"id\": \"deactivation-main\",\n \"fields\": [\n \"deactivationReason\",\n \"deactivationNotes\"\n ]\n }\n ]\n }\n ]\n }\n ],\n \"fieldMetadata\": [\n {\n \"name\": \"nomeCompleto\",\n \"label\": \"Nome Completo\",\n \"controlType\": \"input\",\n \"readonly\": true,\n \"validators\": {\n \"required\": true,\n \"maxLength\": 160\n }\n },\n {\n \"name\": \"email\",\n \"label\": \"Email\",\n \"controlType\": \"email\",\n \"readonly\": true,\n \"validators\": {\n \"email\": true\n }\n },\n {\n \"name\": \"ativo\",\n \"label\": \"Ativo\",\n \"controlType\": \"toggle\",\n \"readonly\": true\n },\n {\n \"name\": \"cargoId\",\n \"label\": \"Cargo atual\",\n \"controlType\": \"asyncSelect\",\n \"endpoint\": \"/api/human-resources/cargos/options/filter\",\n \"displayField\": \"label\",\n \"valueField\": \"id\",\n \"readonly\": true\n },\n {\n \"name\": \"departamentoId\",\n \"label\": \"Departamento atual\",\n \"controlType\": \"asyncSelect\",\n \"endpoint\": \"/api/human-resources/departamentos/options/filter\",\n \"displayField\": \"label\",\n \"valueField\": \"id\",\n \"readonly\": true\n },\n {\n \"name\": \"salario\",\n \"label\": \"Salario atual\",\n \"controlType\": \"currency\",\n \"currencyCode\": \"BRL\",\n \"locale\": \"pt-BR\",\n \"readonly\": true\n },\n {\n \"name\": \"lifecycleAction\",\n \"label\": \"Lifecycle action\",\n \"controlType\": \"select\",\n \"validators\": {\n \"required\": true\n },\n \"options\": [\n {\n \"label\": \"Update assignment\",\n \"value\": \"UPDATE_ASSIGNMENT\"\n },\n {\n \"label\": \"Promote\",\n \"value\": \"PROMOTE\"\n },\n {\n \"label\": \"Deactivate\",\n \"value\": \"DEACTIVATE\"\n }\n ]\n },\n {\n \"name\": \"effectiveDate\",\n \"label\": \"Effective date\",\n \"controlType\": \"date\",\n \"validators\": {\n \"required\": true\n }\n },\n {\n \"name\": \"keepPayrollActive\",\n \"label\": \"Keep payroll active\",\n \"controlType\": \"toggle\",\n \"conditionalDisplay\": {\n \"!=\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"DEACTIVATE\"\n ]\n }\n },\n {\n \"name\": \"requiresManagerApproval\",\n \"label\": \"Requires manager approval\",\n \"controlType\": \"checkbox\",\n \"conditionalDisplay\": {\n \"or\": [\n {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"PROMOTE\"\n ]\n },\n {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"DEACTIVATE\"\n ]\n }\n ]\n },\n \"conditionalRequired\": {\n \"or\": [\n {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"PROMOTE\"\n ]\n },\n {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"DEACTIVATE\"\n ]\n }\n ]\n }\n },\n {\n \"name\": \"newCargoId\",\n \"label\": \"New cargo\",\n \"controlType\": \"asyncSelect\",\n \"endpoint\": \"/api/human-resources/cargos/options/filter\",\n \"displayField\": \"label\",\n \"valueField\": \"id\",\n \"conditionalDisplay\": {\n \"or\": [\n {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"UPDATE_ASSIGNMENT\"\n ]\n },\n {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"PROMOTE\"\n ]\n }\n ]\n },\n \"conditionalRequired\": {\n \"or\": [\n {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"UPDATE_ASSIGNMENT\"\n ]\n },\n {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"PROMOTE\"\n ]\n }\n ]\n }\n },\n {\n \"name\": \"newDepartamentoId\",\n \"label\": \"New departamento\",\n \"controlType\": \"asyncSelect\",\n \"endpoint\": \"/api/human-resources/departamentos/options/filter\",\n \"displayField\": \"label\",\n \"valueField\": \"id\",\n \"conditionalDisplay\": {\n \"or\": [\n {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"UPDATE_ASSIGNMENT\"\n ]\n },\n {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"PROMOTE\"\n ]\n }\n ]\n },\n \"conditionalRequired\": {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"UPDATE_ASSIGNMENT\"\n ]\n }\n },\n {\n \"name\": \"newSalary\",\n \"label\": \"New salary\",\n \"controlType\": \"currency\",\n \"currencyCode\": \"BRL\",\n \"locale\": \"pt-BR\",\n \"validators\": {\n \"min\": 0\n },\n \"conditionalDisplay\": {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"PROMOTE\"\n ]\n },\n \"conditionalRequired\": {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"PROMOTE\"\n ]\n }\n },\n {\n \"name\": \"assignmentReason\",\n \"label\": \"Assignment reason\",\n \"controlType\": \"textarea\",\n \"rows\": 3,\n \"validators\": {\n \"minLength\": 12,\n \"maxLength\": 500\n },\n \"conditionalDisplay\": {\n \"or\": [\n {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"UPDATE_ASSIGNMENT\"\n ]\n },\n {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"PROMOTE\"\n ]\n }\n ]\n },\n \"conditionalRequired\": {\n \"or\": [\n {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"UPDATE_ASSIGNMENT\"\n ]\n },\n {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"PROMOTE\"\n ]\n }\n ]\n }\n },\n {\n \"name\": \"deactivationReason\",\n \"label\": \"Deactivation reason\",\n \"controlType\": \"select\",\n \"options\": [\n {\n \"label\": \"Contract ended\",\n \"value\": \"CONTRACT_ENDED\"\n },\n {\n \"label\": \"Transferred\",\n \"value\": \"TRANSFERRED\"\n },\n {\n \"label\": \"Security hold\",\n \"value\": \"SECURITY_HOLD\"\n }\n ],\n \"conditionalDisplay\": {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"DEACTIVATE\"\n ]\n },\n \"conditionalRequired\": {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"DEACTIVATE\"\n ]\n }\n },\n {\n \"name\": \"deactivationNotes\",\n \"label\": \"Deactivation notes\",\n \"controlType\": \"textarea\",\n \"rows\": 4,\n \"validators\": {\n \"minLength\": 20,\n \"maxLength\": 800\n },\n \"conditionalDisplay\": {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"DEACTIVATE\"\n ]\n },\n \"conditionalRequired\": {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"DEACTIVATE\"\n ]\n }\n }\n ],\n \"formRules\": [\n {\n \"id\": \"deactivation-hides-assignment-change\",\n \"name\": \"Deactivation hides assignment change section\",\n \"targetType\": \"section\",\n \"targetId\": \"assignment-change\",\n \"condition\": {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"DEACTIVATE\"\n ]\n },\n \"effect\": {\n \"propertiesWhenTrue\": {\n \"visible\": false\n },\n \"propertiesWhenFalse\": {\n \"visible\": true\n }\n }\n },\n {\n \"id\": \"assignment-path-hides-deactivation-section\",\n \"name\": \"Assignment paths hide deactivation section\",\n \"targetType\": \"section\",\n \"targetId\": \"deactivation\",\n \"condition\": {\n \"==\": [\n {\n \"var\": \"lifecycleAction\"\n },\n \"DEACTIVATE\"\n ]\n },\n \"effect\": {\n \"propertiesWhenTrue\": {\n \"visible\": true\n },\n \"propertiesWhenFalse\": {\n \"visible\": false\n }\n }\n }\n ],\n \"actions\": {\n \"submit\": {\n \"id\": \"submit-lifecycle-request\",\n \"label\": \"Submit request\",\n \"icon\": \"send\",\n \"color\": \"primary\",\n \"visible\": true,\n \"type\": \"submit\"\n },\n \"cancel\": {\n \"id\": \"cancel-lifecycle\",\n \"label\": \"Cancel\",\n \"icon\": \"close\",\n \"visible\": true,\n \"type\": \"button\"\n },\n \"reset\": {\n \"id\": \"reset-lifecycle\",\n \"label\": \"Reset workflow\",\n \"visible\": true,\n \"type\": \"reset\"\n },\n \"custom\": [\n {\n \"id\": \"preview-policy\",\n \"label\": \"Preview policy\",\n \"icon\": \"policy\",\n \"visible\": true,\n \"action\": \"previewPolicy\"\n }\n ],\n \"position\": \"right\",\n \"placement\": \"afterSections\",\n \"spacing\": \"normal\"\n }\n }\n }\n }\n }\n ]\n }\n}\n",
|
|
3163
3163
|
"sourcePointer": "praxis-ui-angular/examples/ai-recipes/praxis-dynamic-page.lifecycle-form.json",
|
|
3164
|
-
"contentHash": "
|
|
3164
|
+
"contentHash": "115707126052afd2661243bf250610e6416a678d9c5f39d82f01682c1b62a098",
|
|
3165
3165
|
"sourceKind": "component_definition",
|
|
3166
3166
|
"sourceId": "praxis-dynamic-page",
|
|
3167
3167
|
"corpusVersion": "1.0.0"
|