@praxisui/stepper 8.0.0-beta.11 → 8.0.0-beta.12
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 +6 -0
- package/fesm2022/praxisui-stepper.mjs +59 -14
- package/package.json +8 -8
package/README.md
CHANGED
|
@@ -219,6 +219,12 @@ etapa com formulario, rich content ou widgets exige confirmacao explicita. Regra
|
|
|
219
219
|
de validacao devem ser projetadas em `steps[].form.config` ou delegadas ao
|
|
220
220
|
`serverValidate` do host; o stepper nao define uma DSL paralela de validacao.
|
|
221
221
|
|
|
222
|
+
Cada operacao declara `target.resolver`, `preconditions`, `validators`,
|
|
223
|
+
`affectedPaths`, `effects` e `submissionImpact` tipado. Edicoes de conteudo de
|
|
224
|
+
etapa podem afetar dados schema-backed porque `steps[].form.config` hospeda o
|
|
225
|
+
`FormConfig` do `praxis-dynamic-form`; widgets filhos continuam governados pelos
|
|
226
|
+
contratos dos respectivos componentes.
|
|
227
|
+
|
|
222
228
|
## Conteudo Editorial por Etapa
|
|
223
229
|
|
|
224
230
|
O conteudo editorial do stepper usa a mesma base de rich content da plataforma:
|
|
@@ -4719,9 +4719,11 @@ const PRAXIS_STEPPER_AUTHORING_MANIFEST = {
|
|
|
4719
4719
|
target: { kind: 'step', resolver: 'steps-array', ambiguityPolicy: 'fail', required: false },
|
|
4720
4720
|
inputSchema: stepItemSchema,
|
|
4721
4721
|
effects: [{ kind: 'append-unique', path: 'steps[]', key: 'id' }],
|
|
4722
|
+
destructive: false,
|
|
4723
|
+
requiresConfirmation: false,
|
|
4722
4724
|
validators: ['step-id-unique', 'step-order-deterministic', 'step-content-valid'],
|
|
4723
|
-
affectedPaths: ['steps[]'
|
|
4724
|
-
submissionImpact:
|
|
4725
|
+
affectedPaths: ['steps[]'],
|
|
4726
|
+
submissionImpact: 'config-only',
|
|
4725
4727
|
preconditions: ['config-initialized'],
|
|
4726
4728
|
},
|
|
4727
4729
|
{
|
|
@@ -4736,12 +4738,28 @@ const PRAXIS_STEPPER_AUTHORING_MANIFEST = {
|
|
|
4736
4738
|
replacementStepId: { type: 'string' },
|
|
4737
4739
|
},
|
|
4738
4740
|
},
|
|
4739
|
-
effects: [{
|
|
4741
|
+
effects: [{
|
|
4742
|
+
kind: 'compile-domain-patch',
|
|
4743
|
+
handler: 'stepper-step-remove',
|
|
4744
|
+
handlerContract: {
|
|
4745
|
+
reads: ['steps[]', 'selectedIndex'],
|
|
4746
|
+
writes: ['steps[]', 'selectedIndex'],
|
|
4747
|
+
identityKeys: ['steps[].id'],
|
|
4748
|
+
inputSchema: {
|
|
4749
|
+
type: 'object',
|
|
4750
|
+
properties: {
|
|
4751
|
+
replacementStepId: { type: 'string' },
|
|
4752
|
+
},
|
|
4753
|
+
},
|
|
4754
|
+
failureModes: ['step-not-found', 'replacement-step-not-found', 'content-removal-not-confirmed'],
|
|
4755
|
+
description: 'Removes the target step by stable id and recomputes selectedIndex to preserve deterministic navigation state.',
|
|
4756
|
+
},
|
|
4757
|
+
}],
|
|
4740
4758
|
destructive: true,
|
|
4741
4759
|
requiresConfirmation: true,
|
|
4742
4760
|
validators: ['step-exists', 'selected-step-removal-safe', 'step-content-removal-confirmed'],
|
|
4743
4761
|
affectedPaths: ['steps[]', 'selectedIndex'],
|
|
4744
|
-
submissionImpact:
|
|
4762
|
+
submissionImpact: 'config-only',
|
|
4745
4763
|
preconditions: ['config-initialized', 'target-step-exists', 'confirmation-collected'],
|
|
4746
4764
|
},
|
|
4747
4765
|
{
|
|
@@ -4752,9 +4770,11 @@ const PRAXIS_STEPPER_AUTHORING_MANIFEST = {
|
|
|
4752
4770
|
target: { kind: 'stepLabel', resolver: 'step-by-id-or-label', ambiguityPolicy: 'fail', required: true },
|
|
4753
4771
|
inputSchema: { type: 'object', required: ['label'], properties: { label: { type: 'string' } } },
|
|
4754
4772
|
effects: [{ kind: 'merge-by-key', path: 'steps[]', key: 'id' }],
|
|
4773
|
+
destructive: false,
|
|
4774
|
+
requiresConfirmation: false,
|
|
4755
4775
|
validators: ['step-exists', 'step-label-valid'],
|
|
4756
4776
|
affectedPaths: ['steps[].label'],
|
|
4757
|
-
submissionImpact:
|
|
4777
|
+
submissionImpact: 'config-only',
|
|
4758
4778
|
preconditions: ['config-initialized', 'target-step-exists'],
|
|
4759
4779
|
},
|
|
4760
4780
|
{
|
|
@@ -4764,10 +4784,23 @@ const PRAXIS_STEPPER_AUTHORING_MANIFEST = {
|
|
|
4764
4784
|
targetKind: 'step',
|
|
4765
4785
|
target: { kind: 'step', resolver: 'step-by-id-or-label', ambiguityPolicy: 'fail', required: true },
|
|
4766
4786
|
inputSchema: { type: 'object', required: ['beforeStepId'], properties: { beforeStepId: { type: 'string' } } },
|
|
4767
|
-
effects: [{
|
|
4787
|
+
effects: [{
|
|
4788
|
+
kind: 'compile-domain-patch',
|
|
4789
|
+
handler: 'stepper-step-reorder',
|
|
4790
|
+
handlerContract: {
|
|
4791
|
+
reads: ['steps[]', 'selectedIndex'],
|
|
4792
|
+
writes: ['steps[]', 'selectedIndex'],
|
|
4793
|
+
identityKeys: ['steps[].id'],
|
|
4794
|
+
inputSchema: { type: 'object', required: ['beforeStepId'], properties: { beforeStepId: { type: 'string' } } },
|
|
4795
|
+
failureModes: ['step-not-found', 'before-step-not-found', 'ambiguous-step-target'],
|
|
4796
|
+
description: 'Moves the target step before another stable step id and recomputes selectedIndex by preserving selected step identity.',
|
|
4797
|
+
},
|
|
4798
|
+
}],
|
|
4799
|
+
destructive: false,
|
|
4800
|
+
requiresConfirmation: false,
|
|
4768
4801
|
validators: ['step-exists', 'step-order-deterministic', 'selected-index-preserved'],
|
|
4769
4802
|
affectedPaths: ['steps[]', 'selectedIndex'],
|
|
4770
|
-
submissionImpact:
|
|
4803
|
+
submissionImpact: 'config-only',
|
|
4771
4804
|
preconditions: ['config-initialized', 'target-step-exists'],
|
|
4772
4805
|
},
|
|
4773
4806
|
{
|
|
@@ -4778,9 +4811,11 @@ const PRAXIS_STEPPER_AUTHORING_MANIFEST = {
|
|
|
4778
4811
|
target: { kind: 'completionRule', resolver: 'step-by-id-or-label', ambiguityPolicy: 'fail', required: true },
|
|
4779
4812
|
inputSchema: { type: 'object', required: ['optional'], properties: { optional: { type: 'boolean' } } },
|
|
4780
4813
|
effects: [{ kind: 'merge-by-key', path: 'steps[]', key: 'id' }],
|
|
4814
|
+
destructive: false,
|
|
4815
|
+
requiresConfirmation: false,
|
|
4781
4816
|
validators: ['step-exists', 'completion-rule-compatible'],
|
|
4782
4817
|
affectedPaths: ['steps[].optional'],
|
|
4783
|
-
submissionImpact:
|
|
4818
|
+
submissionImpact: 'config-only',
|
|
4784
4819
|
preconditions: ['config-initialized', 'target-step-exists'],
|
|
4785
4820
|
},
|
|
4786
4821
|
{
|
|
@@ -4791,9 +4826,11 @@ const PRAXIS_STEPPER_AUTHORING_MANIFEST = {
|
|
|
4791
4826
|
target: { kind: 'completionRule', resolver: 'step-by-id-or-label', ambiguityPolicy: 'fail', required: true },
|
|
4792
4827
|
inputSchema: { type: 'object', required: ['completed'], properties: { completed: { type: 'boolean' }, hasError: { type: 'boolean' }, errorMessage: { type: 'string' } } },
|
|
4793
4828
|
effects: [{ kind: 'merge-by-key', path: 'steps[]', key: 'id' }],
|
|
4829
|
+
destructive: false,
|
|
4830
|
+
requiresConfirmation: false,
|
|
4794
4831
|
validators: ['step-exists', 'completion-rule-compatible', 'linear-completion-safe'],
|
|
4795
4832
|
affectedPaths: ['steps[].completed', 'steps[].hasError', 'steps[].errorMessage'],
|
|
4796
|
-
submissionImpact:
|
|
4833
|
+
submissionImpact: 'config-only',
|
|
4797
4834
|
preconditions: ['config-initialized', 'target-step-exists'],
|
|
4798
4835
|
},
|
|
4799
4836
|
{
|
|
@@ -4817,9 +4854,11 @@ const PRAXIS_STEPPER_AUTHORING_MANIFEST = {
|
|
|
4817
4854
|
},
|
|
4818
4855
|
},
|
|
4819
4856
|
effects: [{ kind: 'merge-object', path: 'navigation' }, { kind: 'set-value', path: 'linear' }],
|
|
4857
|
+
destructive: false,
|
|
4858
|
+
requiresConfirmation: false,
|
|
4820
4859
|
validators: ['navigation-values-valid', 'linear-navigation-valid', 'editor-runtime-round-trip'],
|
|
4821
4860
|
affectedPaths: ['navigation.visible', 'navigation.prevLabel', 'navigation.nextLabel', 'navigation.prevIcon', 'navigation.nextIcon', 'navigation.variant', 'navigation.color', 'navigation.align', 'linear'],
|
|
4822
|
-
submissionImpact:
|
|
4861
|
+
submissionImpact: 'config-only',
|
|
4823
4862
|
preconditions: ['config-initialized'],
|
|
4824
4863
|
},
|
|
4825
4864
|
{
|
|
@@ -4839,9 +4878,11 @@ const PRAXIS_STEPPER_AUTHORING_MANIFEST = {
|
|
|
4839
4878
|
},
|
|
4840
4879
|
},
|
|
4841
4880
|
effects: [{ kind: 'set-value', path: 'orientation' }, { kind: 'set-value', path: 'headerPosition' }, { kind: 'set-value', path: 'labelPosition' }, { kind: 'set-value', path: 'density' }],
|
|
4881
|
+
destructive: false,
|
|
4882
|
+
requiresConfirmation: false,
|
|
4842
4883
|
validators: ['orientation-values-valid', 'label-position-compatible', 'editor-runtime-round-trip'],
|
|
4843
4884
|
affectedPaths: ['orientation', 'headerPosition', 'labelPosition', 'density'],
|
|
4844
|
-
submissionImpact:
|
|
4885
|
+
submissionImpact: 'config-only',
|
|
4845
4886
|
preconditions: ['config-initialized'],
|
|
4846
4887
|
},
|
|
4847
4888
|
{
|
|
@@ -4891,8 +4932,10 @@ const PRAXIS_STEPPER_AUTHORING_MANIFEST = {
|
|
|
4891
4932
|
},
|
|
4892
4933
|
}],
|
|
4893
4934
|
validators: ['step-exists', 'validation-rule-target-exists', 'validation-rule-compatible', 'server-validation-delegated'],
|
|
4894
|
-
|
|
4895
|
-
|
|
4935
|
+
destructive: false,
|
|
4936
|
+
requiresConfirmation: false,
|
|
4937
|
+
affectedPaths: ['steps[].form.config', 'steps[].form.config.sections', 'steps[].form.config.fieldMetadata', 'steps[].hasError', 'steps[].errorMessage'],
|
|
4938
|
+
submissionImpact: 'affects-schema-backed-data',
|
|
4896
4939
|
preconditions: ['config-initialized', 'target-step-exists'],
|
|
4897
4940
|
},
|
|
4898
4941
|
{
|
|
@@ -4903,9 +4946,11 @@ const PRAXIS_STEPPER_AUTHORING_MANIFEST = {
|
|
|
4903
4946
|
target: { kind: 'stepContent', resolver: 'step-content-by-id', ambiguityPolicy: 'fail', required: true },
|
|
4904
4947
|
inputSchema: stepPatchSchema,
|
|
4905
4948
|
effects: [{ kind: 'merge-by-key', path: 'steps[]', key: 'id' }],
|
|
4949
|
+
destructive: false,
|
|
4950
|
+
requiresConfirmation: false,
|
|
4906
4951
|
validators: ['step-exists', 'step-content-valid', 'nested-widget-contract-delegated'],
|
|
4907
4952
|
affectedPaths: ['steps[].form', 'steps[].stepBlocksBeforeForm', 'steps[].stepBlocksAfterForm', 'steps[].widgets'],
|
|
4908
|
-
submissionImpact:
|
|
4953
|
+
submissionImpact: 'affects-schema-backed-data',
|
|
4909
4954
|
preconditions: ['config-initialized', 'target-step-exists'],
|
|
4910
4955
|
},
|
|
4911
4956
|
],
|
package/package.json
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/stepper",
|
|
3
|
-
"version": "8.0.0-beta.
|
|
3
|
+
"version": "8.0.0-beta.12",
|
|
4
4
|
"description": "Stepper workflows for Praxis UI with integrated forms, lists, uploads and page builder support.",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/common": "^20.0.0",
|
|
7
7
|
"@angular/core": "^20.0.0",
|
|
8
8
|
"@angular/material": "^20.0.0",
|
|
9
9
|
"@angular/cdk": "^20.0.0",
|
|
10
|
-
"@praxisui/core": "^8.0.0-beta.
|
|
11
|
-
"@praxisui/dynamic-form": "^8.0.0-beta.
|
|
12
|
-
"@praxisui/rich-content": "^8.0.0-beta.
|
|
13
|
-
"@praxisui/settings-panel": "^8.0.0-beta.
|
|
14
|
-
"@praxisui/list": "^8.0.0-beta.
|
|
15
|
-
"@praxisui/files-upload": "^8.0.0-beta.
|
|
16
|
-
"@praxisui/page-builder": "^8.0.0-beta.
|
|
10
|
+
"@praxisui/core": "^8.0.0-beta.12",
|
|
11
|
+
"@praxisui/dynamic-form": "^8.0.0-beta.12",
|
|
12
|
+
"@praxisui/rich-content": "^8.0.0-beta.12",
|
|
13
|
+
"@praxisui/settings-panel": "^8.0.0-beta.12",
|
|
14
|
+
"@praxisui/list": "^8.0.0-beta.12",
|
|
15
|
+
"@praxisui/files-upload": "^8.0.0-beta.12",
|
|
16
|
+
"@praxisui/page-builder": "^8.0.0-beta.12"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"tslib": "^2.3.0"
|