@decaf-ts/ui-decorators 0.5.32 → 0.6.0

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.
Files changed (45) hide show
  1. package/dist/ui-decorators.cjs +1 -1
  2. package/dist/ui-decorators.cjs.map +1 -1
  3. package/dist/ui-decorators.js +1 -1
  4. package/dist/ui-decorators.js.map +1 -1
  5. package/lib/esm/model/decorators.d.ts +1 -1
  6. package/lib/esm/model/decorators.js +15 -17
  7. package/lib/esm/model/decorators.js.map +1 -1
  8. package/lib/esm/model/model.d.ts +17 -0
  9. package/lib/esm/model/overrides.d.ts +1 -1
  10. package/lib/esm/model/overrides.js +74 -0
  11. package/lib/esm/model/overrides.js.map +1 -1
  12. package/lib/esm/ui/Rendering.d.ts +1 -11
  13. package/lib/esm/ui/Rendering.js +138 -70
  14. package/lib/esm/ui/Rendering.js.map +1 -1
  15. package/lib/esm/ui/constants.d.ts +2 -1
  16. package/lib/esm/ui/constants.js +9 -10
  17. package/lib/esm/ui/constants.js.map +1 -1
  18. package/lib/esm/ui/decorators.d.ts +8 -9
  19. package/lib/esm/ui/decorators.js +19 -12
  20. package/lib/esm/ui/decorators.js.map +1 -1
  21. package/lib/esm/ui/types.d.ts +6 -3
  22. package/lib/esm/ui/utils.d.ts +1 -0
  23. package/lib/esm/ui/utils.js +24 -12
  24. package/lib/esm/ui/utils.js.map +1 -1
  25. package/lib/model/decorators.cjs +15 -17
  26. package/lib/model/decorators.d.ts +1 -1
  27. package/lib/model/decorators.js.map +1 -1
  28. package/lib/model/model.d.ts +17 -0
  29. package/lib/model/overrides.cjs +74 -0
  30. package/lib/model/overrides.d.ts +1 -1
  31. package/lib/model/overrides.js.map +1 -1
  32. package/lib/ui/Rendering.cjs +137 -69
  33. package/lib/ui/Rendering.d.ts +1 -11
  34. package/lib/ui/Rendering.js.map +1 -1
  35. package/lib/ui/constants.cjs +8 -9
  36. package/lib/ui/constants.d.ts +2 -1
  37. package/lib/ui/constants.js.map +1 -1
  38. package/lib/ui/decorators.cjs +19 -12
  39. package/lib/ui/decorators.d.ts +8 -9
  40. package/lib/ui/decorators.js.map +1 -1
  41. package/lib/ui/types.d.ts +6 -3
  42. package/lib/ui/utils.cjs +23 -10
  43. package/lib/ui/utils.d.ts +1 -0
  44. package/lib/ui/utils.js.map +1 -1
  45. package/package.json +2 -3
