Member Junction
    Preparing search index...

    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.

    <mj-record-clone-panel
    [Record]="record"
    (CloneCompleted)="OnCloned($event)"
    (NavigateToRecord)="OpenRecord($event)"
    (CloseRequested)="HidePanel()">
    </mj-record-clone-panel>

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    ActivePlan: RecordClonePlanDetails | null = null

    Latest plan computed by the server.

    AutoStart: boolean = true

    Start describing and planning as soon as a source is set. Default true.

    AvailablePresets: string[] = []
    CanOverrideScope: boolean = false

    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.

    CloneCompleted: EventEmitter<CloneCompletedEvent> = ...

    Fires once the clone commits. The panel also raises one remote-invalidate event per written entity so open views refresh.

    CloneFailed: EventEmitter<CloneFailedEvent> = ...

    Fires when describe, plan or execute fails, with the message the panel shows.

    CloneReason: string = ''
    CloseRequested: EventEmitter<void> = ...

    Asks the host to dismiss the panel (Close, Cancel, or after a navigation request).

    DescribeDetails: RecordCloneDescribeOutput | null = null

    Describe answer for the source entity, once loaded.

    EdgeOverrides: CloneEdgePolicyChange[] = []

    Branch policies the user changed in the plan tree, sent with every plan and execute.

    ExecutionErrorMessage: string = ''
    ExecutionProgress: CloneProgressUpdate | null = null
    ExecutionResult: RecordCloneExecuteOutput | null = null

    Result of the last execute call.

    HasUserEditedRootName: boolean = false
    InitializationPromise?: Promise<void>

    The promise of the most recent Start; tests and hosts can await it.

    IsReplanning: boolean = false

    True while a re-plan is in flight; Review disables Confirm so the user only confirms a plan they have seen.

    IsValuesValid: boolean = true
    LoadingMessage: string = 'Analyzing record and dependencies...'
    NamingStrategyReason?: string
    NavigateToRecord: EventEmitter<CloneNavigationEvent> = ...

    Asks the host to open a record (the new clone, or a record linked from the result). The panel never routes itself.

    NotCloneableReason: string = 'This entity or record type does not permit cloning.'
    PlanChanged: EventEmitter<RecordClonePlanDetails> = ...

    Fires after every successful plan computation with the fresh plan.

    PlanChangedNotice: string | null = null

    Shown on Review after an Execute found the plan out of date. Cleared by the next Execute or step change.

    PresetLabels: Record<string, { Description?: string; Label: string }> = {}

    How each preset is shown in the picker, from the entity's clone configuration.

    PromptedFields: ClonePromptFieldItem[] = []
    PromptedValues: Record<string, string | number | boolean | null> = {}
    Provider: IMetadataProvider | null

    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.

    RetargetFields: CloneRetargetFieldItem[] = []
    RootRecordName: string = ''
    ScopeOptions: RecordClonePlanOptions = {}

    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.

    SelectedPreset?: string
    ShowStepTabs: boolean = true

    Show the Scope / Values / Review step tabs. Default true.

    StateChange: EventEmitter<RecordClonePanelState> = ...

    Fires whenever CurrentState changes.

    StepChange: EventEmitter<RecordCloneStep> = ...

    Fires whenever the active wizard step changes.

    WizardTabs: TabConfig[] = ...
    "ɵdir": unknown
    "ɵfac": ɵɵFactoryDeclaration<BaseAngularComponent, never>

    Accessors

    • get ProviderToUse(): IMetadataProvider

      Returns either the default Metadata provider or the one specified in the Provider property, if it was specified

      Returns IMetadataProvider

    • get RootNameReadOnly(): boolean

      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 boolean

    • get RunQueryToUse(): IRunQueryProvider

      Returns either the default RunQuery provider or the one specified in the Provider property, if it was specified

      Returns IRunQueryProvider

    • get RunViewToUse(): IRunViewProvider

      Returns either the default RunView provider or the one specified in the Provider property, if it was specified

      Returns IRunViewProvider

    Methods

    • 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.

      Parameters

      • values: Record<string, string | number | boolean | null>

      Returns void