@decaf-ts/ui-decorators 0.17.6 → 0.17.8

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.
@@ -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",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 T(e){if(!e)return e;const t={"&":"&amp;","<":"&lt;",">":"&gt;"};return(""+e).replace(/[&<>]/g,e=>t[e]||e)}function m(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 R{static{this.cache={}}constructor(e){this.flavour=e,this.initialized=!1,R.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:T}=E,R=t.Model.uiPropertiesOf(e.constructor);let O,L=M?.props||{},g={};const A=(e,t)=>e?[e,t].join("."):t;if(R){const s=a.Metadata.get(e.constructor,t.ValidationKeys.REFLECT)||{};for(const i of R){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:L[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:{g=g||{};const e=r.props;e.name&&(g[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);L={tag:M?.tag||t.render||"",props:Object.assign({},L?.props,{mapper:g},t)};break}case n.EVENTS:case n.HIDDEN:case n.PAGE:case n.ORDER:case n.UILAYOUTPROP:case n.ELEMENT:{O=O||[];const t=r.props,d=Object.assign({},L?.props,t.props||{},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||L?.tag||f||"",props:d},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)&&(d[n.SUB_TYPE]=e.key,e.props?.message&&(d[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.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:T||{}});const D=o?.operation;O=this.sortChildrenByOrder(O).filter(e=>{const t=e?.props?.hidden||[];return t?.length&&t.includes(D)?void 0:e});const I={tag:f,item:L,props:o,children:O?.length?O:void 0};return s&&(I.rendererId=m(e)),I}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 R)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 R.get(o).render(e,...a)}}function O(...e){return(t,r)=>a.propMetadata(h(r,n.HIDDEN),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 g extends t.Validator{getMessage(e,...t){return g.translateService?g.translateService.translate(e,...t):super.getMessage(e,...t)}}class A 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 D 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 I(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 N(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 b(e){return t=>{const r={handlers:e};return a.metadata(a.Metadata.key(n.REFLECT,n.HANDLERS),r)(t)}}function S(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),I(t,i)(e,r))}function P(e,t=1,r=!1,a={}){let o=[];return"object"==typeof t&&(o=t,t=o.length),I(e,{pages:t,paginated:r,pageTitles:o,props:a})}t.Model.prototype.render=function(...e){return R.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(I(e,t))},U.renderedBy=function(e){return this.decorateClass(N(e))},U.uilistmodel=function(e,t){return this.decorateClass(C(e,t))},U.uihandlers=function(e){return this.decorateClass(b(e))},U.uilayout=function(e,t,r,a){return this.decorateClass(S(e,t,r,a))},U.uisteppedmodel=function(e,t,r,a){return this.decorateClass(P(e,t,r,a))};const k="##VERSION##",w="##PACKAGE##";a.Metadata.registerLibrary(w,k),e.ActionRoles=E,e.COMMIT="28dda96",e.ComponentEventNames={Render:"render",BackButtonClickEvent:"backButtonNavigationEndEvent",Refresh:"RefreshEvent",Click:"ClickEvent",Change:"ChangeEvent",Submit:"SubmitEvent",ValidationError:"validationErrorEvent",ThemeChange:"themeChangeEvent",FormGroupLoaded:"formGroupLoadedEvent"},e.DecafComponent=A,e.DecafEventHandler=class extends A{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=D,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.17.5-28dda96",e.HTML5CheckTypes=p,e.HTML5DateFormat=l,e.HTML5InputTypes=c,e.LayoutGridGaps={small:"small",medium:"medium",large:"large",collapse:"collapse",none:""},e.PACKAGE_NAME=w,e.RenderingEngine=R,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=g,e.VERSION=k,e.ValidatableByAttribute=d,e.ValidatableByType=i,e.WindowColorSchemes={light:"light",dark:"dark",undefined:"undefined"},e.escapeHtml=T,e.formatByType=y,e.generateUIModelID=m,e.getUIAttributeKey=h,e.hidden=()=>O(r.OperationKeys.CREATE,r.OperationKeys.READ,r.OperationKeys.UPDATE,r.OperationKeys.DELETE),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()?T(o):n}if(void 0===n)throw new r.InternalError(`Failed to parse value of type ${a} from ${typeof o} - ${o}`);return n},e.renderedBy=N,e.revertHtml=e=>{const t={"&amp;":"&","&lt;":"<","&gt;":">"};return(""+e).replace(/&lt;|&gt;|&amp;/g,e=>t[e]||e)},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=b,e.uilayout=S,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=I,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=P,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",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 T(e){if(!e)return e;const t={"&":"&amp;","<":"&lt;",">":"&gt;"};return(""+e).replace(/[&<>]/g,e=>t[e]||e)}function m(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 R{static{this.cache={}}constructor(e){this.flavour=e,this.initialized=!1,R.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:T}=E,R=t.Model.uiPropertiesOf(e.constructor);let O,L=M?.props||{},g={};const A=(e,t)=>e?[e,t].join("."):t;if(R){const s=a.Metadata.get(e.constructor,t.ValidationKeys.REFLECT)||{};for(const i of R){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:L[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:{g=g||{};const e=r.props;e.name&&(g[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);L={tag:M?.tag||t.render||"",props:Object.assign({},L?.props,{mapper:g},t)};break}case n.EVENTS:case n.HIDDEN:case n.PAGE:case n.ORDER:case n.UILAYOUTPROP:case n.ELEMENT:{O=O||[];const t=r.props,d=Object.assign({},L?.props,t.props||{},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||L?.tag||f||"",props:d},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)&&(d[n.SUB_TYPE]=e.key,e.props?.message&&(d[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.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:T||{}});const D=o?.operation;O=this.sortChildrenByOrder(O).filter(e=>{const t=e?.props?.hidden||[];return t?.length&&t.includes(D)?void 0:e});const I={tag:f,item:L,props:o,children:O?.length?O:void 0};return s&&(I.rendererId=m(e)),I}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 R)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 R.get(o).render(e,...a)}}function O(...e){return(t,r)=>a.propMetadata(h(r,n.HIDDEN),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 g extends t.Validator{getMessage(e,...t){return g.translateService?g.translateService.translate(e,...t):super.getMessage(e,...t)}}class A 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 D 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 I(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 N(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 b(e){return t=>{const r={handlers:e};return a.metadata(a.Metadata.key(n.REFLECT,n.HANDLERS),r)(t)}}function S(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),I(t,i)(e,r))}function P(e,t=1,r=!1,a={}){let o=[];return"object"==typeof t&&(o=t,t=o.length),I(e,{pages:t,paginated:r,pageTitles:o,props:a})}t.Model.prototype.render=function(...e){return R.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(I(e,t))},U.renderedBy=function(e){return this.decorateClass(N(e))},U.uilistmodel=function(e,t){return this.decorateClass(C(e,t))},U.uihandlers=function(e){return this.decorateClass(b(e))},U.uilayout=function(e,t,r,a){return this.decorateClass(S(e,t,r,a))},U.uisteppedmodel=function(e,t,r,a){return this.decorateClass(P(e,t,r,a))};const k="##VERSION##",w="##PACKAGE##";a.Metadata.registerLibrary(w,k),e.ActionRoles=E,e.COMMIT="8cc02d8",e.ComponentEventNames={Render:"render",BackButtonClickEvent:"backButtonNavigationEndEvent",Refresh:"RefreshEvent",Click:"ClickEvent",Change:"ChangeEvent",Submit:"SubmitEvent",ValidationError:"validationErrorEvent",ThemeChange:"themeChangeEvent",FormGroupLoaded:"formGroupLoadedEvent"},e.DecafComponent=A,e.DecafEventHandler=class extends A{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=D,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.17.8-8cc02d8",e.HTML5CheckTypes=p,e.HTML5DateFormat=l,e.HTML5InputTypes=c,e.LayoutGridGaps={small:"small",medium:"medium",large:"large",collapse:"collapse",none:""},e.PACKAGE_NAME=w,e.RenderingEngine=R,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=g,e.VERSION=k,e.ValidatableByAttribute=d,e.ValidatableByType=i,e.WindowColorSchemes={light:"light",dark:"dark",undefined:"undefined"},e.escapeHtml=T,e.formatByType=y,e.generateUIModelID=m,e.getUIAttributeKey=h,e.hidden=()=>O(r.OperationKeys.CREATE,r.OperationKeys.READ,r.OperationKeys.UPDATE,r.OperationKeys.DELETE),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()?T(o):n}if(void 0===n)throw new r.InternalError(`Failed to parse value of type ${a} from ${typeof o} - ${o}`);return n},e.renderedBy=N,e.revertHtml=e=>{const t={"&amp;":"&","&lt;":"<","&gt;":">"};return(""+e).replace(/&lt;|&gt;|&amp;/g,e=>t[e]||e)},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=b,e.uilayout=S,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=I,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=P,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,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PortDirection = exports.GraphKeys = void 0;
3
+ exports.GRAPH_DEFAULT_CATEGORY_STYLE = exports.PortDirection = exports.GraphKeys = void 0;
4
+ exports.registerGraphCategoryStyle = registerGraphCategoryStyle;
5
+ exports.graphCategoryStyleOf = graphCategoryStyleOf;
6
+ exports.resolveEffectiveColor = resolveEffectiveColor;
7
+ exports.resolveEffectiveIcon = resolveEffectiveIcon;
4
8
  (function (GraphKeys) {
5
9
  GraphKeys["GRAPH"] = "graph";
6
10
  GraphKeys["NODE"] = "graph.node";
@@ -10,6 +14,59 @@ exports.PortDirection = exports.GraphKeys = void 0;
10
14
  (function (PortDirection) {
11
15
  PortDirection["INPUT"] = "input";
12
16
  PortDirection["OUTPUT"] = "output";
17
+ PortDirection["CONNECTION"] = "connection";
13
18
  })(exports.PortDirection || (exports.PortDirection = {}));
19
+ /**
20
+ * Registry mapping category names to their default style (color + icon).
21
+ * Consumers register categories via {@link registerGraphCategoryStyle}.
22
+ *
23
+ * The engine and renderer resolve the "effective" color/icon for a node by
24
+ * checking the node's explicit `color` / `icon` first, then falling back to
25
+ * the category's style, then a default.
26
+ */
27
+ const GRAPH_CATEGORY_STYLE_REGISTRY = {};
28
+ /**
29
+ * Default fallback style when no category is registered and no explicit
30
+ * color/icon is set on the node.
31
+ */
32
+ exports.GRAPH_DEFAULT_CATEGORY_STYLE = {
33
+ color: "#64748b",
34
+ icon: "ti-pointer",
35
+ };
36
+ /**
37
+ * Registers a category style (color + optional icon) in the global registry.
38
+ * Call this at module init time (e.g. in the engine's node declarations) to
39
+ * define the visual style for a category of nodes or connections.
40
+ */
41
+ function registerGraphCategoryStyle(category, style) {
42
+ GRAPH_CATEGORY_STYLE_REGISTRY[category] = style;
43
+ }
44
+ /**
45
+ * Returns the style registered for `category`, or the default fallback style.
46
+ */
47
+ function graphCategoryStyleOf(category) {
48
+ if (category && GRAPH_CATEGORY_STYLE_REGISTRY[category]) {
49
+ return GRAPH_CATEGORY_STYLE_REGISTRY[category];
50
+ }
51
+ return exports.GRAPH_DEFAULT_CATEGORY_STYLE;
52
+ }
53
+ /**
54
+ * Resolves the effective color for a node: explicit `color` overrides the
55
+ * category color, which overrides the default.
56
+ */
57
+ function resolveEffectiveColor(explicitColor, category) {
58
+ if (explicitColor)
59
+ return explicitColor;
60
+ return graphCategoryStyleOf(category).color;
61
+ }
62
+ /**
63
+ * Resolves the effective icon for a node: explicit `icon` overrides the
64
+ * category icon, which overrides the default.
65
+ */
66
+ function resolveEffectiveIcon(explicitIcon, category) {
67
+ if (explicitIcon)
68
+ return explicitIcon;
69
+ return graphCategoryStyleOf(category).icon ?? exports.GRAPH_DEFAULT_CATEGORY_STYLE.icon;
70
+ }
14
71
  //# sourceMappingURL=constants.js.map
15
72
  //# sourceMappingURL=constants.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph/constants.cjs","sourceRoot":"","sources":["graph/constants.js"],"names":[],"mappings":";;;AACA,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;AACvC,CAAC,CAAC,CAAC,qBAAa,IAAI,CAAC,qBAAa,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1C,qCAAqC"}
1
+ {"version":3,"file":"graph/constants.cjs","sourceRoot":"","sources":["graph/constants.js"],"names":[],"mappings":";;;AAmCA,gEAEC;AAID,oDAKC;AAKD,sDAIC;AAKD,oDAIC;AA/DD,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;;;;;;;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"}
@@ -5,6 +5,7 @@ exports.graph = graph;
5
5
  exports.port = port;
6
6
  exports.input = input;
7
7
  exports.output = output;
8
+ exports.connection = connection;
8
9
  exports.pinnable = pinnable;
9
10
  const decoration_1 = require("@decaf-ts/decoration");
10
11
  const decorators_js_1 = require("./../model/decorators.cjs");
@@ -38,6 +39,8 @@ function graph(tag, graph, props) {
38
39
  ports.filter((port) => port.direction === constants_js_1.PortDirection.INPUT),
39
40
  outputs: graph?.outputs ||
40
41
  ports.filter((port) => port.direction === constants_js_1.PortDirection.OUTPUT),
42
+ connections: graph?.connections ||
43
+ ports.filter((port) => port.direction === constants_js_1.PortDirection.CONNECTION),
41
44
  };
42
45
  return (0, decoration_1.apply)((0, decorators_js_1.uimodel)(tag, props), (0, decoration_1.metadata)(constants_js_1.GraphKeys.GRAPH, meta))(target);
43
46
  };
@@ -72,6 +75,36 @@ function input(graph) {
72
75
  function output(graph) {
73
76
  return port(constants_js_1.PortDirection.OUTPUT, { ...graph, schema: true });
74
77
  }
78
+ /**
79
+ * Declares a "connection" port on a node — a third port kind alongside
80
+ * `@input()` and `@output()`. Connection ports are rendered on the **bottom**
81
+ * side of the node (inputs are on the left, outputs on the right).
82
+ *
83
+ * Connections are typed by `category` (e.g. `"model"`, `"memory"`,
84
+ * `"workspace"`). The category determines the port's color via the
85
+ * {@link registerGraphCategoryStyle} registry.
86
+ *
87
+ * Unlike `@input` / `@output`, connection ports do NOT carry workflow data
88
+ * values — they represent structural dependencies (e.g. an Agent node
89
+ * connecting to a Model resource, a Memory store, or a Workspace). Nodes may
90
+ * have zero or more `@connection()` ports.
91
+ *
92
+ * Usage:
93
+ * ```ts
94
+ * @node("ai.agent", { kind: "ai.agent", category: "Agent" })
95
+ * @model()
96
+ * export class AgentNode extends Model {
97
+ * @connection({ category: "model", handle: "model" })
98
+ * model!: unknown;
99
+ *
100
+ * @connection({ category: "memory", handle: "memory" })
101
+ * memory!: unknown;
102
+ * }
103
+ * ```
104
+ */
105
+ function connection(graph) {
106
+ return port(constants_js_1.PortDirection.CONNECTION, graph);
107
+ }
75
108
  /**
76
109
  * Class decorator that marks a graph node as pinnable.
77
110
  *
@@ -1 +1 @@
1
- {"version":3,"file":"graph/decorators.cjs","sourceRoot":"","sources":["graph/decorators.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph/decorators.cjs","sourceRoot":"","sources":["graph/decorators.js"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ const decorator_validation_2 = require("@decaf-ts/decorator-validation");
16
16
  const constants_js_1 = require("./../ui/constants.cjs");
17
17
  const constants_js_2 = require("./constants.cjs");
18
18
  const constants_js_3 = require("./constants.cjs");
19
+ const constants_js_4 = require("./constants.cjs");
19
20
  require("./../model/overrides.cjs");
20
21
  function resolveModel(model) {
21
22
  const resolved = decoration_1.Metadata.constr(model);
@@ -202,9 +203,11 @@ function graphDefinitionOf(model) {
202
203
  kind: graph.kind || tag,
203
204
  category: graph.category,
204
205
  color: graph.color,
206
+ effectiveColor: (0, constants_js_4.resolveEffectiveColor)(graph.color, graph.category),
205
207
  group: graph.group,
206
208
  height: graph.height,
207
209
  icon: graph.icon,
210
+ effectiveIcon: (0, constants_js_4.resolveEffectiveIcon)(graph.icon, graph.category),
208
211
  labels: graph.labels || [],
209
212
  maxChildren: graph.maxChildren,
210
213
  minWidth: graph.minWidth,
@@ -258,20 +261,25 @@ function graphWorkflowDefinitionOf(model) {
258
261
  node.ports.filter((port) => port.direction === constants_js_3.PortDirection.INPUT);
259
262
  const outputs = workflow.outputs ||
260
263
  node.ports.filter((port) => port.direction === constants_js_3.PortDirection.OUTPUT);
264
+ const connections = workflow.connections ||
265
+ node.ports.filter((port) => port.direction === constants_js_3.PortDirection.CONNECTION);
261
266
  return {
262
267
  ...node,
263
268
  kind: workflow.kind || node.kind,
264
269
  category: workflow.category ?? node.category,
265
270
  color: workflow.color ?? node.color,
271
+ effectiveColor: (0, constants_js_4.resolveEffectiveColor)(workflow.color ?? node.color, workflow.category ?? node.category),
266
272
  group: workflow.group ?? node.group,
267
273
  height: workflow.height ?? node.height,
268
274
  icon: workflow.icon ?? node.icon,
275
+ effectiveIcon: (0, constants_js_4.resolveEffectiveIcon)(workflow.icon ?? node.icon, workflow.category ?? node.category),
269
276
  labels: workflow.labels || node.labels,
270
277
  maxChildren: workflow.maxChildren ?? node.maxChildren,
271
278
  minWidth: workflow.minWidth ?? node.minWidth,
272
279
  width: workflow.width ?? node.width,
273
280
  inputs,
274
281
  outputs,
282
+ connections,
275
283
  nodes: workflow.nodes || [],
276
284
  relations: workflow.relations || [],
277
285
  workflow,
@@ -1 +1 @@
1
- {"version":3,"file":"graph/reader.cjs","sourceRoot":"","sources":["graph/reader.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph/reader.cjs","sourceRoot":"","sources":["graph/reader.js"],"names":[],"mappings":"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"}
package/lib/cjs/index.cjs CHANGED
@@ -33,21 +33,21 @@ __exportStar(require("./ui/index.cjs"), exports);
33
33
  * @const VERSION
34
34
  * @memberOf module:ui-decorators
35
35
  */
36
- exports.VERSION = "0.17.5";
36
+ exports.VERSION = "0.17.8";
37
37
  /**
38
38
  * @description Represents the current commit hash of the module build.
39
39
  * @summary Stores the current git commit hash for the package. The build replaces
40
40
  * the placeholder with the actual commit hash at publish time.
41
41
  * @const COMMIT
42
42
  */
43
- exports.COMMIT = "28dda96";
43
+ exports.COMMIT = "8cc02d8";
44
44
  /**
45
45
  * @description Represents the full version string of the module.
46
46
  * @summary Stores the semver version and commit hash for the package.
47
47
  * The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
48
48
  * @const FULL_VERSION
49
49
  */
50
- exports.FULL_VERSION = "0.17.5-28dda96";
50
+ exports.FULL_VERSION = "0.17.8-8cc02d8";
51
51
  exports.PACKAGE_NAME = "@decaf-ts/ui-decorators";
52
52
  decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
53
53
  //# sourceMappingURL=index.js.map
@@ -9,5 +9,58 @@ export var PortDirection;
9
9
  (function (PortDirection) {
10
10
  PortDirection["INPUT"] = "input";
11
11
  PortDirection["OUTPUT"] = "output";
12
+ PortDirection["CONNECTION"] = "connection";
12
13
  })(PortDirection || (PortDirection = {}));
14
+ /**
15
+ * Registry mapping category names to their default style (color + icon).
16
+ * Consumers register categories via {@link registerGraphCategoryStyle}.
17
+ *
18
+ * The engine and renderer resolve the "effective" color/icon for a node by
19
+ * checking the node's explicit `color` / `icon` first, then falling back to
20
+ * the category's style, then a default.
21
+ */
22
+ const GRAPH_CATEGORY_STYLE_REGISTRY = {};
23
+ /**
24
+ * Default fallback style when no category is registered and no explicit
25
+ * color/icon is set on the node.
26
+ */
27
+ export const GRAPH_DEFAULT_CATEGORY_STYLE = {
28
+ color: "#64748b",
29
+ icon: "ti-pointer",
30
+ };
31
+ /**
32
+ * Registers a category style (color + optional icon) in the global registry.
33
+ * Call this at module init time (e.g. in the engine's node declarations) to
34
+ * define the visual style for a category of nodes or connections.
35
+ */
36
+ export function registerGraphCategoryStyle(category, style) {
37
+ GRAPH_CATEGORY_STYLE_REGISTRY[category] = style;
38
+ }
39
+ /**
40
+ * Returns the style registered for `category`, or the default fallback style.
41
+ */
42
+ export function graphCategoryStyleOf(category) {
43
+ if (category && GRAPH_CATEGORY_STYLE_REGISTRY[category]) {
44
+ return GRAPH_CATEGORY_STYLE_REGISTRY[category];
45
+ }
46
+ return GRAPH_DEFAULT_CATEGORY_STYLE;
47
+ }
48
+ /**
49
+ * Resolves the effective color for a node: explicit `color` overrides the
50
+ * category color, which overrides the default.
51
+ */
52
+ export function resolveEffectiveColor(explicitColor, category) {
53
+ if (explicitColor)
54
+ return explicitColor;
55
+ return graphCategoryStyleOf(category).color;
56
+ }
57
+ /**
58
+ * Resolves the effective icon for a node: explicit `icon` overrides the
59
+ * category icon, which overrides the default.
60
+ */
61
+ export function resolveEffectiveIcon(explicitIcon, category) {
62
+ if (explicitIcon)
63
+ return explicitIcon;
64
+ return graphCategoryStyleOf(category).icon ?? GRAPH_DEFAULT_CATEGORY_STYLE.icon;
65
+ }
13
66
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/graph/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,4BAAe,CAAA;IACf,gCAAgC,CAAA;IAChC,gCAAgC,CAAA;IAChC,gCAAgC,CAAA;AAClC,CAAC,EALW,SAAS,KAAT,SAAS,QAKpB;AAED,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,gCAAe,CAAA;IACf,kCAAiB,CAAA;AACnB,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/graph/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,4BAAe,CAAA;IACf,gCAAgC,CAAA;IAChC,gCAAgC,CAAA;IAChC,gCAAgC,CAAA;AAClC,CAAC,EALW,SAAS,KAAT,SAAS,QAKpB;AAED,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,gCAAe,CAAA;IACf,kCAAiB,CAAA;IACjB,0CAAyB,CAAA;AAC3B,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AA2LD;;;;;;;GAOG;AACH,MAAM,6BAA6B,GAAuC,EAAE,CAAC;AAE7E;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAuB;IAC9D,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,YAAY;CACnB,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAgB,EAChB,KAAyB;IAEzB,6BAA6B,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAiB;IACpD,IAAI,QAAQ,IAAI,6BAA6B,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxD,OAAO,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,4BAA4B,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,aAAsB,EACtB,QAAiB;IAEjB,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IACxC,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,YAAqB,EACrB,QAAiB;IAEjB,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IACtC,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,4BAA4B,CAAC,IAAK,CAAC;AACnF,CAAC"}
@@ -30,6 +30,8 @@ export function graph(tag, graph, props) {
30
30
  ports.filter((port) => port.direction === PortDirection.INPUT),
31
31
  outputs: graph?.outputs ||
32
32
  ports.filter((port) => port.direction === PortDirection.OUTPUT),
33
+ connections: graph?.connections ||
34
+ ports.filter((port) => port.direction === PortDirection.CONNECTION),
33
35
  };
34
36
  return apply(uimodel(tag, props), metadata(GraphKeys.GRAPH, meta))(target);
35
37
  };
@@ -64,6 +66,36 @@ export function input(graph) {
64
66
  export function output(graph) {
65
67
  return port(PortDirection.OUTPUT, { ...graph, schema: true });
66
68
  }
69
+ /**
70
+ * Declares a "connection" port on a node — a third port kind alongside
71
+ * `@input()` and `@output()`. Connection ports are rendered on the **bottom**
72
+ * side of the node (inputs are on the left, outputs on the right).
73
+ *
74
+ * Connections are typed by `category` (e.g. `"model"`, `"memory"`,
75
+ * `"workspace"`). The category determines the port's color via the
76
+ * {@link registerGraphCategoryStyle} registry.
77
+ *
78
+ * Unlike `@input` / `@output`, connection ports do NOT carry workflow data
79
+ * values — they represent structural dependencies (e.g. an Agent node
80
+ * connecting to a Model resource, a Memory store, or a Workspace). Nodes may
81
+ * have zero or more `@connection()` ports.
82
+ *
83
+ * Usage:
84
+ * ```ts
85
+ * @node("ai.agent", { kind: "ai.agent", category: "Agent" })
86
+ * @model()
87
+ * export class AgentNode extends Model {
88
+ * @connection({ category: "model", handle: "model" })
89
+ * model!: unknown;
90
+ *
91
+ * @connection({ category: "memory", handle: "memory" })
92
+ * memory!: unknown;
93
+ * }
94
+ * ```
95
+ */
96
+ export function connection(graph) {
97
+ return port(PortDirection.CONNECTION, graph);
98
+ }
67
99
  /**
68
100
  * Class decorator that marks a graph node as pinnable.
69
101
  *
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/graph/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,iCAA4B;AAC9C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,uBAAoB;AAEvD,OAAO,EAAE,YAAY,EAAE,oBAAiB;AAExC,MAAM,UAAU,IAAI,CAClB,GAAY,EACZ,KAAyB,EACzB,KAA2B;IAE3B,SAAS,IAAI,CACX,GAAY,EACZ,KAAyB,EACzB,KAA2B;QAE3B,MAAM,IAAI,GAAsB;YAC9B,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,GAAG;YACxB,GAAG,KAAK;SACT,CAAC;QACF,OAAO,SAAS,SAAS,CAAC,MAAc;YACtC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC5E,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;SAClC,MAAM,CAAC;QACN,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC;KAC1B,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC;AAED,MAAM,UAAU,KAAK,CACnB,GAAY,EACZ,KAA6B,EAC7B,KAA2B;IAE3B,SAAS,cAAc,CACrB,GAAY,EACZ,KAA6B,EAC7B,KAA2B;QAE3B,OAAO,SAAS,UAAU,CAAC,MAAc;YACvC,MAAM,KAAK,GAAG,YAAY,CAAC,MAAa,CAAC,CAAC;YAC1C,MAAM,IAAI,GAA0B;gBAClC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBAChB,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,GAAG;gBACxB,MAAM,EACJ,KAAK,EAAE,MAAM;oBACb,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,aAAa,CAAC,KAAK,CAAC;gBAChE,OAAO,EACL,KAAK,EAAE,OAAO;oBACd,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,aAAa,CAAC,MAAM,CAAC;aAClE,CAAC;YACF,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC7E,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;SACnC,MAAM,CAAC;QACN,SAAS,EAAE,cAAc;QACzB,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC;KAC1B,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC;AAED,MAAM,UAAU,IAAI,CAClB,SAAwB,EACxB,KAAqD;IAErD,SAAS,IAAI,CACX,SAAwB,EACxB,KAAqD;QAErD,OAAO,SAAS,SAAS,CAAC,MAAc,EAAE,WAAiB;YACzD,MAAM,IAAI,GAAsB;gBAC9B,SAAS;gBACT,GAAG,KAAK;aACT,CAAC;YACF,OAAO,KAAK,CACV,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,CAC9D,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACzB,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;SAClC,MAAM,CAAC;QACN,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC;KACzB,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAAqD;IACzE,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAqD;IAC1E,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAChE,CAAC;AAwBD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,QAAQ,CAAC,UAAgC,EAAE;IACzD,SAAS,QAAQ,CAAC,MAAc;QAC9B,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAC/B,MAAa,EACb,SAAS,CAAC,IAAI,CACkB,CAAC;QACnC,MAAM,IAAI,GAAsB,YAAY,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG;YACd,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;YACxB,QAAQ,EAAE;gBACR,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;gBAChC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ;gBACtC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,IAAI,IAAI;gBACxD,QAAQ,EAAE,OAAO,CAAC,QAAQ;aACH;SAC1B,CAAC;QACF,QAAQ,CAAC,GAAG,CAAC,MAAa,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC;SACpC,MAAM,CAAC;QACN,SAAS,EAAE,QAAe;QAC1B,IAAI,EAAE,CAAC,OAAO,CAAC;KAChB,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/graph/decorators.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { ValidationKeys } from "@decaf-ts/decorator-validation";
4
4
  import { UIKeys } from "./../ui/constants.js";
5
5
  import { GraphKeys, } from "./constants.js";
6
6
  import { PortDirection } from "./constants.js";
7
+ import { resolveEffectiveColor, resolveEffectiveIcon } from "./constants.js";
7
8
  import "./../model/overrides.js";
8
9
  function resolveModel(model) {
9
10
  const resolved = Metadata.constr(model);
@@ -190,9 +191,11 @@ export function graphDefinitionOf(model) {
190
191
  kind: graph.kind || tag,
191
192
  category: graph.category,
192
193
  color: graph.color,
194
+ effectiveColor: resolveEffectiveColor(graph.color, graph.category),
193
195
  group: graph.group,
194
196
  height: graph.height,
195
197
  icon: graph.icon,
198
+ effectiveIcon: resolveEffectiveIcon(graph.icon, graph.category),
196
199
  labels: graph.labels || [],
197
200
  maxChildren: graph.maxChildren,
198
201
  minWidth: graph.minWidth,
@@ -246,20 +249,25 @@ export function graphWorkflowDefinitionOf(model) {
246
249
  node.ports.filter((port) => port.direction === PortDirection.INPUT);
247
250
  const outputs = workflow.outputs ||
248
251
  node.ports.filter((port) => port.direction === PortDirection.OUTPUT);
252
+ const connections = workflow.connections ||
253
+ node.ports.filter((port) => port.direction === PortDirection.CONNECTION);
249
254
  return {
250
255
  ...node,
251
256
  kind: workflow.kind || node.kind,
252
257
  category: workflow.category ?? node.category,
253
258
  color: workflow.color ?? node.color,
259
+ effectiveColor: resolveEffectiveColor(workflow.color ?? node.color, workflow.category ?? node.category),
254
260
  group: workflow.group ?? node.group,
255
261
  height: workflow.height ?? node.height,
256
262
  icon: workflow.icon ?? node.icon,
263
+ effectiveIcon: resolveEffectiveIcon(workflow.icon ?? node.icon, workflow.category ?? node.category),
257
264
  labels: workflow.labels || node.labels,
258
265
  maxChildren: workflow.maxChildren ?? node.maxChildren,
259
266
  minWidth: workflow.minWidth ?? node.minWidth,
260
267
  width: workflow.width ?? node.width,
261
268
  inputs,
262
269
  outputs,
270
+ connections,
263
271
  nodes: workflow.nodes || [],
264
272
  relations: workflow.relations || [],
265
273
  workflow,
@@ -1 +1 @@
1
- {"version":3,"file":"reader.js","sourceRoot":"","sources":["../../../src/graph/reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reader.js","sourceRoot":"","sources":["../../../src/graph/reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,6BAAwB;AACzC,OAAO,EACL,SAAS,GACV,uBAAoB;AAUrB,OAAO,EAAE,aAAa,EAAE,uBAAoB;AAC5C,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,uBAAoB;AAC1E,iCAA4B;AAI5B,SAAS,YAAY,CAAkB,KAAwB;IAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAuB,CAAC,CAAC;IAC1D,IAAI,OAAO,QAAQ,KAAK,UAAU;QAAE,OAAO,QAA0B,CAAC;IACtE,MAAM,QAAQ,GAAI,KAAe,CAAC,WAAW,CAAC;IAC9C,IAAI,OAAO,QAAQ,KAAK,UAAU;QAAE,OAAO,QAA0B,CAAC;IACtE,OAAO,KAAuB,CAAC;AACjC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5D,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,SAAS,CAChB,OAA6B,EAC7B,IAA0B,EAC1B,QAAiB;IAEjB,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7E,OAAO,CACL,YAAY;QACZ,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;QACpB,QAAQ;QACR,EAAE,CACH,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CACpC,KAAyB,EACzB,QAAgB,EAChB,UAAgC;IAEhC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAClD,IAAI,OAAO,UAAU,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAClE,OAAO,UAAgC,CAAC;IAC1C,CAAC;IAED,MAAM,WAAW,GAAG,CAAE,QAAgB,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,WAAW;QACvF,EAAE,CAAc,CAAC;IACnB,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;QACpC,IAAI,OAAO,SAAS,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,SAAkB,CAAC,EAAE,CAAC;YACzE,OAAO,SAA+B,CAAC;QACzC,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,IAAI,EAAE,CAAC;IACzE,KAAK,MAAM,SAAS,IAAI,WAAwB,EAAE,CAAC;QACjD,IAAI,OAAO,SAAS,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,SAAkB,CAAC,EAAE,CAAC;YACzE,OAAO,SAA+B,CAAC;QACzC,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAyB,EACzB,MAAc;IAEd,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5E,OAAO;QACL,GAAG,IAAI;QACP,IAAI;QACJ,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,KAAwB;IAExB,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACrC,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAkC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAwB;IAExB,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACrC,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAsC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,KAAwB,EACxB,QAA0B;IAE1B,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACrC,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAE/D,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAAwB,EACxB,QAA0B;IAE1B,OAAO,6BAA6B,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,gBAAgB,CACvB,QAA4B,EAC5B,WAAmB,EACnB,SAAwB,EACxB,UAAmC,IAAI,GAAG,EAAE;IAE5C,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK,EAAE,MAAM;QAAE,OAAO,SAAS,CAAC;IACrC,MAAM,UAAU,GAAI,QAAgB,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,CAE3D,CAAC;IACd,MAAM,WAAW,GAAG,6BAA6B,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACrF,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IACnC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC,CAAC,+BAA+B;IACxE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACrC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1B,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7B,MAAM,UAAU,GAAG,oBAAoB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAClE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,6BAA6B,CACpC,QAA4B,EAC5B,WAAmB,EACnB,UAAmC,IAAI,GAAG,EAAE;IAE5C,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,uEAAuE;IACvE,4EAA4E;IAC5E,uEAAuE;IACvE,6BAA6B;IAC7B,MAAM,UAAU,GAAI,QAAgB,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,CAE3D,CAAC;IACd,MAAM,WAAW,GAAG,6BAA6B,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACrF,IAAI,KAAK,CAAC,MAAM,IAAI,WAAW;QAAE,OAAO,SAAS,CAAC;IAElD,MAAM,OAAO,GAAG,CAAE,KAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC;QAChE,SAAS,CAAoC,CAAC;IAChD,MAAM,MAAM,GAAI,KAAa,CAAC,cAAc,CAC1C,QAAQ,EACR,WAAW,EACX,MAAM,CAAC,IAAI,CACuB,CAAC;IACrC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,QAAQ,CACvB,UAAU,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;QACvD,OAAO,EAAE,KAAK,EAAE,IAAI;QACpB,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,IAAI,CACnB,CAAC;IACF,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IACpF,MAAM,QAAQ,GACZ,YAAY,IAAI,WAAW;QACzB,CAAC,CAAC,CAAC,GAAG,EAAE;YACJ,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;YACrC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1B,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC7B,OAAO,oBAAoB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAClE,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CACxC,CAAC;QACJ,CAAC,CAAC,EAAE;QACN,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO;QACL,QAAQ,EAAE,WAAW;QACrB,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC;QAC9C,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE;QAC7B,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC;QACjD,MAAM,EAAE,CAAC,CAAE,KAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC;QAC1D,UAAU,EAAE,UAAU,EAAE,IAAI;QAC5B,OAAO;QACP,IAAI,EAAE,MAAM;QACZ,UAAU;QACV,KAAK;QACL,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM;QAC7B,QAAQ;QACR,KAAK,EAAE,WAAW,EAAE,IAAI;KACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,KAAwB;IAExB,OAAO,oBAAoB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,oBAAoB,CAC3B,QAA4B,EAC5B,UAAmC,IAAI,GAAG,EAAE;IAE5C,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvD,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACjD,kEAAkE;QAClE,gDAAgD;QAChD,IAAI,KAAK,EAAE,MAAM,EAAE,CAAC;YAClB,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC7E,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;gBAC3B,SAAS;YACX,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,6BAA6B,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACnE,IAAI,IAAI;YAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAC3D,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC5B,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CACjF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,KAAwB;IAExB,OAAO,gBAAgB,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,KAAwB;IAExB,OAAO,gBAAgB,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAAwB;IAExB,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAClD,MAAM,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC;IACrC,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEtD,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,GAAG;QACH,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,GAAG;QACvB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,cAAc,EAAE,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC;QAClE,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,aAAa,EAAE,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;QAC/D,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;QAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,EAAE,EAAE,KAAK;QAChB,EAAE;QACF,KAAK;QACL,KAAK;QACL,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CACxB,QAA4B,EAC5B,KAAwB;IAExB,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;IACxC,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,MAAM,MAAM,GAA6B,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvD,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,EAAE,MAAM;YAAE,SAAS;QAChC,MAAM,UAAU,GAAI,QAAgB,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,CAEnD,CAAC;QACd,MAAM,WAAW,GAAG,6BAA6B,CAAC,QAAQ,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAC7E,IAAI,CAAC,WAAW;YAAE,SAAS,CAAC,iCAAiC;QAC7D,MAAM,aAAa,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CACT,aAAa;YACX,CAAC,CAAC,EAAE,GAAG,aAAa,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,IAAI,KAAK,EAAE;YAC7D,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,KAAc,EAAE,CAC9C,CAAC;IACJ,CAAC;IACD,uEAAuE;IACvE,4DAA4D;IAC5D,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,KAAwB;IAExB,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzD,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,MAAM,GACV,QAAQ,CAAC,MAAM;QACf,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC;IACtE,MAAM,OAAO,GACX,QAAQ,CAAC,OAAO;QAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,aAAa,CAAC,MAAM,CAAC,CAAC;IACvE,MAAM,WAAW,GACf,QAAQ,CAAC,WAAW;QACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,aAAa,CAAC,UAAU,CAAC,CAAC;IAE3E,OAAO;QACL,GAAG,IAAI;QACP,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;QAChC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;QAC5C,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK;QACnC,cAAc,EAAE,qBAAqB,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;QACvG,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK;QACnC,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;QACtC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;QAChC,aAAa,EAAE,oBAAoB,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;QACnG,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;QACtC,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW;QACrD,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;QAC5C,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK;QACnC,MAAM;QACN,OAAO;QACP,WAAW;QACX,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,EAAE;QAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,EAAE;QACnC,QAAQ;KACT,CAAC;AACJ,CAAC"}
package/lib/esm/index.js CHANGED
@@ -16,21 +16,21 @@ export * from "./ui/index.js";
16
16
  * @const VERSION
17
17
  * @memberOf module:ui-decorators
18
18
  */
19
- export const VERSION = "0.17.5";
19
+ export const VERSION = "0.17.8";
20
20
  /**
21
21
  * @description Represents the current commit hash of the module build.
22
22
  * @summary Stores the current git commit hash for the package. The build replaces
23
23
  * the placeholder with the actual commit hash at publish time.
24
24
  * @const COMMIT
25
25
  */
26
- export const COMMIT = "28dda96";
26
+ export const COMMIT = "8cc02d8";
27
27
  /**
28
28
  * @description Represents the full version string of the module.
29
29
  * @summary Stores the semver version and commit hash for the package.
30
30
  * The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
31
31
  * @const FULL_VERSION
32
32
  */
33
- export const FULL_VERSION = "0.17.5-28dda96";
33
+ export const FULL_VERSION = "0.17.8-8cc02d8";
34
34
  export const PACKAGE_NAME = "@decaf-ts/ui-decorators";
35
35
  Metadata.registerLibrary(PACKAGE_NAME, VERSION);
36
36
  //# sourceMappingURL=index.js.map
@@ -6,7 +6,8 @@ export declare enum GraphKeys {
6
6
  }
7
7
  export declare enum PortDirection {
8
8
  INPUT = "input",
9
- OUTPUT = "output"
9
+ OUTPUT = "output",
10
+ CONNECTION = "connection"
10
11
  }
11
12
  export type GraphNodeKind = string;
12
13
  export type GraphConnectionRule = {
@@ -56,6 +57,7 @@ export type GraphWorkflowRelationMetadata = {
56
57
  export type GraphWorkflowMetadata = GraphNodeMetadata & {
57
58
  inputs?: GraphPortDefinition[];
58
59
  outputs?: GraphPortDefinition[];
60
+ connections?: GraphPortDefinition[];
59
61
  nodes?: GraphWorkflowNodeMetadata[];
60
62
  relations?: GraphWorkflowRelationMetadata[];
61
63
  };
@@ -66,6 +68,13 @@ export type GraphPortMetadata = {
66
68
  handle?: string;
67
69
  expand?: boolean;
68
70
  metadata?: Record<string, unknown>;
71
+ /**
72
+ * Optional category for `@connection()` ports (e.g. `"model"`, `"memory"`,
73
+ * `"workspace"`). Connections of the same category share a color and icon
74
+ * defined by the {@link GRAPH_CATEGORY_STYLE_REGISTRY}. When omitted, the
75
+ * port inherits the node's color.
76
+ */
77
+ category?: string;
69
78
  /**
70
79
  * Marks this port as a "Schema port" declared via `@input` / `@output`.
71
80
  *
@@ -138,6 +147,16 @@ export type GraphNodeDefinition = {
138
147
  ui?: Record<string, any>;
139
148
  graph?: GraphNodeMetadata;
140
149
  ports: GraphPortDefinition[];
150
+ /**
151
+ * Effective color resolved from the category registry (or the node's
152
+ * explicit `color` override). Computed by `graphDefinitionOf`.
153
+ */
154
+ effectiveColor?: string;
155
+ /**
156
+ * Effective icon resolved from the category registry (or the node's
157
+ * explicit `icon` override). Computed by `graphDefinitionOf`.
158
+ */
159
+ effectiveIcon?: string;
141
160
  /**
142
161
  * Per-group rendering choice for Schema-typed `@input` / `@output` properties
143
162
  * (the one-vs-all toggle). Derived from {@link GraphNodeMetadata.portGroups};
@@ -149,7 +168,42 @@ export type GraphNodeDefinition = {
149
168
  export type GraphWorkflowDefinition = GraphNodeDefinition & {
150
169
  inputs: GraphPortDefinition[];
151
170
  outputs: GraphPortDefinition[];
171
+ connections: GraphPortDefinition[];
152
172
  nodes: GraphWorkflowNodeMetadata[];
153
173
  relations: GraphWorkflowRelationMetadata[];
154
174
  workflow: GraphWorkflowMetadata;
155
175
  };
176
+ /**
177
+ * Style (color + icon) assigned to a node or connection category. Nodes and
178
+ * connections without an explicit `color` / `icon` inherit from their
179
+ * category's style.
180
+ */
181
+ export interface GraphCategoryStyle {
182
+ color: string;
183
+ icon?: string;
184
+ }
185
+ /**
186
+ * Default fallback style when no category is registered and no explicit
187
+ * color/icon is set on the node.
188
+ */
189
+ export declare const GRAPH_DEFAULT_CATEGORY_STYLE: GraphCategoryStyle;
190
+ /**
191
+ * Registers a category style (color + optional icon) in the global registry.
192
+ * Call this at module init time (e.g. in the engine's node declarations) to
193
+ * define the visual style for a category of nodes or connections.
194
+ */
195
+ export declare function registerGraphCategoryStyle(category: string, style: GraphCategoryStyle): void;
196
+ /**
197
+ * Returns the style registered for `category`, or the default fallback style.
198
+ */
199
+ export declare function graphCategoryStyleOf(category?: string): GraphCategoryStyle;
200
+ /**
201
+ * Resolves the effective color for a node: explicit `color` overrides the
202
+ * category color, which overrides the default.
203
+ */
204
+ export declare function resolveEffectiveColor(explicitColor?: string, category?: string): string;
205
+ /**
206
+ * Resolves the effective icon for a node: explicit `icon` overrides the
207
+ * category icon, which overrides the default.
208
+ */
209
+ export declare function resolveEffectiveIcon(explicitIcon?: string, category?: string): string;
@@ -6,7 +6,8 @@ export declare enum GraphKeys {
6
6
  }
7
7
  export declare enum PortDirection {
8
8
  INPUT = "input",
9
- OUTPUT = "output"
9
+ OUTPUT = "output",
10
+ CONNECTION = "connection"
10
11
  }
11
12
  export type GraphNodeKind = string;
12
13
  export type GraphConnectionRule = {
@@ -56,6 +57,7 @@ export type GraphWorkflowRelationMetadata = {
56
57
  export type GraphWorkflowMetadata = GraphNodeMetadata & {
57
58
  inputs?: GraphPortDefinition[];
58
59
  outputs?: GraphPortDefinition[];
60
+ connections?: GraphPortDefinition[];
59
61
  nodes?: GraphWorkflowNodeMetadata[];
60
62
  relations?: GraphWorkflowRelationMetadata[];
61
63
  };
@@ -66,6 +68,13 @@ export type GraphPortMetadata = {
66
68
  handle?: string;
67
69
  expand?: boolean;
68
70
  metadata?: Record<string, unknown>;
71
+ /**
72
+ * Optional category for `@connection()` ports (e.g. `"model"`, `"memory"`,
73
+ * `"workspace"`). Connections of the same category share a color and icon
74
+ * defined by the {@link GRAPH_CATEGORY_STYLE_REGISTRY}. When omitted, the
75
+ * port inherits the node's color.
76
+ */
77
+ category?: string;
69
78
  /**
70
79
  * Marks this port as a "Schema port" declared via `@input` / `@output`.
71
80
  *
@@ -138,6 +147,16 @@ export type GraphNodeDefinition = {
138
147
  ui?: Record<string, any>;
139
148
  graph?: GraphNodeMetadata;
140
149
  ports: GraphPortDefinition[];
150
+ /**
151
+ * Effective color resolved from the category registry (or the node's
152
+ * explicit `color` override). Computed by `graphDefinitionOf`.
153
+ */
154
+ effectiveColor?: string;
155
+ /**
156
+ * Effective icon resolved from the category registry (or the node's
157
+ * explicit `icon` override). Computed by `graphDefinitionOf`.
158
+ */
159
+ effectiveIcon?: string;
141
160
  /**
142
161
  * Per-group rendering choice for Schema-typed `@input` / `@output` properties
143
162
  * (the one-vs-all toggle). Derived from {@link GraphNodeMetadata.portGroups};
@@ -149,7 +168,42 @@ export type GraphNodeDefinition = {
149
168
  export type GraphWorkflowDefinition = GraphNodeDefinition & {
150
169
  inputs: GraphPortDefinition[];
151
170
  outputs: GraphPortDefinition[];
171
+ connections: GraphPortDefinition[];
152
172
  nodes: GraphWorkflowNodeMetadata[];
153
173
  relations: GraphWorkflowRelationMetadata[];
154
174
  workflow: GraphWorkflowMetadata;
155
175
  };
176
+ /**
177
+ * Style (color + icon) assigned to a node or connection category. Nodes and
178
+ * connections without an explicit `color` / `icon` inherit from their
179
+ * category's style.
180
+ */
181
+ export interface GraphCategoryStyle {
182
+ color: string;
183
+ icon?: string;
184
+ }
185
+ /**
186
+ * Default fallback style when no category is registered and no explicit
187
+ * color/icon is set on the node.
188
+ */
189
+ export declare const GRAPH_DEFAULT_CATEGORY_STYLE: GraphCategoryStyle;
190
+ /**
191
+ * Registers a category style (color + optional icon) in the global registry.
192
+ * Call this at module init time (e.g. in the engine's node declarations) to
193
+ * define the visual style for a category of nodes or connections.
194
+ */
195
+ export declare function registerGraphCategoryStyle(category: string, style: GraphCategoryStyle): void;
196
+ /**
197
+ * Returns the style registered for `category`, or the default fallback style.
198
+ */
199
+ export declare function graphCategoryStyleOf(category?: string): GraphCategoryStyle;
200
+ /**
201
+ * Resolves the effective color for a node: explicit `color` overrides the
202
+ * category color, which overrides the default.
203
+ */
204
+ export declare function resolveEffectiveColor(explicitColor?: string, category?: string): string;
205
+ /**
206
+ * Resolves the effective icon for a node: explicit `icon` overrides the
207
+ * category icon, which overrides the default.
208
+ */
209
+ export declare function resolveEffectiveIcon(explicitIcon?: string, category?: string): string;
@@ -5,6 +5,34 @@ export declare function graph(tag?: string, graph?: GraphWorkflowMetadata, props
5
5
  export declare function port(direction: PortDirection, graph?: Partial<Omit<GraphPortMetadata, "direction">>): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
6
6
  export declare function input(graph?: Partial<Omit<GraphPortMetadata, "direction">>): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
7
7
  export declare function output(graph?: Partial<Omit<GraphPortMetadata, "direction">>): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
8
+ /**
9
+ * Declares a "connection" port on a node — a third port kind alongside
10
+ * `@input()` and `@output()`. Connection ports are rendered on the **bottom**
11
+ * side of the node (inputs are on the left, outputs on the right).
12
+ *
13
+ * Connections are typed by `category` (e.g. `"model"`, `"memory"`,
14
+ * `"workspace"`). The category determines the port's color via the
15
+ * {@link registerGraphCategoryStyle} registry.
16
+ *
17
+ * Unlike `@input` / `@output`, connection ports do NOT carry workflow data
18
+ * values — they represent structural dependencies (e.g. an Agent node
19
+ * connecting to a Model resource, a Memory store, or a Workspace). Nodes may
20
+ * have zero or more `@connection()` ports.
21
+ *
22
+ * Usage:
23
+ * ```ts
24
+ * @node("ai.agent", { kind: "ai.agent", category: "Agent" })
25
+ * @model()
26
+ * export class AgentNode extends Model {
27
+ * @connection({ category: "model", handle: "model" })
28
+ * model!: unknown;
29
+ *
30
+ * @connection({ category: "memory", handle: "memory" })
31
+ * memory!: unknown;
32
+ * }
33
+ * ```
34
+ */
35
+ export declare function connection(graph?: Partial<Omit<GraphPortMetadata, "direction">>): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
8
36
  /**
9
37
  * Options for the `@pinnable()` decorator.
10
38
  */
@@ -5,6 +5,34 @@ export declare function graph(tag?: string, graph?: GraphWorkflowMetadata, props
5
5
  export declare function port(direction: PortDirection, graph?: Partial<Omit<GraphPortMetadata, "direction">>): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
6
6
  export declare function input(graph?: Partial<Omit<GraphPortMetadata, "direction">>): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
7
7
  export declare function output(graph?: Partial<Omit<GraphPortMetadata, "direction">>): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
8
+ /**
9
+ * Declares a "connection" port on a node — a third port kind alongside
10
+ * `@input()` and `@output()`. Connection ports are rendered on the **bottom**
11
+ * side of the node (inputs are on the left, outputs on the right).
12
+ *
13
+ * Connections are typed by `category` (e.g. `"model"`, `"memory"`,
14
+ * `"workspace"`). The category determines the port's color via the
15
+ * {@link registerGraphCategoryStyle} registry.
16
+ *
17
+ * Unlike `@input` / `@output`, connection ports do NOT carry workflow data
18
+ * values — they represent structural dependencies (e.g. an Agent node
19
+ * connecting to a Model resource, a Memory store, or a Workspace). Nodes may
20
+ * have zero or more `@connection()` ports.
21
+ *
22
+ * Usage:
23
+ * ```ts
24
+ * @node("ai.agent", { kind: "ai.agent", category: "Agent" })
25
+ * @model()
26
+ * export class AgentNode extends Model {
27
+ * @connection({ category: "model", handle: "model" })
28
+ * model!: unknown;
29
+ *
30
+ * @connection({ category: "memory", handle: "memory" })
31
+ * memory!: unknown;
32
+ * }
33
+ * ```
34
+ */
35
+ export declare function connection(graph?: Partial<Omit<GraphPortMetadata, "direction">>): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
8
36
  /**
9
37
  * Options for the `@pinnable()` decorator.
10
38
  */
@@ -15,19 +15,19 @@ export * from "./ui/index.d.cts";
15
15
  * @const VERSION
16
16
  * @memberOf module:ui-decorators
17
17
  */
18
- export declare const VERSION = "0.17.5";
18
+ export declare const VERSION = "0.17.8";
19
19
  /**
20
20
  * @description Represents the current commit hash of the module build.
21
21
  * @summary Stores the current git commit hash for the package. The build replaces
22
22
  * the placeholder with the actual commit hash at publish time.
23
23
  * @const COMMIT
24
24
  */
25
- export declare const COMMIT = "28dda96";
25
+ export declare const COMMIT = "8cc02d8";
26
26
  /**
27
27
  * @description Represents the full version string of the module.
28
28
  * @summary Stores the semver version and commit hash for the package.
29
29
  * The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
30
30
  * @const FULL_VERSION
31
31
  */
32
- export declare const FULL_VERSION = "0.17.5-28dda96";
32
+ export declare const FULL_VERSION = "0.17.8-8cc02d8";
33
33
  export declare const PACKAGE_NAME = "@decaf-ts/ui-decorators";
@@ -15,19 +15,19 @@ export * from "./ui/index.d.mts";
15
15
  * @const VERSION
16
16
  * @memberOf module:ui-decorators
17
17
  */
18
- export declare const VERSION = "0.17.5";
18
+ export declare const VERSION = "0.17.8";
19
19
  /**
20
20
  * @description Represents the current commit hash of the module build.
21
21
  * @summary Stores the current git commit hash for the package. The build replaces
22
22
  * the placeholder with the actual commit hash at publish time.
23
23
  * @const COMMIT
24
24
  */
25
- export declare const COMMIT = "28dda96";
25
+ export declare const COMMIT = "8cc02d8";
26
26
  /**
27
27
  * @description Represents the full version string of the module.
28
28
  * @summary Stores the semver version and commit hash for the package.
29
29
  * The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
30
30
  * @const FULL_VERSION
31
31
  */
32
- export declare const FULL_VERSION = "0.17.5-28dda96";
32
+ export declare const FULL_VERSION = "0.17.8-8cc02d8";
33
33
  export declare const PACKAGE_NAME = "@decaf-ts/ui-decorators";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/ui-decorators",
3
- "version": "0.17.6",
3
+ "version": "0.17.8",
4
4
  "description": "Extension of decorator validation to ui elements to allow for web integration",
5
5
  "type": "module",
6
6
  "exports": {