@@ -1,2 +1,2 @@
1
- var e,t;e=this,t=function(e,t,r,a){"use strict";var o;e.UIMediaBreakPoints=void 0,(o=e.UIMediaBreakPoints||(e.UIMediaBreakPoints={})).SMALL="small",o.MEDIUM="medium",o.LARGE="large",o.XLARGE="xlarge";const s={REFLECT:t.ModelKeys.REFLECT+".ui.",UIMODEL:"uimodel",RENDERED_BY:"rendered-by",ELEMENT:"element",PROP:"prop",CHILD:"child",NAME:"name",NAME_PREFIX:"input-",CUSTOM_PROPS:"customValidationProps",UILISTMODEL:"uilistmodel",UILISTPROP:"listprop",UILAYOUT:"uilayout",UILAYOUTPROP:"uilayoutprop",HANDLERS:"handlers",TYPE:"type",SUB_TYPE:"subtype",HIDDEN:"hidden",FORMAT:"format",ORDER:"order",PAGE:"page",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},i={[s.EMAIL]:t.EmailValidator,[s.URL]:t.URLValidator,[s.DATE]:t.DateValidator,[s.PASSWORD]:t.PasswordValidator},n={[s.REQUIRED]:t.RequiredValidator,[s.MIN]:t.MinValidator,[s.MAX]:t.MaxValidator,[s.STEP]:t.StepValidator,[s.MIN_LENGTH]:t.MinLengthValidator,[s.MAX_LENGTH]:t.MaxLengthValidator,[s.PATTERN]:t.PatternValidator,[s.EQUALS]:t.EqualsValidator,[s.DIFF]:t.DiffValidator,[s.LESS_THAN]:t.LessThanValidator,[s.LESS_THAN_OR_EQUAL]:t.LessThanOrEqualValidator,[s.GREATER_THAN]:t.GreaterThanValidator,[s.GREATER_THAN_OR_EQUAL]:t.GreaterThanOrEqualValidator},d="yyyy-MM-dd",l={BUTTON:"button",CHECKBOX:"checkbox",COLOR:"color",DATE:s.DATE,DATETIME_LOCAL:"datetime-local",EMAIL:s.EMAIL,FILE:"file",HIDDEN:"hidden",IMAGE:"image",MONTH:"month",NUMBER:"number",PASSWORD:s.PASSWORD,RADIO:"radio",RANGE:"range",RESET:"reset",SEARCH:"search",SUBMIT:"submit",TEL:"tel",TEXT:"text",TEXTAREA:"textarea",SELECT:"select",TIME:"time",URL:s.URL,WEEK:"week"},c=[l.CHECKBOX,l.RADIO];class E extends a.InternalError{constructor(e){super(e,E.name)}}function p(e,r,...a){if(e===s.DATE){if(!r)return"";const e=a.shift()||d;return t.formatDate(new Date(r),e)}return r}function u(e){if("number"==typeof e&&!isNaN(e))return e;const t=Number(e);return isNaN(t)?void 0:t}function R(e){if(!e)return e;const t={"&":"&amp;","<":"&lt;",">":"&gt;"};return(""+e).replace(/[&<>]/g,e=>t[e]||e)}function T(e){let t;try{t=a.findModelId(e)}catch(e){t=Date.now()}return`${e.constructor.name}-${t}`}class y{static{this.cache={}}constructor(e){this.flavour=e,this.initialized=!1,y.register(this)}translate(e,r=!0){if(r)switch(e){case t.ReservedModels.STRING:return l.TEXT;case t.ReservedModels.NUMBER:case t.ReservedModels.BIGINT:return l.NUMBER;case t.ReservedModels.BOOLEAN:return l.CHECKBOX;case t.ReservedModels.DATE:return l.DATE}else switch(e){case l.SELECT:case l.TEXT:case l.EMAIL:case l.COLOR:case l.PASSWORD:case l.TEL:case l.URL:case l.SEARCH:case l.HIDDEN:case l.TEXTAREA:case l.RADIO:return t.ReservedModels.STRING;case l.NUMBER:return t.ReservedModels.NUMBER;case l.CHECKBOX:return t.ReservedModels.BOOLEAN;case l.DATE:case l.DATETIME_LOCAL:case l.TIME:return t.ReservedModels.DATE}return e}getClassDecoratorsMetadata(e){return[Reflect.getMetadata(y.key(s.UIMODEL),e.constructor)||Reflect.getMetadata(y.key(s.UIMODEL),t.Model.get(e.constructor.name)),Reflect.getMetadata(y.key(s.UILISTMODEL),e.constructor)||Reflect.getMetadata(y.key(s.UILISTMODEL),t.Model.get(e.constructor.name)),Reflect.getMetadata(y.key(s.HANDLERS),e.constructor)||Reflect.getMetadata(y.key(s.HANDLERS),t.Model.get(e.constructor.name)),Reflect.getMetadata(y.key(s.UILAYOUT),e.constructor)||Reflect.getMetadata(y.key(s.UILAYOUT),t.Model.get(e.constructor.name))].filter(Boolean)}isValidatableByType(e){return Object.keys(i).includes(e)}isValidatableByAttribute(e){return Object.keys(n).includes(e)}toAttributeValue(e,t){if(!Object.keys(n).includes(e))throw Error(`Invalid attribute key "${e}". Expected one of: ${Object.keys(n).join(", ")}.`);return e===s.REQUIRED||t[e]}toFieldDefinition(e,a={},o=!0){const{inheritProps:i,...n}=a;a=n;const c=this.getClassDecoratorsMetadata(e);if(!c.length)throw new E(`No ui definitions set for model ${e.constructor.name}. Did you use @uimodel?`);const u=Object.assign({},...c,i||{}),{tag:R,props:y,item:f,handlers:A}=u,M=r.Reflection.getAllPropertyDecorators(e,s.REFLECT);let O,L=f?.props||{},I={};const D=(e,t)=>e?[e,t].join("."):t;if(M){const o=r.Reflection.getAllPropertyDecorators(e,t.ValidationKeys.REFLECT);for(const r in M){const i=M[r],n=Object.values(i).filter(({key:e})=>[s.PROP,s.ELEMENT,s.CHILD].includes(e));if(n?.length>1)throw new E("Only one type of decoration is allowed. Please choose between @uiprop, @uichild or @uielement");const c=i.find(({key:e})=>e===s.HIDDEN);if(c){const e=i.find(({key:e})=>e===s.ELEMENT);if(!e)throw new E(`@uielement no found in "${r}". It is required to use hiddenOn decorator.`)}i.shift(),i.sort(e=>[s.ELEMENT,s.CHILD].includes(e.key)?-1:1).forEach(i=>{if(!i)throw new E("No decorator found");switch(i.key){case s.PROP:L[r]=i.props;break;case s.CHILD:{if(!t.Model.isPropertyModel(e,r))throw new E(`Child "${r}" must be a model.`);let o;const s=e[r];if("object"!=typeof s||null===s||Array.isArray(s)){const e=i.props.props?.name;o=new(t.Model.get(e))}O=O||[];const n=Object.assign({},a||{},{model:o},{inheritProps:i.props,childOf:D(a?.childOf,r)}),d=this.toFieldDefinition(s||o,n,!1);O.push(d);break}case s.UILISTPROP:{I=I||{},i.props?.name&&(I[i.props?.name]=r);const e=Object.assign({},u.props?.item||{},f?.props||{},i.props?.props||{},a);L={tag:f?.tag||e.render||"",props:Object.assign({},L?.props,{mapper:I},e)};break}case s.HIDDEN:case s.PAGE:case s.ORDER:case s.UILAYOUTPROP:case s.ELEMENT:{O=O||[];const t=i.props,n=Object.assign({},L?.props,t.props||{},t?.props?.name?{path:D(a?.childOf,t.props.name),childOf:void 0}:{},a);if(i.key===s.ELEMENT){const a={tag:t.tag||L?.tag||R||"",props:n},i=o[r],c=i.shift();for(const e of i)this.isValidatableByAttribute(e.key)?a.props[this.translate(e.key)]=this.toAttributeValue(e.key,e.props):this.isValidatableByType(e.key)&&(e.key===l.DATE&&(a.props[s.FORMAT]=e.props.format||d),a.props[s.TYPE]=e.key);if(!a.props[s.TYPE]){const e=c.props.name;a.props[s.TYPE]=this.translate(e.toLowerCase(),!0)}a.props.value=p(a.props[s.TYPE],e[r],a.props[s.FORMAT]),O.push(a)}else{const e=O.find(e=>e.props?.name===r||[s.UILAYOUTPROP,s.PAGE].includes(i.key)&&e?.props?.childOf===r);if(e)if(i.key!==s.UILAYOUTPROP)e.props=Object.assign({},e.props,{[i.key]:t});else{const{row:t,col:r,props:a}=i.props;e.props=Object.assign({},a||{},e.props,t,r)}}break}default:throw new E("Invalid key: "+i.key)}})}}a=Object.assign({},y,a,{handlers:A||{}});const h=a?.operation;O=O?.sort((e,t)=>(e?.props?.order??0)-(t?.props?.order??0)).filter(e=>{const t=e?.props?.hidden||[];return t?.length&&t.includes(h)?void 0:e});const m={tag:R,item:L,props:a,children:O};return o&&(m.rendererId=T(e)),m}static register(e){if(e.flavour in this.cache)throw new a.InternalError(`Rendering engine under ${e.flavour} already exists`);this.cache[e.flavour]=e,this.current=e}static getOrBoot(e){if(e instanceof y)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 a.InternalError(`Rendering engine under ${e} does not exist`);return this.getOrBoot(this.cache[e])}static render(e,...r){const o=t.Model.get(e.constructor.name)||t.Model.fromObject(e);if(!o)throw new a.InternalError("No model registered found");const i=Reflect.getMetadata(y.key(s.RENDERED_BY),o);return y.get(i).render(e,...r)}static key(e){return`${s.REFLECT}${e}`}}function f(e,t){return(a,o)=>{const i={tag:e||a.name,props:t};return r.metadata(y.key(s.UIMODEL),i)(a)}}function A(...e){return t.propMetadata(y.key(s.HIDDEN),e)}t.Model.prototype.render=function(...e){return y.render(this,...e)},e.EventHandler=class{constructor(){}},e.HTML5CheckTypes=c,e.HTML5DateFormat=d,e.HTML5InputTypes=l,e.RenderingEngine=y,e.RenderingError=E,e.UIKeys=s,e.VERSION="##VERSION##",e.ValidatableByAttribute=n,e.ValidatableByType=i,e.escapeHtml=R,e.formatByType=p,e.generateUIModelID=T,e.hidden=()=>A(a.OperationKeys.CREATE,a.OperationKeys.READ,a.OperationKeys.UPDATE,a.OperationKeys.DELETE),e.hideOn=A,e.parseToNumber=u,e.parseValueByType=function e(r,o,s){let i;switch(r){case Array.name:i=(Array.isArray(o)?o.map(r=>e(t.ReservedModels.STRING,r,s)):[o]).join(",");break;case l.NUMBER:i=u(o);break;case l.DATE:{const e=s.format;o&&(""+o).trim().length&&(i=typeof o===t.ReservedModels.NUMBER?new Date(o):o?e?t.parseDate(e,o):new Date(o):void 0);break}default:i=typeof o===t.ReservedModels.OBJECT?Array.isArray(o)?o.join(","):JSON.stringify(o):typeof o===t.ReservedModels.BOOLEAN?o:typeof o===t.ReservedModels.STRING?R(o):i}if(void 0===i)throw new a.InternalError(`Failed to parse value of type ${r} from ${typeof o} - ${o}`);return i},e.renderedBy=e=>r.apply(r.metadata(y.key(s.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,r,a={},o=!1,i=!1)=>(n,d)=>{const l={tag:r,serialize:i,props:Object.assign({},a||{},{name:e||d},o?{customTypes:[Array.name],multiple:!0}:{multiple:a?.multiple||!1})};t.propMetadata(y.key(s.CHILD),l)(n,d)},e.uielement=(e,r,a=!1)=>(o,i)=>{const n={tag:e,serialize:a,props:Object.assign({},r||{},{name:i})};return t.propMetadata(y.key(s.ELEMENT),n)(o,i)},e.uihandlers=e=>t=>{const a={handlers:e};return r.metadata(y.key(s.HANDLERS),a)(t)},e.uilayout=(r,a=1,o=1,s={})=>(i,n)=>f(r,Object.assign({...typeof a===t.ReservedModels.BOOLEAN?{flexMode:a,cols:1}:{flexMode:!1,cols:a},rows:o,...Object.assign({breakpoint:e.UIMediaBreakPoints.LARGE},s)}))(i,n),e.uilayoutprop=(e=1,r=1)=>(a,o)=>{const i={name:o,props:Object.assign({},{row:r,col:e})};t.propMetadata(y.key(s.UILAYOUTPROP),i)(a,o)},e.uilistmodel=(e,t)=>(a,o)=>{const i={item:{tag:e||a.name,props:t}};return r.metadata(y.key(s.UILISTMODEL),i)(a)},e.uilistprop=(e=void 0,r)=>(a,o)=>{const i={name:e||o,props:r||{}};t.propMetadata(y.key(s.UILISTPROP),i)(a,o)},e.uimodel=f,e.uiorder=(e=1)=>t.propMetadata(y.key(s.ORDER),e),e.uipageprop=(e=1)=>t.propMetadata(y.key(s.PAGE),e),e.uiprop=(e=void 0,r=!1)=>(a,o)=>{const i={name:e||o,stringify:r};t.propMetadata(y.key(s.PROP),i)(a,o)},e.uisteppedmodel=(e,r=1,a=!1,o={})=>{let s=[];return typeof r===t.ReservedModels.OBJECT&&(s=r,r=s.length),f(e,{pages:r,paginated:a,pageTitles:s,props:o})}},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decorator-validation"),require("@decaf-ts/reflection"),require("@decaf-ts/db-decorators"),require("reflect-metadata")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decorator-validation","@decaf-ts/reflection","@decaf-ts/db-decorators","reflect-metadata"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["ui-decorators"]={},e.decafTsDecoratorValidation,e.decafTsReflection,e.decafTsDbDecorators);
1
+ var e,t;e=this,t=function(e,t,a,r){"use strict";var o;e.UIMediaBreakPoints=void 0,(o=e.UIMediaBreakPoints||(e.UIMediaBreakPoints={})).SMALL="small",o.MEDIUM="medium",o.LARGE="large",o.XLARGE="xlarge";const s={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",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={[s.EMAIL]:t.EmailValidator,[s.URL]:t.URLValidator,[s.DATE]:t.DateValidator,[s.PASSWORD]:t.PasswordValidator},i={[s.REQUIRED]:t.RequiredValidator,[s.MIN]:t.MinValidator,[s.MAX]:t.MaxValidator,[s.STEP]:t.StepValidator,[s.MIN_LENGTH]:t.MinLengthValidator,[s.MAX_LENGTH]:t.MaxLengthValidator,[s.PATTERN]:t.PatternValidator,[s.EQUALS]:t.EqualsValidator,[s.DIFF]:t.DiffValidator,[s.LESS_THAN]:t.LessThanValidator,[s.LESS_THAN_OR_EQUAL]:t.LessThanOrEqualValidator,[s.GREATER_THAN]:t.GreaterThanValidator,[s.GREATER_THAN_OR_EQUAL]:t.GreaterThanOrEqualValidator},d="yyyy-MM-dd",l={BUTTON:"button",CHECKBOX:"checkbox",COLOR:"color",DATE:s.DATE,DATETIME_LOCAL:"datetime-local",EMAIL:s.EMAIL,FILE:"file",HIDDEN:"hidden",IMAGE:"image",MONTH:"month",NUMBER:"number",PASSWORD:s.PASSWORD,RADIO:"radio",RANGE:"range",RESET:"reset",SEARCH:"search",SUBMIT:"submit",TEL:"tel",TEXT:"text",TEXTAREA:"textarea",SELECT:"select",TIME:"time",URL:s.URL,WEEK:"week"},c=[l.CHECKBOX,l.RADIO];function E(e,t){return(r,o)=>{const n={tag:e||r.name,props:t};return a.metadata(a.Metadata.key(s.REFLECT,s.UIMODEL),n)(r)}}class p extends r.InternalError{constructor(e){super(e,p.name)}}function u(e,t){return a.Metadata.key(s.REFLECT,a.DecorationKeys.PROPERTIES,e,t)}function M(e,a,...r){if(e===s.DATE){if(!a)return"";const e=r.shift()||d;return t.formatDate(new Date(a),e)}return a}function T(e){if("number"==typeof e&&!isNaN(e))return e;const t=Number(e);return isNaN(t)?void 0:t}function R(e){if(!e)return e;const t={"&":"&amp;","<":"&lt;",">":"&gt;"};return(""+e).replace(/[&<>]/g,e=>t[e]||e)}function y(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 f{static{this.cache={}}constructor(e){this.flavour=e,this.initialized=!1,f.register(this)}translate(e,a=!0){if(a)switch(e){case t.ReservedModels.STRING.name.toLowerCase():return l.TEXT;case t.ReservedModels.NUMBER.name.toLowerCase():case t.ReservedModels.BIGINT.name.toLowerCase():return l.NUMBER;case t.ReservedModels.BOOLEAN.name.toLowerCase():return l.CHECKBOX;case t.ReservedModels.DATE.name.toLowerCase():return l.DATE}else switch(e){case l.SELECT:case l.TEXT:case l.EMAIL:case l.COLOR:case l.PASSWORD:case l.TEL:case l.URL:case l.SEARCH:case l.HIDDEN:case l.TEXTAREA:case l.RADIO:return t.ReservedModels.STRING.name.toLowerCase();case l.NUMBER:return t.ReservedModels.NUMBER.name.toLowerCase();case l.CHECKBOX:return t.ReservedModels.BOOLEAN.name.toLowerCase();case l.DATE:case l.DATETIME_LOCAL:case l.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(i).includes(e)}toAttributeValue(e,t){if(!Object.keys(i).includes(e))throw Error(`Invalid attribute key "${e}". Expected one of: ${Object.keys(i).join(", ")}.`);return e===s.REQUIRED||t[e]}toFieldDefinition(e,o={},n=!0){const{inheritProps:i,...c}=o;o=c;const E=this.getClassDecoratorsMetadata(e);if(!E.length)throw new p(`No ui definitions set for model ${e.constructor.name}. Did you use @uimodel?`);const u=Object.assign({},...E,i||{}),{tag:T,props:R,item:f,handlers:L}=u,O=t.Model.uiPropertiesOf(e.constructor);let A,m=f?.props||{},I={};const D=(e,t)=>e?[e,t].join("."):t;if(O){const n=a.Metadata.get(e.constructor,t.ValidationKeys.REFLECT)||{};for(const i of O){const c=t.Model.uiDecorationOf(e.constructor,i);let E;try{E=t.Model.uiTypeOf(e.constructor,i)}catch(e){if(!(e instanceof r.NotFoundError))throw e}if(t.Model.uiIsHidden(e.constructor,i)&&!t.Model.uiElementOf(e.constructor,i))throw new p(`@uielement no found in "${i}". It is required to use hiddenOn decorator.`);Object.entries(c).map(([e,t])=>({key:e,props:t})).sort(e=>[s.ELEMENT,s.CHILD].includes(e.key)?-1:1).forEach(r=>{if(!r)throw new p("No decorator found");switch(r.key){case s.PROP:m[i]=r.props;break;case s.CHILD:{if(!t.Model.isPropertyModel(e,i))throw new p(`Child "${i}" must be a model.`);let a;const s=e[i];if("object"!=typeof s||null===s||Array.isArray(s)){const e=r.props.props?.name;a=new(t.Model.get(e))}A=A||[];const n=Object.assign({},o||{},{model:a},{inheritProps:r.props,childOf:D(o?.childOf,i)}),d=this.toFieldDefinition(s||a,n,!1);A.push(d);break}case s.UILISTPROP:{I=I||{},r.props.name&&(I[r.props.name]=i);const e=Object.assign({},u.props?.item||{},f?.props||{},r.props.props||{},o);m={tag:f?.tag||e.render||"",props:Object.assign({},m?.props,{mapper:I},e)};break}case s.HIDDEN:case s.PAGE:case s.ORDER:case s.UILAYOUTPROP:case s.ELEMENT:{A=A||[];const t=r.props,c=Object.assign({},m?.props,t.props||{},t?.props?.name?{path:D(o?.childOf,t.props.name),childOf:void 0}:{},o);if(r.key===s.ELEMENT){const r={tag:t.tag||m?.tag||T||"",props:c},o=n[i];if(o)for(const e of Object.entries(o).map(([e,t])=>({key:e,props:t})))this.isValidatableByAttribute(e.key)?r.props[this.translate(e.key)]=this.toAttributeValue(e.key,e.props):this.isValidatableByType(e.key)&&(e.key===l.DATE&&(r.props[s.FORMAT]=e.props.format||d),r.props[s.TYPE]=e.key);if(!r.props[s.TYPE]){const t=a.Metadata.type(e.constructor,i).name;r.props[s.TYPE]=this.translate(t.toLowerCase(),!0)}r.props.value=M(r.props[s.TYPE],e[i],r.props[s.FORMAT]),A.push(r)}else{const e=A.find(e=>e.props?.name===i||[s.UILAYOUTPROP,s.PAGE].includes(r.key)&&e?.props?.childOf===i);if(e)if(r.key!==s.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 p("Invalid key: "+r.key)}})}}o=Object.assign({},R,o,{handlers:L||{}});const h=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(h)?void 0:e});const N={tag:T,item:m,props:o,children:A};return n&&(N.rendererId=y(e)),N}static register(e){if(e.flavour in this.cache)throw new r.InternalError(`Rendering engine under ${e.flavour} already exists`);this.cache[e.flavour]=e,this.current=e}static getOrBoot(e){if(e instanceof f)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 f.get(o).render(e,...a)}}function L(...e){return(t,r)=>a.propMetadata(u(r,s.HIDDEN),e)(t,r)}t.Model.prototype.render=function(...e){return f.render(this,...e)},t.Model.renderedBy=(e=>a.Metadata.get(e,a.Metadata.key(s.REFLECT,s.RENDERED_BY))).bind(t.Model),t.Model.uiPropertiesOf=(e=>{const t=a.Metadata.get(e,a.Metadata.key(s.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(s.REFLECT,a.DecorationKeys.PROPERTIES,t));if(o)return r?o[r]:o},t.Model.uiModelOf=e=>a.Metadata.get(e,a.Metadata.key(s.REFLECT,s.UIMODEL)),t.Model.uiElementOf=(e,t)=>a.Metadata.get(e,u(t,s.ELEMENT)),t.Model.uiListModelOf=e=>a.Metadata.get(e,a.Metadata.key(s.REFLECT,s.UILISTMODEL)),t.Model.uiHandlersFor=e=>a.Metadata.get(e,a.Metadata.key(s.REFLECT,s.HANDLERS)),t.Model.uiLayoutOf=e=>a.Metadata.get(e,a.Metadata.key(s.REFLECT,s.UILAYOUT)),t.Model.uiIsHidden=(e,t)=>!!a.Metadata.get(e,u(t,s.HIDDEN)),t.Model.uiIsHiddenOn=(e,t,r)=>{const o=a.Metadata.get(e,u(t,s.HIDDEN));return!!o&&(r?o.includes(r):o)},t.Model.uiTypeOf=(e,t)=>{const o=a.Metadata.get(e,a.Metadata.key(s.REFLECT,a.DecorationKeys.PROPERTIES,t));if(!o)throw new r.NotFoundError(`No metadata found for property '${t}' on model '${e.name}'`);const n=Object.keys(o).filter(e=>[s.PROP,s.ELEMENT,s.CHILD].includes(e));if(0===n.length)throw new r.NotFoundError(`No UI type metadata found for property '${t}' on model '${e.name}'`);if(n.length>1)throw new p("Only one type of decoration is allowed. Please choose between @uiprop, @uichild or @uielement");return o[n[0]]},t.Model.uiListItems=(e=>{const t=a.Metadata.get(e,a.Metadata.key(s.REFLECT,a.DecorationKeys.PROPERTIES));if(t)return Object.keys(t)}).bind(t.Model),e.EventHandler=class{constructor(){}},e.HTML5CheckTypes=c,e.HTML5DateFormat=d,e.HTML5InputTypes=l,e.RenderingEngine=f,e.RenderingError=p,e.UIKeys=s,e.VERSION="##VERSION##",e.ValidatableByAttribute=i,e.ValidatableByType=n,e.escapeHtml=R,e.formatByType=M,e.generateUIModelID=y,e.getUIAttributeKey=u,e.hidden=()=>L(r.OperationKeys.CREATE,r.OperationKeys.READ,r.OperationKeys.UPDATE,r.OperationKeys.DELETE),e.hideOn=L,e.parseToNumber=T,e.parseValueByType=function e(a,o,s){let n;switch(a){case Array.name:n=(Array.isArray(o)?o.map(a=>e(t.ReservedModels.STRING.name.toLowerCase(),a,s)):[o]).join(",");break;case l.NUMBER:n=T(o);break;case l.DATE:{const e=s.format;o&&(""+o).trim().length&&(n=typeof o===t.ReservedModels.NUMBER.name.toLowerCase()?new Date(o):o?e?t.parseDate(e,o):new Date(o):void 0);break}default:n=typeof o===t.ReservedModels.OBJECT.name.toLowerCase()?Array.isArray(o)?o.join(","):JSON.stringify(o):typeof o===t.ReservedModels.BOOLEAN.name.toLowerCase()?o:typeof o===t.ReservedModels.STRING.name.toLowerCase()?R(o):n}if(void 0===n)throw new r.InternalError(`Failed to parse value of type ${a} from ${typeof o} - ${o}`);return n},e.renderedBy=e=>a.apply(a.metadata(a.Metadata.key(s.REFLECT,s.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,n=!1)=>(i,d)=>{const l={tag:t,serialize:n,props:Object.assign({},r||{},{name:e||d},o?{customTypes:[Array.name],multiple:!0}:{multiple:r?.multiple||!1})};a.propMetadata(u(d,s.CHILD),l)(i,d)},e.uielement=(e,t,r=!1)=>(o,n)=>{const i={tag:e,serialize:r,props:Object.assign({},t||{},{name:n})};return a.propMetadata(u(n,s.ELEMENT),i)(o,n)},e.uihandlers=e=>t=>{const r={handlers:e};return a.metadata(a.Metadata.key(s.REFLECT,s.HANDLERS),r)(t)},e.uilayout=(t,a=1,r=1,o={})=>(s,n)=>E(t,Object.assign({..."boolean"==typeof a?{flexMode:a,cols:1}:{flexMode:!1,cols:a},rows:r,...Object.assign({breakpoint:e.UIMediaBreakPoints.LARGE},o)}))(s,n),e.uilayoutprop=(e=1,t=1)=>(r,o)=>{const n={name:o,props:Object.assign({},{row:t,col:e})};a.propMetadata(u(o,s.UILAYOUTPROP),n)(r,o)},e.uilistmodel=(e,t)=>(r,o)=>{const n={item:{tag:e||r.name,props:t}};return a.metadata(a.Metadata.key(s.REFLECT,s.UILISTMODEL),n)(r)},e.uilistprop=(e=void 0,t)=>(r,o)=>{const n={name:e||o,props:t||{}};a.propMetadata(u(o,s.UILISTPROP),n)(r,o)},e.uimodel=E,e.uiorder=(e=1)=>(t,r)=>a.propMetadata(u(r,s.ORDER),e)(t,r),e.uipageprop=(e=1)=>(t,r)=>a.propMetadata(u(r,s.PAGE),e)(t,r),e.uiprop=(e=void 0,t=!1)=>(r,o)=>{const n={name:e||o,stringify:t};a.propMetadata(u(o,s.PROP),n)(r,o)},e.uisteppedmodel=(e,t=1,a=!1,r={})=>{let o=[];return"object"==typeof t&&(o=t,t=o.length),E(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")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decorator-validation","@decaf-ts/decoration","@decaf-ts/db-decorators"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["ui-decorators"]={},e.decafTsDecoratorValidation,e.decafTsDecoration,e.decafTsDbDecorators);
2
2
  //# sourceMappingURL=ui-decorators.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui-decorators.cjs","sources":["../src/ui/constants.ts","../src/ui/errors.ts","../src/ui/utils.ts","../src/ui/Rendering.ts","../src/model/decorators.ts","../src/ui/decorators.ts","../src/model/overrides.ts","../src/ui/handlers.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["UIMediaBreakPoints","exports","UIKeys","REFLECT","ModelKeys","UIMODEL","RENDERED_BY","ELEMENT","PROP","CHILD","NAME","NAME_PREFIX","CUSTOM_PROPS","UILISTMODEL","UILISTPROP","UILAYOUT","UILAYOUTPROP","HANDLERS","TYPE","SUB_TYPE","HIDDEN","FORMAT","ORDER","PAGE","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","RenderingError","InternalError","constructor","msg","super","name","formatByType","type","value","args","format","shift","formatDate","Date","parseToNumber","isNaN","parsed","Number","escapeHtml","tagsToReplace","replace","tag","generateUIModelID","model","id","findModelId","e","now","RenderingEngine","this","cache","flavour","initialized","register","translate","key","toView","ReservedModels","STRING","BIGINT","BOOLEAN","getClassDecoratorsMetadata","Reflect","getMetadata","Model","get","filter","Boolean","isValidatableByType","Object","keys","includes","isValidatableByAttribute","toAttributeValue","Error","join","toFieldDefinition","globalProps","generateId","inheritProps","globalPropsWithoutInherits","classDecorators","length","classDecorator","assign","props","item","handlers","uiDecorators","Reflection","getAllPropertyDecorators","children","childProps","mapper","getPath","parent","prop","validationDecorators","decs","types","values","hasHideOnDecorator","find","hasUiElementDecorator","sort","a","forEach","dec","isPropertyModel","Clazz","submodel","Array","isArray","clazzName","childrenGlobalProps","childOf","childDefinition","push","render","uiProps","path","undefined","validationDecs","typeDec","basicType","toLowerCase","child","c","row","col","operation","b","order","hiddenOn","hidden","result","rendererId","engine","current","getOrBoot","obj","initialize","fromObject","uimodel","original","propertyKey","meta","metadata","hideOn","operations","propMetadata","decoratorValidation","prototype","OperationKeys","CREATE","READ","UPDATE","DELETE","parseValueByType","fieldProps","map","v","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/model/overrides.ts","../src/ui/handlers.ts","../src/index.ts"],"sourcesContent":[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","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","row","col","operation","b","order","hiddenOn","hidden","result","rendererId","engine","current","getOrBoot","obj","initialize","fromObject","renderedBy","hideOn","operations","object","propMetadata","decoratorValidation","prototype","bind","uiIsHiddenOn","op","uiListItems","OperationKeys","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,2 +1,2 @@
1
- import{ModelKeys as e,ValidationKeys as t,EmailValidator as r,URLValidator as o,DateValidator as n,PasswordValidator as s,RequiredValidator as a,MinValidator as i,MaxValidator as c,StepValidator as E,MinLengthValidator as p,MaxLengthValidator as u,PatternValidator as l,EqualsValidator as A,DiffValidator as T,LessThanValidator as R,LessThanOrEqualValidator as d,GreaterThanValidator as f,GreaterThanOrEqualValidator as O,formatDate as L,ReservedModels as y,parseDate as D,Model as I,propMetadata as N}from"@decaf-ts/decorator-validation";import{Reflection as h,metadata as g,apply as m}from"@decaf-ts/reflection";import{InternalError as M,findModelId as U,OperationKeys as P}from"@decaf-ts/db-decorators";import"reflect-metadata";var S;(e=>{e.SMALL="small",e.MEDIUM="medium",e.LARGE="large",e.XLARGE="xlarge"})(S||(S={}));const k={REFLECT:e.REFLECT+".ui.",UIMODEL:"uimodel",RENDERED_BY:"rendered-by",ELEMENT:"element",PROP:"prop",CHILD:"child",NAME:"name",NAME_PREFIX:"input-",CUSTOM_PROPS:"customValidationProps",UILISTMODEL:"uilistmodel",UILISTPROP:"listprop",UILAYOUT:"uilayout",UILAYOUTPROP:"uilayoutprop",HANDLERS:"handlers",TYPE:"type",SUB_TYPE:"subtype",HIDDEN:"hidden",FORMAT:"format",ORDER:"order",PAGE:"page",READ_ONLY:"readonly",REQUIRED:t.REQUIRED,MIN:t.MIN,MIN_LENGTH:t.MIN_LENGTH,MAX:t.MAX,MAX_LENGTH:t.MAX_LENGTH,PATTERN:t.PATTERN,URL:t.URL,STEP:t.STEP,DATE:t.DATE,EMAIL:t.EMAIL,PASSWORD:t.PASSWORD,EQUALS:t.EQUALS,DIFF:t.DIFF,LESS_THAN:t.LESS_THAN,LESS_THAN_OR_EQUAL:t.LESS_THAN_OR_EQUAL,GREATER_THAN:t.GREATER_THAN,GREATER_THAN_OR_EQUAL:t.GREATER_THAN_OR_EQUAL},b={[k.EMAIL]:r,[k.URL]:o,[k.DATE]:n,[k.PASSWORD]:s},H={[k.REQUIRED]:a,[k.MIN]:i,[k.MAX]:c,[k.STEP]:E,[k.MIN_LENGTH]:p,[k.MAX_LENGTH]:u,[k.PATTERN]:l,[k.EQUALS]:A,[k.DIFF]:T,[k.LESS_THAN]:R,[k.LESS_THAN_OR_EQUAL]:d,[k.GREATER_THAN]:f,[k.GREATER_THAN_OR_EQUAL]:O},_="yyyy-MM-dd",w={BUTTON:"button",CHECKBOX:"checkbox",COLOR:"color",DATE:k.DATE,DATETIME_LOCAL:"datetime-local",EMAIL:k.EMAIL,FILE:"file",HIDDEN:"hidden",IMAGE:"image",MONTH:"month",NUMBER:"number",PASSWORD:k.PASSWORD,RADIO:"radio",RANGE:"range",RESET:"reset",SEARCH:"search",SUBMIT:"submit",TEL:"tel",TEXT:"text",TEXTAREA:"textarea",SELECT:"select",TIME:"time",URL:k.URL,WEEK:"week"},C=[w.CHECKBOX,w.RADIO];class B extends M{constructor(e){super(e,B.name)}}function G(e,t,...r){if(e===k.DATE){if(!t)return"";const e=r.shift()||_;return L(new Date(t),e)}return t}function j(e,t,r){let o;switch(e){case Array.name:o=(Array.isArray(t)?t.map(e=>j(y.STRING,e,r)):[t]).join(",");break;case w.NUMBER:o=F(t);break;case w.DATE:{const e=r.format;t&&(""+t).trim().length&&(o=typeof t===y.NUMBER?new Date(t):t?e?D(e,t):new Date(t):void 0);break}default:o=typeof t===y.OBJECT?Array.isArray(t)?t.join(","):JSON.stringify(t):typeof t===y.BOOLEAN?t:typeof t===y.STRING?v(t):o}if(void 0===o)throw new M(`Failed to parse value of type ${e} from ${typeof t} - ${t}`);return o}function F(e){if("number"==typeof e&&!isNaN(e))return e;const t=Number(e);return isNaN(t)?void 0:t}function v(e){if(!e)return e;const t={"&":"&amp;","<":"&lt;",">":"&gt;"};return(""+e).replace(/[&<>]/g,e=>t[e]||e)}function Y(e){const t={"&amp;":"&","&lt;":"<","&gt;":">"};return(""+e).replace(/&lt;|&gt;|&amp;/g,e=>t[e]||e)}function X(e){let t;try{t=U(e)}catch(e){t=Date.now()}return`${e.constructor.name}-${t}`}class ${static{this.cache={}}constructor(e){this.flavour=e,this.initialized=!1,$.register(this)}translate(e,t=!0){if(t)switch(e){case y.STRING:return w.TEXT;case y.NUMBER:case y.BIGINT:return w.NUMBER;case y.BOOLEAN:return w.CHECKBOX;case y.DATE:return w.DATE}else switch(e){case w.SELECT:case w.TEXT:case w.EMAIL:case w.COLOR:case w.PASSWORD:case w.TEL:case w.URL:case w.SEARCH:case w.HIDDEN:case w.TEXTAREA:case w.RADIO:return y.STRING;case w.NUMBER:return y.NUMBER;case w.CHECKBOX:return y.BOOLEAN;case w.DATE:case w.DATETIME_LOCAL:case w.TIME:return y.DATE}return e}getClassDecoratorsMetadata(e){return[Reflect.getMetadata($.key(k.UIMODEL),e.constructor)||Reflect.getMetadata($.key(k.UIMODEL),I.get(e.constructor.name)),Reflect.getMetadata($.key(k.UILISTMODEL),e.constructor)||Reflect.getMetadata($.key(k.UILISTMODEL),I.get(e.constructor.name)),Reflect.getMetadata($.key(k.HANDLERS),e.constructor)||Reflect.getMetadata($.key(k.HANDLERS),I.get(e.constructor.name)),Reflect.getMetadata($.key(k.UILAYOUT),e.constructor)||Reflect.getMetadata($.key(k.UILAYOUT),I.get(e.constructor.name))].filter(Boolean)}isValidatableByType(e){return Object.keys(b).includes(e)}isValidatableByAttribute(e){return Object.keys(H).includes(e)}toAttributeValue(e,t){if(!Object.keys(H).includes(e))throw Error(`Invalid attribute key "${e}". Expected one of: ${Object.keys(H).join(", ")}.`);return e===k.REQUIRED||t[e]}toFieldDefinition(e,r={},o=!0){const{inheritProps:n,...s}=r;r=s;const a=this.getClassDecoratorsMetadata(e);if(!a.length)throw new B(`No ui definitions set for model ${e.constructor.name}. Did you use @uimodel?`);const i=Object.assign({},...a,n||{}),{tag:c,props:E,item:p,handlers:u}=i,l=h.getAllPropertyDecorators(e,k.REFLECT);let A,T=p?.props||{},R={};const d=(e,t)=>e?[e,t].join("."):t;if(l){const o=h.getAllPropertyDecorators(e,t.REFLECT);for(const t in l){const n=l[t],s=Object.values(n).filter(({key:e})=>[k.PROP,k.ELEMENT,k.CHILD].includes(e));if(s?.length>1)throw new B("Only one type of decoration is allowed. Please choose between @uiprop, @uichild or @uielement");const a=n.find(({key:e})=>e===k.HIDDEN);if(a){const e=n.find(({key:e})=>e===k.ELEMENT);if(!e)throw new B(`@uielement no found in "${t}". It is required to use hiddenOn decorator.`)}n.shift(),n.sort(e=>[k.ELEMENT,k.CHILD].includes(e.key)?-1:1).forEach(n=>{if(!n)throw new B("No decorator found");switch(n.key){case k.PROP:T[t]=n.props;break;case k.CHILD:{if(!I.isPropertyModel(e,t))throw new B(`Child "${t}" must be a model.`);let o;const s=e[t];if("object"!=typeof s||null===s||Array.isArray(s)){const e=n.props.props?.name;o=new(I.get(e))}A=A||[];const a=Object.assign({},r||{},{model:o},{inheritProps:n.props,childOf:d(r?.childOf,t)}),i=this.toFieldDefinition(s||o,a,!1);A.push(i);break}case k.UILISTPROP:{R=R||{},n.props?.name&&(R[n.props?.name]=t);const e=Object.assign({},i.props?.item||{},p?.props||{},n.props?.props||{},r);T={tag:p?.tag||e.render||"",props:Object.assign({},T?.props,{mapper:R},e)};break}case k.HIDDEN:case k.PAGE:case k.ORDER:case k.UILAYOUTPROP:case k.ELEMENT:{A=A||[];const s=n.props,a=Object.assign({},T?.props,s.props||{},s?.props?.name?{path:d(r?.childOf,s.props.name),childOf:void 0}:{},r);if(n.key===k.ELEMENT){const r={tag:s.tag||T?.tag||c||"",props:a},n=o[t],i=n.shift();for(const e of n)this.isValidatableByAttribute(e.key)?r.props[this.translate(e.key)]=this.toAttributeValue(e.key,e.props):this.isValidatableByType(e.key)&&(e.key===w.DATE&&(r.props[k.FORMAT]=e.props.format||_),r.props[k.TYPE]=e.key);if(!r.props[k.TYPE]){const e=i.props.name;r.props[k.TYPE]=this.translate(e.toLowerCase(),!0)}r.props.value=G(r.props[k.TYPE],e[t],r.props[k.FORMAT]),A.push(r)}else{const e=A.find(e=>e.props?.name===t||[k.UILAYOUTPROP,k.PAGE].includes(n.key)&&e?.props?.childOf===t);if(e)if(n.key!==k.UILAYOUTPROP)e.props=Object.assign({},e.props,{[n.key]:s});else{const{row:t,col:r,props:o}=n.props;e.props=Object.assign({},o||{},e.props,t,r)}}break}default:throw new B("Invalid key: "+n.key)}})}}r=Object.assign({},E,r,{handlers:u||{}});const f=r?.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(f)?void 0:e});const O={tag:c,item:T,props:r,children:A};return o&&(O.rendererId=X(e)),O}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 $)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){const r=I.get(e.constructor.name)||I.fromObject(e);if(!r)throw new M("No model registered found");const o=Reflect.getMetadata($.key(k.RENDERED_BY),r);return $.get(o).render(e,...t)}static key(e){return`${k.REFLECT}${e}`}}function Q(e,t){return(r,o)=>{const n={tag:e||r.name,props:t};return g($.key(k.UIMODEL),n)(r)}}function x(e){return m(g($.key(k.RENDERED_BY),e))}function V(e,t){return(r,o)=>{const n={item:{tag:e||r.name,props:t}};return g($.key(k.UILISTMODEL),n)(r)}}function W(e){return t=>{const r={handlers:e};return g($.key(k.HANDLERS),r)(t)}}function K(e,t=1,r=1,o={}){return(n,s)=>Q(e,Object.assign({...typeof t===y.BOOLEAN?{flexMode:t,cols:1}:{flexMode:!1,cols:t},rows:r,...Object.assign({breakpoint:S.LARGE},o)}))(n,s)}function z(e,t=1,r=!1,o={}){let n=[];return typeof t===y.OBJECT&&(n=t,t=n.length),Q(e,{pages:t,paginated:r,pageTitles:n,props:o})}function J(...e){return N($.key(k.HIDDEN),e)}function q(e=1){return N($.key(k.ORDER),e)}function Z(){return J(P.CREATE,P.READ,P.UPDATE,P.DELETE)}function ee(e,t,r=!1){return(o,n)=>{const s={tag:e,serialize:r,props:Object.assign({},t||{},{name:n})};return N($.key(k.ELEMENT),s)(o,n)}}function te(e=void 0,t=!1){return(r,o)=>{const n={name:e||o,stringify:t};N($.key(k.PROP),n)(r,o)}}function re(e,t,r={},o=!1,n=!1){return(s,a)=>{const i={tag:t,serialize:n,props:Object.assign({},r||{},{name:e||a},o?{customTypes:[Array.name],multiple:!0}:{multiple:r?.multiple||!1})};N($.key(k.CHILD),i)(s,a)}}function oe(e=void 0,t){return(r,o)=>{const n={name:e||o,props:t||{}};N($.key(k.UILISTPROP),n)(r,o)}}function ne(e=1,t=1){return(r,o)=>{const n={name:o,props:Object.assign({},{row:t,col:e})};N($.key(k.UILAYOUTPROP),n)(r,o)}}function se(e=1){return N($.key(k.PAGE),e)}I.prototype.render=function(...e){return $.render(this,...e)};class ae{constructor(){}}const ie="##VERSION##";export{ae as EventHandler,C as HTML5CheckTypes,_ as HTML5DateFormat,w as HTML5InputTypes,$ as RenderingEngine,B as RenderingError,k as UIKeys,S as UIMediaBreakPoints,ie as VERSION,H as ValidatableByAttribute,b as ValidatableByType,v as escapeHtml,G as formatByType,X as generateUIModelID,Z as hidden,J as hideOn,F as parseToNumber,j as parseValueByType,x as renderedBy,Y as revertHtml,re as uichild,ee as uielement,W as uihandlers,K as uilayout,ne as uilayoutprop,V as uilistmodel,oe as uilistprop,Q as uimodel,q as uiorder,se as uipageprop,te as uiprop,z 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 T,LessThanValidator as d,LessThanOrEqualValidator as R,GreaterThanValidator as f,GreaterThanOrEqualValidator as L,formatDate as O,ReservedModels as A,parseDate as m,Model as y}from"@decaf-ts/decorator-validation";import{metadata as I,Metadata as D,apply as N,DecorationKeys as h,propMetadata as g}from"@decaf-ts/decoration";import{InternalError as P,NotFoundError as M,OperationKeys as S}from"@decaf-ts/db-decorators";var C;(e=>{e.SMALL="small",e.MEDIUM="medium",e.LARGE="large",e.XLARGE="xlarge"})(C||(C={}));const b={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",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},w={[b.EMAIL]:t,[b.URL]:r,[b.DATE]:o,[b.PASSWORD]:n},U={[b.REQUIRED]:s,[b.MIN]:i,[b.MAX]:a,[b.STEP]:c,[b.MIN_LENGTH]:E,[b.MAX_LENGTH]:u,[b.PATTERN]:p,[b.EQUALS]:l,[b.DIFF]:T,[b.LESS_THAN]:d,[b.LESS_THAN_OR_EQUAL]:R,[b.GREATER_THAN]:f,[b.GREATER_THAN_OR_EQUAL]:L},k="yyyy-MM-dd",H={BUTTON:"button",CHECKBOX:"checkbox",COLOR:"color",DATE:b.DATE,DATETIME_LOCAL:"datetime-local",EMAIL:b.EMAIL,FILE:"file",HIDDEN:"hidden",IMAGE:"image",MONTH:"month",NUMBER:"number",PASSWORD:b.PASSWORD,RADIO:"radio",RANGE:"range",RESET:"reset",SEARCH:"search",SUBMIT:"submit",TEL:"tel",TEXT:"text",TEXTAREA:"textarea",SELECT:"select",TIME:"time",URL:b.URL,WEEK:"week"},_=[H.CHECKBOX,H.RADIO];function B(e,t){return(r,o)=>{const n={tag:e||r.name,props:t};return I(D.key(b.REFLECT,b.UIMODEL),n)(r)}}function F(e){return N(I(D.key(b.REFLECT,b.RENDERED_BY),e))}function j(e,t){return(r,o)=>{const n={item:{tag:e||r.name,props:t}};return I(D.key(b.REFLECT,b.UILISTMODEL),n)(r)}}function G(e){return t=>{const r={handlers:e};return I(D.key(b.REFLECT,b.HANDLERS),r)(t)}}function v(e,t=1,r=1,o={}){return(n,s)=>B(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 X(e,t=1,r=!1,o={}){let n=[];return"object"==typeof t&&(n=t,t=n.length),B(e,{pages:t,paginated:r,pageTitles:n,props:o})}class Y extends P{constructor(e){super(e,Y.name)}}function $(e,t){return D.key(b.REFLECT,h.PROPERTIES,e,t)}function Q(e,t,...r){if(e===b.DATE){if(!t)return"";const e=r.shift()||k;return O(new Date(t),e)}return t}function x(e,t,r){let o;switch(e){case Array.name:o=(Array.isArray(t)?t.map(e=>x(A.STRING.name.toLowerCase(),e,r)):[t]).join(",");break;case H.NUMBER:o=V(t);break;case H.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()?W(t):o}if(void 0===o)throw new P(`Failed to parse value of type ${e} from ${typeof t} - ${t}`);return o}function V(e){if("number"==typeof e&&!isNaN(e))return e;const t=Number(e);return isNaN(t)?void 0:t}function W(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 z(e){let t=Date.now();try{y.pk(e.constructor)&&(t=e[y.pk(e.constructor)])}catch(e){}return`${e.constructor.name}-${t}`}class J{static{this.cache={}}constructor(e){this.flavour=e,this.initialized=!1,J.register(this)}translate(e,t=!0){if(t)switch(e){case A.STRING.name.toLowerCase():return H.TEXT;case A.NUMBER.name.toLowerCase():case A.BIGINT.name.toLowerCase():return H.NUMBER;case A.BOOLEAN.name.toLowerCase():return H.CHECKBOX;case A.DATE.name.toLowerCase():return H.DATE}else switch(e){case H.SELECT:case H.TEXT:case H.EMAIL:case H.COLOR:case H.PASSWORD:case H.TEL:case H.URL:case H.SEARCH:case H.HIDDEN:case H.TEXTAREA:case H.RADIO:return A.STRING.name.toLowerCase();case H.NUMBER:return A.NUMBER.name.toLowerCase();case H.CHECKBOX:return A.BOOLEAN.name.toLowerCase();case H.DATE:case H.DATETIME_LOCAL:case H.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(w).includes(e)}isValidatableByAttribute(e){return Object.keys(U).includes(e)}toAttributeValue(e,t){if(!Object.keys(U).includes(e))throw Error(`Invalid attribute key "${e}". Expected one of: ${Object.keys(U).join(", ")}.`);return e===b.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=y.uiPropertiesOf(t.constructor);let T,d=u?.props||{},R={};const f=(e,t)=>e?[e,t].join("."):t;if(l){const o=D.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 M))throw e}if(y.uiIsHidden(t.constructor,e)&&!y.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=>[b.ELEMENT,b.CHILD].includes(e.key)?-1:1).forEach(n=>{if(!n)throw new Y("No decorator found");switch(n.key){case b.PROP:d[e]=n.props;break;case b.CHILD:{if(!y.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(y.get(e))}T=T||[];const i=Object.assign({},r||{},{model:o},{inheritProps:n.props,childOf:f(r?.childOf,e)}),a=this.toFieldDefinition(s||o,i,!1);T.push(a);break}case b.UILISTPROP:{R=R||{},n.props.name&&(R[n.props.name]=e);const t=Object.assign({},a.props?.item||{},u?.props||{},n.props.props||{},r);d={tag:u?.tag||t.render||"",props:Object.assign({},d?.props,{mapper:R},t)};break}case b.HIDDEN:case b.PAGE:case b.ORDER:case b.UILAYOUTPROP:case b.ELEMENT:{T=T||[];const s=n.props,i=Object.assign({},d?.props,s.props||{},s?.props?.name?{path:f(r?.childOf,s.props.name),childOf:void 0}:{},r);if(n.key===b.ELEMENT){const r={tag:s.tag||d?.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===H.DATE&&(r.props[b.FORMAT]=e.props.format||k),r.props[b.TYPE]=e.key);if(!r.props[b.TYPE]){const o=D.type(t.constructor,e).name;r.props[b.TYPE]=this.translate(o.toLowerCase(),!0)}r.props.value=Q(r.props[b.TYPE],t[e],r.props[b.FORMAT]),T.push(r)}else{const t=T.find(t=>t.props?.name===e||[b.UILAYOUTPROP,b.PAGE].includes(n.key)&&t?.props?.childOf===e);if(t)if(n.key!==b.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 L=r?.operation;T=T?.sort((e,t)=>(e?.props?.order??0)-(t?.props?.order??0)).filter(e=>{const t=e?.props?.hidden||[];return t?.length&&t.includes(L)?void 0:e});const O={tag:c,item:d,props:r,children:T};return o&&(O.rendererId=z(t)),O}static register(e){if(e.flavour in this.cache)throw new P(`Rendering engine under ${e.flavour} already exists`);this.cache[e.flavour]=e,this.current=e}static getOrBoot(e){if(e instanceof J)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 P(`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 P("No model registered found");const r=y.renderedBy(e.constructor);return J.get(r).render(e,...t)}}function q(...e){return(t,r)=>g($(r,b.HIDDEN),e)(t,r)}function Z(e=1){return(t,r)=>g($(r,b.ORDER),e)(t,r)}function ee(){return q(S.CREATE,S.READ,S.UPDATE,S.DELETE)}function te(e,t,r=!1){return(o,n)=>{const s={tag:e,serialize:r,props:Object.assign({},t||{},{name:n})};return g($(n,b.ELEMENT),s)(o,n)}}function re(e=void 0,t=!1){return(r,o)=>{const n={name:e||o,stringify:t};g($(o,b.PROP),n)(r,o)}}function oe(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($(i,b.CHILD),a)(s,i)}}function ne(e=void 0,t){return(r,o)=>{const n={name:e||o,props:t||{}};g($(o,b.UILISTPROP),n)(r,o)}}function se(e=1,t=1){return(r,o)=>{const n={name:o,props:Object.assign({},{row:t,col:e})};g($(o,b.UILAYOUTPROP),n)(r,o)}}function ie(e=1){return(t,r)=>g($(r,b.PAGE),e)(t,r)}class ae{constructor(){}}y.prototype.render=function(...e){return J.render(this,...e)},y.renderedBy=(e=>D.get(e,D.key(b.REFLECT,b.RENDERED_BY))).bind(y),y.uiPropertiesOf=(e=>{const t=D.get(e,D.key(b.REFLECT,h.PROPERTIES));if(t)return Object.keys(t)}).bind(y),y.uiDecorationOf=(e,t,r)=>{const o=D.get(e,D.key(b.REFLECT,h.PROPERTIES,t));if(o)return r?o[r]:o},y.uiModelOf=e=>D.get(e,D.key(b.REFLECT,b.UIMODEL)),y.uiElementOf=(e,t)=>D.get(e,$(t,b.ELEMENT)),y.uiListModelOf=e=>D.get(e,D.key(b.REFLECT,b.UILISTMODEL)),y.uiHandlersFor=e=>D.get(e,D.key(b.REFLECT,b.HANDLERS)),y.uiLayoutOf=e=>D.get(e,D.key(b.REFLECT,b.UILAYOUT)),y.uiIsHidden=(e,t)=>!!D.get(e,$(t,b.HIDDEN)),y.uiIsHiddenOn=(e,t,r)=>{const o=D.get(e,$(t,b.HIDDEN));return!!o&&(r?o.includes(r):o)},y.uiTypeOf=(e,t)=>{const r=D.get(e,D.key(b.REFLECT,h.PROPERTIES,t));if(!r)throw new M(`No metadata found for property '${t}' on model '${e.name}'`);const o=Object.keys(r).filter(e=>[b.PROP,b.ELEMENT,b.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]]},y.uiListItems=(e=>{const t=D.get(e,D.key(b.REFLECT,h.PROPERTIES));if(t)return Object.keys(t)}).bind(y);const ce="##VERSION##";export{ae as EventHandler,_ as HTML5CheckTypes,k as HTML5DateFormat,H as HTML5InputTypes,J as RenderingEngine,Y as RenderingError,b as UIKeys,C as UIMediaBreakPoints,ce as VERSION,U as ValidatableByAttribute,w as ValidatableByType,W as escapeHtml,Q as formatByType,z as generateUIModelID,$ as getUIAttributeKey,ee as hidden,q as hideOn,V as parseToNumber,x as parseValueByType,F as renderedBy,K as revertHtml,oe as uichild,te as uielement,G as uihandlers,v as uilayout,se as uilayoutprop,j as uilistmodel,ne as uilistprop,B as uimodel,Z as uiorder,ie as uipageprop,re 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/ui/errors.ts","../src/ui/utils.ts","../src/ui/Rendering.ts","../src/model/decorators.ts","../src/ui/decorators.ts","../src/model/overrides.ts","../src/ui/handlers.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["UIMediaBreakPoints","UIKeys","REFLECT","ModelKeys","UIMODEL","RENDERED_BY","ELEMENT","PROP","CHILD","NAME","NAME_PREFIX","CUSTOM_PROPS","UILISTMODEL","UILISTPROP","UILAYOUT","UILAYOUTPROP","HANDLERS","TYPE","SUB_TYPE","HIDDEN","FORMAT","ORDER","PAGE","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","RenderingError","InternalError","constructor","msg","super","name","formatByType","type","value","args","format","shift","formatDate","Date","parseValueByType","fieldProps","result","Array","isArray","map","v","ReservedModels","STRING","join","parseToNumber","trim","length","parseDate","undefined","OBJECT","JSON","stringify","BOOLEAN","escapeHtml","isNaN","parsed","Number","tagsToReplace","replace","tag","revertHtml","generateUIModelID","model","id","findModelId","e","now","RenderingEngine","this","cache","flavour","initialized","register","translate","key","toView","BIGINT","getClassDecoratorsMetadata","Reflect","getMetadata","Model","get","filter","Boolean","isValidatableByType","Object","keys","includes","isValidatableByAttribute","toAttributeValue","Error","toFieldDefinition","globalProps","generateId","inheritProps","globalPropsWithoutInherits","classDecorators","classDecorator","assign","props","item","handlers","uiDecorators","Reflection","getAllPropertyDecorators","children","childProps","mapper","getPath","parent","prop","validationDecorators","decs","types","values","hasHideOnDecorator","find","hasUiElementDecorator","sort","a","forEach","dec","isPropertyModel","Clazz","submodel","clazzName","childrenGlobalProps","childOf","childDefinition","push","render","uiProps","path","validationDecs","typeDec","basicType","toLowerCase","child","c","row","col","operation","b","order","hiddenOn","hidden","rendererId","engine","current","getOrBoot","obj","initialize","fromObject","uimodel","original","propertyKey","meta","metadata","renderedBy","apply","uilistmodel","uihandlers","uilayout","colsMode","rows","flexMode","cols","breakpoint","LARGE","uisteppedmodel","pages","paginated","pageTitles","hideOn","operations","propMetadata","uiorder","OperationKeys","CREATE","READ","UPDATE","DELETE","uielement","serialize","uiprop","propName","target","uichild","clazz","customTypes","multiple","uilistprop","uilayoutprop","uipageprop","page","prototype","EventHandler","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/handlers.ts","../src/model/overrides.ts","../src/index.ts"],"sourcesContent":[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","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","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","EventHandler","prototype","bind","uiIsHiddenOn","op","uiListItems","VERSION"],"mappings":"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"}
@@ -75,7 +75,7 @@ export declare function uimodel(tag?: string, props?: Record<string, any>): (ori
75
75
  * Model->>RenderingEngine: uses specified engine
76
76
  * RenderingEngine->>System: renders with custom engine
77
77
  */
78
- export declare function renderedBy(engine: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
78
+ export declare function renderedBy(engine: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
79
79
  /**
80
80
  * @description Decorator that tags a model as a list item for UI rendering
81
81
  * @summary Specifies how a model should be rendered when displayed in a list context
@@ -1,8 +1,6 @@
1
1
  import { UIKeys } from "./../ui/constants.js";
2
- import { apply, metadata } from "@decaf-ts/reflection";
3
- import { RenderingEngine } from "./../ui/Rendering.js";
4
2
  import { UIMediaBreakPoints } from "./../ui/constants.js";
5
- import { ReservedModels } from "@decaf-ts/decorator-validation";
3
+ import { apply, Metadata, metadata } from "@decaf-ts/decoration";
6
4
  /**
7
5
  * @description Decorator that tags a class as a UI model
8
6
  * @summary Adds rendering capabilities to a model class by providing a render method
@@ -53,7 +51,7 @@ export function uimodel(tag, props) {
53
51
  tag: tag || original.name,
54
52
  props: props,
55
53
  };
56
- return metadata(RenderingEngine.key(UIKeys.UIMODEL), meta)(original);
54
+ return metadata(Metadata.key(UIKeys.REFLECT, UIKeys.UIMODEL), meta)(original);
57
55
  };
58
56
  }
59
57
  /**
@@ -89,7 +87,7 @@ export function uimodel(tag, props) {
89
87
  * RenderingEngine->>System: renders with custom engine
90
88
  */
91
89
  export function renderedBy(engine) {
92
- return apply(metadata(RenderingEngine.key(UIKeys.RENDERED_BY), engine));
90
+ return apply(metadata(Metadata.key(UIKeys.REFLECT, UIKeys.RENDERED_BY), engine));
93
91
  }
94
92
  /**
95
93
  * @description Decorator that tags a model as a list item for UI rendering
@@ -145,7 +143,7 @@ export function uilistmodel(name, props) {
145
143
  props: props,
146
144
  },
147
145
  };
148
- return metadata(RenderingEngine.key(UIKeys.UILISTMODEL), meta)(original);
146
+ return metadata(Metadata.key(UIKeys.REFLECT, UIKeys.UILISTMODEL), meta)(original);
149
147
  };
150
148
  }
151
149
  /**
@@ -204,9 +202,9 @@ export function uilistmodel(name, props) {
204
202
  export function uihandlers(props) {
205
203
  return (original) => {
206
204
  const meta = {
207
- handlers: props
205
+ handlers: props,
208
206
  };
209
- return metadata(RenderingEngine.key(UIKeys.HANDLERS), meta)(original);
207
+ return metadata(Metadata.key(UIKeys.REFLECT, UIKeys.HANDLERS), meta)(original);
210
208
  };
211
209
  }
212
210
  /**
@@ -270,17 +268,17 @@ export function uihandlers(props) {
270
268
  export function uilayout(tag, colsMode = 1, rows = 1, props = {}) {
271
269
  return (original, propertyKey) => {
272
270
  return uimodel(tag, Object.assign({
273
- ...(typeof colsMode === ReservedModels.BOOLEAN ?
274
- {
271
+ ...(typeof colsMode === "boolean"
272
+ ? {
275
273
  flexMode: colsMode,
276
- cols: 1
277
- } :
278
- {
274
+ cols: 1,
275
+ }
276
+ : {
279
277
  flexMode: false,
280
- cols: colsMode
278
+ cols: colsMode,
281
279
  }),
282
280
  rows,
283
- ...Object.assign({ breakpoint: UIMediaBreakPoints.LARGE }, props)
281
+ ...Object.assign({ breakpoint: UIMediaBreakPoints.LARGE }, props),
284
282
  }))(original, propertyKey);
285
283
  };
286
284
  }
@@ -366,7 +364,7 @@ export function uilayout(tag, colsMode = 1, rows = 1, props = {}) {
366
364
  */
367
365
  export function uisteppedmodel(tag, pages = 1, paginated = false, props = {}) {
368
366
  let pageTitles = [];
369
- if (typeof pages === ReservedModels.OBJECT) {
367
+ if (typeof pages === "object") {
370
368
  pageTitles = pages;
371
369
  pages = pageTitles.length;
372
370
  }
@@ -374,7 +372,7 @@ export function uisteppedmodel(tag, pages = 1, paginated = false, props = {}) {
374
372
  pages,
375
373
  paginated,
376
374
  pageTitles,
377
- props
375
+ props,
378
376
  });
379
377
  }
380
378
  //# sourceMappingURL=decorators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/model/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/model/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,6BAAwB;AAMzC,OAAO,EAAE,kBAAkB,EAAE,6BAAwB;AAErD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,UAAU,OAAO,CAAC,GAAY,EAAE,KAA2B;IAC/D,6DAA6D;IAC7D,OAAO,CAAC,QAAa,EAAE,WAAiB,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAoB;YAC5B,GAAG,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI;YACzB,KAAK,EAAE,KAAK;SACb,CAAC;QACF,OAAO,QAAQ,CACb,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,EAC5C,IAAI,CACL,CAAC,QAAQ,CAAC,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,OAAO,KAAK,CACV,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CACnE,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,UAAU,WAAW,CAAC,IAAa,EAAE,KAA2B;IACpE,6DAA6D;IAC7D,OAAO,CAAC,QAAa,EAAE,WAAiB,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAwB;YAChC,IAAI,EAAE;gBACJ,GAAG,EAAE,IAAI,IAAI,QAAQ,CAAC,IAAI;gBAC1B,KAAK,EAAE,KAAK;aACb;SACF,CAAC;QACF,OAAO,QAAQ,CACb,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,EAChD,IAAI,CACL,CAAC,QAAQ,CAAC,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,MAAM,UAAU,UAAU,CAAC,KAA2B;IACpD,OAAO,CAAC,QAAa,EAAE,EAAE;QACvB,MAAM,IAAI,GAAsB;YAC9B,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,OAAO,QAAQ,CACb,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,EAC7C,IAAI,CACL,CAAC,QAAQ,CAAC,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,MAAM,UAAU,QAAQ,CACtB,GAAW,EACX,WAA6B,CAAC,EAC9B,OAA0B,CAAC,EAC3B,QAAa,EAAE;IAEf,OAAO,CAAC,QAAa,EAAE,WAAiB,EAAE,EAAE;QAC1C,OAAO,OAAO,CACZ,GAAG,EACH,MAAM,CAAC,MAAM,CAAC;YACZ,GAAG,CAAC,OAAO,QAAQ,KAAK,SAAS;gBAC/B,CAAC,CAAC;oBACE,QAAQ,EAAE,QAAQ;oBAClB,IAAI,EAAE,CAAC;iBACR;gBACH,CAAC,CAAC;oBACE,QAAQ,EAAE,KAAK;oBACf,IAAI,EAAE,QAAQ;iBACf,CAAC;YACN,IAAI;YACJ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,kBAAkB,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC;SAClE,CAAC,CACH,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC3B,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EG;AACH,MAAM,UAAU,cAAc,CAC5B,GAAW,EACX,QAA8C,CAAC,EAC/C,YAAqB,KAAK,EAC1B,QAAa,EAAE;IAEf,IAAI,UAAU,GAAgC,EAAE,CAAC;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,UAAU,GAAG,KAAoC,CAAC;QAClD,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC;IAC5B,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,KAAK;QACL,SAAS;QACT,UAAU;QACV,KAAK;KACN,CAAC,CAAC;AACL,CAAC"}
@@ -1,4 +1,6 @@
1
1
  import { Renderable } from "./Renderable";
2
+ import { Constructor } from "@decaf-ts/decoration";
3
+ import { CrudOperationKeys, UIElementMetadata, UIHandlerMetadata, UILayoutMetadata, UIListModelMetadata, UIModelMetadata } from "../ui/index";
2
4
  declare module "@decaf-ts/decorator-validation" {
3
5
  interface Model extends Renderable {
4
6
  /**
@@ -11,4 +13,19 @@ declare module "@decaf-ts/decorator-validation" {
11
13
  */
12
14
  render<R>(...args: any[]): R;
13
15
  }
16
+ namespace Model {
17
+ function renderedBy<M extends Model>(model: Constructor<M>): string | undefined;
18
+ function uiPropertiesOf<M extends Model>(model: Constructor<M>): string[] | undefined;
19
+ function uiDecorationOf<M extends Model>(model: Constructor<M>, prop: keyof M, key?: string): any;
20
+ function uiModelOf<M extends Model>(model: Constructor<M>): UIModelMetadata | undefined;
21
+ function uiElementOf<M extends Model>(model: Constructor<M>, prop: keyof M): UIElementMetadata | undefined;
22
+ function uiListModelOf<M extends Model>(model: Constructor<M>): UIListModelMetadata | undefined;
23
+ function uiHandlersFor<M extends Model>(model: Constructor<M>): UIHandlerMetadata | undefined;
24
+ function uiLayoutOf<M extends Model>(model: Constructor<M>): UILayoutMetadata | undefined;
25
+ function uiTypeOf<M extends Model>(model: Constructor<M>, prop: keyof M): UILayoutMetadata | undefined;
26
+ function uiIsHidden<M extends Model>(model: Constructor<M>, prop: keyof M): boolean;
27
+ function uiHiddenOn<M extends Model>(model: Constructor<M>, prop: keyof M): CrudOperationKeys[] | false;
28
+ function uiHiddenOn<M extends Model>(model: Constructor<M>, prop: keyof M, op: CrudOperationKeys): boolean;
29
+ function uiHiddenOn<M extends Model>(model: Constructor<M>, prop: keyof M, op?: CrudOperationKeys): CrudOperationKeys[] | boolean;
30
+ }
14
31
  }
@@ -6,4 +6,4 @@
6
6
  * @module model/overrides
7
7
  * @memberOf module:ui-decorators/model
8
8
  */
9
- export {};
9
+ import "./model";
@@ -8,6 +8,10 @@
8
8
  */
9
9
  import { Model } from "@decaf-ts/decorator-validation";
10
10
  import { RenderingEngine } from "./../ui/Rendering.js";
11
+ import { DecorationKeys, Metadata } from "@decaf-ts/decoration";
12
+ import { getUIAttributeKey, RenderingError, UIKeys, } from "./../ui/index.js";
13
+ import "./model.js";
14
+ import { NotFoundError } from "@decaf-ts/db-decorators";
11
15
  /**
12
16
  * @description Renders the model using the appropriate rendering engine
13
17
  * @summary Delegates rendering to the RenderingEngine based on model metadata
@@ -21,4 +25,74 @@ import { RenderingEngine } from "./../ui/Rendering.js";
21
25
  Model.prototype.render = function (...args) {
22
26
  return RenderingEngine.render(this, ...args);
23
27
  };
28
+ Model.renderedBy = function (model) {
29
+ return Metadata.get(model, Metadata.key(UIKeys.REFLECT, UIKeys.RENDERED_BY));
30
+ }.bind(Model);
31
+ Model.uiPropertiesOf = function (model) {
32
+ const meta = Metadata.get(model, Metadata.key(UIKeys.REFLECT, DecorationKeys.PROPERTIES));
33
+ if (!meta)
34
+ return undefined;
35
+ return Object.keys(meta);
36
+ }.bind(Model);
37
+ Model.uiDecorationOf = function (model, prop, key) {
38
+ const meta = Metadata.get(model, Metadata.key(UIKeys.REFLECT, DecorationKeys.PROPERTIES, prop));
39
+ if (!meta)
40
+ return undefined;
41
+ if (!key)
42
+ return meta;
43
+ return meta[key];
44
+ };
45
+ Model.uiModelOf = function (model) {
46
+ return Metadata.get(model, Metadata.key(UIKeys.REFLECT, UIKeys.UIMODEL));
47
+ };
48
+ Model.uiElementOf = function (model, prop) {
49
+ return Metadata.get(model, getUIAttributeKey(prop, UIKeys.ELEMENT));
50
+ };
51
+ Model.uiListModelOf = function (model) {
52
+ return Metadata.get(model, Metadata.key(UIKeys.REFLECT, UIKeys.UILISTMODEL));
53
+ };
54
+ Model.uiHandlersFor = function (model) {
55
+ return Metadata.get(model, Metadata.key(UIKeys.REFLECT, UIKeys.HANDLERS));
56
+ };
57
+ Model.uiLayoutOf = function (model) {
58
+ return Metadata.get(model, Metadata.key(UIKeys.REFLECT, UIKeys.UILAYOUT));
59
+ };
60
+ Model.uiIsHidden = function (model, prop) {
61
+ return !!Metadata.get(model, getUIAttributeKey(prop, UIKeys.HIDDEN));
62
+ };
63
+ Model.uiIsHiddenOn = function (model, prop, op) {
64
+ const meta = Metadata.get(model, getUIAttributeKey(prop, UIKeys.HIDDEN));
65
+ if (!meta)
66
+ return false;
67
+ if (!op)
68
+ return meta;
69
+ return meta.includes(op);
70
+ };
71
+ Model.uiTypeOf = function (model, prop) {
72
+ const meta = Metadata.get(model, Metadata.key(UIKeys.REFLECT, DecorationKeys.PROPERTIES, prop));
73
+ if (!meta)
74
+ throw new NotFoundError(`No metadata found for property '${prop}' on model '${model.name}'`);
75
+ const keys = Object.keys(meta).filter((k) => [UIKeys.PROP, UIKeys.ELEMENT, UIKeys.CHILD].includes(k));
76
+ if (keys.length === 0)
77
+ throw new NotFoundError(`No UI type metadata found for property '${prop}' on model '${model.name}'`);
78
+ if (keys.length > 1)
79
+ throw new RenderingError(`Only one type of decoration is allowed. Please choose between @uiprop, @uichild or @uielement`);
80
+ return meta[keys[0]];
81
+ };
82
+ //
83
+ // (Metadata as any).uiElements = function <M extends Model>(
84
+ // model: Constructor<M>
85
+ // ): string[] | undefined {
86
+ // const props = Metadata.uiPropertiesOf(model);
87
+ // if (!props) return undefined;
88
+ // return props
89
+ // .map((prop) => Metadata.get(model, getUIAttributeKey(prop, UIKeys.ELEMENT)))
90
+ // .filter(Boolean);
91
+ // }.bind(Model);
92
+ Model.uiListItems = function (model) {
93
+ const meta = Metadata.get(model, Metadata.key(UIKeys.REFLECT, DecorationKeys.PROPERTIES));
94
+ if (!meta)
95
+ return undefined;
96
+ return Object.keys(meta);
97
+ }.bind(Model);
24
98
  //# sourceMappingURL=overrides.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../../src/model/overrides.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,6BAAwB;AAElD;;;;;;;;;GASG;AACH,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,UAAoC,GAAG,IAAW;IACzE,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AAC/C,CAAC,CAAC"}
1
+ {"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../../src/model/overrides.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { Model, ValidationMetadata } from "@decaf-ts/decorator-validation";
2
1
  import { FieldDefinition } from "./types";
2
+ import { Model, ValidationMetadata } from "@decaf-ts/decorator-validation";
3
3
  /**
4
4
  * @description Abstract class for rendering UI components based on model metadata.
5
5
  * @summary The RenderingEngine class provides a framework for converting model metadata into UI field definitions.
@@ -183,14 +183,4 @@ export declare abstract class RenderingEngine<T = void, R = FieldDefinition<T>>
183
183
  * @static
184
184
  */
185
185
  static render<M extends Model>(model: M, ...args: any[]): any;
186
- /**
187
- * @description Generates a metadata key for UI-related properties.
188
- * @summary Prefixes a given key with the UI reflection prefix.
189
- *
190
- * @param {string} key - The key to prefix.
191
- * @returns {string} The prefixed key.
192
- *
193
- * @static
194
- */
195
- static key(key: string): string;
196
186
  }