FLUID-6601: Supply component proxies to free transforms as well as expanders, etc.

Metadata

Source
FLUID-6601
Type
Improvement
Priority
Major
Status
Reopened
Resolution
N/A
Assignee
Antranig Basman
Reporter
Antranig Basman
Created
2021-03-12T11:28:15.100-0500
Updated
2021-06-21T11:30:03.764-0400
Versions
N/A
Fixed Versions
N/A
Component
  1. IoC System

Description

One of the innovations in the FLUID-6148/FLUID-6580 lineage of Infusion is supplying proxies at least for "whole-component" arguments to expanders which accepts components that have not fully constructed (a partial fulfilment of FLUID-6372).

These really also need to supplied as arguments to transforms, particularly "fluid.transform.free" or the various new implicit forms which accepts arguments which are similarly whole-components. This is particularly pressing since the "new framework" now starts operating relay rules consistently well before components have constructed, and also any attempt to dereference these manually into the argument list falls foul of the fact that the old-fashioned ChangeApplier implementation will attempt to copy them, believing that the entire contents of relay rules are "documents".

We encountered this attempting to update the "bagatelle" biodiversity map visualisation to the new framework, with a definition like

fluid.defaults("hortis.quantiser", {
    gradeNames: "fluid.modelComponent",
....
        index: {
            target: "indexVersion",
            singleTransform: {
                type: "fluid.transforms.free",
                args: ["{that}", "{that}.model.latResolution", "{that}.model.squareSide",],
                func: "hortis.quantiser.indexTree"
            }
        }
    },