Latest plan computed by the server.
Start describing and planning as soon as a source is set. Default true.
Whether the developer scope overrides are offered: RecordClone.Describe reports whether the
user holds Clone Records: Override Scope. The server applies the same rule to every request.
Fires once the clone commits. The panel also raises one remote-invalidate event per written entity so open views refresh.
Fires when describe, plan or execute fails, with the message the panel shows.
Asks the host to dismiss the panel (Close, Cancel, or after a navigation request).
Describe answer for the source entity, once loaded.
Branch policies the user changed in the plan tree, sent with every plan and execute.
Result of the last execute call.
OptionalInitializationThe promise of the most recent Start; tests and hosts can await it.
True while a re-plan is in flight; Review disables Confirm so the user only confirms a plan they have seen.
OptionalNamingAsks the host to open a record (the new clone, or a record linked from the result). The panel never routes itself.
Fires after every successful plan computation with the fresh plan.
Shown on Review after an Execute found the plan out of date. Cleared by the next Execute or step change.
How each preset is shown in the picker, from the entity's clone configuration.
If specified, this provider will be used for communication and for all metadata purposes. By default, if not provided, the Metadata and RunView classes are used for this and the default GraphQLDataProvider is used which is connected to the same back-end MJAPI instance as the Metadata and RunView classes. If you want to have this component connect to a different MJAPI back-end, create an instance of a ProviderBase sub-class like GraphQLDataProvider/etc, and configure it as appropriate to connect to the MJAPI back-end you want to use, and then pass it in here.
Plan options sent with every plan and execute request. Holds only what the user changed (plus the preset and entered values); everything else comes from the entity's clone configuration.
OptionalSelectedShow the Scope / Values / Review step tabs. Default true.
Fires whenever CurrentState changes.
Fires whenever the active wizard step changes.
StaticɵdirStaticɵfacWhether the user may skip branches: the entity's UserEditable allows scope changes, or they hold Override Scope.
The entity's configured scope (its Configuration.Clone, else the engine defaults), for the summary.
Current wizard state. Setting it emits StateChange.
Active authoring step. Setting it emits StepChange.
Scope values the controls show: the server's effective options once a plan exists.
Entity name the panel is cloning, from EntityName or Record.
Source key resolved against the entity's primary key columns.
Entity of the source record, e.g. 'MJ: Users'. Needed when Record is not set.
True while the panel is describing, planning for the first time, or executing. Hosts use it to block closing.
Default title for hosts that show one, e.g. Clone MJ: Users.
Returns either the default Metadata provider or the one specified in the Provider property, if it was specified
The record to clone. Takes precedence for the key when RecordKey is not set, and supplies the entity name when EntityName is not set.
Key of the source record: a RecordCloneKey, or a record-id string in the
compact URL-segment form ('<value>' for a single-column key, 'F1|V1||F2|V2' for a
composite one), parsed with CompositeKey.FromURLSegment against the entity's metadata.
Whether the configuration, not the user, decides the root's name: a rule derives it (a user's Name from the prompted Email), a reset stamps it, or UserEditable doesn't allow field edits. The server ignores a typed name then, so the box is read-only.
Returns either the default RunQuery provider or the one specified in the Provider property, if it was specified
Returns either the default RunView provider or the one specified in the Provider property, if it was specified
Key of the root clone once execution succeeded, as a record-id string.
From the Failed state: back to Review with a fresh plan, since the old one may be why it failed.
Executes the reviewed plan. The server refuses with PLAN_CHANGED if the plan hash moved.
Moves to a wizard step. Review is refused while prompted values are invalid; entering Review folds the entered values into the options and re-plans so the diff is current.
A branch was switched in the plan tree. Switching a branch the user already changed drops that override (back to the configured policy); otherwise the change is remembered. Then re-plan.
Keeps the root name in step with a prompted value while the user has not typed a name.
Which prompted field drives it comes from the entity's Clone.Naming.Fields (for MJ: Users
that is Email), falling back to the entity's name field.
Drops every scope and branch override so the entity's configured scope applies again.
Keeps only the scope values the user changed from what is displayed, so the entity's configured defaults (and a preset's options) are not overwritten by values nobody chose. Picking a preset clears earlier scope changes so the preset's options apply.
Drops one branch override so that relationship follows its configured policy again.
Re-runs the plan with the current ScopeOptions, e.g. after a host changes them. When several re-plans overlap, only the latest request's answer is kept.
Clears the values entered so far and starts over (used by "Clone another").
Describes the source, computes the first plan and lands on the Scope step. Safe to call again; each call starts the wizard over.
Embeddable clone wizard for one source record.
Give it a source with either Record or EntityName plus RecordKey. With AutoStart on (the default) it describes the record and computes the first plan as soon as it has a source; otherwise call Start.
Example