@decaf-ts/ui-decorators 0.20.0 → 0.20.2
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 +12 -0
- package/dist/ui-decorators.cjs +1 -1
- package/lib/cjs/graph/catalog/GraphNodePolicyManifest.cjs +5 -0
- package/lib/cjs/graph/catalog/GraphNodePolicyManifest.cjs.map +1 -1
- package/lib/cjs/graph/constants.cjs +1 -15
- package/lib/cjs/graph/constants.cjs.map +1 -1
- package/lib/cjs/graph/document/GraphDecoratedWorkflowCompiler.cjs +67 -10
- package/lib/cjs/graph/document/GraphDecoratedWorkflowCompiler.cjs.map +1 -1
- package/lib/cjs/graph/document/GraphWorkflowDocumentBuilder.cjs +46 -4
- package/lib/cjs/graph/document/GraphWorkflowDocumentBuilder.cjs.map +1 -1
- package/lib/cjs/graph/snapshot.cjs +77 -8
- package/lib/cjs/graph/snapshot.cjs.map +1 -1
- package/lib/cjs/index.cjs +3 -3
- package/lib/esm/graph/catalog/GraphNodePolicyManifest.js +5 -0
- package/lib/esm/graph/catalog/GraphNodePolicyManifest.js.map +1 -1
- package/lib/esm/graph/constants.js +0 -13
- package/lib/esm/graph/constants.js.map +1 -1
- package/lib/esm/graph/document/GraphDecoratedWorkflowCompiler.js +67 -10
- package/lib/esm/graph/document/GraphDecoratedWorkflowCompiler.js.map +1 -1
- package/lib/esm/graph/document/GraphWorkflowDocumentBuilder.js +46 -4
- package/lib/esm/graph/document/GraphWorkflowDocumentBuilder.js.map +1 -1
- package/lib/esm/graph/snapshot.js +77 -8
- package/lib/esm/graph/snapshot.js.map +1 -1
- package/lib/esm/index.js +3 -3
- package/lib/types/graph/catalog/GraphNodePolicyManifest.d.cts +33 -0
- package/lib/types/graph/catalog/GraphNodePolicyManifest.d.mts +33 -0
- package/lib/types/graph/constants.d.cts +0 -8
- package/lib/types/graph/constants.d.mts +0 -8
- package/lib/types/graph/document/GraphDecoratedWorkflowCompiler.d.cts +21 -0
- package/lib/types/graph/document/GraphDecoratedWorkflowCompiler.d.mts +21 -0
- package/lib/types/graph/document/GraphWorkflowDocumentBuilder.d.cts +44 -0
- package/lib/types/graph/document/GraphWorkflowDocumentBuilder.d.mts +44 -0
- package/lib/types/graph/snapshot.d.cts +8 -1
- package/lib/types/graph/snapshot.d.mts +8 -1
- package/lib/types/index.d.cts +3 -3
- package/lib/types/index.d.mts +3 -3
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -478,6 +478,18 @@ if (errors) {
|
|
|
478
478
|
This example demonstrates how to create a complete registration form with various input types and validation rules, all defined declaratively using decorators.
|
|
479
479
|
|
|
480
480
|
|
|
481
|
+
## Graph Decorators and Contracts (DECAF-50)
|
|
482
|
+
|
|
483
|
+
`src/graph` ships the shared, browser-safe graph workspace contracts that back the canonical graph frontend (DECAF-50 §4.4.4–§4.12) — engine-free, with no executor/catalogue-runtime/validator/run-store imports reaching here (§4.20 bundle bar):
|
|
484
|
+
|
|
485
|
+
- **Manifests (§4.9–§4.12):** `GraphNodeManifest`/`GraphResolvedNodeManifest` types plus the `graphNodeManifest` compiler that turns `@node`-decorated classes into the published JSON shape (ports, parameters, display, metadata) — the same shape the NestJS catalogue serves and the Angular palette consumes as data, never constructors.
|
|
486
|
+
- **Document/instance model:** `GraphWorkflowDocument`, `GraphNodeInstance`, `GraphInputBinding` (`edge | literal | expression`), and the byte-consistent `GraphWorkflowDocumentSnapshot` the document store persists.
|
|
487
|
+
- **Switch cases:** `SwitchCase`/`SwitchCaseCondition` live under `metadata["switch"]` / the `parameters["switch"]` block — the backend executor reads the same shape, so the editor's case grid and the engine stay aligned.
|
|
488
|
+
- **Builder + legacy serializer:** `GraphWorkflowDocumentBuilder` composes documents fluently; `graphWorkflowDocumentFromLegacySnapshot` converts legacy (pre-P7) canvas snapshots — legacy `node.data` maps into instance `parameters`, legacy `node.metadata` into instance `metadata` — so previously persisted workflows keep reading under the new document store unchanged.
|
|
489
|
+
- **Decorated workflow compiler:** `GraphDecoratedWorkflowCompiler` compiles a decorated workflow class (node defaults plus loop/switch metadata blocks) into a document, letting `@node` classes seed demo graphs without node constructors in the browser path.
|
|
490
|
+
|
|
491
|
+
Detailed walkthroughs live in [workdocs/tutorials/For Developers.md](./workdocs/tutorials/For%20Developers.md).
|
|
492
|
+
|
|
481
493
|
## Coding Principles
|
|
482
494
|
|
|
483
495
|
- group similar functionality in folders (analog to namespaces but without any namespace declaration)
|
package/dist/ui-decorators.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e,t;e=this,t=function(e,t,r,a,o){"use strict";var s;e.UIMediaBreakPoints=void 0,(s=e.UIMediaBreakPoints||(e.UIMediaBreakPoints={})).SMALL="small",s.MEDIUM="medium",s.LARGE="large",s.XLARGE="xlarge";const n={REFLECT:"ui",UIMODEL:"uimodel",RENDERED_BY:"rendered-by",ELEMENT:"uielement",PROP:"uiprop",CHILD:"uichild",NAME:"name",NAME_PREFIX:"input-",VALIDATION_MESSAGE:"validationMessage",UILISTMODEL:"uilistmodel",UILISTPROP:"uilistprop",UILAYOUT:"uilayout",UILAYOUTPROP:"uilayoutprop",HANDLERS:"handlers",TYPE:"type",SUB_TYPE:"subType",HIDDEN:"hidden",HIDE_FOR:"hide-for",SHOW_FOR:"show-for",RENDER_IF:"render-if",FORMAT:"format",ORDER:"order",PAGE:"page",EVENTS:"events",FIRST:"first",LAST:"last",READ_ONLY:"readonly",SEQUENCE:"sequence",REQUIRED:t.ValidationKeys.REQUIRED,MIN:t.ValidationKeys.MIN,MIN_LENGTH:t.ValidationKeys.MIN_LENGTH,MAX:t.ValidationKeys.MAX,MAX_LENGTH:t.ValidationKeys.MAX_LENGTH,PATTERN:t.ValidationKeys.PATTERN,URL:t.ValidationKeys.URL,STEP:t.ValidationKeys.STEP,DATE:t.ValidationKeys.DATE,EMAIL:t.ValidationKeys.EMAIL,PASSWORD:t.ValidationKeys.PASSWORD,EQUALS:t.ValidationKeys.EQUALS,DIFF:t.ValidationKeys.DIFF,LESS_THAN:t.ValidationKeys.LESS_THAN,LESS_THAN_OR_EQUAL:t.ValidationKeys.LESS_THAN_OR_EQUAL,GREATER_THAN:t.ValidationKeys.GREATER_THAN,GREATER_THAN_OR_EQUAL:t.ValidationKeys.GREATER_THAN_OR_EQUAL},i={[n.EMAIL]:t.EmailValidator,[n.URL]:t.URLValidator,[n.DATE]:t.DateValidator,[n.PASSWORD]:t.PasswordValidator},d={[n.REQUIRED]:t.RequiredValidator,[n.MIN]:t.MinValidator,[n.MAX]:t.MaxValidator,[n.STEP]:t.StepValidator,[n.MIN_LENGTH]:t.MinLengthValidator,[n.MAX_LENGTH]:t.MaxLengthValidator,[n.PATTERN]:t.PatternValidator,[n.EQUALS]:t.EqualsValidator,[n.DIFF]:t.DiffValidator,[n.LESS_THAN]:t.LessThanValidator,[n.LESS_THAN_OR_EQUAL]:t.LessThanOrEqualValidator,[n.GREATER_THAN]:t.GreaterThanValidator,[n.GREATER_THAN_OR_EQUAL]:t.GreaterThanOrEqualValidator},l="yyyy-MM-dd",c={BUTTON:"button",CHECKBOX:"checkbox",COLOR:"color",DATE:n.DATE,DATETIME_LOCAL:"datetime-local",EMAIL:n.EMAIL,FILE:"file",HIDDEN:"hidden",IMAGE:"image",MONTH:"month",NUMBER:"number",PASSWORD:n.PASSWORD,RADIO:"radio",RANGE:"range",RESET:"reset",SEARCH:"search",SUBMIT:"submit",TEL:"tel",TEXT:"text",TEXTAREA:"textarea",SELECT:"select",TIME:"time",URL:n.URL,WEEK:"week"},p=[c.CHECKBOX,c.RADIO],E={cancel:"cancel",confirm:"confirm",submit:"submit",clear:"clear",back:"back",[r.OperationKeys.CREATE]:r.OperationKeys.CREATE,[r.OperationKeys.READ]:r.OperationKeys.READ,[r.OperationKeys.UPDATE]:r.OperationKeys.UPDATE,[r.OperationKeys.DELETE]:r.OperationKeys.DELETE};class u extends r.InternalError{constructor(e){super(e,u.name)}}const f=e=>"function"==typeof e&&/^class\s/.test(e+"");function h(e,t){return a.Metadata.key(n.REFLECT,a.DecorationKeys.PROPERTIES,e,t)}function y(e,r,...a){if(e===n.DATE){if(!r)return"";const e=a.shift()||l;return t.formatDate(new Date(r),e)}return r}function M(e){if("number"==typeof e&&!isNaN(e))return e;const t=Number(e);return isNaN(t)?void 0:t}function R(e){if(!e)return e;const t={"&":"&","<":"<",">":">"};return(""+e).replace(/[&<>]/g,e=>t[e]||e)}function T(e){let r=Date.now();try{t.Model.pk(e.constructor)&&(r=e[t.Model.pk(e.constructor)])}catch(e){}return`${e.constructor.name}-${r}`}class m{static{this.cache={}}constructor(e){this.flavour=e,this.initialized=!1,m.register(this)}translate(e,r=!0){if(r)switch(e){case t.ReservedModels.STRING.name.toLowerCase():return c.TEXT;case t.ReservedModels.NUMBER.name.toLowerCase():case t.ReservedModels.BIGINT.name.toLowerCase():return c.NUMBER;case t.ReservedModels.BOOLEAN.name.toLowerCase():return c.CHECKBOX;case t.ReservedModels.DATE.name.toLowerCase():return c.DATE}else switch(e){case c.SELECT:case c.TEXT:case c.EMAIL:case c.COLOR:case c.PASSWORD:case c.TEL:case c.URL:case c.SEARCH:case c.HIDDEN:case c.TEXTAREA:case c.RADIO:return t.ReservedModels.STRING.name.toLowerCase();case c.NUMBER:return t.ReservedModels.NUMBER.name.toLowerCase();case c.CHECKBOX:return t.ReservedModels.BOOLEAN.name.toLowerCase();case c.DATE:case c.DATETIME_LOCAL:case c.TIME:return t.ReservedModels.DATE.name.toLowerCase()}return e}getClassDecoratorsMetadata(e){return[t.Model.uiModelOf(e.constructor),t.Model.uiListModelOf(e.constructor),t.Model.uiHandlersFor(e.constructor),t.Model.uiLayoutOf(e.constructor)].filter(Boolean)}sortChildrenByOrder(e=[]){return e.sort((r,a)=>{const o=r.props?.order??0,s=a.props?.order??0,i=r=>r===n.FIRST?0:typeof r===t.Primitives.NUMBER?1:r===n.LAST?e.length+e.indexOf(a):1,d=i(o),l=i(s);return d!==l?d-l:1===d&&typeof o===t.Primitives.NUMBER&&typeof s===t.Primitives.NUMBER?o-s:0})}isCustomValidator(e){return!Object.values(t.ValidationKeys).includes(e)&&!Object.values(n).includes(e)}isValidatableByType(e){return Object.keys(i).includes(e)}isValidatableByAttribute(e){return Object.keys(d).includes(e)}toAttributeValue(e,t){if(!Object.keys(d).includes(e))throw Error(`Invalid attribute key "${e}". Expected one of: ${Object.keys(d).join(", ")}.`);return e===n.REQUIRED||t[e]}toFieldDefinition(e,o={},s=!0){const{inheritProps:i,...d}=o;o=d;const p=this.getClassDecoratorsMetadata(e);if(!p.length)throw new u(`No ui definitions set for model ${e.constructor.name}. Did you use @uimodel?`);const E=Object.assign({},...p,i||{}),{tag:f,props:h,item:M,handlers:R}=E,m=t.Model.uiPropertiesOf(e.constructor);let O,g=M?.props||{},L={};const A=(e,t)=>e?[e,t].join("."):t;if(m){const s=a.Metadata.get(e.constructor,t.ValidationKeys.REFLECT)||{};for(const i of m){const d=t.Model.uiDecorationOf(e.constructor,i);let p;try{p=t.Model.uiTypeOf(e.constructor,i)}catch(e){if(!(e instanceof r.NotFoundError))throw e}if(t.Model.uiIsHidden(e.constructor,i)&&!t.Model.uiElementOf(e.constructor,i))throw new u(`@uielement no found in "${i}". It is required to use hiddenOn decorator.`);Object.entries(d).map(([e,t])=>({key:e,props:t})).sort(e=>[n.ELEMENT,n.CHILD].includes(e.key)?-1:1).forEach(r=>{if(!r)throw new u("No decorator found");switch(r.key){case n.PROP:g[i]=r.props;break;case n.CHILD:{const a=r.props?.props?.name||i;try{if(!t.Model.isModel(t.Model.build({},a))&&!t.Model.isPropertyModel(e,a))throw new u(`Child "${a}" must be a model.`)}catch(e){throw new u(`Child "${a}" must be a model.`)}let s;const n=e[i];if("object"!=typeof n||null===n||Array.isArray(n)){const e=r.props.props?.name;s=new(t.Model.get(e))}O=O||[];const d=Object.assign({},o||{},{model:s},{inheritProps:r.props,childOf:A(o?.childOf,i)}),l=this.toFieldDefinition(n||s,d,!1),{inheritProps:c}=d;c&&(l.props=Object.assign({},l.props,c.props||{})),O.push(l);break}case n.UILISTPROP:{L=L||{};const e=r.props;e.name&&(L[e.name]="object"==typeof e?.props&&n.SEQUENCE in e.props?e.props:i);const t=Object.assign({},E.props?.item||{},M?.props||{},e?.props||{},o);g={tag:M?.tag||t.render||"",props:Object.assign({},g?.props,{mapper:L},t)};break}case n.EVENTS:case n.HIDDEN:case n.HIDE_FOR:case n.SHOW_FOR:case n.PAGE:case n.ORDER:case n.UILAYOUTPROP:case n.ELEMENT:{O=O||[];const t=r.props,d=r.key===n.HIDE_FOR?{hideFor:r.props}:r.key===n.SHOW_FOR?{showFor:r.props}:{},p=Object.assign({},g?.props,t.props||{},d,t?.props?.name?{path:A(o?.childOf,t.props.name),childOf:void 0}:{},o,{name:t.props?.name||i});if(r.key===n.ELEMENT){const r={tag:t.tag||g?.tag||f||"",props:p},o=s[i];if(o)for(const e of Object.entries(o).map(([e,t])=>({key:e,props:t})))this.isValidatableByAttribute(e.key)?r.props[this.translate(e.key)]=this.toAttributeValue(e.key,e.props):this.isValidatableByType(e.key)?(e.key===c.DATE&&(r.props[n.FORMAT]=e.props.format||l),r.props[n.TYPE]=e.key):this.isCustomValidator(e.key)&&(p[n.SUB_TYPE]=e.key,e.props?.message&&(p[n.VALIDATION_MESSAGE]=e.props.message));if(!r.props[n.TYPE]){const t=a.Metadata.type(e.constructor,i).name;r.props[n.TYPE]=this.translate(t.toLowerCase(),!0)}r.props.value=y(r.props[n.TYPE],e[i],r.props[n.FORMAT]),O.push(r)}else{const e=O.find(e=>e.props?.name===i||[n.UILAYOUTPROP,n.PAGE,n.EVENTS].includes(r.key)&&(e.props?.childOf===i||e.props?.childOf?.endsWith("."+i)));if(e)if(r.key===n.HIDE_FOR||r.key===n.SHOW_FOR)e.props=Object.assign({},e.props,d);else if(r.key!==n.UILAYOUTPROP)e.props=Object.assign({},e.props,{[r.key]:t});else{const{row:t,col:a,props:o}=r.props;e.props=Object.assign({},o||{},e.props,t,a)}}break}default:throw new u("Invalid key: "+r.key)}})}}o=Object.assign({},h,o,{handlers:R||{}});const D=new Set([...Array.isArray(o?.namespaces)?o.namespaces:[],..."string"==typeof o?.namespace?[o.namespace]:[]].filter(Boolean)),I=o?.operation;O=this.sortChildrenByOrder(O).filter(e=>{const t=e?.props?.hidden||[];if(t.length>0&&t.includes(I))return!1;const r=e?.props?.hideFor||[],a=e?.props?.showFor||[];return!(r.length>0&&[...D].some(e=>r.includes(e))||a.length>0&&![...D].some(e=>a.includes(e)))});const N={tag:f,item:g,props:o,children:O?.length?O:void 0};return s&&(N.rendererId=T(e)),N}static register(e){if(e.flavour in this.cache)throw new r.InternalError(`Rendering engine under ${e.flavour} already exists`);this.cache[e.flavour]=e,this.current=e}static getOrBoot(e){if(e instanceof m)return e;const t=new e;return t.initialize(),t}static get(e){if(!e)return this.getOrBoot(this.current);if(!(e in this.cache))throw new r.InternalError(`Rendering engine under ${e} does not exist`);return this.getOrBoot(this.cache[e])}static render(e,...a){if(!t.Model.get(e.constructor.name)&&!t.Model.fromObject(e))throw new r.InternalError("No model registered found");const o=t.Model.renderedBy(e.constructor);return m.get(o).render(e,...a)}}function O(...e){return(t,r)=>a.propMetadata(h(r,n.HIDDEN),e)(t,r)}function g(...e){return(t,r)=>a.propMetadata(h(r,n.SHOW_FOR),e)(t,r)}function L(e,t){return(r,o)=>{a.propMetadata(h(o,n.EVENTS),{..."object"==typeof e?e:{[e]:t}})(r,o)}}class A extends t.Validator{getMessage(e,...t){return A.translateService?A.translateService.translate(e,...t):super.getMessage(e,...t)}}class D extends o.LoggedClass{constructor(){super(),this.enableDarkMode=!0,this.isDarkMode=!1,this.item={tag:""},this.props={},this.route="",this.borders=!1,this.OperationKeys=r.OperationKeys,this.initialized=!1,this.events={},this.handlers={}}get repository(){return this._repository}set repository(e){this._repository=e}async render(...e){this.log.for(this.render).info(`render for ${this.componentName} with ${JSON.stringify(e)}`)}async refresh(...e){this.log.for(this.refresh).info("Refresh called with args: "+e)}async initialize(...e){this.initialized=!0}async translate(...e){this.log.for(this.translate).info(`translate for ${this.componentName} with ${JSON.stringify(e)}`)}async preview(...e){this.log.for(this.preview).debug("Preview called with args: "+e)}async submit(...e){this.log.for(this.submit).info(`submit for ${this.componentName} with ${JSON.stringify(e)}`)}parseHandlers(e,t){const r={};return Object.entries(e).forEach(([e,a])=>{if(f(a)){const o=new a,s=e in o?o[e]:o.handle;r[e]=s,t.handlers[e]=s}else r[e]=a,t.handlers[e]=a}),r}parseEvents(e,t){const r={};return Object.entries(e).forEach(([e,a])=>{const o=e,s=a();if(f(s)){const a=(new s)[e];a&&(r[o]=a,t.events[o]=a)}else r[o]=a,t.events[o]=a}),r}}class I extends o.LoggedClass{translate(e,t){this.log.for(this.translate).info(`Must translate ${e} with params ${JSON.stringify(t||{})}`)}instant(e,t){this.log.for(this.instant).info(`Must translate ${e} with params ${JSON.stringify(t||{})}`)}}function N(e,t){return(r,o)=>{const s={tag:e||r.name,props:t};return a.metadata(a.Metadata.key(n.REFLECT,n.UIMODEL),s)(r)}}function b(e){return a.apply(a.metadata(a.Metadata.key(n.REFLECT,n.RENDERED_BY),e))}function C(e,t){return(r,o)=>{const s={item:{tag:e||r.name,props:t}};return a.metadata(a.Metadata.key(n.REFLECT,n.UILISTMODEL),s)(r)}}function S(e){return t=>{const r={handlers:e};return a.metadata(a.Metadata.key(n.REFLECT,n.HANDLERS),r)(t)}}function P(t,r=1,o=1,s={}){const i=Object.assign({..."boolean"==typeof r?{flexMode:r,cols:1}:{flexMode:!1,cols:r},rows:o,...Object.assign({breakpoint:e.UIMediaBreakPoints.LARGE},s)});return(e,r)=>(a.metadata(a.Metadata.key(n.REFLECT,n.UILAYOUT),i)(e),N(t,i)(e,r))}function k(e,t=1,r=!1,a={}){let o=[];return"object"==typeof t&&(o=t,t=o.length),N(e,{pages:t,paginated:r,pageTitles:o,props:a})}t.Model.prototype.render=function(...e){return m.render(this,...e)},t.Model.renderedBy=(e=>a.Metadata.get(e,a.Metadata.key(n.REFLECT,n.RENDERED_BY))).bind(t.Model),t.Model.uiPropertiesOf=(e=>{const t=a.Metadata.get(e,a.Metadata.key(n.REFLECT,a.DecorationKeys.PROPERTIES));if(t)return Object.keys(t)}).bind(t.Model),t.Model.uiDecorationOf=(e,t,r)=>{const o=a.Metadata.get(e,a.Metadata.key(n.REFLECT,a.DecorationKeys.PROPERTIES,t));if(o)return r?o[r]:o},t.Model.uiModelOf=e=>a.Metadata.get(e,a.Metadata.key(n.REFLECT,n.UIMODEL)),t.Model.uiElementOf=(e,t)=>a.Metadata.get(e,h(t,n.ELEMENT)),t.Model.uiListModelOf=e=>a.Metadata.get(e,a.Metadata.key(n.REFLECT,n.UILISTMODEL)),t.Model.uiHandlersFor=e=>a.Metadata.get(e,a.Metadata.key(n.REFLECT,n.HANDLERS)),t.Model.uiLayoutOf=e=>a.Metadata.get(e,a.Metadata.key(n.REFLECT,n.UILAYOUT)),t.Model.uiIsHidden=(e,t)=>!!a.Metadata.get(e,h(t,n.HIDDEN)),t.Model.uiIsHiddenOn=(e,t,r)=>{const o=a.Metadata.get(e,h(t,n.HIDDEN));return!!o&&(r?o.includes(r):o)},t.Model.uiTypeOf=(e,t)=>{const o=a.Metadata.get(e,a.Metadata.key(n.REFLECT,a.DecorationKeys.PROPERTIES,t));if(!o)throw new r.NotFoundError(`No metadata found for property '${t}' on model '${e.name}'`);const s=Object.keys(o).filter(e=>[n.PROP,n.ELEMENT,n.CHILD].includes(e));if(0===s.length)throw new r.NotFoundError(`No UI type metadata found for property '${t}' on model '${e.name}'`);if(s.length>1)throw new u("Only one type of decoration is allowed. Please choose between @uiprop, @uichild or @uielement");return o[s[0]]},t.Model.uiListItems=(e=>{const t=a.Metadata.get(e,a.Metadata.key(n.REFLECT,a.DecorationKeys.PROPERTIES));if(t)return Object.keys(t)}).bind(t.Model);const U=t.ModelBuilder.prototype;U.decorateClass||(U.decorateClass=function(e){return this._classDecorators||(this._classDecorators=[]),this._classDecorators.push(e),this}),U.uimodel=function(e,t){return this.decorateClass(N(e,t))},U.renderedBy=function(e){return this.decorateClass(b(e))},U.uilistmodel=function(e,t){return this.decorateClass(C(e,t))},U.uihandlers=function(e){return this.decorateClass(S(e))},U.uilayout=function(e,t,r,a){return this.decorateClass(P(e,t,r,a))},U.uisteppedmodel=function(e,t,r,a){return this.decorateClass(k(e,t,r,a))};const w="##VERSION##",v="##PACKAGE##";a.Metadata.registerLibrary(v,w),e.ActionRoles=E,e.COMMIT="e9c549d",e.ComponentEventNames={Render:"render",BackButtonClickEvent:"backButtonNavigationEndEvent",Refresh:"RefreshEvent",Click:"ClickEvent",Change:"ChangeEvent",Submit:"SubmitEvent",ValidationError:"validationErrorEvent",ThemeChange:"themeChangeEvent",FormGroupLoaded:"formGroupLoadedEvent"},e.DecafComponent=D,e.DecafEventHandler=class extends D{constructor(){super()}handle(...e){this.log.for(this.handle).info(`component ${this.componentName} handling ${JSON.stringify(e)}`)}handleClick(...e){this.log.for(this.handleClick).info(`component ${this.componentName} handling click ${JSON.stringify(e)}`)}handleAction(...e){this.log.for(this.handleAction).info(`component ${this.componentName} handling action ${JSON.stringify(e)}`)}},e.DecafTranslateService=I,e.ElementPositions={left:"left",center:"center",right:"right",top:"top",bottom:"bottom"},e.ElementSizes={xsmall:"xsmall",small:"small",medium:"medium",default:"default",large:"large",xLarge:"xlarge","2xLarge":"2xlarge",auto:"auto",expand:"expand",block:"block",half:"half",full:"full"},e.FULL_VERSION="0.19.1-e9c549d",e.HTML5CheckTypes=p,e.HTML5DateFormat=l,e.HTML5InputTypes=c,e.LayoutGridGaps={small:"small",medium:"medium",large:"large",collapse:"collapse",none:""},e.PACKAGE_NAME=v,e.RenderingEngine=m,e.RenderingError=u,e.TransactionHooks={BeforeRead:"beforeRead",AfterRead:"afterRead",BeforeCreate:"beforeCreate",AfterCreate:"afterCreate",BeforeUpdate:"beforeUpdate",AfterUpdate:"afterUpdate",BeforeDelete:"beforeDelete",AfterDelete:"afterDelete"},e.UIKeys=n,e.UIValidator=A,e.VERSION=w,e.ValidatableByAttribute=d,e.ValidatableByType=i,e.WindowColorSchemes={light:"light",dark:"dark",undefined:"undefined"},e.escapeHtml=R,e.formatByType=y,e.generateUIModelID=T,e.getUIAttributeKey=h,e.hidden=()=>O(r.OperationKeys.CREATE,r.OperationKeys.READ,r.OperationKeys.UPDATE,r.OperationKeys.DELETE),e.hideFor=(...e)=>(t,r)=>a.propMetadata(h(r,n.HIDE_FOR),e)(t,r),e.hideOn=O,e.isClassConstructor=f,e.parseToNumber=M,e.parseValueByType=function e(a,o,s){let n;switch(a){case Array.name:n=(Array.isArray(o)?o.map(r=>e(t.ReservedModels.STRING.name.toLowerCase(),r,s)):[o]).join(",");break;case c.NUMBER:n=M(o);break;case c.DATE:{const e=s.format;o&&(""+o).trim().length&&(n=typeof o===t.ReservedModels.NUMBER.name.toLowerCase()?new Date(o):o?e?t.parseDate(e,o):new Date(o):void 0);break}default:n=typeof o===t.ReservedModels.OBJECT.name.toLowerCase()?Array.isArray(o)?o.join(","):JSON.stringify(o):typeof o===t.ReservedModels.BOOLEAN.name.toLowerCase()?o:typeof o===t.ReservedModels.STRING.name.toLowerCase()?R(o):n}if(void 0===n)throw new r.InternalError(`Failed to parse value of type ${a} from ${typeof o} - ${o}`);return n},e.renderIf=(...e)=>g(...e),e.renderedBy=b,e.revertHtml=e=>{const t={"&":"&","<":"<",">":">"};return(""+e).replace(/<|>|&/g,e=>t[e]||e)},e.showFor=g,e.uichild=(e,t,r={},o=!1,s=!1)=>(i,d)=>{const l={tag:t,serialize:s,props:Object.assign({},r||{},{name:e||d},o?{customTypes:[Array.name],multiple:!0}:{multiple:r?.multiple||!1})};a.propMetadata(h(d,n.CHILD),l)(i,d)},e.uielement=(e,t,r=!1)=>(o,s)=>{"object"==typeof e&&(t=e,e="");const i={tag:e,serialize:r,props:Object.assign({},t||{},{name:s})};return a.propMetadata(h(s,n.ELEMENT),i)(o,s)},e.uihandlers=S,e.uilayout=P,e.uilayoutprop=(e=1,t=1)=>(r,o)=>{const s={name:o,props:Object.assign({},{row:t,col:e})};a.propMetadata(h(o,n.UILAYOUTPROP),s)(r,o)},e.uilistmodel=C,e.uilistprop=(e=void 0,t)=>(r,o)=>{const s={name:e||o,props:t||{}};a.propMetadata(h(o,n.UILISTPROP),s)(r,o)},e.uimodel=N,e.uion=L,e.uionclick=e=>L("handleClick",e),e.uionrender=e=>L("render",e),e.uiorder=(e=n.FIRST)=>(t,r)=>a.propMetadata(h(r,n.ORDER),e)(t,r),e.uipageprop=(e=1)=>(t,r)=>a.propMetadata(h(r,n.PAGE),e)(t,r),e.uiprop=(e=void 0,t=!1)=>(r,o)=>{const s={name:e||o,stringify:t};a.propMetadata(h(o,n.PROP),s)(r,o)},e.uisteppedmodel=k,e.uitablecol=(e=n.LAST,t)=>(r,o)=>{const s={name:o,props:{sequence:e,...t?{valueParserFn:t}:{}}};a.propMetadata(h(o,n.UILISTPROP),s)(r,o)}},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decorator-validation"),require("@decaf-ts/db-decorators"),require("@decaf-ts/decoration"),require("@decaf-ts/logging")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decorator-validation","@decaf-ts/db-decorators","@decaf-ts/decoration","@decaf-ts/logging"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["ui-decorators"]={},e.decafTsDecoratorValidation,e.decafTsDbDecorators,e.decafTsDecoration,e.decafTsLogging);
|
|
1
|
+
var e,t;e=this,t=function(e,t,r,a,o){"use strict";var s;e.UIMediaBreakPoints=void 0,(s=e.UIMediaBreakPoints||(e.UIMediaBreakPoints={})).SMALL="small",s.MEDIUM="medium",s.LARGE="large",s.XLARGE="xlarge";const n={REFLECT:"ui",UIMODEL:"uimodel",RENDERED_BY:"rendered-by",ELEMENT:"uielement",PROP:"uiprop",CHILD:"uichild",NAME:"name",NAME_PREFIX:"input-",VALIDATION_MESSAGE:"validationMessage",UILISTMODEL:"uilistmodel",UILISTPROP:"uilistprop",UILAYOUT:"uilayout",UILAYOUTPROP:"uilayoutprop",HANDLERS:"handlers",TYPE:"type",SUB_TYPE:"subType",HIDDEN:"hidden",HIDE_FOR:"hide-for",SHOW_FOR:"show-for",RENDER_IF:"render-if",FORMAT:"format",ORDER:"order",PAGE:"page",EVENTS:"events",FIRST:"first",LAST:"last",READ_ONLY:"readonly",SEQUENCE:"sequence",REQUIRED:t.ValidationKeys.REQUIRED,MIN:t.ValidationKeys.MIN,MIN_LENGTH:t.ValidationKeys.MIN_LENGTH,MAX:t.ValidationKeys.MAX,MAX_LENGTH:t.ValidationKeys.MAX_LENGTH,PATTERN:t.ValidationKeys.PATTERN,URL:t.ValidationKeys.URL,STEP:t.ValidationKeys.STEP,DATE:t.ValidationKeys.DATE,EMAIL:t.ValidationKeys.EMAIL,PASSWORD:t.ValidationKeys.PASSWORD,EQUALS:t.ValidationKeys.EQUALS,DIFF:t.ValidationKeys.DIFF,LESS_THAN:t.ValidationKeys.LESS_THAN,LESS_THAN_OR_EQUAL:t.ValidationKeys.LESS_THAN_OR_EQUAL,GREATER_THAN:t.ValidationKeys.GREATER_THAN,GREATER_THAN_OR_EQUAL:t.ValidationKeys.GREATER_THAN_OR_EQUAL},i={[n.EMAIL]:t.EmailValidator,[n.URL]:t.URLValidator,[n.DATE]:t.DateValidator,[n.PASSWORD]:t.PasswordValidator},d={[n.REQUIRED]:t.RequiredValidator,[n.MIN]:t.MinValidator,[n.MAX]:t.MaxValidator,[n.STEP]:t.StepValidator,[n.MIN_LENGTH]:t.MinLengthValidator,[n.MAX_LENGTH]:t.MaxLengthValidator,[n.PATTERN]:t.PatternValidator,[n.EQUALS]:t.EqualsValidator,[n.DIFF]:t.DiffValidator,[n.LESS_THAN]:t.LessThanValidator,[n.LESS_THAN_OR_EQUAL]:t.LessThanOrEqualValidator,[n.GREATER_THAN]:t.GreaterThanValidator,[n.GREATER_THAN_OR_EQUAL]:t.GreaterThanOrEqualValidator},l="yyyy-MM-dd",c={BUTTON:"button",CHECKBOX:"checkbox",COLOR:"color",DATE:n.DATE,DATETIME_LOCAL:"datetime-local",EMAIL:n.EMAIL,FILE:"file",HIDDEN:"hidden",IMAGE:"image",MONTH:"month",NUMBER:"number",PASSWORD:n.PASSWORD,RADIO:"radio",RANGE:"range",RESET:"reset",SEARCH:"search",SUBMIT:"submit",TEL:"tel",TEXT:"text",TEXTAREA:"textarea",SELECT:"select",TIME:"time",URL:n.URL,WEEK:"week"},p=[c.CHECKBOX,c.RADIO],E={cancel:"cancel",confirm:"confirm",submit:"submit",clear:"clear",back:"back",[r.OperationKeys.CREATE]:r.OperationKeys.CREATE,[r.OperationKeys.READ]:r.OperationKeys.READ,[r.OperationKeys.UPDATE]:r.OperationKeys.UPDATE,[r.OperationKeys.DELETE]:r.OperationKeys.DELETE};class u extends r.InternalError{constructor(e){super(e,u.name)}}const f=e=>"function"==typeof e&&/^class\s/.test(e+"");function h(e,t){return a.Metadata.key(n.REFLECT,a.DecorationKeys.PROPERTIES,e,t)}function y(e,r,...a){if(e===n.DATE){if(!r)return"";const e=a.shift()||l;return t.formatDate(new Date(r),e)}return r}function M(e){if("number"==typeof e&&!isNaN(e))return e;const t=Number(e);return isNaN(t)?void 0:t}function R(e){if(!e)return e;const t={"&":"&","<":"<",">":">"};return(""+e).replace(/[&<>]/g,e=>t[e]||e)}function T(e){let r=Date.now();try{t.Model.pk(e.constructor)&&(r=e[t.Model.pk(e.constructor)])}catch(e){}return`${e.constructor.name}-${r}`}class m{static{this.cache={}}constructor(e){this.flavour=e,this.initialized=!1,m.register(this)}translate(e,r=!0){if(r)switch(e){case t.ReservedModels.STRING.name.toLowerCase():return c.TEXT;case t.ReservedModels.NUMBER.name.toLowerCase():case t.ReservedModels.BIGINT.name.toLowerCase():return c.NUMBER;case t.ReservedModels.BOOLEAN.name.toLowerCase():return c.CHECKBOX;case t.ReservedModels.DATE.name.toLowerCase():return c.DATE}else switch(e){case c.SELECT:case c.TEXT:case c.EMAIL:case c.COLOR:case c.PASSWORD:case c.TEL:case c.URL:case c.SEARCH:case c.HIDDEN:case c.TEXTAREA:case c.RADIO:return t.ReservedModels.STRING.name.toLowerCase();case c.NUMBER:return t.ReservedModels.NUMBER.name.toLowerCase();case c.CHECKBOX:return t.ReservedModels.BOOLEAN.name.toLowerCase();case c.DATE:case c.DATETIME_LOCAL:case c.TIME:return t.ReservedModels.DATE.name.toLowerCase()}return e}getClassDecoratorsMetadata(e){return[t.Model.uiModelOf(e.constructor),t.Model.uiListModelOf(e.constructor),t.Model.uiHandlersFor(e.constructor),t.Model.uiLayoutOf(e.constructor)].filter(Boolean)}sortChildrenByOrder(e=[]){return e.sort((r,a)=>{const o=r.props?.order??0,s=a.props?.order??0,i=r=>r===n.FIRST?0:typeof r===t.Primitives.NUMBER?1:r===n.LAST?e.length+e.indexOf(a):1,d=i(o),l=i(s);return d!==l?d-l:1===d&&typeof o===t.Primitives.NUMBER&&typeof s===t.Primitives.NUMBER?o-s:0})}isCustomValidator(e){return!Object.values(t.ValidationKeys).includes(e)&&!Object.values(n).includes(e)}isValidatableByType(e){return Object.keys(i).includes(e)}isValidatableByAttribute(e){return Object.keys(d).includes(e)}toAttributeValue(e,t){if(!Object.keys(d).includes(e))throw Error(`Invalid attribute key "${e}". Expected one of: ${Object.keys(d).join(", ")}.`);return e===n.REQUIRED||t[e]}toFieldDefinition(e,o={},s=!0){const{inheritProps:i,...d}=o;o=d;const p=this.getClassDecoratorsMetadata(e);if(!p.length)throw new u(`No ui definitions set for model ${e.constructor.name}. Did you use @uimodel?`);const E=Object.assign({},...p,i||{}),{tag:f,props:h,item:M,handlers:R}=E,m=t.Model.uiPropertiesOf(e.constructor);let O,g=M?.props||{},L={};const A=(e,t)=>e?[e,t].join("."):t;if(m){const s=a.Metadata.get(e.constructor,t.ValidationKeys.REFLECT)||{};for(const i of m){const d=t.Model.uiDecorationOf(e.constructor,i);let p;try{p=t.Model.uiTypeOf(e.constructor,i)}catch(e){if(!(e instanceof r.NotFoundError))throw e}if(t.Model.uiIsHidden(e.constructor,i)&&!t.Model.uiElementOf(e.constructor,i))throw new u(`@uielement no found in "${i}". It is required to use hiddenOn decorator.`);Object.entries(d).map(([e,t])=>({key:e,props:t})).sort(e=>[n.ELEMENT,n.CHILD].includes(e.key)?-1:1).forEach(r=>{if(!r)throw new u("No decorator found");switch(r.key){case n.PROP:g[i]=r.props;break;case n.CHILD:{const a=r.props?.props?.name||i;try{if(!t.Model.isModel(t.Model.build({},a))&&!t.Model.isPropertyModel(e,a))throw new u(`Child "${a}" must be a model.`)}catch(e){throw new u(`Child "${a}" must be a model.`)}let s;const n=e[i];if("object"!=typeof n||null===n||Array.isArray(n)){const e=r.props.props?.name;s=new(t.Model.get(e))}O=O||[];const d=Object.assign({},o||{},{model:s},{inheritProps:r.props,childOf:A(o?.childOf,i)}),l=this.toFieldDefinition(n||s,d,!1),{inheritProps:c}=d;c&&(l.props=Object.assign({},l.props,c.props||{})),O.push(l);break}case n.UILISTPROP:{L=L||{};const e=r.props;e.name&&(L[e.name]="object"==typeof e?.props&&n.SEQUENCE in e.props?e.props:i);const t=Object.assign({},E.props?.item||{},M?.props||{},e?.props||{},o);g={tag:M?.tag||t.render||"",props:Object.assign({},g?.props,{mapper:L},t)};break}case n.EVENTS:case n.HIDDEN:case n.HIDE_FOR:case n.SHOW_FOR:case n.PAGE:case n.ORDER:case n.UILAYOUTPROP:case n.ELEMENT:{O=O||[];const t=r.props,d=r.key===n.HIDE_FOR?{hideFor:r.props}:r.key===n.SHOW_FOR?{showFor:r.props}:{},p=Object.assign({},g?.props,t.props||{},d,t?.props?.name?{path:A(o?.childOf,t.props.name),childOf:void 0}:{},o,{name:t.props?.name||i});if(r.key===n.ELEMENT){const r={tag:t.tag||g?.tag||f||"",props:p},o=s[i];if(o)for(const e of Object.entries(o).map(([e,t])=>({key:e,props:t})))this.isValidatableByAttribute(e.key)?r.props[this.translate(e.key)]=this.toAttributeValue(e.key,e.props):this.isValidatableByType(e.key)?(e.key===c.DATE&&(r.props[n.FORMAT]=e.props.format||l),r.props[n.TYPE]=e.key):this.isCustomValidator(e.key)&&(p[n.SUB_TYPE]=e.key,e.props?.message&&(p[n.VALIDATION_MESSAGE]=e.props.message));if(!r.props[n.TYPE]){const t=a.Metadata.type(e.constructor,i).name;r.props[n.TYPE]=this.translate(t.toLowerCase(),!0)}r.props.value=y(r.props[n.TYPE],e[i],r.props[n.FORMAT]),O.push(r)}else{const e=O.find(e=>e.props?.name===i||[n.UILAYOUTPROP,n.PAGE,n.EVENTS].includes(r.key)&&(e.props?.childOf===i||e.props?.childOf?.endsWith("."+i)));if(e)if(r.key===n.HIDE_FOR||r.key===n.SHOW_FOR)e.props=Object.assign({},e.props,d);else if(r.key!==n.UILAYOUTPROP)e.props=Object.assign({},e.props,{[r.key]:t});else{const{row:t,col:a,props:o}=r.props;e.props=Object.assign({},o||{},e.props,t,a)}}break}default:throw new u("Invalid key: "+r.key)}})}}o=Object.assign({},h,o,{handlers:R||{}});const D=new Set([...Array.isArray(o?.namespaces)?o.namespaces:[],..."string"==typeof o?.namespace?[o.namespace]:[]].filter(Boolean)),I=o?.operation;O=this.sortChildrenByOrder(O).filter(e=>{const t=e?.props?.hidden||[];if(t.length>0&&t.includes(I))return!1;const r=e?.props?.hideFor||[],a=e?.props?.showFor||[];return!(r.length>0&&[...D].some(e=>r.includes(e))||a.length>0&&![...D].some(e=>a.includes(e)))});const N={tag:f,item:g,props:o,children:O?.length?O:void 0};return s&&(N.rendererId=T(e)),N}static register(e){if(e.flavour in this.cache)throw new r.InternalError(`Rendering engine under ${e.flavour} already exists`);this.cache[e.flavour]=e,this.current=e}static getOrBoot(e){if(e instanceof m)return e;const t=new e;return t.initialize(),t}static get(e){if(!e)return this.getOrBoot(this.current);if(!(e in this.cache))throw new r.InternalError(`Rendering engine under ${e} does not exist`);return this.getOrBoot(this.cache[e])}static render(e,...a){if(!t.Model.get(e.constructor.name)&&!t.Model.fromObject(e))throw new r.InternalError("No model registered found");const o=t.Model.renderedBy(e.constructor);return m.get(o).render(e,...a)}}function O(...e){return(t,r)=>a.propMetadata(h(r,n.HIDDEN),e)(t,r)}function g(...e){return(t,r)=>a.propMetadata(h(r,n.SHOW_FOR),e)(t,r)}function L(e,t){return(r,o)=>{a.propMetadata(h(o,n.EVENTS),{..."object"==typeof e?e:{[e]:t}})(r,o)}}class A extends t.Validator{getMessage(e,...t){return A.translateService?A.translateService.translate(e,...t):super.getMessage(e,...t)}}class D extends o.LoggedClass{constructor(){super(),this.enableDarkMode=!0,this.isDarkMode=!1,this.item={tag:""},this.props={},this.route="",this.borders=!1,this.OperationKeys=r.OperationKeys,this.initialized=!1,this.events={},this.handlers={}}get repository(){return this._repository}set repository(e){this._repository=e}async render(...e){this.log.for(this.render).info(`render for ${this.componentName} with ${JSON.stringify(e)}`)}async refresh(...e){this.log.for(this.refresh).info("Refresh called with args: "+e)}async initialize(...e){this.initialized=!0}async translate(...e){this.log.for(this.translate).info(`translate for ${this.componentName} with ${JSON.stringify(e)}`)}async preview(...e){this.log.for(this.preview).debug("Preview called with args: "+e)}async submit(...e){this.log.for(this.submit).info(`submit for ${this.componentName} with ${JSON.stringify(e)}`)}parseHandlers(e,t){const r={};return Object.entries(e).forEach(([e,a])=>{if(f(a)){const o=new a,s=e in o?o[e]:o.handle;r[e]=s,t.handlers[e]=s}else r[e]=a,t.handlers[e]=a}),r}parseEvents(e,t){const r={};return Object.entries(e).forEach(([e,a])=>{const o=e,s=a();if(f(s)){const a=(new s)[e];a&&(r[o]=a,t.events[o]=a)}else r[o]=a,t.events[o]=a}),r}}class I extends o.LoggedClass{translate(e,t){this.log.for(this.translate).info(`Must translate ${e} with params ${JSON.stringify(t||{})}`)}instant(e,t){this.log.for(this.instant).info(`Must translate ${e} with params ${JSON.stringify(t||{})}`)}}function N(e,t){return(r,o)=>{const s={tag:e||r.name,props:t};return a.metadata(a.Metadata.key(n.REFLECT,n.UIMODEL),s)(r)}}function b(e){return a.apply(a.metadata(a.Metadata.key(n.REFLECT,n.RENDERED_BY),e))}function C(e,t){return(r,o)=>{const s={item:{tag:e||r.name,props:t}};return a.metadata(a.Metadata.key(n.REFLECT,n.UILISTMODEL),s)(r)}}function S(e){return t=>{const r={handlers:e};return a.metadata(a.Metadata.key(n.REFLECT,n.HANDLERS),r)(t)}}function P(t,r=1,o=1,s={}){const i=Object.assign({..."boolean"==typeof r?{flexMode:r,cols:1}:{flexMode:!1,cols:r},rows:o,...Object.assign({breakpoint:e.UIMediaBreakPoints.LARGE},s)});return(e,r)=>(a.metadata(a.Metadata.key(n.REFLECT,n.UILAYOUT),i)(e),N(t,i)(e,r))}function k(e,t=1,r=!1,a={}){let o=[];return"object"==typeof t&&(o=t,t=o.length),N(e,{pages:t,paginated:r,pageTitles:o,props:a})}t.Model.prototype.render=function(...e){return m.render(this,...e)},t.Model.renderedBy=(e=>a.Metadata.get(e,a.Metadata.key(n.REFLECT,n.RENDERED_BY))).bind(t.Model),t.Model.uiPropertiesOf=(e=>{const t=a.Metadata.get(e,a.Metadata.key(n.REFLECT,a.DecorationKeys.PROPERTIES));if(t)return Object.keys(t)}).bind(t.Model),t.Model.uiDecorationOf=(e,t,r)=>{const o=a.Metadata.get(e,a.Metadata.key(n.REFLECT,a.DecorationKeys.PROPERTIES,t));if(o)return r?o[r]:o},t.Model.uiModelOf=e=>a.Metadata.get(e,a.Metadata.key(n.REFLECT,n.UIMODEL)),t.Model.uiElementOf=(e,t)=>a.Metadata.get(e,h(t,n.ELEMENT)),t.Model.uiListModelOf=e=>a.Metadata.get(e,a.Metadata.key(n.REFLECT,n.UILISTMODEL)),t.Model.uiHandlersFor=e=>a.Metadata.get(e,a.Metadata.key(n.REFLECT,n.HANDLERS)),t.Model.uiLayoutOf=e=>a.Metadata.get(e,a.Metadata.key(n.REFLECT,n.UILAYOUT)),t.Model.uiIsHidden=(e,t)=>!!a.Metadata.get(e,h(t,n.HIDDEN)),t.Model.uiIsHiddenOn=(e,t,r)=>{const o=a.Metadata.get(e,h(t,n.HIDDEN));return!!o&&(r?o.includes(r):o)},t.Model.uiTypeOf=(e,t)=>{const o=a.Metadata.get(e,a.Metadata.key(n.REFLECT,a.DecorationKeys.PROPERTIES,t));if(!o)throw new r.NotFoundError(`No metadata found for property '${t}' on model '${e.name}'`);const s=Object.keys(o).filter(e=>[n.PROP,n.ELEMENT,n.CHILD].includes(e));if(0===s.length)throw new r.NotFoundError(`No UI type metadata found for property '${t}' on model '${e.name}'`);if(s.length>1)throw new u("Only one type of decoration is allowed. Please choose between @uiprop, @uichild or @uielement");return o[s[0]]},t.Model.uiListItems=(e=>{const t=a.Metadata.get(e,a.Metadata.key(n.REFLECT,a.DecorationKeys.PROPERTIES));if(t)return Object.keys(t)}).bind(t.Model);const U=t.ModelBuilder.prototype;U.decorateClass||(U.decorateClass=function(e){return this._classDecorators||(this._classDecorators=[]),this._classDecorators.push(e),this}),U.uimodel=function(e,t){return this.decorateClass(N(e,t))},U.renderedBy=function(e){return this.decorateClass(b(e))},U.uilistmodel=function(e,t){return this.decorateClass(C(e,t))},U.uihandlers=function(e){return this.decorateClass(S(e))},U.uilayout=function(e,t,r,a){return this.decorateClass(P(e,t,r,a))},U.uisteppedmodel=function(e,t,r,a){return this.decorateClass(k(e,t,r,a))};const w="##VERSION##",v="##PACKAGE##";a.Metadata.registerLibrary(v,w),e.ActionRoles=E,e.COMMIT="f5a4e57",e.ComponentEventNames={Render:"render",BackButtonClickEvent:"backButtonNavigationEndEvent",Refresh:"RefreshEvent",Click:"ClickEvent",Change:"ChangeEvent",Submit:"SubmitEvent",ValidationError:"validationErrorEvent",ThemeChange:"themeChangeEvent",FormGroupLoaded:"formGroupLoadedEvent"},e.DecafComponent=D,e.DecafEventHandler=class extends D{constructor(){super()}handle(...e){this.log.for(this.handle).info(`component ${this.componentName} handling ${JSON.stringify(e)}`)}handleClick(...e){this.log.for(this.handleClick).info(`component ${this.componentName} handling click ${JSON.stringify(e)}`)}handleAction(...e){this.log.for(this.handleAction).info(`component ${this.componentName} handling action ${JSON.stringify(e)}`)}},e.DecafTranslateService=I,e.ElementPositions={left:"left",center:"center",right:"right",top:"top",bottom:"bottom"},e.ElementSizes={xsmall:"xsmall",small:"small",medium:"medium",default:"default",large:"large",xLarge:"xlarge","2xLarge":"2xlarge",auto:"auto",expand:"expand",block:"block",half:"half",full:"full"},e.FULL_VERSION="0.20.2-f5a4e57",e.HTML5CheckTypes=p,e.HTML5DateFormat=l,e.HTML5InputTypes=c,e.LayoutGridGaps={small:"small",medium:"medium",large:"large",collapse:"collapse",none:""},e.PACKAGE_NAME=v,e.RenderingEngine=m,e.RenderingError=u,e.TransactionHooks={BeforeRead:"beforeRead",AfterRead:"afterRead",BeforeCreate:"beforeCreate",AfterCreate:"afterCreate",BeforeUpdate:"beforeUpdate",AfterUpdate:"afterUpdate",BeforeDelete:"beforeDelete",AfterDelete:"afterDelete"},e.UIKeys=n,e.UIValidator=A,e.VERSION=w,e.ValidatableByAttribute=d,e.ValidatableByType=i,e.WindowColorSchemes={light:"light",dark:"dark",undefined:"undefined"},e.escapeHtml=R,e.formatByType=y,e.generateUIModelID=T,e.getUIAttributeKey=h,e.hidden=()=>O(r.OperationKeys.CREATE,r.OperationKeys.READ,r.OperationKeys.UPDATE,r.OperationKeys.DELETE),e.hideFor=(...e)=>(t,r)=>a.propMetadata(h(r,n.HIDE_FOR),e)(t,r),e.hideOn=O,e.isClassConstructor=f,e.parseToNumber=M,e.parseValueByType=function e(a,o,s){let n;switch(a){case Array.name:n=(Array.isArray(o)?o.map(r=>e(t.ReservedModels.STRING.name.toLowerCase(),r,s)):[o]).join(",");break;case c.NUMBER:n=M(o);break;case c.DATE:{const e=s.format;o&&(""+o).trim().length&&(n=typeof o===t.ReservedModels.NUMBER.name.toLowerCase()?new Date(o):o?e?t.parseDate(e,o):new Date(o):void 0);break}default:n=typeof o===t.ReservedModels.OBJECT.name.toLowerCase()?Array.isArray(o)?o.join(","):JSON.stringify(o):typeof o===t.ReservedModels.BOOLEAN.name.toLowerCase()?o:typeof o===t.ReservedModels.STRING.name.toLowerCase()?R(o):n}if(void 0===n)throw new r.InternalError(`Failed to parse value of type ${a} from ${typeof o} - ${o}`);return n},e.renderIf=(...e)=>g(...e),e.renderedBy=b,e.revertHtml=e=>{const t={"&":"&","<":"<",">":">"};return(""+e).replace(/<|>|&/g,e=>t[e]||e)},e.showFor=g,e.uichild=(e,t,r={},o=!1,s=!1)=>(i,d)=>{const l={tag:t,serialize:s,props:Object.assign({},r||{},{name:e||d},o?{customTypes:[Array.name],multiple:!0}:{multiple:r?.multiple||!1})};a.propMetadata(h(d,n.CHILD),l)(i,d)},e.uielement=(e,t,r=!1)=>(o,s)=>{"object"==typeof e&&(t=e,e="");const i={tag:e,serialize:r,props:Object.assign({},t||{},{name:s})};return a.propMetadata(h(s,n.ELEMENT),i)(o,s)},e.uihandlers=S,e.uilayout=P,e.uilayoutprop=(e=1,t=1)=>(r,o)=>{const s={name:o,props:Object.assign({},{row:t,col:e})};a.propMetadata(h(o,n.UILAYOUTPROP),s)(r,o)},e.uilistmodel=C,e.uilistprop=(e=void 0,t)=>(r,o)=>{const s={name:e||o,props:t||{}};a.propMetadata(h(o,n.UILISTPROP),s)(r,o)},e.uimodel=N,e.uion=L,e.uionclick=e=>L("handleClick",e),e.uionrender=e=>L("render",e),e.uiorder=(e=n.FIRST)=>(t,r)=>a.propMetadata(h(r,n.ORDER),e)(t,r),e.uipageprop=(e=1)=>(t,r)=>a.propMetadata(h(r,n.PAGE),e)(t,r),e.uiprop=(e=void 0,t=!1)=>(r,o)=>{const s={name:e||o,stringify:t};a.propMetadata(h(o,n.PROP),s)(r,o)},e.uisteppedmodel=k,e.uitablecol=(e=n.LAST,t)=>(r,o)=>{const s={name:o,props:{sequence:e,...t?{valueParserFn:t}:{}}};a.propMetadata(h(o,n.UILISTPROP),s)(r,o)}},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decorator-validation"),require("@decaf-ts/db-decorators"),require("@decaf-ts/decoration"),require("@decaf-ts/logging")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decorator-validation","@decaf-ts/db-decorators","@decaf-ts/decoration","@decaf-ts/logging"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["ui-decorators"]={},e.decafTsDecoratorValidation,e.decafTsDbDecorators,e.decafTsDecoration,e.decafTsLogging);
|
|
2
2
|
//# sourceMappingURL=ui-decorators.cjs.map
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isGraphNodePolicyManifest = isGraphNodePolicyManifest;
|
|
4
|
+
/**
|
|
5
|
+
* Type guard for {@link GraphNodePolicyManifest}: accepts objects whose
|
|
6
|
+
* `inputMode` (when present) is one of the declared
|
|
7
|
+
* {@link GraphNodePolicyInputMode} values.
|
|
8
|
+
*/
|
|
4
9
|
function isGraphNodePolicyManifest(value) {
|
|
5
10
|
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
6
11
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph/catalog/GraphNodePolicyManifest.cjs","sourceRoot":"","sources":["graph/catalog/GraphNodePolicyManifest.js"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"graph/catalog/GraphNodePolicyManifest.cjs","sourceRoot":"","sources":["graph/catalog/GraphNodePolicyManifest.js"],"names":[],"mappings":";;AAKA,8DAKC;AAVD;;;;GAIG;AACH,SAAgB,yBAAyB,CAAC,KAAK;IAC3C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAC3D,OAAO,KAAK,CAAC;IACjB,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;IAChC,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU,CAAC;AAC5F,CAAC;AACD,mDAAmD"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GRAPH_DEFAULT_CATEGORY_STYLE = exports.GRAPH_VISUAL_STATE_STYLES = exports.PortDirection = exports.
|
|
4
|
-
exports.graphCanonicalDocumentEnabled = graphCanonicalDocumentEnabled;
|
|
3
|
+
exports.GRAPH_DEFAULT_CATEGORY_STYLE = exports.GRAPH_VISUAL_STATE_STYLES = exports.PortDirection = exports.GraphKeys = void 0;
|
|
5
4
|
exports.graphVisualStyleOf = graphVisualStyleOf;
|
|
6
5
|
exports.registerGraphCategoryStyle = registerGraphCategoryStyle;
|
|
7
6
|
exports.graphCategoryStyleOf = graphCategoryStyleOf;
|
|
@@ -13,19 +12,6 @@ exports.resolveEffectiveIcon = resolveEffectiveIcon;
|
|
|
13
12
|
GraphKeys["EDGE"] = "graph.edge";
|
|
14
13
|
GraphKeys["PORT"] = "graph.port";
|
|
15
14
|
})(exports.GraphKeys || (exports.GraphKeys = {}));
|
|
16
|
-
/**
|
|
17
|
-
* Rollout gate for the canonical document pipeline (DECAF-50/P1). Defaults to
|
|
18
|
-
* off so existing legacy snapshot/definition flows keep working until the
|
|
19
|
-
* save/history cutover. Overridable at runtime via the browser-safe global
|
|
20
|
-
* `__DECAF_GRAPH_CANONICAL_DOCUMENT__` flag (no Node/`process` dependency).
|
|
21
|
-
*/
|
|
22
|
-
exports.GRAPH_CANONICAL_DOCUMENT_ENABLED_DEFAULT = false;
|
|
23
|
-
function graphCanonicalDocumentEnabled() {
|
|
24
|
-
const flag = globalThis["__DECAF_GRAPH_CANONICAL_DOCUMENT__"];
|
|
25
|
-
if (typeof flag === "boolean")
|
|
26
|
-
return flag;
|
|
27
|
-
return exports.GRAPH_CANONICAL_DOCUMENT_ENABLED_DEFAULT;
|
|
28
|
-
}
|
|
29
15
|
(function (PortDirection) {
|
|
30
16
|
PortDirection["INPUT"] = "input";
|
|
31
17
|
PortDirection["OUTPUT"] = "output";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph/constants.cjs","sourceRoot":"","sources":["graph/constants.js"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"graph/constants.cjs","sourceRoot":"","sources":["graph/constants.js"],"names":[],"mappings":";;;AAoCA,gDAEC;AAuBD,gEAEC;AAID,oDAKC;AAKD,sDAIC;AAKD,oDAIC;AAzFD,CAAC,UAAU,SAAS;IAChB,SAAS,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAC7B,SAAS,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;IACjC,SAAS,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;IACjC,SAAS,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;AACrC,CAAC,CAAC,CAAC,iBAAS,IAAI,CAAC,iBAAS,GAAG,EAAE,CAAC,CAAC,CAAC;AAElC,CAAC,UAAU,aAAa;IACpB,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACjC,aAAa,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IACnC,aAAa,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;AAC/C,CAAC,CAAC,CAAC,qBAAa,IAAI,CAAC,qBAAa,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1C;;;;;;GAMG;AACU,QAAA,yBAAyB,GAAG;IACrC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;IACpB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;IAC3C,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;IAC3C,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;IACzB,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;IACvC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;CAC7B,CAAC;AACF;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAAC,KAAK;IACpC,OAAO,iCAAyB,CAAC,KAAK,CAAC,IAAI,iCAAyB,CAAC,IAAI,CAAC;AAC9E,CAAC;AACD;;;;;;;GAOG;AACH,MAAM,6BAA6B,GAAG,EAAE,CAAC;AACzC;;;GAGG;AACU,QAAA,4BAA4B,GAAG;IACxC,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,YAAY;CACrB,CAAC;AACF;;;;GAIG;AACH,SAAgB,0BAA0B,CAAC,QAAQ,EAAE,KAAK;IACtD,6BAA6B,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;AACpD,CAAC;AACD;;GAEG;AACH,SAAgB,oBAAoB,CAAC,QAAQ;IACzC,IAAI,QAAQ,IAAI,6BAA6B,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,OAAO,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,oCAA4B,CAAC;AACxC,CAAC;AACD;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,aAAa,EAAE,QAAQ;IACzD,IAAI,aAAa;QACb,OAAO,aAAa,CAAC;IACzB,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;AAChD,CAAC;AACD;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,YAAY,EAAE,QAAQ;IACvD,IAAI,YAAY;QACZ,OAAO,YAAY,CAAC;IACxB,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,oCAA4B,CAAC,IAAI,CAAC;AACpF,CAAC;AACD,qCAAqC"}
|
|
@@ -14,6 +14,18 @@ const GRAPH_DATE_TYPE_NAME_FORMATS = {
|
|
|
14
14
|
"date-time": "date-time",
|
|
15
15
|
duration: "duration",
|
|
16
16
|
};
|
|
17
|
+
/**
|
|
18
|
+
* Compiles a decorated workflow (or an already-resolved
|
|
19
|
+
* {@link GraphWorkflowDefinition}) into a canonical
|
|
20
|
+
* {@link GraphWorkflowDocument}: workflow boundary ports, one instance per
|
|
21
|
+
* node (input-port defaults and loop/switch metadata folded into
|
|
22
|
+
* `parameters`/`metadata`), one edge per relation, plus UI state. Browser-safe:
|
|
23
|
+
* node constructors are never invoked, so `@node` classes can seed demo
|
|
24
|
+
* graphs without engine imports (DECAF-50 §4.4.4).
|
|
25
|
+
*
|
|
26
|
+
* @throws ValidationError when the input cannot be resolved to a decorated
|
|
27
|
+
* graph workflow definition.
|
|
28
|
+
*/
|
|
17
29
|
function graphDecoratedWorkflowCompiler(workflow, options = {}) {
|
|
18
30
|
const definition = resolveGraphWorkflowDefinition(workflow);
|
|
19
31
|
const nodes = definition.nodes.map((nodeMetadata) => graphNodeInstanceOf(nodeMetadata, definition, options.positions ?? {}));
|
|
@@ -92,7 +104,7 @@ function graphNodeInstanceOf(nodeMetadata, workflow, positions) {
|
|
|
92
104
|
nodeDefinition?.kind ??
|
|
93
105
|
nodeDefinition?.name ??
|
|
94
106
|
nodeMetadata.id,
|
|
95
|
-
parameters: graphNodeParametersOf(nodeDefinition),
|
|
107
|
+
parameters: graphNodeParametersOf(nodeMetadata, nodeDefinition),
|
|
96
108
|
};
|
|
97
109
|
if (nodeMetadata.label !== undefined)
|
|
98
110
|
instance.label = nodeMetadata.label;
|
|
@@ -137,20 +149,65 @@ function reflectJsonSafeValue(collected, key, value) {
|
|
|
137
149
|
return;
|
|
138
150
|
}
|
|
139
151
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
152
|
+
/**
|
|
153
|
+
* Loop-configuration fields of legacy `graph.metadata.loop` bags that are
|
|
154
|
+
* node configuration rather than loop-body settings. Per DECAF-50 §4.4.5
|
|
155
|
+
* rule 6 (non-port operation/configuration fields belong in `parameters`),
|
|
156
|
+
* these are carried into the instance's `parameters` so legacy loop
|
|
157
|
+
* round-trips stay lossless; `body`/`maxIterations`/`timeoutMs`/
|
|
158
|
+
* `concurrency` live on {@link GraphLoopConfiguration}.
|
|
159
|
+
*/
|
|
160
|
+
const GRAPH_LOOP_PARAMETER_KEYS = [
|
|
161
|
+
"condition",
|
|
162
|
+
"inputPort",
|
|
163
|
+
"outputPort",
|
|
164
|
+
"itemPort",
|
|
165
|
+
"resultPort",
|
|
166
|
+
"statePort",
|
|
167
|
+
"slice",
|
|
168
|
+
];
|
|
169
|
+
function graphNodeParametersOf(nodeMetadata, nodeDefinition) {
|
|
143
170
|
const parameters = {};
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
171
|
+
if (nodeDefinition) {
|
|
172
|
+
for (const port of (0, reader_js_1.graphLeafPortsOf)(nodeDefinition.ports)) {
|
|
173
|
+
if (port.direction !== "input")
|
|
174
|
+
continue;
|
|
175
|
+
const defaultValue = graphPortDefaultValueOf(port);
|
|
176
|
+
if (defaultValue !== undefined) {
|
|
177
|
+
parameters[port.path ?? port.property] = defaultValue;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
const loopMetadata = graphLegacyLoopMetadataOf(nodeMetadata, nodeDefinition);
|
|
182
|
+
if (loopMetadata) {
|
|
183
|
+
for (const key of GRAPH_LOOP_PARAMETER_KEYS) {
|
|
184
|
+
const value = loopMetadata[key];
|
|
185
|
+
if (value === undefined || typeof value === "function")
|
|
186
|
+
continue;
|
|
187
|
+
if (!(0, GraphJsonValue_js_1.isGraphJsonSafeValue)(value))
|
|
188
|
+
continue;
|
|
189
|
+
try {
|
|
190
|
+
parameters[key] = JSON.parse(JSON.stringify(value));
|
|
191
|
+
}
|
|
192
|
+
catch {
|
|
193
|
+
// skip non-serializable legacy values
|
|
194
|
+
}
|
|
150
195
|
}
|
|
151
196
|
}
|
|
152
197
|
return parameters;
|
|
153
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Reads the legacy `graph.metadata.loop` bag from either the node metadata or
|
|
201
|
+
* the node definition shim, so loop-configuration fields can be split between
|
|
202
|
+
* {@link GraphLoopConfiguration} and instance `parameters` (§4.4.5 rule 6).
|
|
203
|
+
*/
|
|
204
|
+
function graphLegacyLoopMetadataOf(nodeMetadata, nodeDefinition) {
|
|
205
|
+
const loopMetadata = nodeMetadata.metadata?.["loop"] ??
|
|
206
|
+
nodeDefinition?.graph?.metadata?.["loop"];
|
|
207
|
+
return loopMetadata && typeof loopMetadata === "object"
|
|
208
|
+
? loopMetadata
|
|
209
|
+
: undefined;
|
|
210
|
+
}
|
|
154
211
|
function graphLoopConfigurationOf(nodeMetadata, nodeDefinition) {
|
|
155
212
|
const loopMetadata = nodeMetadata.metadata?.["loop"] ??
|
|
156
213
|
nodeDefinition?.graph?.metadata?.["loop"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph/document/GraphDecoratedWorkflowCompiler.cjs","sourceRoot":"","sources":["graph/document/GraphDecoratedWorkflowCompiler.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graph/document/GraphDecoratedWorkflowCompiler.cjs","sourceRoot":"","sources":["graph/document/GraphDecoratedWorkflowCompiler.js"],"names":[],"mappings":";;;AAwBA,wEAmBC;AA3CD,2DAA0D;AAC1D,8CAA6E;AAC7E,2DAA2D;AAC3D,8FAA6F;AAC7F,uFAAiF;AACjF,MAAM,sBAAsB,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAClE,MAAM,4BAA4B,GAAG;IACjC,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,WAAW;IACxB,QAAQ,EAAE,UAAU;CACvB,CAAC;AACF;;;;;;;;;;;GAWG;AACH,SAAgB,8BAA8B,CAAC,QAAQ,EAAE,OAAO,GAAG,EAAE;IACjE,MAAM,UAAU,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,mBAAmB,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7H,MAAM,OAAO,GAAG,IAAI,8DAA4B,CAAC,OAAO,CAAC,EAAE,IAAI,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IACnI,KAAK,MAAM,IAAI,IAAI,IAAA,4BAAgB,EAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,IAAA,4BAAgB,EAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;QAC7C,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,WAAW,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC;IACzD,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;AAC3B,CAAC;AACD,SAAS,8BAA8B,CAAC,QAAQ;IAC5C,IAAI,CAAC;QACD,OAAO,IAAA,qCAAyB,EAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,+BAAe,CAAC,sEAAsE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjH,CAAC;AACL,CAAC;AACD,SAAS,mBAAmB,CAAC,IAAI;IAC7B,MAAM,YAAY,GAAG;QACjB,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ;QAC9B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC;QAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;KAC1B,CAAC;IACF,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,YAAY,KAAK,SAAS;QAC1B,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAC5B,YAAY,CAAC,QAAQ,GAAG,EAAE,QAAQ,EAAE,CAAC;IACzC,OAAO,YAAY,CAAC;AACxB,CAAC;AACD,SAAS,iBAAiB,CAAC,IAAI;IAC3B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,4BAA4B,EAAE,CAAC;QACzD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC/E,CAAC;IACD,OAAO,IAAA,8DAA8B,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAClF,CAAC;AACD,SAAS,uBAAuB,CAAC,IAAI;IACjC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,cAAc,CAAC,CAAC;IACzF,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,KAAK,UAAU;QACpD,OAAO,SAAS,CAAC;IACrB,IAAI,CAAC,IAAA,wCAAoB,EAAC,MAAM,CAAC;QAC7B,OAAO,SAAS,CAAC;IACrB,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,CAAC;QACH,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AACD,SAAS,sBAAsB,CAAC,OAAO;IACnC,IAAI,CAAC,OAAO,CAAC,QAAQ;QACjB,OAAO,SAAS,CAAC;IACrB,OAAO,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;AACjD,CAAC;AACD,SAAS,mBAAmB,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS;IAC1D,MAAM,cAAc,GAAG,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC;QACtD,CAAC,CAAC,yBAAyB,CAAC,YAAY,CAAC,IAAI,CAAC;QAC9C,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,QAAQ,GAAG;QACb,EAAE,EAAE,YAAY,CAAC,EAAE;QACnB,IAAI,EAAE,YAAY,CAAC,IAAI;YACnB,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,IAAI;YACpB,YAAY,CAAC,EAAE;QACnB,UAAU,EAAE,qBAAqB,CAAC,YAAY,EAAE,cAAc,CAAC;KAClE,CAAC;IACF,IAAI,YAAY,CAAC,KAAK,KAAK,SAAS;QAChC,QAAQ,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;IACxC,MAAM,QAAQ,GAAG,6BAA6B,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC7E,IAAI,QAAQ;QACR,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACjC,MAAM,IAAI,GAAG,wBAAwB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IACpE,IAAI,IAAI;QACJ,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC5C,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC;QAC1D,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;IACrB,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AACD,SAAS,6BAA6B,CAAC,YAAY,EAAE,cAAc;IAC/D,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,KAAK,MAAM,MAAM,IAAI;QACjB,cAAc,EAAE,KAAK,EAAE,QAAQ;QAC/B,YAAY,CAAC,QAAQ;KACxB,EAAE,CAAC;QACA,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YACrC,SAAS;QACb,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAChD,IAAI,GAAG,KAAK,MAAM;gBACd,SAAS;YACb,oBAAoB,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AACD,SAAS,oBAAoB,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK;IAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,UAAU;QAClD,OAAO;IACX,IAAI,CAAC,IAAA,wCAAoB,EAAC,KAAK,CAAC;QAC5B,OAAO;IACX,IAAI,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,CAAC;QACH,OAAO;IACX,CAAC;AACL,CAAC;AACD;;;;;;;GAOG;AACH,MAAM,yBAAyB,GAAG;IAC9B,WAAW;IACX,WAAW;IACX,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,WAAW;IACX,OAAO;CACV,CAAC;AACF,SAAS,qBAAqB,CAAC,YAAY,EAAE,cAAc;IACvD,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,IAAI,cAAc,EAAE,CAAC;QACjB,KAAK,MAAM,IAAI,IAAI,IAAA,4BAAgB,EAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO;gBAC1B,SAAS;YACb,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC7B,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;YAC1D,CAAC;QACL,CAAC;IACL,CAAC;IACD,MAAM,YAAY,GAAG,yBAAyB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC7E,IAAI,YAAY,EAAE,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,yBAAyB,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,UAAU;gBAClD,SAAS;YACb,IAAI,CAAC,IAAA,wCAAoB,EAAC,KAAK,CAAC;gBAC5B,SAAS;YACb,IAAI,CAAC;gBACD,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;YACD,MAAM,CAAC;gBACH,sCAAsC;YAC1C,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,UAAU,CAAC;AACtB,CAAC;AACD;;;;GAIG;AACH,SAAS,yBAAyB,CAAC,YAAY,EAAE,cAAc;IAC3D,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;QAChD,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ;QACnD,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,SAAS,CAAC;AACpB,CAAC;AACD,SAAS,wBAAwB,CAAC,YAAY,EAAE,cAAc;IAC1D,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;QAChD,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ;QACjD,OAAO,SAAS,CAAC;IACrB,MAAM,MAAM,GAAG,YAAY,CAAC;IAC5B,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,CAAC,UAAU;QACX,OAAO,SAAS,CAAC;IACrB,IAAI,IAAI,CAAC;IACT,IAAI,CAAC;QACD,IAAI,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,+BAAe,CAAC,4CAA4C,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5G,CAAC;IACD,OAAO;QACH,IAAI;QACJ,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAChD,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACxC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;KAC/C,CAAC;AACN,CAAC;AACD,SAAS,QAAQ,CAAC,KAAK;IACnB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACnF,CAAC;AACD,SAAS,uBAAuB,CAAC,UAAU;IACvC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ;QAC9B,OAAO,SAAS,CAAC;IACrB,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtE,oBAAoB,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AACD,SAAS,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK;IAC1C,MAAM,OAAO,GAAG,CAAC,GAAG,sBAAsB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9F,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9F,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG;QACT,EAAE,EAAE,KAAK,KAAK,EAAE;QAChB,IAAI,EAAE,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACzC,MAAM;QACN,MAAM;KACT,CAAC;IACF,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;QAC5B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAChC,IAAI,QAAQ;QACR,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,OAAO,IAAI,CAAC;AAChB,CAAC;AACD,SAAS,eAAe,CAAC,QAAQ,EAAE,QAAQ;IACvC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3E,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3E,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,UAAU,CAAC;QACvD,OAAO,YAAY,CAAC;IACxB,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,UAAU,CAAC;QACvD,OAAO,YAAY,CAAC;IACxB,OAAO,MAAM,CAAC;AAClB,CAAC;AACD,SAAS,gBAAgB,CAAC,cAAc,EAAE,IAAI;IAC1C,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI;QACxB,OAAO,KAAK,CAAC;IACjB,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,SAAS,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC;AAC7I,CAAC;AACD,SAAS,sBAAsB,CAAC,SAAS,EAAE,QAAQ;IAC/C,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,sBAAsB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,sBAAsB,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnJ,IAAI,CAAC,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC;QAC3C,OAAO,SAAS,CAAC;IACrB,OAAO,yBAAyB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC;AACD,SAAS,qBAAqB,CAAC,KAAK;IAChC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QACnC,OAAO,SAAS,CAAC;IACrB,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,oBAAoB,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AACD,SAAS,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO;IAChD,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IACrD,CAAC;IACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1D,IAAI,OAAO,EAAE,CAAC;QACV,MAAM,QAAQ,GAAG;YACb,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,OAAO,CAAC,EAAE;YAClB,IAAI,EAAE,YAAY;SACrB,CAAC;QACF,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,MAAM,IAAI,+BAAe,CAAC,sCAAsC,OAAO,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAC7G,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,+BAAe,CAAC,iCAAiC,MAAM,CAAC,KAAK,CAAC,6FAA6F,YAAY,IAAI,CAAC,CAAC;AAC3L,CAAC;AACD,SAAS,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK;IAC7C,MAAM,eAAe,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/F,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC3B,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK;YACrB,OAAO,QAAQ,CAAC;QACpB,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK;YACvB,OAAO,QAAQ,CAAC;QACpB,IAAI,CAAC,eAAe,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;YACpD,SAAS;QACb,MAAM,cAAc,GAAG,yBAAyB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,cAAc;YACd,CAAC,cAAc,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,IAAI,cAAc,CAAC,GAAG,KAAK,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/F,OAAO,QAAQ,CAAC;QACpB,CAAC;IACL,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QACpD,OAAO,SAAS,CAAC;IACrB,OAAO,SAAS,CAAC;AACrB,CAAC;AACD,SAAS,gBAAgB,CAAC,KAAK;IAC3B,OAAO,OAAO,KAAK,KAAK,UAAU,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC;AACxF,CAAC;AACD,SAAS,yBAAyB,CAAC,IAAI;IACnC,IAAI,CAAC;QACD,OAAO,IAAA,qCAAyB,EAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,CAAC;QACH,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AACD;;;;GAIG;AACH,MAAa,8BAA8B;IACvC,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAG,EAAE;QAC1B,OAAO,8BAA8B,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;CACJ;AAJD,wEAIC;AACD,0DAA0D"}
|
|
@@ -7,7 +7,17 @@ const GraphJsonValue_js_1 = require("./GraphJsonValue.cjs");
|
|
|
7
7
|
const GraphEndpoint_js_1 = require("./GraphEndpoint.cjs");
|
|
8
8
|
const GraphNodeBinding_js_1 = require("./GraphNodeBinding.cjs");
|
|
9
9
|
const GraphValueSchema_js_1 = require("./../catalog/GraphValueSchema.cjs");
|
|
10
|
+
/**
|
|
11
|
+
* Fluent builder for the canonical {@link GraphWorkflowDocument}
|
|
12
|
+
* (DECAF-50 §4.4.4). Collects boundary ports, node instances, edges, and
|
|
13
|
+
* optional settings/metadata/UI state, then validates and freezes a
|
|
14
|
+
* defensively-copied document on {@link GraphWorkflowDocumentBuilder.build}.
|
|
15
|
+
*/
|
|
10
16
|
class GraphWorkflowDocumentBuilder {
|
|
17
|
+
/**
|
|
18
|
+
* @param id Document id.
|
|
19
|
+
* @param name Optional document name; defaults to an empty string.
|
|
20
|
+
*/
|
|
11
21
|
constructor(id, name) {
|
|
12
22
|
this.document = {
|
|
13
23
|
id,
|
|
@@ -18,14 +28,17 @@ class GraphWorkflowDocumentBuilder {
|
|
|
18
28
|
edges: [],
|
|
19
29
|
};
|
|
20
30
|
}
|
|
31
|
+
/** Appends a workflow input port. */
|
|
21
32
|
addInput(port) {
|
|
22
33
|
this.document.inputs.push(port);
|
|
23
34
|
return this;
|
|
24
35
|
}
|
|
36
|
+
/** Appends a workflow output port. */
|
|
25
37
|
addOutput(port) {
|
|
26
38
|
this.document.outputs.push(port);
|
|
27
39
|
return this;
|
|
28
40
|
}
|
|
41
|
+
/** Appends a node instance, defaulting `parameters` to an empty object. */
|
|
29
42
|
addNode(node) {
|
|
30
43
|
this.document.nodes.push({
|
|
31
44
|
...node,
|
|
@@ -33,38 +46,67 @@ class GraphWorkflowDocumentBuilder {
|
|
|
33
46
|
});
|
|
34
47
|
return this;
|
|
35
48
|
}
|
|
49
|
+
/** Appends an edge instance. */
|
|
36
50
|
addEdge(edge) {
|
|
37
51
|
this.document.edges.push(edge);
|
|
38
52
|
return this;
|
|
39
53
|
}
|
|
54
|
+
/** Sets (or clears) the document's free-form settings bag. */
|
|
40
55
|
setSettings(settings) {
|
|
41
56
|
this.document.settings = settings;
|
|
42
57
|
return this;
|
|
43
58
|
}
|
|
59
|
+
/** Sets (or clears) the document's metadata bag. */
|
|
44
60
|
setMetadata(metadata) {
|
|
45
61
|
this.document.metadata = metadata;
|
|
46
62
|
return this;
|
|
47
63
|
}
|
|
64
|
+
/** Sets (or clears) the document's editor UI state. */
|
|
48
65
|
setUi(ui) {
|
|
49
66
|
this.document.ui = ui;
|
|
50
67
|
return this;
|
|
51
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Validates the accumulated document with
|
|
71
|
+
* {@link assertGraphWorkflowDocumentValid} and returns a deep-ish copy:
|
|
72
|
+
* ports, nodes, and edges are cloned per entry, and the optional
|
|
73
|
+
* `settings`/`metadata`/`ui` bags are only present when explicitly set, so
|
|
74
|
+
* callers never observe builder-internal `undefined` fields.
|
|
75
|
+
*
|
|
76
|
+
* @throws ValidationError when the document fails validation.
|
|
77
|
+
*/
|
|
52
78
|
build() {
|
|
53
79
|
assertGraphWorkflowDocumentValid(this.document);
|
|
54
|
-
|
|
80
|
+
const document = {
|
|
55
81
|
id: this.document.id,
|
|
56
82
|
name: this.document.name,
|
|
57
83
|
inputs: this.document.inputs.map((port) => ({ ...port })),
|
|
58
84
|
outputs: this.document.outputs.map((port) => ({ ...port })),
|
|
59
85
|
nodes: this.document.nodes.map((node) => ({ ...node })),
|
|
60
86
|
edges: this.document.edges.map((edge) => ({ ...edge })),
|
|
61
|
-
settings: this.document.settings,
|
|
62
|
-
metadata: this.document.metadata,
|
|
63
|
-
ui: this.document.ui,
|
|
64
87
|
};
|
|
88
|
+
if (this.document.settings !== undefined) {
|
|
89
|
+
document.settings = this.document.settings;
|
|
90
|
+
}
|
|
91
|
+
if (this.document.metadata !== undefined) {
|
|
92
|
+
document.metadata = this.document.metadata;
|
|
93
|
+
}
|
|
94
|
+
if (this.document.ui !== undefined) {
|
|
95
|
+
document.ui = this.document.ui;
|
|
96
|
+
}
|
|
97
|
+
return document;
|
|
65
98
|
}
|
|
66
99
|
}
|
|
67
100
|
exports.GraphWorkflowDocumentBuilder = GraphWorkflowDocumentBuilder;
|
|
101
|
+
/**
|
|
102
|
+
* Structural validation gate for a canonical {@link GraphWorkflowDocument}
|
|
103
|
+
* (shared by the frontend builder and the backend nine-stage validator,
|
|
104
|
+
* DECAF-50 §4.8 stage 1 shape rules). Checks unique port/node/edge ids,
|
|
105
|
+
* valid schemas, binding shapes, edge endpoints, and recursively validates
|
|
106
|
+
* nested loop-body documents.
|
|
107
|
+
*
|
|
108
|
+
* @throws ValidationError describing the first invalid aspect found.
|
|
109
|
+
*/
|
|
68
110
|
function assertGraphWorkflowDocumentValid(document, context = { seen: [] }) {
|
|
69
111
|
if (context.seen.includes(document)) {
|
|
70
112
|
throw new db_decorators_1.ValidationError(`Document '${describeDocument(document)}' contains a loop body that references itself (cyclic document)`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph/document/GraphWorkflowDocumentBuilder.cjs","sourceRoot":"","sources":["graph/document/GraphWorkflowDocumentBuilder.js"],"names":[],"mappings":";;;AA8DA,4EAoDC;AAlHD,2DAA0D;AAC1D,2DAAoF;AACpF,yDAAmG;AACnG,+DAA4D;AAC5D,0EAAsE;AACtE,MAAa,4BAA4B;IACrC,YAAY,EAAE,EAAE,IAAI;QAChB,IAAI,CAAC,QAAQ,GAAG;YACZ,EAAE;YACF,IAAI,EAAE,IAAI,IAAI,EAAE;YAChB,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;SACZ,CAAC;IACN,CAAC;IACD,QAAQ,CAAC,IAAI;QACT,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,SAAS,CAAC,IAAI;QACV,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,IAAI;QACR,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;YACrB,GAAG,IAAI;YACP,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;SACpC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,IAAI;QACR,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,WAAW,CAAC,QAAQ;QAChB,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,WAAW,CAAC,QAAQ;QAChB,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,KAAK,CAAC,EAAE;QACJ,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,KAAK;QACD,gCAAgC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,OAAO;YACH,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;YACpB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;YACxB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;YACzD,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;YAC3D,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;YACvD,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;YACvD,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;YAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;YAChC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;SACvB,CAAC;IACN,CAAC;CACJ;AAxDD,oEAwDC;AACD,SAAgB,gCAAgC,CAAC,QAAQ,EAAE,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;IAC7E,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,+BAAe,CAAC,aAAa,gBAAgB,CAAC,QAAQ,CAAC,iEAAiE,CAAC,CAAC;IACxI,CAAC;IACD,IAAI,OAAO,QAAQ,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,+BAAe,CAAC,0DAA0D,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtD,MAAM,IAAI,+BAAe,CAAC,4DAA4D,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,IAAI,+BAAe,CAAC,+DAA+D,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,+BAAe,CAAC,kBAAkB,IAAI,CAAC,EAAE,gEAAgE,CAAC,CAAC;QACzH,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,IAAA,wCAAkB,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,+BAAe,CAAC,kBAAkB,IAAI,CAAC,EAAE,2CAA2C,CAAC,CAAC;QACpG,CAAC;QACD,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,aAAa,GAAG;QAClB,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;KACpC,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAChC,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,iCAAiC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QACtE,CAAC;IACL,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAChC,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAChC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;QAC9F,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAA,wCAAoB,EAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,+BAAe,CAAC,iEAAiE,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAA,wCAAoB,EAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,+BAAe,CAAC,iJAAiJ,CAAC,CAAC;IACjL,CAAC;IACD,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,IAAA,wCAAoB,EAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,+BAAe,CAAC,2IAA2I,CAAC,CAAC;IAC3K,CAAC;AACL,CAAC;AACD,SAAS,gBAAgB,CAAC,QAAQ;IAC9B,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC;AAC9D,CAAC;AACD,SAAS,oBAAoB,CAAC,IAAI,EAAE,OAAO;IACvC,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,+BAAe,CAAC,sDAAsD,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,+BAAe,CAAC,YAAY,IAAI,CAAC,EAAE,uDAAuD,CAAC,CAAC;IAC1G,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9C,MAAM,IAAI,+BAAe,CAAC,SAAS,IAAI,CAAC,EAAE,0CAA0C,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAC5D,MAAM,IAAI,+BAAe,CAAC,SAAS,IAAI,CAAC,EAAE,oEAAoE,CAAC,CAAC;IACpH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9D,IAAI,IAAA,0CAAsB,EAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,+BAAe,CAAC,SAAS,IAAI,CAAC,EAAE,wBAAwB,GAAG,mDAAmD,CAAC,CAAC;YAC9H,CAAC;YACD,IAAI,CAAC,IAAA,yCAAmB,EAAC,OAAO,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,+BAAe,CAAC,SAAS,IAAI,CAAC,EAAE,wBAAwB,GAAG,oEAAoE,CAAC,CAAC;YAC/I,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,IAAA,wCAAoB,EAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrE,MAAM,IAAI,+BAAe,CAAC,SAAS,IAAI,CAAC,EAAE,0BAA0B,GAAG,iCAAiC,CAAC,CAAC;YAC9G,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvD,MAAM,IAAI,+BAAe,CAAC,SAAS,IAAI,CAAC,EAAE,6BAA6B,GAAG,uCAAuC,CAAC,CAAC;YACvH,CAAC;QACL,CAAC;IACL,CAAC;IACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/D,IAAI,IAAA,0CAAsB,EAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,+BAAe,CAAC,SAAS,IAAI,CAAC,EAAE,yBAAyB,GAAG,mDAAmD,CAAC,CAAC;YAC/H,CAAC;YACD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpE,MAAM,IAAI,+BAAe,CAAC,SAAS,IAAI,CAAC,EAAE,yBAAyB,GAAG,qDAAqD,CAAC,CAAC;YACjI,CAAC;QACL,CAAC;IACL,CAAC;IACD,IAAI,CAAC,IAAA,wCAAoB,EAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,+BAAe,CAAC,SAAS,IAAI,CAAC,EAAE,4IAA4I,CAAC,CAAC;IAC5L,CAAC;AACL,CAAC;AACD,SAAS,iCAAiC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO;IAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,+BAAe,CAAC,SAAS,IAAI,CAAC,EAAE,+CAA+C,CAAC,CAAC;IAC/F,CAAC;IACD,gCAAgC,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvD,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS;QAClC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,+BAAe,CAAC,SAAS,IAAI,CAAC,EAAE,gDAAgD,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;QAC9B,CAAC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,+BAAe,CAAC,SAAS,IAAI,CAAC,EAAE,4DAA4D,CAAC,CAAC;IAC5G,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;QAChC,CAAC,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,+BAAe,CAAC,SAAS,IAAI,CAAC,EAAE,8CAA8C,CAAC,CAAC;IAC9F,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;QACnE,IAAI,CAAC,QAAQ;YACT,SAAS;QACb,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtD,IAAI,IAAA,0CAAsB,EAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,+BAAe,CAAC,SAAS,IAAI,CAAC,EAAE,uBAAuB,GAAG,mDAAmD,CAAC,CAAC;YAC7H,CAAC;YACD,8BAA8B,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC;AACL,CAAC;AACD,SAAS,8BAA8B,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU;IACjE,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,IAAI,+BAAe,CAAC,SAAS,MAAM,mBAAmB,UAAU,qEAAqE,CAAC,CAAC;IACjJ,CAAC;IACD,QAAQ,SAAS,CAAC,MAAM,EAAE,CAAC;QACvB,KAAK,UAAU;YACX,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACxD,MAAM,IAAI,+BAAe,CAAC,SAAS,MAAM,mBAAmB,UAAU,2DAA2D,CAAC,CAAC;YACvI,CAAC;YACD,MAAM;QACV,KAAK,MAAM;YACP,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ;gBACpC,CAAC,SAAS,CAAC,MAAM;gBACjB,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ;gBAClC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBAClB,MAAM,IAAI,+BAAe,CAAC,SAAS,MAAM,mBAAmB,UAAU,0DAA0D,CAAC,CAAC;YACtI,CAAC;YACD,MAAM;QACV,KAAK,SAAS;YACV,IAAI,CAAC,IAAA,wCAAoB,EAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,+BAAe,CAAC,SAAS,MAAM,mBAAmB,UAAU,+CAA+C,CAAC,CAAC;YAC3H,CAAC;YACD,MAAM;QACV,KAAK,YAAY;YACb,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;gBACpE,MAAM,IAAI,+BAAe,CAAC,SAAS,MAAM,mBAAmB,UAAU,uDAAuD,CAAC,CAAC;YACnI,CAAC;YACD,MAAM;QACV;YACI,MAAM,IAAI,+BAAe,CAAC,SAAS,MAAM,mBAAmB,UAAU,sEAAsE,CAAC,CAAC;IACtJ,CAAC;AACL,CAAC;AACD,SAAS,oBAAoB,CAAC,IAAI,EAAE,OAAO;IACvC,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,+BAAe,CAAC,sDAAsD,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,+BAAe,CAAC,YAAY,IAAI,CAAC,EAAE,uDAAuD,CAAC,CAAC;IAC1G,CAAC;IACD,IAAI,CAAC,IAAA,kCAAe,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,+BAAe,CAAC,SAAS,IAAI,CAAC,EAAE,gDAAgD,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,CAAC,IAAA,kCAAe,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,+BAAe,CAAC,SAAS,IAAI,CAAC,EAAE,gDAAgD,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACrD,MAAM,IAAI,+BAAe,CAAC,SAAS,IAAI,CAAC,EAAE,WAAW,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IACzI,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrB,IAAI,CAAC,IAAA,wCAAoB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,+BAAe,CAAC,SAAS,IAAI,CAAC,EAAE,sJAAsJ,CAAC,CAAC;IACtM,CAAC;AACL,CAAC;AACD,SAAS,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO;IAC3E,IAAI,IAAA,0CAAuB,EAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,+BAAe,CAAC,GAAG,OAAO,8BAA8B,QAAQ,CAAC,IAAI,yCAAyC,CAAC,CAAC;QAC9H,CAAC;QACD,OAAO;IACX,CAAC;IACD,IAAI,IAAA,sCAAmB,EAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,+BAAe,CAAC,GAAG,OAAO,qBAAqB,QAAQ,CAAC,MAAM,qCAAqC,CAAC,CAAC;QACnH,CAAC;QACD,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtD,MAAM,IAAI,+BAAe,CAAC,GAAG,OAAO,4DAA4D,CAAC,CAAC;QACtG,CAAC;IACL,CAAC;AACL,CAAC;AACD,wDAAwD"}
|
|
1
|
+
{"version":3,"file":"graph/document/GraphWorkflowDocumentBuilder.cjs","sourceRoot":"","sources":["graph/document/GraphWorkflowDocumentBuilder.js"],"names":[],"mappings":"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"}
|
|
@@ -204,6 +204,10 @@ function normalizeEdges(edges, relations) {
|
|
|
204
204
|
sourceRef: entry.sourceRef ?? current.sourceRef ?? entry.source ?? current.source,
|
|
205
205
|
target: entry.target || current.target,
|
|
206
206
|
targetRef: entry.targetRef ?? current.targetRef ?? entry.target ?? current.target,
|
|
207
|
+
// Labels are document-carried display semantics (§4.4.7): a row merged
|
|
208
|
+
// from a canvas clone that never carried its own label must not erase
|
|
209
|
+
// the relation row's label.
|
|
210
|
+
label: entry.label ?? current.label,
|
|
207
211
|
metadata: {
|
|
208
212
|
...(current.metadata || {}),
|
|
209
213
|
...(entry.metadata || {}),
|
|
@@ -354,13 +358,61 @@ function boundaryAliasesFor(definition) {
|
|
|
354
358
|
aliases.add(definition.name);
|
|
355
359
|
return aliases;
|
|
356
360
|
}
|
|
357
|
-
function legacyEndpoint(refId, port, aliases) {
|
|
361
|
+
function legacyEndpoint(refId, port, aliases, boundaryPortIds) {
|
|
358
362
|
const resolvedPort = port ?? "";
|
|
359
363
|
if (!refId || aliases.has(refId)) {
|
|
360
364
|
return { scope: "workflow", port: resolvedPort };
|
|
361
365
|
}
|
|
366
|
+
// The legacy decorated-root canvas rendered workflow input ports as draggable
|
|
367
|
+
// boundary badges (`input-{port}`, port handle `value`). Those bindings stay
|
|
368
|
+
// lossless only when the badge id folds back onto the workflow port it was
|
|
369
|
+
// drawn for (DECAF-50 §4.11); otherwise a workflow port would collapse into
|
|
370
|
+
// one shared boundary endpoint and drop real edges (§4.4.6 canonical form).
|
|
371
|
+
if (refId.startsWith("input-")) {
|
|
372
|
+
const workflowPortId = boundaryPortIds?.get(refId.slice("input-".length) ?? "");
|
|
373
|
+
if (workflowPortId) {
|
|
374
|
+
return {
|
|
375
|
+
scope: "workflow",
|
|
376
|
+
port: workflowPortId,
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
}
|
|
362
380
|
return { scope: "node", nodeId: refId, port: resolvedPort };
|
|
363
381
|
}
|
|
382
|
+
/**
|
|
383
|
+
* Maps workflow input-property names to their legacy boundary-badge ids
|
|
384
|
+
* (`input-{property}`), so badges drawn on the canvas resolve back to the
|
|
385
|
+
* workflow port they represent (§4.11).
|
|
386
|
+
*/
|
|
387
|
+
function boundaryPortIdsFor(snapshot) {
|
|
388
|
+
const map = new Map();
|
|
389
|
+
for (const port of snapshot.definition.inputs) {
|
|
390
|
+
map.set(`input-${port.property}`, port.property);
|
|
391
|
+
}
|
|
392
|
+
return map;
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* Resolves the decorated definition's own edge labels by canonical endpoint
|
|
396
|
+
* pair, so converted legacy edges that never carried a label on the edge row
|
|
397
|
+
* (canvas-drawn clones merged over the relation rows) still restore the
|
|
398
|
+
* document-carried {@link GraphEdgeInstance.label} (§4.4.7) instead of losing
|
|
399
|
+
* the display affordance on save/reload.
|
|
400
|
+
*/
|
|
401
|
+
function legacyRelationLabelByEndpoint(snapshot, aliases, boundaryPortIds) {
|
|
402
|
+
const map = new Map();
|
|
403
|
+
for (const relation of snapshot.definition.relations) {
|
|
404
|
+
const label = typeof relation.label === "string" ? relation.label : undefined;
|
|
405
|
+
if (!label)
|
|
406
|
+
continue;
|
|
407
|
+
const sourceRef = typeof relation.source === "string" ? relation.source : undefined;
|
|
408
|
+
const targetRef = typeof relation.target === "string" ? relation.target : undefined;
|
|
409
|
+
map.set(edgePairKeyOf({
|
|
410
|
+
source: legacyEndpoint(sourceRef, relation.sourcePort, aliases, boundaryPortIds),
|
|
411
|
+
target: legacyEndpoint(targetRef, relation.targetPort, aliases, boundaryPortIds),
|
|
412
|
+
}), label);
|
|
413
|
+
}
|
|
414
|
+
return map;
|
|
415
|
+
}
|
|
364
416
|
function endpointToLegacyRef(endpoint) {
|
|
365
417
|
if (endpoint.scope === "workflow") {
|
|
366
418
|
return { refId: "$workflow", port: endpoint.port };
|
|
@@ -423,25 +475,42 @@ function nodeInstanceFromLegacy(node) {
|
|
|
423
475
|
}
|
|
424
476
|
return instance;
|
|
425
477
|
}
|
|
426
|
-
function edgeInstanceFromLegacy(edge, aliases) {
|
|
427
|
-
const source = legacyEndpoint(edge.sourceRef ?? edge.source, edge.sourcePort, aliases);
|
|
428
|
-
const target = legacyEndpoint(edge.targetRef ?? edge.target, edge.targetPort, aliases);
|
|
478
|
+
function edgeInstanceFromLegacy(edge, aliases, boundaryPortIds, relationLabelByPair) {
|
|
479
|
+
const source = legacyEndpoint(edge.sourceRef ?? edge.source, edge.sourcePort, aliases, boundaryPortIds);
|
|
480
|
+
const target = legacyEndpoint(edge.targetRef ?? edge.target, edge.targetPort, aliases, boundaryPortIds);
|
|
429
481
|
const instance = {
|
|
430
482
|
id: edge.id,
|
|
431
483
|
type: "data",
|
|
432
484
|
source,
|
|
433
485
|
target,
|
|
434
486
|
};
|
|
435
|
-
|
|
436
|
-
|
|
487
|
+
const label = edge.label ?? relationLabelByPair?.get(edgePairKeyOf({ source, target }));
|
|
488
|
+
if (label)
|
|
489
|
+
instance.label = label;
|
|
437
490
|
const metadata = sanitizeToGraphJsonValue(edge.metadata ?? {});
|
|
438
491
|
if (metadata && Object.keys(metadata).length)
|
|
439
492
|
instance.metadata = metadata;
|
|
440
493
|
return instance;
|
|
441
494
|
}
|
|
442
|
-
/**
|
|
495
|
+
/** Endpoint-pair key for edge identity (canonical `GraphEndpoint` shape). */
|
|
496
|
+
function edgePairKeyOf(edge) {
|
|
497
|
+
const keyOf = (endpoint) => endpoint.scope === "node"
|
|
498
|
+
? `node:${endpoint.nodeId}:${endpoint.port}`
|
|
499
|
+
: `workflow:${endpoint.port}`;
|
|
500
|
+
return `${keyOf(edge.source)}->${keyOf(edge.target)}`;
|
|
501
|
+
}
|
|
502
|
+
/**
|
|
503
|
+
* Maps a legacy (pre-P7) canvas snapshot to the canonical
|
|
504
|
+
* {@link GraphWorkflowDocument} (DECAF-50 §4.4.6): legacy `node.data` becomes
|
|
505
|
+
* instance `parameters`, legacy `node.metadata` becomes instance `metadata`,
|
|
506
|
+
* workflow boundary badges (`input-{port}`) fold back onto their workflow
|
|
507
|
+
* ports, and edge labels missing from cloned edge rows are restored from the
|
|
508
|
+
* decorated definition's relation labels (§4.4.7).
|
|
509
|
+
*/
|
|
443
510
|
function graphWorkflowDocumentFromLegacySnapshot(snapshot) {
|
|
444
511
|
const aliases = boundaryAliasesFor(snapshot.definition);
|
|
512
|
+
const boundaryPortIds = boundaryPortIdsFor(snapshot);
|
|
513
|
+
const relationLabelByPair = legacyRelationLabelByEndpoint(snapshot, aliases, boundaryPortIds);
|
|
445
514
|
const inputs = Object.fromEntries(snapshot.state.inputs.map((entry) => [entry.path, sanitizeToGraphJsonValue(entry.value)]));
|
|
446
515
|
const outputs = Object.fromEntries(snapshot.state.outputs.map((entry) => [entry.path, sanitizeToGraphJsonValue(entry.value)]));
|
|
447
516
|
const document = {
|
|
@@ -450,7 +519,7 @@ function graphWorkflowDocumentFromLegacySnapshot(snapshot) {
|
|
|
450
519
|
inputs: snapshot.definition.inputs.map((port) => portInstanceFromDefinition(port, inputs[port.property])),
|
|
451
520
|
outputs: snapshot.definition.outputs.map((port) => portInstanceFromDefinition(port, outputs[port.property])),
|
|
452
521
|
nodes: snapshot.state.nodes.map(nodeInstanceFromLegacy),
|
|
453
|
-
edges: snapshot.state.edges.map((edge) => edgeInstanceFromLegacy(edge, aliases)),
|
|
522
|
+
edges: snapshot.state.edges.map((edge) => edgeInstanceFromLegacy(edge, aliases, boundaryPortIds, relationLabelByPair)),
|
|
454
523
|
};
|
|
455
524
|
if (snapshot.definition.metadata) {
|
|
456
525
|
const metadata = sanitizeToGraphJsonValue(snapshot.definition.metadata);
|