@decaf-ts/ui-decorators 0.6.2 → 0.6.3

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,a,r,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 i={REFLECT:"ui",UIMODEL:"uimodel",RENDERED_BY:"rendered-by",ELEMENT:"uielement",PROP:"uiprop",CHILD:"uichild",NAME:"name",NAME_PREFIX:"input-",CUSTOM_PROPS:"customValidationProps",UILISTMODEL:"uilistmodel",UILISTPROP:"uilistprop",UILAYOUT:"uilayout",UILAYOUTPROP:"uilayoutprop",HANDLERS:"uihandlers",TYPE:"type",SUB_TYPE:"subtype",HIDDEN:"hidden",FORMAT:"format",ORDER:"order",PAGE:"page",EVENTS:"events",READ_ONLY:"readonly",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},n={[i.EMAIL]:t.EmailValidator,[i.URL]:t.URLValidator,[i.DATE]:t.DateValidator,[i.PASSWORD]:t.PasswordValidator},d={[i.REQUIRED]:t.RequiredValidator,[i.MIN]:t.MinValidator,[i.MAX]:t.MaxValidator,[i.STEP]:t.StepValidator,[i.MIN_LENGTH]:t.MinLengthValidator,[i.MAX_LENGTH]:t.MaxLengthValidator,[i.PATTERN]:t.PatternValidator,[i.EQUALS]:t.EqualsValidator,[i.DIFF]:t.DiffValidator,[i.LESS_THAN]:t.LessThanValidator,[i.LESS_THAN_OR_EQUAL]:t.LessThanOrEqualValidator,[i.GREATER_THAN]:t.GreaterThanValidator,[i.GREATER_THAN_OR_EQUAL]:t.GreaterThanOrEqualValidator},l="yyyy-MM-dd",c={BUTTON:"button",CHECKBOX:"checkbox",COLOR:"color",DATE:i.DATE,DATETIME_LOCAL:"datetime-local",EMAIL:i.EMAIL,FILE:"file",HIDDEN:"hidden",IMAGE:"image",MONTH:"month",NUMBER:"number",PASSWORD:i.PASSWORD,RADIO:"radio",RANGE:"range",RESET:"reset",SEARCH:"search",SUBMIT:"submit",TEL:"tel",TEXT:"text",TEXTAREA:"textarea",SELECT:"select",TIME:"time",URL:i.URL,WEEK:"week"},E=[c.CHECKBOX,c.RADIO];function p(e,t){return(r,o)=>{const s={tag:e||r.name,props:t};return a.metadata(a.Metadata.key(i.REFLECT,i.UIMODEL),s)(r)}}class u extends r.InternalError{constructor(e){super(e,u.name)}}function M(e,t){return a.Metadata.key(i.REFLECT,a.DecorationKeys.PROPERTIES,e,t)}function T(e,a,...r){if(e===i.DATE){if(!a)return"";const e=r.shift()||l;return t.formatDate(new Date(a),e)}return a}function R(e){if("number"==typeof e&&!isNaN(e))return e;const t=Number(e);return isNaN(t)?void 0:t}function y(e){if(!e)return e;const t={"&":"&amp;","<":"&lt;",">":"&gt;"};return(""+e).replace(/[&<>]/g,e=>t[e]||e)}function f(e){let a=Date.now();try{t.Model.pk(e.constructor)&&(a=e[t.Model.pk(e.constructor)])}catch(e){}return`${e.constructor.name}-${a}`}class L{static{this.cache={}}constructor(e){this.flavour=e,this.initialized=!1,L.register(this)}translate(e,a=!0){if(a)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)}isValidatableByType(e){return Object.keys(n).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===i.REQUIRED||t[e]}toFieldDefinition(e,o={},s=!0){const{inheritProps:n,...d}=o;o=d;const E=this.getClassDecoratorsMetadata(e);if(!E.length)throw new u(`No ui definitions set for model ${e.constructor.name}. Did you use @uimodel?`);const p=Object.assign({},...E,n||{}),{tag:M,props:R,item:y,handlers:L}=p,O=t.Model.uiPropertiesOf(e.constructor);let A,m=y?.props||{},h={};const D=(e,t)=>e?[e,t].join("."):t;if(O){const s=a.Metadata.get(e.constructor,t.ValidationKeys.REFLECT)||{};for(const n of O){const d=t.Model.uiDecorationOf(e.constructor,n);let E;try{E=t.Model.uiTypeOf(e.constructor,n)}catch(e){if(!(e instanceof r.NotFoundError))throw e}if(t.Model.uiIsHidden(e.constructor,n)&&!t.Model.uiElementOf(e.constructor,n))throw new u(`@uielement no found in "${n}". It is required to use hiddenOn decorator.`);Object.entries(d).map(([e,t])=>({key:e,props:t})).sort(e=>[i.ELEMENT,i.CHILD].includes(e.key)?-1:1).forEach(r=>{if(!r)throw new u("No decorator found");switch(r.key){case i.PROP:m[n]=r.props;break;case i.CHILD:{if(!t.Model.isPropertyModel(e,n))throw new u(`Child "${n}" must be a model.`);let a;const s=e[n];if("object"!=typeof s||null===s||Array.isArray(s)){const e=r.props.props?.name;a=new(t.Model.get(e))}A=A||[];const i=Object.assign({},o||{},{model:a},{inheritProps:r.props,childOf:D(o?.childOf,n)}),d=this.toFieldDefinition(s||a,i,!1);A.push(d);break}case i.UILISTPROP:{h=h||{},r.props.name&&(h[r.props.name]=n);const e=Object.assign({},p.props?.item||{},y?.props||{},r.props.props||{},o);m={tag:y?.tag||e.render||"",props:Object.assign({},m?.props,{mapper:h},e)};break}case i.EVENTS:case i.HIDDEN:case i.PAGE:case i.ORDER:case i.UILAYOUTPROP:case i.ELEMENT:{A=A||[];const t=r.props,d=Object.assign({},m?.props,t.props||{},t?.props?.name?{path:D(o?.childOf,t.props.name),childOf:void 0}:{},o);if(r.key===i.ELEMENT){const r={tag:t.tag||m?.tag||M||"",props:d},o=s[n];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[i.FORMAT]=e.props.format||l),r.props[i.TYPE]=e.key);if(!r.props[i.TYPE]){const t=a.Metadata.type(e.constructor,n).name;r.props[i.TYPE]=this.translate(t.toLowerCase(),!0)}r.props.value=T(r.props[i.TYPE],e[n],r.props[i.FORMAT]),A.push(r)}else{const e=A.find(e=>e.props?.name===n||[i.UILAYOUTPROP,i.PAGE,i.EVENTS].includes(r.key)&&(e.props?.childOf===n||e.props?.childOf?.endsWith("."+n)));if(e)if(r.key!==i.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({},R,o,{handlers:L||{}});const I=o?.operation;A=A?.sort((e,t)=>(e?.props?.order??0)-(t?.props?.order??0)).filter(e=>{const t=e?.props?.hidden||[];return t?.length&&t.includes(I)?void 0:e});const g={tag:M,item:m,props:o,children:A};return s&&(g.rendererId=f(e)),g}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 L)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 L.get(o).render(e,...a)}}function O(...e){return(t,r)=>a.propMetadata(M(r,i.HIDDEN),e)(t,r)}function A(e,t){return(r,o)=>{a.propMetadata(M(o,i.EVENTS),{[e]:t})(r,o)}}class m 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.handlers={}}async render(...e){}async initialize(...e){this.initialized=!0}}t.Model.prototype.render=function(...e){return L.render(this,...e)},t.Model.renderedBy=(e=>a.Metadata.get(e,a.Metadata.key(i.REFLECT,i.RENDERED_BY))).bind(t.Model),t.Model.uiPropertiesOf=(e=>{const t=a.Metadata.get(e,a.Metadata.key(i.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(i.REFLECT,a.DecorationKeys.PROPERTIES,t));if(o)return r?o[r]:o},t.Model.uiModelOf=e=>a.Metadata.get(e,a.Metadata.key(i.REFLECT,i.UIMODEL)),t.Model.uiElementOf=(e,t)=>a.Metadata.get(e,M(t,i.ELEMENT)),t.Model.uiListModelOf=e=>a.Metadata.get(e,a.Metadata.key(i.REFLECT,i.UILISTMODEL)),t.Model.uiHandlersFor=e=>a.Metadata.get(e,a.Metadata.key(i.REFLECT,i.HANDLERS)),t.Model.uiLayoutOf=e=>a.Metadata.get(e,a.Metadata.key(i.REFLECT,i.UILAYOUT)),t.Model.uiIsHidden=(e,t)=>!!a.Metadata.get(e,M(t,i.HIDDEN)),t.Model.uiIsHiddenOn=(e,t,r)=>{const o=a.Metadata.get(e,M(t,i.HIDDEN));return!!o&&(r?o.includes(r):o)},t.Model.uiTypeOf=(e,t)=>{const o=a.Metadata.get(e,a.Metadata.key(i.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=>[i.PROP,i.ELEMENT,i.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(i.REFLECT,a.DecorationKeys.PROPERTIES));if(t)return Object.keys(t)}).bind(t.Model),e.DecafComponent=m,e.EventHandler=class{constructor(){}},e.HTML5CheckTypes=E,e.HTML5DateFormat=l,e.HTML5InputTypes=c,e.RenderingEngine=L,e.RenderingError=u,e.UIKeys=i,e.VERSION="##VERSION##",e.ValidatableByAttribute=d,e.ValidatableByType=n,e.escapeHtml=y,e.formatByType=T,e.generateUIModelID=f,e.getUIAttributeKey=M,e.hidden=()=>O(r.OperationKeys.CREATE,r.OperationKeys.READ,r.OperationKeys.UPDATE,r.OperationKeys.DELETE),e.hideOn=O,e.parseToNumber=R,e.parseValueByType=function e(a,o,s){let i;switch(a){case Array.name:i=(Array.isArray(o)?o.map(a=>e(t.ReservedModels.STRING.name.toLowerCase(),a,s)):[o]).join(",");break;case c.NUMBER:i=R(o);break;case c.DATE:{const e=s.format;o&&(""+o).trim().length&&(i=typeof o===t.ReservedModels.NUMBER.name.toLowerCase()?new Date(o):o?e?t.parseDate(e,o):new Date(o):void 0);break}default:i=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()?y(o):i}if(void 0===i)throw new r.InternalError(`Failed to parse value of type ${a} from ${typeof o} - ${o}`);return i},e.renderedBy=e=>a.apply(a.metadata(a.Metadata.key(i.REFLECT,i.RENDERED_BY),e)),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)=>(n,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(M(d,i.CHILD),l)(n,d)},e.uielement=(e,t,r=!1)=>(o,s)=>{const n={tag:e,serialize:r,props:Object.assign({},t||{},{name:s})};return a.propMetadata(M(s,i.ELEMENT),n)(o,s)},e.uihandlers=e=>t=>{const r={handlers:e};return a.metadata(a.Metadata.key(i.REFLECT,i.HANDLERS),r)(t)},e.uilayout=(t,a=1,r=1,o={})=>(s,i)=>p(t,Object.assign({..."boolean"==typeof a?{flexMode:a,cols:1}:{flexMode:!1,cols:a},rows:r,...Object.assign({breakpoint:e.UIMediaBreakPoints.LARGE},o)}))(s,i),e.uilayoutprop=(e=1,t=1)=>(r,o)=>{const s={name:o,props:Object.assign({},{row:t,col:e})};a.propMetadata(M(o,i.UILAYOUTPROP),s)(r,o)},e.uilistmodel=(e,t)=>(r,o)=>{const s={item:{tag:e||r.name,props:t}};return a.metadata(a.Metadata.key(i.REFLECT,i.UILISTMODEL),s)(r)},e.uilistprop=(e=void 0,t)=>(r,o)=>{const s={name:e||o,props:t||{}};a.propMetadata(M(o,i.UILISTPROP),s)(r,o)},e.uimodel=p,e.uion=A,e.uionrender=e=>A("render",e),e.uiorder=(e=1)=>(t,r)=>a.propMetadata(M(r,i.ORDER),e)(t,r),e.uipageprop=(e=1)=>(t,r)=>a.propMetadata(M(r,i.PAGE),e)(t,r),e.uiprop=(e=void 0,t=!1)=>(r,o)=>{const s={name:e||o,stringify:t};a.propMetadata(M(o,i.PROP),s)(r,o)},e.uisteppedmodel=(e,t=1,a=!1,r={})=>{let o=[];return"object"==typeof t&&(o=t,t=o.length),p(e,{pages:t,paginated:a,pageTitles:o,props:r})}},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decorator-validation"),require("@decaf-ts/decoration"),require("@decaf-ts/db-decorators"),require("@decaf-ts/logging")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decorator-validation","@decaf-ts/decoration","@decaf-ts/db-decorators","@decaf-ts/logging"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["ui-decorators"]={},e.decafTsDecoratorValidation,e.decafTsDecoration,e.decafTsDbDecorators,e.decafTsLogging);
1
+ var e,t;e=this,t=function(e,t,r,o,a){"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 i={REFLECT:"ui",UIMODEL:"uimodel",RENDERED_BY:"rendered-by",ELEMENT:"uielement",PROP:"uiprop",CHILD:"uichild",NAME:"name",NAME_PREFIX:"input-",CUSTOM_PROPS:"customValidationProps",UILISTMODEL:"uilistmodel",UILISTPROP:"uilistprop",UILAYOUT:"uilayout",UILAYOUTPROP:"uilayoutprop",HANDLERS:"uihandlers",TYPE:"type",SUB_TYPE:"subtype",HIDDEN:"hidden",FORMAT:"format",ORDER:"order",PAGE:"page",EVENTS:"events",READ_ONLY:"readonly",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},n={[i.EMAIL]:t.EmailValidator,[i.URL]:t.URLValidator,[i.DATE]:t.DateValidator,[i.PASSWORD]:t.PasswordValidator},d={[i.REQUIRED]:t.RequiredValidator,[i.MIN]:t.MinValidator,[i.MAX]:t.MaxValidator,[i.STEP]:t.StepValidator,[i.MIN_LENGTH]:t.MinLengthValidator,[i.MAX_LENGTH]:t.MaxLengthValidator,[i.PATTERN]:t.PatternValidator,[i.EQUALS]:t.EqualsValidator,[i.DIFF]:t.DiffValidator,[i.LESS_THAN]:t.LessThanValidator,[i.LESS_THAN_OR_EQUAL]:t.LessThanOrEqualValidator,[i.GREATER_THAN]:t.GreaterThanValidator,[i.GREATER_THAN_OR_EQUAL]:t.GreaterThanOrEqualValidator},l="yyyy-MM-dd",c={BUTTON:"button",CHECKBOX:"checkbox",COLOR:"color",DATE:i.DATE,DATETIME_LOCAL:"datetime-local",EMAIL:i.EMAIL,FILE:"file",HIDDEN:"hidden",IMAGE:"image",MONTH:"month",NUMBER:"number",PASSWORD:i.PASSWORD,RADIO:"radio",RANGE:"range",RESET:"reset",SEARCH:"search",SUBMIT:"submit",TEL:"tel",TEXT:"text",TEXTAREA:"textarea",SELECT:"select",TIME:"time",URL:i.URL,WEEK:"week"},E=[c.CHECKBOX,c.RADIO];function p(e,t){return(o,a)=>{const s={tag:e||o.name,props:t};return r.metadata(r.Metadata.key(i.REFLECT,i.UIMODEL),s)(o)}}class u extends o.InternalError{constructor(e){super(e,u.name)}}function M(e,t){return r.Metadata.key(i.REFLECT,r.DecorationKeys.PROPERTIES,e,t)}function T(e,r,...o){if(e===i.DATE){if(!r)return"";const e=o.shift()||l;return t.formatDate(new Date(r),e)}return r}function f(e){if("number"==typeof e&&!isNaN(e))return e;const t=Number(e);return isNaN(t)?void 0:t}function y(e){if(!e)return e;const t={"&":"&amp;","<":"&lt;",">":"&gt;"};return(""+e).replace(/[&<>]/g,e=>t[e]||e)}function R(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 O{static{this.cache={}}constructor(e){this.flavour=e,this.initialized=!1,O.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)}isValidatableByType(e){return Object.keys(n).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===i.REQUIRED||t[e]}toFieldDefinition(e,a={},s=!0){const{inheritProps:n,...d}=a;a=d;const E=this.getClassDecoratorsMetadata(e);if(!E.length)throw new u(`No ui definitions set for model ${e.constructor.name}. Did you use @uimodel?`);const p=Object.assign({},...E,n||{}),{tag:M,props:f,item:y,handlers:O}=p,L=t.Model.uiPropertiesOf(e.constructor);let h,m=y?.props||{},A={};const g=(e,t)=>e?[e,t].join("."):t;if(L){const s=r.Metadata.get(e.constructor,t.ValidationKeys.REFLECT)||{};for(const n of L){const d=t.Model.uiDecorationOf(e.constructor,n);let E;try{E=t.Model.uiTypeOf(e.constructor,n)}catch(e){if(!(e instanceof o.NotFoundError))throw e}if(t.Model.uiIsHidden(e.constructor,n)&&!t.Model.uiElementOf(e.constructor,n))throw new u(`@uielement no found in "${n}". It is required to use hiddenOn decorator.`);Object.entries(d).map(([e,t])=>({key:e,props:t})).sort(e=>[i.ELEMENT,i.CHILD].includes(e.key)?-1:1).forEach(o=>{if(!o)throw new u("No decorator found");switch(o.key){case i.PROP:m[n]=o.props;break;case i.CHILD:{if(!t.Model.isPropertyModel(e,n))throw new u(`Child "${n}" must be a model.`);let r;const s=e[n];if("object"!=typeof s||null===s||Array.isArray(s)){const e=o.props.props?.name;r=new(t.Model.get(e))}h=h||[];const i=Object.assign({},a||{},{model:r},{inheritProps:o.props,childOf:g(a?.childOf,n)}),d=this.toFieldDefinition(s||r,i,!1);h.push(d);break}case i.UILISTPROP:{A=A||{},o.props.name&&(A[o.props.name]=n);const e=Object.assign({},p.props?.item||{},y?.props||{},o.props.props||{},a);m={tag:y?.tag||e.render||"",props:Object.assign({},m?.props,{mapper:A},e)};break}case i.EVENTS:case i.HIDDEN:case i.PAGE:case i.ORDER:case i.UILAYOUTPROP:case i.ELEMENT:{h=h||[];const t=o.props,d=Object.assign({},m?.props,t.props||{},t?.props?.name?{path:g(a?.childOf,t.props.name),childOf:void 0}:{},a);if(o.key===i.ELEMENT){const o={tag:t.tag||m?.tag||M||"",props:d},a=s[n];if(a)for(const e of Object.entries(a).map(([e,t])=>({key:e,props:t})))this.isValidatableByAttribute(e.key)?o.props[this.translate(e.key)]=this.toAttributeValue(e.key,e.props):this.isValidatableByType(e.key)&&(e.key===c.DATE&&(o.props[i.FORMAT]=e.props.format||l),o.props[i.TYPE]=e.key);if(!o.props[i.TYPE]){const t=r.Metadata.type(e.constructor,n).name;o.props[i.TYPE]=this.translate(t.toLowerCase(),!0)}o.props.value=T(o.props[i.TYPE],e[n],o.props[i.FORMAT]),h.push(o)}else{const e=h.find(e=>e.props?.name===n||[i.UILAYOUTPROP,i.PAGE,i.EVENTS].includes(o.key)&&(e.props?.childOf===n||e.props?.childOf?.endsWith("."+n)));if(e)if(o.key!==i.UILAYOUTPROP)e.props=Object.assign({},e.props,{[o.key]:t});else{const{row:t,col:r,props:a}=o.props;e.props=Object.assign({},a||{},e.props,t,r)}}break}default:throw new u("Invalid key: "+o.key)}})}}a=Object.assign({},f,a,{handlers:O||{}});const D=a?.operation;h=h?.sort((e,t)=>(e?.props?.order??0)-(t?.props?.order??0)).filter(e=>{const t=e?.props?.hidden||[];return t?.length&&t.includes(D)?void 0:e});const I={tag:M,item:m,props:a,children:h};return s&&(I.rendererId=R(e)),I}static register(e){if(e.flavour in this.cache)throw new o.InternalError(`Rendering engine under ${e.flavour} already exists`);this.cache[e.flavour]=e,this.current=e}static getOrBoot(e){if(e instanceof O)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 o.InternalError(`Rendering engine under ${e} does not exist`);return this.getOrBoot(this.cache[e])}static render(e,...r){if(!t.Model.get(e.constructor.name)&&!t.Model.fromObject(e))throw new o.InternalError("No model registered found");const a=t.Model.renderedBy(e.constructor);return O.get(a).render(e,...r)}}function L(...e){return(t,o)=>r.propMetadata(M(o,i.HIDDEN),e)(t,o)}function h(e,t){return(o,a)=>{r.propMetadata(M(a,i.EVENTS),{[e]:t})(o,a)}}class m extends a.LoggedClass{constructor(){super(),this.enableDarkMode=!0,this.isDarkMode=!1,this.item={tag:""},this.props={},this.route="",this.borders=!1,this.OperationKeys=o.OperationKeys,this.initialized=!1,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 initialize(...e){this.initialized=!0}async submit(...e){this.log.for(this.submit).info(`submit for ${this.componentName} with ${JSON.stringify(e)}`)}async translate(...e){this.log.for(this.translate).info(`translate for ${this.componentName} with ${JSON.stringify(e)}`)}}t.Model.prototype.render=function(...e){return O.render(this,...e)},t.Model.renderedBy=(e=>r.Metadata.get(e,r.Metadata.key(i.REFLECT,i.RENDERED_BY))).bind(t.Model),t.Model.uiPropertiesOf=(e=>{const t=r.Metadata.get(e,r.Metadata.key(i.REFLECT,r.DecorationKeys.PROPERTIES));if(t)return Object.keys(t)}).bind(t.Model),t.Model.uiDecorationOf=(e,t,o)=>{const a=r.Metadata.get(e,r.Metadata.key(i.REFLECT,r.DecorationKeys.PROPERTIES,t));if(a)return o?a[o]:a},t.Model.uiModelOf=e=>r.Metadata.get(e,r.Metadata.key(i.REFLECT,i.UIMODEL)),t.Model.uiElementOf=(e,t)=>r.Metadata.get(e,M(t,i.ELEMENT)),t.Model.uiListModelOf=e=>r.Metadata.get(e,r.Metadata.key(i.REFLECT,i.UILISTMODEL)),t.Model.uiHandlersFor=e=>r.Metadata.get(e,r.Metadata.key(i.REFLECT,i.HANDLERS)),t.Model.uiLayoutOf=e=>r.Metadata.get(e,r.Metadata.key(i.REFLECT,i.UILAYOUT)),t.Model.uiIsHidden=(e,t)=>!!r.Metadata.get(e,M(t,i.HIDDEN)),t.Model.uiIsHiddenOn=(e,t,o)=>{const a=r.Metadata.get(e,M(t,i.HIDDEN));return!!a&&(o?a.includes(o):a)},t.Model.uiTypeOf=(e,t)=>{const a=r.Metadata.get(e,r.Metadata.key(i.REFLECT,r.DecorationKeys.PROPERTIES,t));if(!a)throw new o.NotFoundError(`No metadata found for property '${t}' on model '${e.name}'`);const s=Object.keys(a).filter(e=>[i.PROP,i.ELEMENT,i.CHILD].includes(e));if(0===s.length)throw new o.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 a[s[0]]},t.Model.uiListItems=(e=>{const t=r.Metadata.get(e,r.Metadata.key(i.REFLECT,r.DecorationKeys.PROPERTIES));if(t)return Object.keys(t)}).bind(t.Model),e.DecafComponent=m,e.DecafEventHandler=class extends m{constructor(){super()}handle(...e){this.log.for(this.handle).info(`component ${this.componentName} handling ${JSON.stringify(e)}`)}},e.HTML5CheckTypes=E,e.HTML5DateFormat=l,e.HTML5InputTypes=c,e.RenderingEngine=O,e.RenderingError=u,e.UIKeys=i,e.VERSION="##VERSION##",e.ValidatableByAttribute=d,e.ValidatableByType=n,e.escapeHtml=y,e.formatByType=T,e.generateUIModelID=R,e.getUIAttributeKey=M,e.hidden=()=>L(o.OperationKeys.CREATE,o.OperationKeys.READ,o.OperationKeys.UPDATE,o.OperationKeys.DELETE),e.hideOn=L,e.parseToNumber=f,e.parseValueByType=function e(r,a,s){let i;switch(r){case Array.name:i=(Array.isArray(a)?a.map(r=>e(t.ReservedModels.STRING.name.toLowerCase(),r,s)):[a]).join(",");break;case c.NUMBER:i=f(a);break;case c.DATE:{const e=s.format;a&&(""+a).trim().length&&(i=typeof a===t.ReservedModels.NUMBER.name.toLowerCase()?new Date(a):a?e?t.parseDate(e,a):new Date(a):void 0);break}default:i=typeof a===t.ReservedModels.OBJECT.name.toLowerCase()?Array.isArray(a)?a.join(","):JSON.stringify(a):typeof a===t.ReservedModels.BOOLEAN.name.toLowerCase()?a:typeof a===t.ReservedModels.STRING.name.toLowerCase()?y(a):i}if(void 0===i)throw new o.InternalError(`Failed to parse value of type ${r} from ${typeof a} - ${a}`);return i},e.renderedBy=e=>r.apply(r.metadata(r.Metadata.key(i.REFLECT,i.RENDERED_BY),e)),e.revertHtml=e=>{const t={"&amp;":"&","&lt;":"<","&gt;":">"};return(""+e).replace(/&lt;|&gt;|&amp;/g,e=>t[e]||e)},e.uichild=(e,t,o={},a=!1,s=!1)=>(n,d)=>{const l={tag:t,serialize:s,props:Object.assign({},o||{},{name:e||d},a?{customTypes:[Array.name],multiple:!0}:{multiple:o?.multiple||!1})};r.propMetadata(M(d,i.CHILD),l)(n,d)},e.uielement=(e,t,o=!1)=>(a,s)=>{const n={tag:e,serialize:o,props:Object.assign({},t||{},{name:s})};return r.propMetadata(M(s,i.ELEMENT),n)(a,s)},e.uihandlers=e=>t=>{const o={handlers:e};return r.metadata(r.Metadata.key(i.REFLECT,i.HANDLERS),o)(t)},e.uilayout=(t,r=1,o=1,a={})=>(s,i)=>p(t,Object.assign({..."boolean"==typeof r?{flexMode:r,cols:1}:{flexMode:!1,cols:r},rows:o,...Object.assign({breakpoint:e.UIMediaBreakPoints.LARGE},a)}))(s,i),e.uilayoutprop=(e=1,t=1)=>(o,a)=>{const s={name:a,props:Object.assign({},{row:t,col:e})};r.propMetadata(M(a,i.UILAYOUTPROP),s)(o,a)},e.uilistmodel=(e,t)=>(o,a)=>{const s={item:{tag:e||o.name,props:t}};return r.metadata(r.Metadata.key(i.REFLECT,i.UILISTMODEL),s)(o)},e.uilistprop=(e=void 0,t)=>(o,a)=>{const s={name:e||a,props:t||{}};r.propMetadata(M(a,i.UILISTPROP),s)(o,a)},e.uimodel=p,e.uion=h,e.uionrender=e=>h("render",e),e.uiorder=(e=1)=>(t,o)=>r.propMetadata(M(o,i.ORDER),e)(t,o),e.uipageprop=(e=1)=>(t,o)=>r.propMetadata(M(o,i.PAGE),e)(t,o),e.uiprop=(e=void 0,t=!1)=>(o,a)=>{const s={name:e||a,stringify:t};r.propMetadata(M(a,i.PROP),s)(o,a)},e.uisteppedmodel=(e,t=1,r=!1,o={})=>{let a=[];return"object"==typeof t&&(a=t,t=a.length),p(e,{pages:t,paginated:r,pageTitles:a,props:o})}},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decorator-validation"),require("@decaf-ts/decoration"),require("@decaf-ts/db-decorators"),require("@decaf-ts/logging")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decorator-validation","@decaf-ts/decoration","@decaf-ts/db-decorators","@decaf-ts/logging"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["ui-decorators"]={},e.decafTsDecoratorValidation,e.decafTsDecoration,e.decafTsDbDecorators,e.decafTsLogging);
2
2
  //# sourceMappingURL=ui-decorators.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui-decorators.cjs","sources":["../src/ui/constants.ts","../src/model/decorators.ts","../src/ui/errors.ts","../src/ui/utils.ts","../src/ui/Rendering.ts","../src/ui/decorators.ts","../src/ui/DecafComponent.ts","../src/model/overrides.ts","../src/ui/handlers.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":["UIMediaBreakPoints","exports","UIKeys","REFLECT","UIMODEL","RENDERED_BY","ELEMENT","PROP","CHILD","NAME","NAME_PREFIX","CUSTOM_PROPS","UILISTMODEL","UILISTPROP","UILAYOUT","UILAYOUTPROP","HANDLERS","TYPE","SUB_TYPE","HIDDEN","FORMAT","ORDER","PAGE","EVENTS","READ_ONLY","REQUIRED","ValidationKeys","MIN","MIN_LENGTH","MAX","MAX_LENGTH","PATTERN","URL","STEP","DATE","EMAIL","PASSWORD","EQUALS","DIFF","LESS_THAN","LESS_THAN_OR_EQUAL","GREATER_THAN","GREATER_THAN_OR_EQUAL","ValidatableByType","EmailValidator","URLValidator","DateValidator","PasswordValidator","ValidatableByAttribute","RequiredValidator","MinValidator","MaxValidator","StepValidator","MinLengthValidator","MaxLengthValidator","PatternValidator","EqualsValidator","DiffValidator","LessThanValidator","LessThanOrEqualValidator","GreaterThanValidator","GreaterThanOrEqualValidator","HTML5DateFormat","HTML5InputTypes","BUTTON","CHECKBOX","COLOR","DATETIME_LOCAL","FILE","IMAGE","MONTH","NUMBER","RADIO","RANGE","RESET","SEARCH","SUBMIT","TEL","TEXT","TEXTAREA","SELECT","TIME","WEEK","HTML5CheckTypes","uimodel","tag","props","original","propertyKey","meta","name","metadata","Metadata","key","RenderingError","InternalError","constructor","msg","super","getUIAttributeKey","prop","DecorationKeys","PROPERTIES","formatByType","type","value","args","format","shift","formatDate","Date","parseToNumber","isNaN","parsed","Number","escapeHtml","tagsToReplace","replace","generateUIModelID","model","id","now","Model","pk","e","RenderingEngine","this","cache","flavour","initialized","register","translate","toView","ReservedModels","STRING","toLowerCase","BIGINT","BOOLEAN","getClassDecoratorsMetadata","uiModelOf","uiListModelOf","uiHandlersFor","uiLayoutOf","filter","Boolean","isValidatableByType","Object","keys","includes","isValidatableByAttribute","toAttributeValue","Error","join","toFieldDefinition","globalProps","generateId","inheritProps","globalPropsWithoutInherits","classDecorators","length","classDecorator","assign","item","handlers","uiDecorators","uiPropertiesOf","children","childProps","mapper","getPath","parent","validationDecorators","get","decs","uiDecorationOf","uiTypeOf","NotFoundError","uiIsHidden","uiElementOf","entries","map","k","v","sort","a","forEach","dec","isPropertyModel","Clazz","submodel","Array","isArray","clazzName","childrenGlobalProps","childOf","childDefinition","push","render","uiProps","path","undefined","validationDecs","basicType","child","find","c","endsWith","row","col","operation","b","order","hiddenOn","hidden","result","rendererId","engine","current","getOrBoot","obj","initialize","fromObject","renderedBy","hideOn","operations","object","propMetadata","uion","event","handler","DecafComponent","LoggedClass","enableDarkMode","isDarkMode","route","borders","OperationKeys","decoratorValidation","prototype","bind","uiIsHiddenOn","op","uiListItems","CREATE","READ","UPDATE","DELETE","parseValueByType","fieldProps","trim","parseDate","OBJECT","JSON","stringify","apply","clazz","serialize","target","customTypes","multiple","colsMode","rows","flexMode","cols","breakpoint","LARGE","propName","page","pages","paginated","pageTitles"],"mappings":"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"}
1
+ {"version":3,"file":"ui-decorators.cjs","sources":["../src/ui/constants.ts","../src/model/decorators.ts","../src/ui/errors.ts","../src/ui/utils.ts","../src/ui/Rendering.ts","../src/ui/decorators.ts","../src/ui/DecafComponent.ts","../src/model/overrides.ts","../src/ui/DecafEventHandler.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":["UIMediaBreakPoints","exports","UIKeys","REFLECT","UIMODEL","RENDERED_BY","ELEMENT","PROP","CHILD","NAME","NAME_PREFIX","CUSTOM_PROPS","UILISTMODEL","UILISTPROP","UILAYOUT","UILAYOUTPROP","HANDLERS","TYPE","SUB_TYPE","HIDDEN","FORMAT","ORDER","PAGE","EVENTS","READ_ONLY","REQUIRED","ValidationKeys","MIN","MIN_LENGTH","MAX","MAX_LENGTH","PATTERN","URL","STEP","DATE","EMAIL","PASSWORD","EQUALS","DIFF","LESS_THAN","LESS_THAN_OR_EQUAL","GREATER_THAN","GREATER_THAN_OR_EQUAL","ValidatableByType","EmailValidator","URLValidator","DateValidator","PasswordValidator","ValidatableByAttribute","RequiredValidator","MinValidator","MaxValidator","StepValidator","MinLengthValidator","MaxLengthValidator","PatternValidator","EqualsValidator","DiffValidator","LessThanValidator","LessThanOrEqualValidator","GreaterThanValidator","GreaterThanOrEqualValidator","HTML5DateFormat","HTML5InputTypes","BUTTON","CHECKBOX","COLOR","DATETIME_LOCAL","FILE","IMAGE","MONTH","NUMBER","RADIO","RANGE","RESET","SEARCH","SUBMIT","TEL","TEXT","TEXTAREA","SELECT","TIME","WEEK","HTML5CheckTypes","uimodel","tag","props","original","propertyKey","meta","name","metadata","Metadata","key","RenderingError","InternalError","constructor","msg","super","getUIAttributeKey","prop","DecorationKeys","PROPERTIES","formatByType","type","value","args","format","shift","formatDate","Date","parseToNumber","isNaN","parsed","Number","escapeHtml","tagsToReplace","replace","generateUIModelID","model","id","now","Model","pk","e","RenderingEngine","this","cache","flavour","initialized","register","translate","toView","ReservedModels","STRING","toLowerCase","BIGINT","BOOLEAN","getClassDecoratorsMetadata","uiModelOf","uiListModelOf","uiHandlersFor","uiLayoutOf","filter","Boolean","isValidatableByType","Object","keys","includes","isValidatableByAttribute","toAttributeValue","Error","join","toFieldDefinition","globalProps","generateId","inheritProps","globalPropsWithoutInherits","classDecorators","length","classDecorator","assign","item","handlers","uiDecorators","uiPropertiesOf","children","childProps","mapper","getPath","parent","validationDecorators","get","decs","uiDecorationOf","uiTypeOf","NotFoundError","uiIsHidden","uiElementOf","entries","map","k","v","sort","a","forEach","dec","isPropertyModel","Clazz","submodel","Array","isArray","clazzName","childrenGlobalProps","childOf","childDefinition","push","render","uiProps","path","undefined","validationDecs","basicType","child","find","c","endsWith","row","col","operation","b","order","hiddenOn","hidden","result","rendererId","engine","current","getOrBoot","obj","initialize","fromObject","renderedBy","hideOn","operations","object","propMetadata","uion","event","handler","DecafComponent","LoggedClass","enableDarkMode","isDarkMode","route","borders","OperationKeys","repository","_repository","log","for","info","componentName","JSON","stringify","submit","decoratorValidation","prototype","bind","uiIsHiddenOn","op","uiListItems","handle","CREATE","READ","UPDATE","DELETE","parseValueByType","fieldProps","trim","parseDate","OBJECT","apply","clazz","serialize","target","customTypes","multiple","colsMode","rows","flexMode","cols","breakpoint","LARGE","propName","page","pages","paginated","pageTitles"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{ValidationKeys as e,EmailValidator as t,URLValidator as r,DateValidator as o,PasswordValidator as n,RequiredValidator as s,MinValidator as i,MaxValidator as a,StepValidator as c,MinLengthValidator as E,MaxLengthValidator as u,PatternValidator as p,EqualsValidator as l,DiffValidator as d,LessThanValidator as T,LessThanOrEqualValidator as f,GreaterThanValidator as R,GreaterThanOrEqualValidator as O,formatDate as L,ReservedModels as A,parseDate as m,Model as y}from"@decaf-ts/decorator-validation";import{metadata as h,Metadata as I,apply as D,DecorationKeys as N,propMetadata as g}from"@decaf-ts/decoration";import{InternalError as M,NotFoundError as P,OperationKeys as S}from"@decaf-ts/db-decorators";import{LoggedClass as b}from"@decaf-ts/logging";var C;(e=>{e.SMALL="small",e.MEDIUM="medium",e.LARGE="large",e.XLARGE="xlarge"})(C||(C={}));const w={REFLECT:"ui",UIMODEL:"uimodel",RENDERED_BY:"rendered-by",ELEMENT:"uielement",PROP:"uiprop",CHILD:"uichild",NAME:"name",NAME_PREFIX:"input-",CUSTOM_PROPS:"customValidationProps",UILISTMODEL:"uilistmodel",UILISTPROP:"uilistprop",UILAYOUT:"uilayout",UILAYOUTPROP:"uilayoutprop",HANDLERS:"uihandlers",TYPE:"type",SUB_TYPE:"subtype",HIDDEN:"hidden",FORMAT:"format",ORDER:"order",PAGE:"page",EVENTS:"events",READ_ONLY:"readonly",REQUIRED:e.REQUIRED,MIN:e.MIN,MIN_LENGTH:e.MIN_LENGTH,MAX:e.MAX,MAX_LENGTH:e.MAX_LENGTH,PATTERN:e.PATTERN,URL:e.URL,STEP:e.STEP,DATE:e.DATE,EMAIL:e.EMAIL,PASSWORD:e.PASSWORD,EQUALS:e.EQUALS,DIFF:e.DIFF,LESS_THAN:e.LESS_THAN,LESS_THAN_OR_EQUAL:e.LESS_THAN_OR_EQUAL,GREATER_THAN:e.GREATER_THAN,GREATER_THAN_OR_EQUAL:e.GREATER_THAN_OR_EQUAL},U={[w.EMAIL]:t,[w.URL]:r,[w.DATE]:o,[w.PASSWORD]:n},k={[w.REQUIRED]:s,[w.MIN]:i,[w.MAX]:a,[w.STEP]:c,[w.MIN_LENGTH]:E,[w.MAX_LENGTH]:u,[w.PATTERN]:p,[w.EQUALS]:l,[w.DIFF]:d,[w.LESS_THAN]:T,[w.LESS_THAN_OR_EQUAL]:f,[w.GREATER_THAN]:R,[w.GREATER_THAN_OR_EQUAL]:O},H="yyyy-MM-dd",_={BUTTON:"button",CHECKBOX:"checkbox",COLOR:"color",DATE:w.DATE,DATETIME_LOCAL:"datetime-local",EMAIL:w.EMAIL,FILE:"file",HIDDEN:"hidden",IMAGE:"image",MONTH:"month",NUMBER:"number",PASSWORD:w.PASSWORD,RADIO:"radio",RANGE:"range",RESET:"reset",SEARCH:"search",SUBMIT:"submit",TEL:"tel",TEXT:"text",TEXTAREA:"textarea",SELECT:"select",TIME:"time",URL:w.URL,WEEK:"week"},B=[_.CHECKBOX,_.RADIO];function F(e,t){return(r,o)=>{const n={tag:e||r.name,props:t};return h(I.key(w.REFLECT,w.UIMODEL),n)(r)}}function j(e){return D(h(I.key(w.REFLECT,w.RENDERED_BY),e))}function G(e,t){return(r,o)=>{const n={item:{tag:e||r.name,props:t}};return h(I.key(w.REFLECT,w.UILISTMODEL),n)(r)}}function v(e){return t=>{const r={handlers:e};return h(I.key(w.REFLECT,w.HANDLERS),r)(t)}}function X(e,t=1,r=1,o={}){return(n,s)=>F(e,Object.assign({..."boolean"==typeof t?{flexMode:t,cols:1}:{flexMode:!1,cols:t},rows:r,...Object.assign({breakpoint:C.LARGE},o)}))(n,s)}function Y(e,t=1,r=!1,o={}){let n=[];return"object"==typeof t&&(n=t,t=n.length),F(e,{pages:t,paginated:r,pageTitles:n,props:o})}class $ extends M{constructor(e){super(e,$.name)}}function Q(e,t){return I.key(w.REFLECT,N.PROPERTIES,e,t)}function x(e,t,...r){if(e===w.DATE){if(!t)return"";const e=r.shift()||H;return L(new Date(t),e)}return t}function V(e,t,r){let o;switch(e){case Array.name:o=(Array.isArray(t)?t.map(e=>V(A.STRING.name.toLowerCase(),e,r)):[t]).join(",");break;case _.NUMBER:o=W(t);break;case _.DATE:{const e=r.format;t&&(""+t).trim().length&&(o=typeof t===A.NUMBER.name.toLowerCase()?new Date(t):t?e?m(e,t):new Date(t):void 0);break}default:o=typeof t===A.OBJECT.name.toLowerCase()?Array.isArray(t)?t.join(","):JSON.stringify(t):typeof t===A.BOOLEAN.name.toLowerCase()?t:typeof t===A.STRING.name.toLowerCase()?z(t):o}if(void 0===o)throw new M(`Failed to parse value of type ${e} from ${typeof t} - ${t}`);return o}function W(e){if("number"==typeof e&&!isNaN(e))return e;const t=Number(e);return isNaN(t)?void 0:t}function z(e){if(!e)return e;const t={"&":"&amp;","<":"&lt;",">":"&gt;"};return(""+e).replace(/[&<>]/g,e=>t[e]||e)}function K(e){const t={"&amp;":"&","&lt;":"<","&gt;":">"};return(""+e).replace(/&lt;|&gt;|&amp;/g,e=>t[e]||e)}function J(e){let t=Date.now();try{y.pk(e.constructor)&&(t=e[y.pk(e.constructor)])}catch(e){}return`${e.constructor.name}-${t}`}class q{static{this.cache={}}constructor(e){this.flavour=e,this.initialized=!1,q.register(this)}translate(e,t=!0){if(t)switch(e){case A.STRING.name.toLowerCase():return _.TEXT;case A.NUMBER.name.toLowerCase():case A.BIGINT.name.toLowerCase():return _.NUMBER;case A.BOOLEAN.name.toLowerCase():return _.CHECKBOX;case A.DATE.name.toLowerCase():return _.DATE}else switch(e){case _.SELECT:case _.TEXT:case _.EMAIL:case _.COLOR:case _.PASSWORD:case _.TEL:case _.URL:case _.SEARCH:case _.HIDDEN:case _.TEXTAREA:case _.RADIO:return A.STRING.name.toLowerCase();case _.NUMBER:return A.NUMBER.name.toLowerCase();case _.CHECKBOX:return A.BOOLEAN.name.toLowerCase();case _.DATE:case _.DATETIME_LOCAL:case _.TIME:return A.DATE.name.toLowerCase()}return e}getClassDecoratorsMetadata(e){return[y.uiModelOf(e.constructor),y.uiListModelOf(e.constructor),y.uiHandlersFor(e.constructor),y.uiLayoutOf(e.constructor)].filter(Boolean)}isValidatableByType(e){return Object.keys(U).includes(e)}isValidatableByAttribute(e){return Object.keys(k).includes(e)}toAttributeValue(e,t){if(!Object.keys(k).includes(e))throw Error(`Invalid attribute key "${e}". Expected one of: ${Object.keys(k).join(", ")}.`);return e===w.REQUIRED||t[e]}toFieldDefinition(t,r={},o=!0){const{inheritProps:n,...s}=r;r=s;const i=this.getClassDecoratorsMetadata(t);if(!i.length)throw new $(`No ui definitions set for model ${t.constructor.name}. Did you use @uimodel?`);const a=Object.assign({},...i,n||{}),{tag:c,props:E,item:u,handlers:p}=a,l=y.uiPropertiesOf(t.constructor);let d,T=u?.props||{},f={};const R=(e,t)=>e?[e,t].join("."):t;if(l){const o=I.get(t.constructor,e.REFLECT)||{};for(const e of l){const n=y.uiDecorationOf(t.constructor,e);let s;try{s=y.uiTypeOf(t.constructor,e)}catch(e){if(!(e instanceof P))throw e}if(y.uiIsHidden(t.constructor,e)&&!y.uiElementOf(t.constructor,e))throw new $(`@uielement no found in "${e}". It is required to use hiddenOn decorator.`);Object.entries(n).map(([e,t])=>({key:e,props:t})).sort(e=>[w.ELEMENT,w.CHILD].includes(e.key)?-1:1).forEach(n=>{if(!n)throw new $("No decorator found");switch(n.key){case w.PROP:T[e]=n.props;break;case w.CHILD:{if(!y.isPropertyModel(t,e))throw new $(`Child "${e}" must be a model.`);let o;const s=t[e];if("object"!=typeof s||null===s||Array.isArray(s)){const e=n.props.props?.name;o=new(y.get(e))}d=d||[];const i=Object.assign({},r||{},{model:o},{inheritProps:n.props,childOf:R(r?.childOf,e)}),a=this.toFieldDefinition(s||o,i,!1);d.push(a);break}case w.UILISTPROP:{f=f||{},n.props.name&&(f[n.props.name]=e);const t=Object.assign({},a.props?.item||{},u?.props||{},n.props.props||{},r);T={tag:u?.tag||t.render||"",props:Object.assign({},T?.props,{mapper:f},t)};break}case w.EVENTS:case w.HIDDEN:case w.PAGE:case w.ORDER:case w.UILAYOUTPROP:case w.ELEMENT:{d=d||[];const s=n.props,i=Object.assign({},T?.props,s.props||{},s?.props?.name?{path:R(r?.childOf,s.props.name),childOf:void 0}:{},r);if(n.key===w.ELEMENT){const r={tag:s.tag||T?.tag||c||"",props:i},n=o[e];if(n)for(const e of Object.entries(n).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===_.DATE&&(r.props[w.FORMAT]=e.props.format||H),r.props[w.TYPE]=e.key);if(!r.props[w.TYPE]){const o=I.type(t.constructor,e).name;r.props[w.TYPE]=this.translate(o.toLowerCase(),!0)}r.props.value=x(r.props[w.TYPE],t[e],r.props[w.FORMAT]),d.push(r)}else{const t=d.find(t=>t.props?.name===e||[w.UILAYOUTPROP,w.PAGE,w.EVENTS].includes(n.key)&&(t.props?.childOf===e||t.props?.childOf?.endsWith("."+e)));if(t)if(n.key!==w.UILAYOUTPROP)t.props=Object.assign({},t.props,{[n.key]:s});else{const{row:e,col:r,props:o}=n.props;t.props=Object.assign({},o||{},t.props,e,r)}}break}default:throw new $("Invalid key: "+n.key)}})}}r=Object.assign({},E,r,{handlers:p||{}});const O=r?.operation;d=d?.sort((e,t)=>(e?.props?.order??0)-(t?.props?.order??0)).filter(e=>{const t=e?.props?.hidden||[];return t?.length&&t.includes(O)?void 0:e});const L={tag:c,item:T,props:r,children:d};return o&&(L.rendererId=J(t)),L}static register(e){if(e.flavour in this.cache)throw new M(`Rendering engine under ${e.flavour} already exists`);this.cache[e.flavour]=e,this.current=e}static getOrBoot(e){if(e instanceof q)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 M(`Rendering engine under ${e} does not exist`);return this.getOrBoot(this.cache[e])}static render(e,...t){if(!y.get(e.constructor.name)&&!y.fromObject(e))throw new M("No model registered found");const r=y.renderedBy(e.constructor);return q.get(r).render(e,...t)}}function Z(...e){return(t,r)=>g(Q(r,w.HIDDEN),e)(t,r)}function ee(e=1){return(t,r)=>g(Q(r,w.ORDER),e)(t,r)}function te(){return Z(S.CREATE,S.READ,S.UPDATE,S.DELETE)}function re(e,t,r=!1){return(o,n)=>{const s={tag:e,serialize:r,props:Object.assign({},t||{},{name:n})};return g(Q(n,w.ELEMENT),s)(o,n)}}function oe(e=void 0,t=!1){return(r,o)=>{const n={name:e||o,stringify:t};g(Q(o,w.PROP),n)(r,o)}}function ne(e,t,r={},o=!1,n=!1){return(s,i)=>{const a={tag:t,serialize:n,props:Object.assign({},r||{},{name:e||i},o?{customTypes:[Array.name],multiple:!0}:{multiple:r?.multiple||!1})};g(Q(i,w.CHILD),a)(s,i)}}function se(e=void 0,t){return(r,o)=>{const n={name:e||o,props:t||{}};g(Q(o,w.UILISTPROP),n)(r,o)}}function ie(e=1,t=1){return(r,o)=>{const n={name:o,props:Object.assign({},{row:t,col:e})};g(Q(o,w.UILAYOUTPROP),n)(r,o)}}function ae(e=1){return(t,r)=>g(Q(r,w.PAGE),e)(t,r)}function ce(e,t){return(r,o)=>{g(Q(o,w.EVENTS),{[e]:t})(r,o)}}function Ee(e){return ce("render",e)}class ue{constructor(){}}class pe extends b{constructor(){super(),this.enableDarkMode=!0,this.isDarkMode=!1,this.item={tag:""},this.props={},this.route="",this.borders=!1,this.OperationKeys=S,this.initialized=!1,this.handlers={}}async render(...e){}async initialize(...e){this.initialized=!0}}y.prototype.render=function(...e){return q.render(this,...e)},y.renderedBy=(e=>I.get(e,I.key(w.REFLECT,w.RENDERED_BY))).bind(y),y.uiPropertiesOf=(e=>{const t=I.get(e,I.key(w.REFLECT,N.PROPERTIES));if(t)return Object.keys(t)}).bind(y),y.uiDecorationOf=(e,t,r)=>{const o=I.get(e,I.key(w.REFLECT,N.PROPERTIES,t));if(o)return r?o[r]:o},y.uiModelOf=e=>I.get(e,I.key(w.REFLECT,w.UIMODEL)),y.uiElementOf=(e,t)=>I.get(e,Q(t,w.ELEMENT)),y.uiListModelOf=e=>I.get(e,I.key(w.REFLECT,w.UILISTMODEL)),y.uiHandlersFor=e=>I.get(e,I.key(w.REFLECT,w.HANDLERS)),y.uiLayoutOf=e=>I.get(e,I.key(w.REFLECT,w.UILAYOUT)),y.uiIsHidden=(e,t)=>!!I.get(e,Q(t,w.HIDDEN)),y.uiIsHiddenOn=(e,t,r)=>{const o=I.get(e,Q(t,w.HIDDEN));return!!o&&(r?o.includes(r):o)},y.uiTypeOf=(e,t)=>{const r=I.get(e,I.key(w.REFLECT,N.PROPERTIES,t));if(!r)throw new P(`No metadata found for property '${t}' on model '${e.name}'`);const o=Object.keys(r).filter(e=>[w.PROP,w.ELEMENT,w.CHILD].includes(e));if(0===o.length)throw new P(`No UI type metadata found for property '${t}' on model '${e.name}'`);if(o.length>1)throw new $("Only one type of decoration is allowed. Please choose between @uiprop, @uichild or @uielement");return r[o[0]]},y.uiListItems=(e=>{const t=I.get(e,I.key(w.REFLECT,N.PROPERTIES));if(t)return Object.keys(t)}).bind(y);const le="##VERSION##";export{pe as DecafComponent,ue as EventHandler,B as HTML5CheckTypes,H as HTML5DateFormat,_ as HTML5InputTypes,q as RenderingEngine,$ as RenderingError,w as UIKeys,C as UIMediaBreakPoints,le as VERSION,k as ValidatableByAttribute,U as ValidatableByType,z as escapeHtml,x as formatByType,J as generateUIModelID,Q as getUIAttributeKey,te as hidden,Z as hideOn,W as parseToNumber,V as parseValueByType,j as renderedBy,K as revertHtml,ne as uichild,re as uielement,v as uihandlers,X as uilayout,ie as uilayoutprop,G as uilistmodel,se as uilistprop,F as uimodel,ce as uion,Ee as uionrender,ee as uiorder,ae as uipageprop,oe as uiprop,Y as uisteppedmodel};
1
+ import{ValidationKeys as e,EmailValidator as t,URLValidator as r,DateValidator as o,PasswordValidator as n,RequiredValidator as s,MinValidator as i,MaxValidator as a,StepValidator as c,MinLengthValidator as E,MaxLengthValidator as u,PatternValidator as p,EqualsValidator as l,DiffValidator as d,LessThanValidator as f,LessThanOrEqualValidator as T,GreaterThanValidator as R,GreaterThanOrEqualValidator as O,formatDate as L,ReservedModels as A,parseDate as h,Model as m}from"@decaf-ts/decorator-validation";import{metadata as y,Metadata as N,apply as g,DecorationKeys as I,propMetadata as D}from"@decaf-ts/decoration";import{InternalError as S,NotFoundError as M,OperationKeys as P}from"@decaf-ts/db-decorators";import{LoggedClass as b}from"@decaf-ts/logging";var w;(e=>{e.SMALL="small",e.MEDIUM="medium",e.LARGE="large",e.XLARGE="xlarge"})(w||(w={}));const C={REFLECT:"ui",UIMODEL:"uimodel",RENDERED_BY:"rendered-by",ELEMENT:"uielement",PROP:"uiprop",CHILD:"uichild",NAME:"name",NAME_PREFIX:"input-",CUSTOM_PROPS:"customValidationProps",UILISTMODEL:"uilistmodel",UILISTPROP:"uilistprop",UILAYOUT:"uilayout",UILAYOUTPROP:"uilayoutprop",HANDLERS:"uihandlers",TYPE:"type",SUB_TYPE:"subtype",HIDDEN:"hidden",FORMAT:"format",ORDER:"order",PAGE:"page",EVENTS:"events",READ_ONLY:"readonly",REQUIRED:e.REQUIRED,MIN:e.MIN,MIN_LENGTH:e.MIN_LENGTH,MAX:e.MAX,MAX_LENGTH:e.MAX_LENGTH,PATTERN:e.PATTERN,URL:e.URL,STEP:e.STEP,DATE:e.DATE,EMAIL:e.EMAIL,PASSWORD:e.PASSWORD,EQUALS:e.EQUALS,DIFF:e.DIFF,LESS_THAN:e.LESS_THAN,LESS_THAN_OR_EQUAL:e.LESS_THAN_OR_EQUAL,GREATER_THAN:e.GREATER_THAN,GREATER_THAN_OR_EQUAL:e.GREATER_THAN_OR_EQUAL},U={[C.EMAIL]:t,[C.URL]:r,[C.DATE]:o,[C.PASSWORD]:n},k={[C.REQUIRED]:s,[C.MIN]:i,[C.MAX]:a,[C.STEP]:c,[C.MIN_LENGTH]:E,[C.MAX_LENGTH]:u,[C.PATTERN]:p,[C.EQUALS]:l,[C.DIFF]:d,[C.LESS_THAN]:f,[C.LESS_THAN_OR_EQUAL]:T,[C.GREATER_THAN]:R,[C.GREATER_THAN_OR_EQUAL]:O},H="yyyy-MM-dd",_={BUTTON:"button",CHECKBOX:"checkbox",COLOR:"color",DATE:C.DATE,DATETIME_LOCAL:"datetime-local",EMAIL:C.EMAIL,FILE:"file",HIDDEN:"hidden",IMAGE:"image",MONTH:"month",NUMBER:"number",PASSWORD:C.PASSWORD,RADIO:"radio",RANGE:"range",RESET:"reset",SEARCH:"search",SUBMIT:"submit",TEL:"tel",TEXT:"text",TEXTAREA:"textarea",SELECT:"select",TIME:"time",URL:C.URL,WEEK:"week"},B=[_.CHECKBOX,_.RADIO];function F(e,t){return(r,o)=>{const n={tag:e||r.name,props:t};return y(N.key(C.REFLECT,C.UIMODEL),n)(r)}}function j(e){return g(y(N.key(C.REFLECT,C.RENDERED_BY),e))}function G(e,t){return(r,o)=>{const n={item:{tag:e||r.name,props:t}};return y(N.key(C.REFLECT,C.UILISTMODEL),n)(r)}}function $(e){return t=>{const r={handlers:e};return y(N.key(C.REFLECT,C.HANDLERS),r)(t)}}function v(e,t=1,r=1,o={}){return(n,s)=>F(e,Object.assign({..."boolean"==typeof t?{flexMode:t,cols:1}:{flexMode:!1,cols:t},rows:r,...Object.assign({breakpoint:w.LARGE},o)}))(n,s)}function X(e,t=1,r=!1,o={}){let n=[];return"object"==typeof t&&(n=t,t=n.length),F(e,{pages:t,paginated:r,pageTitles:n,props:o})}class Y extends S{constructor(e){super(e,Y.name)}}function x(e,t){return N.key(C.REFLECT,I.PROPERTIES,e,t)}function Q(e,t,...r){if(e===C.DATE){if(!t)return"";const e=r.shift()||H;return L(new Date(t),e)}return t}function V(e,t,r){let o;switch(e){case Array.name:o=(Array.isArray(t)?t.map(e=>V(A.STRING.name.toLowerCase(),e,r)):[t]).join(",");break;case _.NUMBER:o=W(t);break;case _.DATE:{const e=r.format;t&&(""+t).trim().length&&(o=typeof t===A.NUMBER.name.toLowerCase()?new Date(t):t?e?h(e,t):new Date(t):void 0);break}default:o=typeof t===A.OBJECT.name.toLowerCase()?Array.isArray(t)?t.join(","):JSON.stringify(t):typeof t===A.BOOLEAN.name.toLowerCase()?t:typeof t===A.STRING.name.toLowerCase()?z(t):o}if(void 0===o)throw new S(`Failed to parse value of type ${e} from ${typeof t} - ${t}`);return o}function W(e){if("number"==typeof e&&!isNaN(e))return e;const t=Number(e);return isNaN(t)?void 0:t}function z(e){if(!e)return e;const t={"&":"&amp;","<":"&lt;",">":"&gt;"};return(""+e).replace(/[&<>]/g,e=>t[e]||e)}function J(e){const t={"&amp;":"&","&lt;":"<","&gt;":">"};return(""+e).replace(/&lt;|&gt;|&amp;/g,e=>t[e]||e)}function K(e){let t=Date.now();try{m.pk(e.constructor)&&(t=e[m.pk(e.constructor)])}catch(e){}return`${e.constructor.name}-${t}`}class q{static{this.cache={}}constructor(e){this.flavour=e,this.initialized=!1,q.register(this)}translate(e,t=!0){if(t)switch(e){case A.STRING.name.toLowerCase():return _.TEXT;case A.NUMBER.name.toLowerCase():case A.BIGINT.name.toLowerCase():return _.NUMBER;case A.BOOLEAN.name.toLowerCase():return _.CHECKBOX;case A.DATE.name.toLowerCase():return _.DATE}else switch(e){case _.SELECT:case _.TEXT:case _.EMAIL:case _.COLOR:case _.PASSWORD:case _.TEL:case _.URL:case _.SEARCH:case _.HIDDEN:case _.TEXTAREA:case _.RADIO:return A.STRING.name.toLowerCase();case _.NUMBER:return A.NUMBER.name.toLowerCase();case _.CHECKBOX:return A.BOOLEAN.name.toLowerCase();case _.DATE:case _.DATETIME_LOCAL:case _.TIME:return A.DATE.name.toLowerCase()}return e}getClassDecoratorsMetadata(e){return[m.uiModelOf(e.constructor),m.uiListModelOf(e.constructor),m.uiHandlersFor(e.constructor),m.uiLayoutOf(e.constructor)].filter(Boolean)}isValidatableByType(e){return Object.keys(U).includes(e)}isValidatableByAttribute(e){return Object.keys(k).includes(e)}toAttributeValue(e,t){if(!Object.keys(k).includes(e))throw Error(`Invalid attribute key "${e}". Expected one of: ${Object.keys(k).join(", ")}.`);return e===C.REQUIRED||t[e]}toFieldDefinition(t,r={},o=!0){const{inheritProps:n,...s}=r;r=s;const i=this.getClassDecoratorsMetadata(t);if(!i.length)throw new Y(`No ui definitions set for model ${t.constructor.name}. Did you use @uimodel?`);const a=Object.assign({},...i,n||{}),{tag:c,props:E,item:u,handlers:p}=a,l=m.uiPropertiesOf(t.constructor);let d,f=u?.props||{},T={};const R=(e,t)=>e?[e,t].join("."):t;if(l){const o=N.get(t.constructor,e.REFLECT)||{};for(const e of l){const n=m.uiDecorationOf(t.constructor,e);let s;try{s=m.uiTypeOf(t.constructor,e)}catch(e){if(!(e instanceof M))throw e}if(m.uiIsHidden(t.constructor,e)&&!m.uiElementOf(t.constructor,e))throw new Y(`@uielement no found in "${e}". It is required to use hiddenOn decorator.`);Object.entries(n).map(([e,t])=>({key:e,props:t})).sort(e=>[C.ELEMENT,C.CHILD].includes(e.key)?-1:1).forEach(n=>{if(!n)throw new Y("No decorator found");switch(n.key){case C.PROP:f[e]=n.props;break;case C.CHILD:{if(!m.isPropertyModel(t,e))throw new Y(`Child "${e}" must be a model.`);let o;const s=t[e];if("object"!=typeof s||null===s||Array.isArray(s)){const e=n.props.props?.name;o=new(m.get(e))}d=d||[];const i=Object.assign({},r||{},{model:o},{inheritProps:n.props,childOf:R(r?.childOf,e)}),a=this.toFieldDefinition(s||o,i,!1);d.push(a);break}case C.UILISTPROP:{T=T||{},n.props.name&&(T[n.props.name]=e);const t=Object.assign({},a.props?.item||{},u?.props||{},n.props.props||{},r);f={tag:u?.tag||t.render||"",props:Object.assign({},f?.props,{mapper:T},t)};break}case C.EVENTS:case C.HIDDEN:case C.PAGE:case C.ORDER:case C.UILAYOUTPROP:case C.ELEMENT:{d=d||[];const s=n.props,i=Object.assign({},f?.props,s.props||{},s?.props?.name?{path:R(r?.childOf,s.props.name),childOf:void 0}:{},r);if(n.key===C.ELEMENT){const r={tag:s.tag||f?.tag||c||"",props:i},n=o[e];if(n)for(const e of Object.entries(n).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===_.DATE&&(r.props[C.FORMAT]=e.props.format||H),r.props[C.TYPE]=e.key);if(!r.props[C.TYPE]){const o=N.type(t.constructor,e).name;r.props[C.TYPE]=this.translate(o.toLowerCase(),!0)}r.props.value=Q(r.props[C.TYPE],t[e],r.props[C.FORMAT]),d.push(r)}else{const t=d.find(t=>t.props?.name===e||[C.UILAYOUTPROP,C.PAGE,C.EVENTS].includes(n.key)&&(t.props?.childOf===e||t.props?.childOf?.endsWith("."+e)));if(t)if(n.key!==C.UILAYOUTPROP)t.props=Object.assign({},t.props,{[n.key]:s});else{const{row:e,col:r,props:o}=n.props;t.props=Object.assign({},o||{},t.props,e,r)}}break}default:throw new Y("Invalid key: "+n.key)}})}}r=Object.assign({},E,r,{handlers:p||{}});const O=r?.operation;d=d?.sort((e,t)=>(e?.props?.order??0)-(t?.props?.order??0)).filter(e=>{const t=e?.props?.hidden||[];return t?.length&&t.includes(O)?void 0:e});const L={tag:c,item:f,props:r,children:d};return o&&(L.rendererId=K(t)),L}static register(e){if(e.flavour in this.cache)throw new S(`Rendering engine under ${e.flavour} already exists`);this.cache[e.flavour]=e,this.current=e}static getOrBoot(e){if(e instanceof q)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 S(`Rendering engine under ${e} does not exist`);return this.getOrBoot(this.cache[e])}static render(e,...t){if(!m.get(e.constructor.name)&&!m.fromObject(e))throw new S("No model registered found");const r=m.renderedBy(e.constructor);return q.get(r).render(e,...t)}}function Z(...e){return(t,r)=>D(x(r,C.HIDDEN),e)(t,r)}function ee(e=1){return(t,r)=>D(x(r,C.ORDER),e)(t,r)}function te(){return Z(P.CREATE,P.READ,P.UPDATE,P.DELETE)}function re(e,t,r=!1){return(o,n)=>{const s={tag:e,serialize:r,props:Object.assign({},t||{},{name:n})};return D(x(n,C.ELEMENT),s)(o,n)}}function oe(e=void 0,t=!1){return(r,o)=>{const n={name:e||o,stringify:t};D(x(o,C.PROP),n)(r,o)}}function ne(e,t,r={},o=!1,n=!1){return(s,i)=>{const a={tag:t,serialize:n,props:Object.assign({},r||{},{name:e||i},o?{customTypes:[Array.name],multiple:!0}:{multiple:r?.multiple||!1})};D(x(i,C.CHILD),a)(s,i)}}function se(e=void 0,t){return(r,o)=>{const n={name:e||o,props:t||{}};D(x(o,C.UILISTPROP),n)(r,o)}}function ie(e=1,t=1){return(r,o)=>{const n={name:o,props:Object.assign({},{row:t,col:e})};D(x(o,C.UILAYOUTPROP),n)(r,o)}}function ae(e=1){return(t,r)=>D(x(r,C.PAGE),e)(t,r)}function ce(e,t){return(r,o)=>{D(x(o,C.EVENTS),{[e]:t})(r,o)}}function Ee(e){return ce("render",e)}class ue extends b{constructor(){super(),this.enableDarkMode=!0,this.isDarkMode=!1,this.item={tag:""},this.props={},this.route="",this.borders=!1,this.OperationKeys=P,this.initialized=!1,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 initialize(...e){this.initialized=!0}async submit(...e){this.log.for(this.submit).info(`submit for ${this.componentName} with ${JSON.stringify(e)}`)}async translate(...e){this.log.for(this.translate).info(`translate for ${this.componentName} with ${JSON.stringify(e)}`)}}class pe extends ue{constructor(){super()}handle(...e){this.log.for(this.handle).info(`component ${this.componentName} handling ${JSON.stringify(e)}`)}}m.prototype.render=function(...e){return q.render(this,...e)},m.renderedBy=(e=>N.get(e,N.key(C.REFLECT,C.RENDERED_BY))).bind(m),m.uiPropertiesOf=(e=>{const t=N.get(e,N.key(C.REFLECT,I.PROPERTIES));if(t)return Object.keys(t)}).bind(m),m.uiDecorationOf=(e,t,r)=>{const o=N.get(e,N.key(C.REFLECT,I.PROPERTIES,t));if(o)return r?o[r]:o},m.uiModelOf=e=>N.get(e,N.key(C.REFLECT,C.UIMODEL)),m.uiElementOf=(e,t)=>N.get(e,x(t,C.ELEMENT)),m.uiListModelOf=e=>N.get(e,N.key(C.REFLECT,C.UILISTMODEL)),m.uiHandlersFor=e=>N.get(e,N.key(C.REFLECT,C.HANDLERS)),m.uiLayoutOf=e=>N.get(e,N.key(C.REFLECT,C.UILAYOUT)),m.uiIsHidden=(e,t)=>!!N.get(e,x(t,C.HIDDEN)),m.uiIsHiddenOn=(e,t,r)=>{const o=N.get(e,x(t,C.HIDDEN));return!!o&&(r?o.includes(r):o)},m.uiTypeOf=(e,t)=>{const r=N.get(e,N.key(C.REFLECT,I.PROPERTIES,t));if(!r)throw new M(`No metadata found for property '${t}' on model '${e.name}'`);const o=Object.keys(r).filter(e=>[C.PROP,C.ELEMENT,C.CHILD].includes(e));if(0===o.length)throw new M(`No UI type metadata found for property '${t}' on model '${e.name}'`);if(o.length>1)throw new Y("Only one type of decoration is allowed. Please choose between @uiprop, @uichild or @uielement");return r[o[0]]},m.uiListItems=(e=>{const t=N.get(e,N.key(C.REFLECT,I.PROPERTIES));if(t)return Object.keys(t)}).bind(m);const le="##VERSION##";export{ue as DecafComponent,pe as DecafEventHandler,B as HTML5CheckTypes,H as HTML5DateFormat,_ as HTML5InputTypes,q as RenderingEngine,Y as RenderingError,C as UIKeys,w as UIMediaBreakPoints,le as VERSION,k as ValidatableByAttribute,U as ValidatableByType,z as escapeHtml,Q as formatByType,K as generateUIModelID,x as getUIAttributeKey,te as hidden,Z as hideOn,W as parseToNumber,V as parseValueByType,j as renderedBy,J as revertHtml,ne as uichild,re as uielement,$ as uihandlers,v as uilayout,ie as uilayoutprop,G as uilistmodel,se as uilistprop,F as uimodel,ce as uion,Ee as uionrender,ee as uiorder,ae as uipageprop,oe as uiprop,X as uisteppedmodel};
2
2
  //# sourceMappingURL=ui-decorators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui-decorators.js","sources":["../src/ui/constants.ts","../src/model/decorators.ts","../src/ui/errors.ts","../src/ui/utils.ts","../src/ui/Rendering.ts","../src/ui/decorators.ts","../src/ui/handlers.ts","../src/ui/DecafComponent.ts","../src/model/overrides.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":["UIMediaBreakPoints","UIKeys","REFLECT","UIMODEL","RENDERED_BY","ELEMENT","PROP","CHILD","NAME","NAME_PREFIX","CUSTOM_PROPS","UILISTMODEL","UILISTPROP","UILAYOUT","UILAYOUTPROP","HANDLERS","TYPE","SUB_TYPE","HIDDEN","FORMAT","ORDER","PAGE","EVENTS","READ_ONLY","REQUIRED","ValidationKeys","MIN","MIN_LENGTH","MAX","MAX_LENGTH","PATTERN","URL","STEP","DATE","EMAIL","PASSWORD","EQUALS","DIFF","LESS_THAN","LESS_THAN_OR_EQUAL","GREATER_THAN","GREATER_THAN_OR_EQUAL","ValidatableByType","EmailValidator","URLValidator","DateValidator","PasswordValidator","ValidatableByAttribute","RequiredValidator","MinValidator","MaxValidator","StepValidator","MinLengthValidator","MaxLengthValidator","PatternValidator","EqualsValidator","DiffValidator","LessThanValidator","LessThanOrEqualValidator","GreaterThanValidator","GreaterThanOrEqualValidator","HTML5DateFormat","HTML5InputTypes","BUTTON","CHECKBOX","COLOR","DATETIME_LOCAL","FILE","IMAGE","MONTH","NUMBER","RADIO","RANGE","RESET","SEARCH","SUBMIT","TEL","TEXT","TEXTAREA","SELECT","TIME","WEEK","HTML5CheckTypes","uimodel","tag","props","original","propertyKey","meta","name","metadata","Metadata","key","renderedBy","engine","apply","uilistmodel","item","uihandlers","handlers","uilayout","colsMode","rows","Object","assign","flexMode","cols","breakpoint","LARGE","uisteppedmodel","pages","paginated","pageTitles","length","RenderingError","InternalError","constructor","msg","super","getUIAttributeKey","prop","DecorationKeys","PROPERTIES","formatByType","type","value","args","format","shift","formatDate","Date","parseValueByType","fieldProps","result","Array","isArray","map","v","ReservedModels","STRING","toLowerCase","join","parseToNumber","trim","parseDate","undefined","OBJECT","JSON","stringify","BOOLEAN","escapeHtml","isNaN","parsed","Number","tagsToReplace","replace","revertHtml","generateUIModelID","model","id","now","Model","pk","e","RenderingEngine","this","cache","flavour","initialized","register","translate","toView","BIGINT","getClassDecoratorsMetadata","uiModelOf","uiListModelOf","uiHandlersFor","uiLayoutOf","filter","Boolean","isValidatableByType","keys","includes","isValidatableByAttribute","toAttributeValue","Error","toFieldDefinition","globalProps","generateId","inheritProps","globalPropsWithoutInherits","classDecorators","classDecorator","uiDecorators","uiPropertiesOf","children","childProps","mapper","getPath","parent","validationDecorators","get","decs","uiDecorationOf","uiTypeOf","NotFoundError","uiIsHidden","uiElementOf","entries","k","sort","a","forEach","dec","isPropertyModel","Clazz","submodel","clazzName","childrenGlobalProps","childOf","childDefinition","push","render","uiProps","path","validationDecs","basicType","child","find","c","endsWith","row","col","operation","b","order","hiddenOn","hidden","rendererId","current","getOrBoot","obj","initialize","fromObject","hideOn","operations","object","propMetadata","uiorder","OperationKeys","CREATE","READ","UPDATE","DELETE","uielement","serialize","uiprop","propName","target","uichild","clazz","customTypes","multiple","uilistprop","uilayoutprop","uipageprop","page","uion","event","handler","uionrender","EventHandler","DecafComponent","LoggedClass","enableDarkMode","isDarkMode","route","borders","prototype","bind","uiIsHiddenOn","op","uiListItems","VERSION"],"mappings":"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"}
1
+ {"version":3,"file":"ui-decorators.js","sources":["../src/ui/constants.ts","../src/model/decorators.ts","../src/ui/errors.ts","../src/ui/utils.ts","../src/ui/Rendering.ts","../src/ui/decorators.ts","../src/ui/DecafComponent.ts","../src/ui/DecafEventHandler.ts","../src/model/overrides.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":["UIMediaBreakPoints","UIKeys","REFLECT","UIMODEL","RENDERED_BY","ELEMENT","PROP","CHILD","NAME","NAME_PREFIX","CUSTOM_PROPS","UILISTMODEL","UILISTPROP","UILAYOUT","UILAYOUTPROP","HANDLERS","TYPE","SUB_TYPE","HIDDEN","FORMAT","ORDER","PAGE","EVENTS","READ_ONLY","REQUIRED","ValidationKeys","MIN","MIN_LENGTH","MAX","MAX_LENGTH","PATTERN","URL","STEP","DATE","EMAIL","PASSWORD","EQUALS","DIFF","LESS_THAN","LESS_THAN_OR_EQUAL","GREATER_THAN","GREATER_THAN_OR_EQUAL","ValidatableByType","EmailValidator","URLValidator","DateValidator","PasswordValidator","ValidatableByAttribute","RequiredValidator","MinValidator","MaxValidator","StepValidator","MinLengthValidator","MaxLengthValidator","PatternValidator","EqualsValidator","DiffValidator","LessThanValidator","LessThanOrEqualValidator","GreaterThanValidator","GreaterThanOrEqualValidator","HTML5DateFormat","HTML5InputTypes","BUTTON","CHECKBOX","COLOR","DATETIME_LOCAL","FILE","IMAGE","MONTH","NUMBER","RADIO","RANGE","RESET","SEARCH","SUBMIT","TEL","TEXT","TEXTAREA","SELECT","TIME","WEEK","HTML5CheckTypes","uimodel","tag","props","original","propertyKey","meta","name","metadata","Metadata","key","renderedBy","engine","apply","uilistmodel","item","uihandlers","handlers","uilayout","colsMode","rows","Object","assign","flexMode","cols","breakpoint","LARGE","uisteppedmodel","pages","paginated","pageTitles","length","RenderingError","InternalError","constructor","msg","super","getUIAttributeKey","prop","DecorationKeys","PROPERTIES","formatByType","type","value","args","format","shift","formatDate","Date","parseValueByType","fieldProps","result","Array","isArray","map","v","ReservedModels","STRING","toLowerCase","join","parseToNumber","trim","parseDate","undefined","OBJECT","JSON","stringify","BOOLEAN","escapeHtml","isNaN","parsed","Number","tagsToReplace","replace","revertHtml","generateUIModelID","model","id","now","Model","pk","e","RenderingEngine","this","cache","flavour","initialized","register","translate","toView","BIGINT","getClassDecoratorsMetadata","uiModelOf","uiListModelOf","uiHandlersFor","uiLayoutOf","filter","Boolean","isValidatableByType","keys","includes","isValidatableByAttribute","toAttributeValue","Error","toFieldDefinition","globalProps","generateId","inheritProps","globalPropsWithoutInherits","classDecorators","classDecorator","uiDecorators","uiPropertiesOf","children","childProps","mapper","getPath","parent","validationDecorators","get","decs","uiDecorationOf","uiTypeOf","NotFoundError","uiIsHidden","uiElementOf","entries","k","sort","a","forEach","dec","isPropertyModel","Clazz","submodel","clazzName","childrenGlobalProps","childOf","childDefinition","push","render","uiProps","path","validationDecs","basicType","child","find","c","endsWith","row","col","operation","b","order","hiddenOn","hidden","rendererId","current","getOrBoot","obj","initialize","fromObject","hideOn","operations","object","propMetadata","uiorder","OperationKeys","CREATE","READ","UPDATE","DELETE","uielement","serialize","uiprop","propName","target","uichild","clazz","customTypes","multiple","uilistprop","uilayoutprop","uipageprop","page","uion","event","handler","uionrender","DecafComponent","LoggedClass","enableDarkMode","isDarkMode","route","borders","repository","_repository","log","for","info","componentName","submit","DecafEventHandler","handle","prototype","bind","uiIsHiddenOn","op","uiListItems","VERSION"],"mappings":"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"}
@@ -13,4 +13,4 @@ export * from "./ui";
13
13
  * @const VERSION
14
14
  * @memberOf module:ui-decorators
15
15
  */
16
- export declare const VERSION = "0.6.1";
16
+ export declare const VERSION = "0.6.3";
package/lib/esm/index.js CHANGED
@@ -13,5 +13,5 @@ export * from "./ui/index.js";
13
13
  * @const VERSION
14
14
  * @memberOf module:ui-decorators
15
15
  */
16
- export const VERSION = "0.6.1";
16
+ export const VERSION = "0.6.3";
17
17
  //# sourceMappingURL=index.js.map
@@ -3,6 +3,26 @@ import { UIFunctionLike } from './types';
3
3
  import { Model } from '@decaf-ts/decorator-validation';
4
4
  import { IRepository, OperationKeys } from '@decaf-ts/db-decorators';
5
5
  export declare abstract class DecafComponent extends LoggedClass {
6
+ /**
7
+ * @description The CRUD operation type to be performed on the model.
8
+ * @summary Specifies which operation (Create, Read, Update, Delete) this component instance
9
+ * should perform. This determines the UI behavior, form configuration, and available actions.
10
+ * The operation affects form validation, field availability, and the specific repository
11
+ * method called during data submission.
12
+ *
13
+ * @type {OperationKeys}
14
+ */
15
+ operation?: OperationKeys;
16
+ /**
17
+ * @description Router instance for programmatic navigation.
18
+ * @summary Injected Router service used for programmatic navigation between routes
19
+ * in the application. This service enables navigation to different views and operations,
20
+ * handles route parameters, and manages the browser's navigation history.
21
+ * @protected
22
+ * @type {Router}
23
+ * @memberOf module:lib/engine/NgxComponentDirective
24
+ */
25
+ router?: any;
6
26
  /**
7
27
  * @description Name identifier for the component instance.
8
28
  * @summary Provides a string identifier that can be used to name or label the component
@@ -40,13 +60,13 @@ export declare abstract class DecafComponent extends LoggedClass {
40
60
  */
41
61
  protected model: Model | string | undefined;
42
62
  /**
43
- * @description Primary key field name for the data model.
44
- * @summary Specifies which field in the model should be used as the primary key.
45
- * This is typically used for identifying unique records in operations like update and delete.
46
- * If not explicitly set, it defaults to the repository's configured primary key or 'id'.
47
- * @type {string}
48
- * @default 'id'
49
- */
63
+ * @description Primary key field name for the data model.
64
+ * @summary Specifies which field in the model should be used as the primary key.
65
+ * This is typically used for identifying unique records in operations like update and delete.
66
+ * If not explicitly set, it defaults to the repository's configured primary key or 'id'.
67
+ * @type {string}
68
+ * @default 'id'
69
+ */
50
70
  pk: string;
51
71
  /**
52
72
  * @description Primary key value of the current model instance.
@@ -131,8 +151,7 @@ export declare abstract class DecafComponent extends LoggedClass {
131
151
  /**
132
152
  * @description Component name identifier for logging and localization contexts.
133
153
  * @summary Stores the component's name which is used as a key for logging contexts
134
- * and as a base for locale resolution. Can be injected via the CPTKN token or defaults
135
- * to "NgxComponentDirective" if not provided.
154
+ * and as a base for locale resolution.
136
155
  * @protected
137
156
  * @type {string | undefined}
138
157
  */
@@ -146,6 +165,13 @@ export declare abstract class DecafComponent extends LoggedClass {
146
165
  * @type {string | undefined}
147
166
  */
148
167
  protected localeRoot?: string;
168
+ /**
169
+ * @description Current value of the component.
170
+ * @summary Can be a string, number, date, or array of string or objects.
171
+ * @type {any}
172
+ * @public
173
+ */
174
+ protected value?: any;
149
175
  /**
150
176
  * @description Reference to CRUD operation constants for template usage.
151
177
  * @summary Exposes the OperationKeys enum to the component template, enabling
@@ -190,6 +216,30 @@ export declare abstract class DecafComponent extends LoggedClass {
190
216
  protected events?: Record<keyof Pick<DecafComponent, 'render' | 'initialize'>, UIFunctionLike>;
191
217
  protected handlers: Record<string, UIFunctionLike>;
192
218
  constructor();
219
+ get repository(): IRepository<Model> | undefined;
220
+ set repository(repository: IRepository<Model>);
193
221
  render(...args: unknown[]): Promise<void>;
222
+ /**
223
+ * Asynchronously initializes the component with the provided arguments.
224
+ * This method sets the `initialized` property to `true` once the initialization is complete.
225
+ *
226
+ * @param args - A variable number of arguments of unknown types that can be used for initialization.
227
+ * @returns A promise that resolves when the initialization is complete.
228
+ */
194
229
  initialize(...args: unknown[]): Promise<void>;
230
+ /**
231
+ * Submits data or performs an action associated with the component.
232
+ *
233
+ * @param args - A variable number of arguments of any type to be passed to the submit operation.
234
+ * @returns A promise that resolves with the result of the submit operation.
235
+ */
236
+ submit(...args: unknown[]): Promise<any>;
237
+ /**
238
+ * Translates content based on the provided arguments.
239
+ * Logs the translation request with the component name and arguments.
240
+ *
241
+ * @param args - A variable number of arguments used for translation.
242
+ * @returns A promise that resolves with the translation result.
243
+ */
244
+ protected translate(...args: unknown[]): Promise<any>;
195
245
  }
@@ -86,11 +86,44 @@ export class DecafComponent extends LoggedClass {
86
86
  this.initialized = false;
87
87
  this.handlers = {};
88
88
  }
89
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
90
- async render(...args) { }
89
+ get repository() {
90
+ return this._repository;
91
+ }
92
+ set repository(repository) {
93
+ this._repository = repository;
94
+ }
95
+ async render(...args) {
96
+ this.log.for(this.render).info(`render for ${this.componentName} with ${JSON.stringify(args)}`);
97
+ }
98
+ /**
99
+ * Asynchronously initializes the component with the provided arguments.
100
+ * This method sets the `initialized` property to `true` once the initialization is complete.
101
+ *
102
+ * @param args - A variable number of arguments of unknown types that can be used for initialization.
103
+ * @returns A promise that resolves when the initialization is complete.
104
+ */
91
105
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
92
106
  async initialize(...args) {
93
107
  this.initialized = true;
94
108
  }
109
+ /**
110
+ * Submits data or performs an action associated with the component.
111
+ *
112
+ * @param args - A variable number of arguments of any type to be passed to the submit operation.
113
+ * @returns A promise that resolves with the result of the submit operation.
114
+ */
115
+ async submit(...args) {
116
+ this.log.for(this.submit).info(`submit for ${this.componentName} with ${JSON.stringify(args)}`);
117
+ }
118
+ /**
119
+ * Translates content based on the provided arguments.
120
+ * Logs the translation request with the component name and arguments.
121
+ *
122
+ * @param args - A variable number of arguments used for translation.
123
+ * @returns A promise that resolves with the translation result.
124
+ */
125
+ async translate(...args) {
126
+ this.log.for(this.translate).info(`translate for ${this.componentName} with ${JSON.stringify(args)}`);
127
+ }
95
128
  }
96
129
  //# sourceMappingURL=DecafComponent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DecafComponent.js","sourceRoot":"","sources":["../../../src/ui/DecafComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAe,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGrE,MAAM,OAAgB,cAAe,SAAQ,WAAW;IA4NtD;QACE,KAAK,EAAE,CAAC;QA5JV;;;;;;;;;WASG;QACO,mBAAc,GAAY,IAAI,CAAC;QAEzC;;;;;;;;;WASG;QACO,eAAU,GAAY,KAAK,CAAC;QActC;;;;;;;;;WASG;QACH,SAAI,GAA4B,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAG5C;;;;;;;;;WASG;QACH,UAAK,GAA4B,EAAE,CAAC;QAGpC;;;;;;;WAOG;QACH,UAAK,GAAY,EAAE,CAAC;QAEpB;;;;;;;WAOG;QACH,YAAO,GAAY,KAAK,CAAC;QAuBzB;;;;;;;;WAQG;QACgB,kBAAa,GAAG,aAAa,CAAC;QA6BjD;;;;;;;WAOG;QACO,gBAAW,GAAY,KAAK,CAAC;QAI7B,aAAQ,GAAmC,EAAE,CAAC;IAIxD,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,MAAM,CAAC,GAAG,IAAe,IAAkB,CAAC;IAElD,6DAA6D;IAC7D,KAAK,CAAC,UAAU,CAAC,GAAG,IAAe;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;CAEF"}
1
+ {"version":3,"file":"DecafComponent.js","sourceRoot":"","sources":["../../../src/ui/DecafComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAe,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGrE,MAAM,OAAgB,cAAe,SAAQ,WAAW;IA8OtD;QACE,KAAK,EAAE,CAAC;QA3JV;;;;;;;;;WASG;QACO,mBAAc,GAAY,IAAI,CAAC;QAEzC;;;;;;;;;WASG;QACO,eAAU,GAAY,KAAK,CAAC;QAYtC;;;;;;;;;WASG;QACH,SAAI,GAA4B,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAE5C;;;;;;;;;WASG;QACH,UAAK,GAA4B,EAAE,CAAC;QAEpC;;;;;;;WAOG;QACH,UAAK,GAAY,EAAE,CAAC;QAEpB;;;;;;;WAOG;QACH,YAAO,GAAY,KAAK,CAAC;QA6BzB;;;;;;;;WAQG;QACgB,kBAAa,GAAG,aAAa,CAAC;QA0BjD;;;;;;;WAOG;QACO,gBAAW,GAAY,KAAK,CAAC;QAI7B,aAAQ,GAAmC,EAAE,CAAC;IAIxD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,UAAU,CAAC,UAA8B;QAC3C,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAG,IAAe;QAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,aAAa,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClG,CAAC;IAED;;;;;;OAMG;IACH,6DAA6D;IAC7D,KAAK,CAAC,UAAU,CAAC,GAAG,IAAe;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,GAAG,IAAe;QAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,aAAa,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClG,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,SAAS,CAAC,GAAG,IAAe;QAC1C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,aAAa,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxG,CAAC;CAEF"}
@@ -1,3 +1,4 @@
1
+ import { DecafComponent } from "./DecafComponent";
1
2
  /**
2
3
  * @description Class representing an event handler
3
4
  * @summary Defines the structure for handling events in the UI decorators system
@@ -6,12 +7,20 @@
6
7
  * @class EventHandler
7
8
  * @memberOf module:ui-decorators/ui
8
9
  */
9
- export declare class EventHandler {
10
+ export declare class DecafEventHandler extends DecafComponent {
10
11
  /**
11
- * @description Creates an instance of EventHandler
12
+ * @description Creates an instance of DecafEventHandler
12
13
  * @summary Initializes a new EventHandler object
13
14
  * This constructor currently doesn't take any parameters, but it can be
14
15
  * extended in the future to accept configuration options if needed.
15
16
  */
16
17
  constructor();
18
+ /**
19
+ * Handles an event with the provided arguments.
20
+ * Logs the event handling process, including the component name and the arguments passed.
21
+ *
22
+ * @param args - The arguments for the event handler.
23
+ * @returns void
24
+ */
25
+ handle(...args: unknown[]): void;
17
26
  }
@@ -0,0 +1,31 @@
1
+ import { DecafComponent } from "./DecafComponent.js";
2
+ /**
3
+ * @description Class representing an event handler
4
+ * @summary Defines the structure for handling events in the UI decorators system
5
+ * This class provides a foundation for managing and processing events that occur
6
+ * within the UI components generated by the decorators.
7
+ * @class EventHandler
8
+ * @memberOf module:ui-decorators/ui
9
+ */
10
+ export class DecafEventHandler extends DecafComponent {
11
+ /**
12
+ * @description Creates an instance of DecafEventHandler
13
+ * @summary Initializes a new EventHandler object
14
+ * This constructor currently doesn't take any parameters, but it can be
15
+ * extended in the future to accept configuration options if needed.
16
+ */
17
+ constructor() {
18
+ super();
19
+ }
20
+ /**
21
+ * Handles an event with the provided arguments.
22
+ * Logs the event handling process, including the component name and the arguments passed.
23
+ *
24
+ * @param args - The arguments for the event handler.
25
+ * @returns void
26
+ */
27
+ handle(...args) {
28
+ this.log.for(this.handle).info(`component ${this.componentName} handling ${JSON.stringify(args)}`);
29
+ }
30
+ }
31
+ //# sourceMappingURL=DecafEventHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DecafEventHandler.js","sourceRoot":"","sources":["../../../src/ui/DecafEventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,4BAAyB;AAElD;;;;;;;GAOG;AACH,MAAM,OAAO,iBAAkB,SAAQ,cAAc;IAEnD;;;;;OAKG;IACH;QACE,KAAK,EAAE,CAAA;IACT,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,IAAe;QACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,aAAa,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrG,CAAC;CACF"}
@@ -4,6 +4,6 @@ export * from "./errors";
4
4
  export * from "./interfaces";
5
5
  export * from "./Rendering";
6
6
  export * from "./types";
7
- export * from "./handlers";
8
7
  export * from "./utils";
9
8
  export * from "./DecafComponent";
9
+ export * from "./DecafEventHandler";
@@ -4,7 +4,7 @@ export * from "./errors.js";
4
4
  export * from "./interfaces.js";
5
5
  export * from "./Rendering.js";
6
6
  export * from "./types.js";
7
- export * from "./handlers.js";
8
7
  export * from "./utils.js";
9
8
  export * from "./DecafComponent.js";
9
+ export * from "./DecafEventHandler.js";
10
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/index.ts"],"names":[],"mappings":"AAAA,+BAA4B;AAC5B,gCAA6B;AAC7B,4BAAyB;AACzB,gCAA6B;AAC7B,+BAA4B;AAC5B,2BAAwB;AACxB,8BAA2B;AAC3B,2BAAwB;AACxB,oCAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/index.ts"],"names":[],"mappings":"AAAA,+BAA4B;AAC5B,gCAA6B;AAC7B,4BAAyB;AACzB,gCAA6B;AAC7B,+BAA4B;AAC5B,2BAAwB;AACxB,2BAAwB;AACxB,oCAAiC;AACjC,uCAAoC"}
package/lib/index.cjs CHANGED
@@ -30,5 +30,5 @@ __exportStar(require("./ui/index.cjs"), exports);
30
30
  * @const VERSION
31
31
  * @memberOf module:ui-decorators
32
32
  */
33
- exports.VERSION = "0.6.1";
33
+ exports.VERSION = "0.6.3";
34
34
  //# sourceMappingURL=index.js.map
package/lib/index.d.ts CHANGED
@@ -13,4 +13,4 @@ export * from "./ui";
13
13
  * @const VERSION
14
14
  * @memberOf module:ui-decorators
15
15
  */
16
- export declare const VERSION = "0.6.1";
16
+ export declare const VERSION = "0.6.3";
@@ -89,12 +89,45 @@ class DecafComponent extends logging_1.LoggedClass {
89
89
  this.initialized = false;
90
90
  this.handlers = {};
91
91
  }
92
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
93
- async render(...args) { }
92
+ get repository() {
93
+ return this._repository;
94
+ }
95
+ set repository(repository) {
96
+ this._repository = repository;
97
+ }
98
+ async render(...args) {
99
+ this.log.for(this.render).info(`render for ${this.componentName} with ${JSON.stringify(args)}`);
100
+ }
101
+ /**
102
+ * Asynchronously initializes the component with the provided arguments.
103
+ * This method sets the `initialized` property to `true` once the initialization is complete.
104
+ *
105
+ * @param args - A variable number of arguments of unknown types that can be used for initialization.
106
+ * @returns A promise that resolves when the initialization is complete.
107
+ */
94
108
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
95
109
  async initialize(...args) {
96
110
  this.initialized = true;
97
111
  }
112
+ /**
113
+ * Submits data or performs an action associated with the component.
114
+ *
115
+ * @param args - A variable number of arguments of any type to be passed to the submit operation.
116
+ * @returns A promise that resolves with the result of the submit operation.
117
+ */
118
+ async submit(...args) {
119
+ this.log.for(this.submit).info(`submit for ${this.componentName} with ${JSON.stringify(args)}`);
120
+ }
121
+ /**
122
+ * Translates content based on the provided arguments.
123
+ * Logs the translation request with the component name and arguments.
124
+ *
125
+ * @param args - A variable number of arguments used for translation.
126
+ * @returns A promise that resolves with the translation result.
127
+ */
128
+ async translate(...args) {
129
+ this.log.for(this.translate).info(`translate for ${this.componentName} with ${JSON.stringify(args)}`);
130
+ }
98
131
  }
99
132
  exports.DecafComponent = DecafComponent;
100
133
  //# sourceMappingURL=DecafComponent.js.map
@@ -3,6 +3,26 @@ import { UIFunctionLike } from './types';
3
3
  import { Model } from '@decaf-ts/decorator-validation';
4
4
  import { IRepository, OperationKeys } from '@decaf-ts/db-decorators';
5
5
  export declare abstract class DecafComponent extends LoggedClass {
6
+ /**
7
+ * @description The CRUD operation type to be performed on the model.
8
+ * @summary Specifies which operation (Create, Read, Update, Delete) this component instance
9
+ * should perform. This determines the UI behavior, form configuration, and available actions.
10
+ * The operation affects form validation, field availability, and the specific repository
11
+ * method called during data submission.
12
+ *
13
+ * @type {OperationKeys}
14
+ */
15
+ operation?: OperationKeys;
16
+ /**
17
+ * @description Router instance for programmatic navigation.
18
+ * @summary Injected Router service used for programmatic navigation between routes
19
+ * in the application. This service enables navigation to different views and operations,
20
+ * handles route parameters, and manages the browser's navigation history.
21
+ * @protected
22
+ * @type {Router}
23
+ * @memberOf module:lib/engine/NgxComponentDirective
24
+ */
25
+ router?: any;
6
26
  /**
7
27
  * @description Name identifier for the component instance.
8
28
  * @summary Provides a string identifier that can be used to name or label the component
@@ -40,13 +60,13 @@ export declare abstract class DecafComponent extends LoggedClass {
40
60
  */
41
61
  protected model: Model | string | undefined;
42
62
  /**
43
- * @description Primary key field name for the data model.
44
- * @summary Specifies which field in the model should be used as the primary key.
45
- * This is typically used for identifying unique records in operations like update and delete.
46
- * If not explicitly set, it defaults to the repository's configured primary key or 'id'.
47
- * @type {string}
48
- * @default 'id'
49
- */
63
+ * @description Primary key field name for the data model.
64
+ * @summary Specifies which field in the model should be used as the primary key.
65
+ * This is typically used for identifying unique records in operations like update and delete.
66
+ * If not explicitly set, it defaults to the repository's configured primary key or 'id'.
67
+ * @type {string}
68
+ * @default 'id'
69
+ */
50
70
  pk: string;
51
71
  /**
52
72
  * @description Primary key value of the current model instance.
@@ -131,8 +151,7 @@ export declare abstract class DecafComponent extends LoggedClass {
131
151
  /**
132
152
  * @description Component name identifier for logging and localization contexts.
133
153
  * @summary Stores the component's name which is used as a key for logging contexts
134
- * and as a base for locale resolution. Can be injected via the CPTKN token or defaults
135
- * to "NgxComponentDirective" if not provided.
154
+ * and as a base for locale resolution.
136
155
  * @protected
137
156
  * @type {string | undefined}
138
157
  */
@@ -146,6 +165,13 @@ export declare abstract class DecafComponent extends LoggedClass {
146
165
  * @type {string | undefined}
147
166
  */
148
167
  protected localeRoot?: string;
168
+ /**
169
+ * @description Current value of the component.
170
+ * @summary Can be a string, number, date, or array of string or objects.
171
+ * @type {any}
172
+ * @public
173
+ */
174
+ protected value?: any;
149
175
  /**
150
176
  * @description Reference to CRUD operation constants for template usage.
151
177
  * @summary Exposes the OperationKeys enum to the component template, enabling
@@ -190,6 +216,30 @@ export declare abstract class DecafComponent extends LoggedClass {
190
216
  protected events?: Record<keyof Pick<DecafComponent, 'render' | 'initialize'>, UIFunctionLike>;
191
217
  protected handlers: Record<string, UIFunctionLike>;
192
218
  constructor();
219
+ get repository(): IRepository<Model> | undefined;
220
+ set repository(repository: IRepository<Model>);
193
221
  render(...args: unknown[]): Promise<void>;
222
+ /**
223
+ * Asynchronously initializes the component with the provided arguments.
224
+ * This method sets the `initialized` property to `true` once the initialization is complete.
225
+ *
226
+ * @param args - A variable number of arguments of unknown types that can be used for initialization.
227
+ * @returns A promise that resolves when the initialization is complete.
228
+ */
194
229
  initialize(...args: unknown[]): Promise<void>;
230
+ /**
231
+ * Submits data or performs an action associated with the component.
232
+ *
233
+ * @param args - A variable number of arguments of any type to be passed to the submit operation.
234
+ * @returns A promise that resolves with the result of the submit operation.
235
+ */
236
+ submit(...args: unknown[]): Promise<any>;
237
+ /**
238
+ * Translates content based on the provided arguments.
239
+ * Logs the translation request with the component name and arguments.
240
+ *
241
+ * @param args - A variable number of arguments used for translation.
242
+ * @returns A promise that resolves with the translation result.
243
+ */
244
+ protected translate(...args: unknown[]): Promise<any>;
195
245
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DecafComponent.js","sourceRoot":"","sources":["../../src/ui/DecafComponent.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAGhD,2DAAqE;AAGrE,MAAsB,cAAe,SAAQ,qBAAW;IA4NtD;QACE,KAAK,EAAE,CAAC;QA5JV;;;;;;;;;WASG;QACO,mBAAc,GAAY,IAAI,CAAC;QAEzC;;;;;;;;;WASG;QACO,eAAU,GAAY,KAAK,CAAC;QActC;;;;;;;;;WASG;QACH,SAAI,GAA4B,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAG5C;;;;;;;;;WASG;QACH,UAAK,GAA4B,EAAE,CAAC;QAGpC;;;;;;;WAOG;QACH,UAAK,GAAY,EAAE,CAAC;QAEpB;;;;;;;WAOG;QACH,YAAO,GAAY,KAAK,CAAC;QAuBzB;;;;;;;;WAQG;QACgB,kBAAa,GAAG,6BAAa,CAAC;QA6BjD;;;;;;;WAOG;QACO,gBAAW,GAAY,KAAK,CAAC;QAI7B,aAAQ,GAAmC,EAAE,CAAC;IAIxD,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,MAAM,CAAC,GAAG,IAAe,IAAkB,CAAC;IAElD,6DAA6D;IAC7D,KAAK,CAAC,UAAU,CAAC,GAAG,IAAe;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;CAEF;AAxOD,wCAwOC"}
1
+ {"version":3,"file":"DecafComponent.js","sourceRoot":"","sources":["../../src/ui/DecafComponent.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAGhD,2DAAqE;AAGrE,MAAsB,cAAe,SAAQ,qBAAW;IA8OtD;QACE,KAAK,EAAE,CAAC;QA3JV;;;;;;;;;WASG;QACO,mBAAc,GAAY,IAAI,CAAC;QAEzC;;;;;;;;;WASG;QACO,eAAU,GAAY,KAAK,CAAC;QAYtC;;;;;;;;;WASG;QACH,SAAI,GAA4B,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAE5C;;;;;;;;;WASG;QACH,UAAK,GAA4B,EAAE,CAAC;QAEpC;;;;;;;WAOG;QACH,UAAK,GAAY,EAAE,CAAC;QAEpB;;;;;;;WAOG;QACH,YAAO,GAAY,KAAK,CAAC;QA6BzB;;;;;;;;WAQG;QACgB,kBAAa,GAAG,6BAAa,CAAC;QA0BjD;;;;;;;WAOG;QACO,gBAAW,GAAY,KAAK,CAAC;QAI7B,aAAQ,GAAmC,EAAE,CAAC;IAIxD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,UAAU,CAAC,UAA8B;QAC3C,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAG,IAAe;QAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,aAAa,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClG,CAAC;IAED;;;;;;OAMG;IACH,6DAA6D;IAC7D,KAAK,CAAC,UAAU,CAAC,GAAG,IAAe;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,GAAG,IAAe;QAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,aAAa,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClG,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,SAAS,CAAC,GAAG,IAAe;QAC1C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,aAAa,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxG,CAAC;CAEF;AA/RD,wCA+RC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DecafEventHandler = void 0;
4
+ const DecafComponent_1 = require("./DecafComponent.cjs");
5
+ /**
6
+ * @description Class representing an event handler
7
+ * @summary Defines the structure for handling events in the UI decorators system
8
+ * This class provides a foundation for managing and processing events that occur
9
+ * within the UI components generated by the decorators.
10
+ * @class EventHandler
11
+ * @memberOf module:ui-decorators/ui
12
+ */
13
+ class DecafEventHandler extends DecafComponent_1.DecafComponent {
14
+ /**
15
+ * @description Creates an instance of DecafEventHandler
16
+ * @summary Initializes a new EventHandler object
17
+ * This constructor currently doesn't take any parameters, but it can be
18
+ * extended in the future to accept configuration options if needed.
19
+ */
20
+ constructor() {
21
+ super();
22
+ }
23
+ /**
24
+ * Handles an event with the provided arguments.
25
+ * Logs the event handling process, including the component name and the arguments passed.
26
+ *
27
+ * @param args - The arguments for the event handler.
28
+ * @returns void
29
+ */
30
+ handle(...args) {
31
+ this.log.for(this.handle).info(`component ${this.componentName} handling ${JSON.stringify(args)}`);
32
+ }
33
+ }
34
+ exports.DecafEventHandler = DecafEventHandler;
35
+ //# sourceMappingURL=DecafEventHandler.js.map
@@ -1,3 +1,4 @@
1
+ import { DecafComponent } from "./DecafComponent";
1
2
  /**
2
3
  * @description Class representing an event handler
3
4
  * @summary Defines the structure for handling events in the UI decorators system
@@ -6,12 +7,20 @@
6
7
  * @class EventHandler
7
8
  * @memberOf module:ui-decorators/ui
8
9
  */
9
- export declare class EventHandler {
10
+ export declare class DecafEventHandler extends DecafComponent {
10
11
  /**
11
- * @description Creates an instance of EventHandler
12
+ * @description Creates an instance of DecafEventHandler
12
13
  * @summary Initializes a new EventHandler object
13
14
  * This constructor currently doesn't take any parameters, but it can be
14
15
  * extended in the future to accept configuration options if needed.
15
16
  */
16
17
  constructor();
18
+ /**
19
+ * Handles an event with the provided arguments.
20
+ * Logs the event handling process, including the component name and the arguments passed.
21
+ *
22
+ * @param args - The arguments for the event handler.
23
+ * @returns void
24
+ */
25
+ handle(...args: unknown[]): void;
17
26
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DecafEventHandler.js","sourceRoot":"","sources":["../../src/ui/DecafEventHandler.ts"],"names":[],"mappings":";;;AAAA,yDAAkD;AAElD;;;;;;;GAOG;AACH,MAAa,iBAAkB,SAAQ,+BAAc;IAEnD;;;;;OAKG;IACH;QACE,KAAK,EAAE,CAAA;IACT,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,IAAe;QACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,aAAa,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrG,CAAC;CACF;AAtBD,8CAsBC"}
package/lib/ui/index.cjs CHANGED
@@ -20,7 +20,7 @@ __exportStar(require("./errors.cjs"), exports);
20
20
  __exportStar(require("./interfaces.cjs"), exports);
21
21
  __exportStar(require("./Rendering.cjs"), exports);
22
22
  __exportStar(require("./types.cjs"), exports);
23
- __exportStar(require("./handlers.cjs"), exports);
24
23
  __exportStar(require("./utils.cjs"), exports);
25
24
  __exportStar(require("./DecafComponent.cjs"), exports);
25
+ __exportStar(require("./DecafEventHandler.cjs"), exports);
26
26
  //# sourceMappingURL=index.js.map
package/lib/ui/index.d.ts CHANGED
@@ -4,6 +4,6 @@ export * from "./errors";
4
4
  export * from "./interfaces";
5
5
  export * from "./Rendering";
6
6
  export * from "./types";
7
- export * from "./handlers";
8
7
  export * from "./utils";
9
8
  export * from "./DecafComponent";
9
+ export * from "./DecafEventHandler";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA4B;AAC5B,mDAA6B;AAC7B,+CAAyB;AACzB,mDAA6B;AAC7B,kDAA4B;AAC5B,8CAAwB;AACxB,iDAA2B;AAC3B,8CAAwB;AACxB,uDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA4B;AAC5B,mDAA6B;AAC7B,+CAAyB;AACzB,mDAA6B;AAC7B,kDAA4B;AAC5B,8CAAwB;AACxB,8CAAwB;AACxB,uDAAiC;AACjC,0DAAoC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/ui-decorators",
3
- "version": "0.6.2",
3
+ "version": "0.6.3",
4
4
  "description": "Extension of decorator validation to ui elements to allow for web integration",
5
5
  "type": "module",
6
6
  "exports": {
@@ -1,18 +0,0 @@
1
- /**
2
- * @description Class representing an event handler
3
- * @summary Defines the structure for handling events in the UI decorators system
4
- * This class provides a foundation for managing and processing events that occur
5
- * within the UI components generated by the decorators.
6
- * @class EventHandler
7
- * @memberOf module:ui-decorators/ui
8
- */
9
- export class EventHandler {
10
- /**
11
- * @description Creates an instance of EventHandler
12
- * @summary Initializes a new EventHandler object
13
- * This constructor currently doesn't take any parameters, but it can be
14
- * extended in the future to accept configuration options if needed.
15
- */
16
- constructor() { }
17
- }
18
- //# sourceMappingURL=handlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/ui/handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,OAAO,YAAY;IACvB;;;;;OAKG;IACH,gBAAe,CAAC;CACjB"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EventHandler = void 0;
4
- /**
5
- * @description Class representing an event handler
6
- * @summary Defines the structure for handling events in the UI decorators system
7
- * This class provides a foundation for managing and processing events that occur
8
- * within the UI components generated by the decorators.
9
- * @class EventHandler
10
- * @memberOf module:ui-decorators/ui
11
- */
12
- class EventHandler {
13
- /**
14
- * @description Creates an instance of EventHandler
15
- * @summary Initializes a new EventHandler object
16
- * This constructor currently doesn't take any parameters, but it can be
17
- * extended in the future to accept configuration options if needed.
18
- */
19
- constructor() { }
20
- }
21
- exports.EventHandler = EventHandler;
22
- //# sourceMappingURL=handlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/ui/handlers.ts"],"names":[],"mappings":";;;AAAA;;;;;;;GAOG;AACH,MAAa,YAAY;IACvB;;;;;OAKG;IACH,gBAAe,CAAC;CACjB;AARD,oCAQC"}