@genesislcap/foundation-forms 9.0.1-alpha-3155c9c.0 → 10.3.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.
- package/dist/1.0.0.remoteEntry.js +1 -1
- package/dist/173.08431a9cc6e4ea92330e504a71c27e8a.js.map +1 -0
- package/dist/{691.691.94bd71f12961486f4d8d.js → 173.173.a07cc3dded23c6eedc89.js} +16 -7
- package/dist/338.0093c8b5d0effa408253f6e584f0307e.js.map +1 -0
- package/dist/338.338.e0e537bcf9641a8f4d8f.js +3 -0
- package/dist/755.755.5544338a36d84c97807c.js +2 -0
- package/dist/{755.ef9ff39a1d56dfd14bc47cd9f22cfc9f.js.map → 755.a11ac6ce339ed263836e06faeae3e1d1.js.map} +1 -1
- package/dist/dts/form.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/InvisibleControlRenderer.d.ts +5 -0
- package/dist/dts/jsonforms/renderers/InvisibleControlRenderer.d.ts.map +1 -0
- package/dist/dts/jsonforms/renderers/RenderersRanks.d.ts +1 -0
- package/dist/dts/jsonforms/renderers/RenderersRanks.d.ts.map +1 -1
- package/dist/dts/jsonforms/testers/isInvisible.d.ts +3 -0
- package/dist/dts/jsonforms/testers/isInvisible.d.ts.map +1 -0
- package/dist/esm/form.js +2 -0
- package/dist/esm/form.js.map +1 -1
- package/dist/esm/jsonforms/renderers/InvisibleControlRenderer.js +20 -0
- package/dist/esm/jsonforms/renderers/InvisibleControlRenderer.js.map +1 -0
- package/dist/esm/jsonforms/renderers/RenderersRanks.js +1 -0
- package/dist/esm/jsonforms/renderers/RenderersRanks.js.map +1 -1
- package/dist/esm/jsonforms/testers/isInvisible.js +5 -0
- package/dist/esm/jsonforms/testers/isInvisible.js.map +1 -0
- package/dist/foundation-forms.iife.min.js +7 -7
- package/dist/foundation-forms.js +19 -14
- package/dist/foundation-forms.min.js +6 -6
- package/dist/{foundationForms.a7013ba9c5c4a97d9a7e2d8a551752ba.js.map → foundationForms.c272844e1508b4a769472844fbd0a3fe.js.map} +1 -1
- package/dist/index.html +2 -2
- package/dist/{main.89d08fe81e0159f212e5f7880954ae70.js.map → main.604f4066969762050a89cc5d3b80c6e4.js.map} +1 -1
- package/dist/main.692b00524d77e975ec94.js +2 -0
- package/dist/remoteEntry.js +2 -2
- package/package.json +5 -5
- package/dist/338.338.124651324d743221ad7e.js +0 -3
- package/dist/338.d187d80c4b3697c68e08e173075547f8.js.map +0 -1
- package/dist/691.56a1e267854b877284b2dde11aae483b.js.map +0 -1
- package/dist/755.755.d9777bd59664cac307f8.js +0 -2
- package/dist/main.99a0affb273b317b04e7.js +0 -2
- /package/dist/{338.338.124651324d743221ad7e.js.LICENSE.txt → 338.338.e0e537bcf9641a8f4d8f.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
var foundationForms;(()=>{"use strict";var e,t,r,n,a,o,i,f,l,s,d,u,c={8451:(e,t,r)=>{var n={"./index":()=>r.e(755).then((()=>()=>r(8755)))},a=(e,t)=>(r.R=t,t=r.o(n,e)?n[e]():Promise.resolve().then((()=>{throw new Error('Module "'+e+'" does not exist in container.')})),r.R=void 0,t),o=(e,t)=>{if(r.S){var n=r.S.default,a="default";if(n&&n!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return r.S[a]=e,r.I(a,t)}};r.d(t,{get:()=>a,init:()=>o})}},h={};function p(e){var t=h[e];if(void 0!==t)return t.exports;var r=h[e]={id:e,loaded:!1,exports:{}},n=!0;try{c[e].call(r.exports,r,r.exports,p),n=!1}finally{n&&delete h[e]}return r.loaded=!0,r.exports}p.m=c,p.c=h,e=[],p.O=(t,r,n,a)=>{if(!r){var o=1/0;for(s=0;s<e.length;s++){for(var[r,n,a]=e[s],i=!0,f=0;f<r.length;f++)(!1&a||o>=a)&&Object.keys(p.O).every((e=>p.O[e](r[f])))?r.splice(f--,1):(i=!1,a<o&&(o=a));if(i){e.splice(s--,1);var l=n();void 0!==l&&(t=l)}}return t}a=a||0;for(var s=e.length;s>0&&e[s-1][2]>a;s--)e[s]=e[s-1];e[s]=[r,n,a]},p.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return p.d(t,{a:t}),t},p.d=(e,t)=>{for(var r in t)p.o(t,r)&&!p.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},p.f={},p.e=e=>Promise.all(Object.keys(p.f).reduce(((t,r)=>(p.f[r](e,t),t)),[])),p.u=e=>(({127:"npm.microsoft",213:"npm.ajv",271:"npm.rxjs",343:"npm.analytics",415:"npm.uri-js",690:"npm.finos",713:"npm.consola",832:"npm.jsonforms",913:"npm.lodash"}[e]||e)+"."+e+"."+{
|
|
1
|
+
var foundationForms;(()=>{"use strict";var e,t,r,n,a,o,i,f,l,s,d,u,c={8451:(e,t,r)=>{var n={"./index":()=>r.e(755).then((()=>()=>r(8755)))},a=(e,t)=>(r.R=t,t=r.o(n,e)?n[e]():Promise.resolve().then((()=>{throw new Error('Module "'+e+'" does not exist in container.')})),r.R=void 0,t),o=(e,t)=>{if(r.S){var n=r.S.default,a="default";if(n&&n!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return r.S[a]=e,r.I(a,t)}};r.d(t,{get:()=>a,init:()=>o})}},h={};function p(e){var t=h[e];if(void 0!==t)return t.exports;var r=h[e]={id:e,loaded:!1,exports:{}},n=!0;try{c[e].call(r.exports,r,r.exports,p),n=!1}finally{n&&delete h[e]}return r.loaded=!0,r.exports}p.m=c,p.c=h,e=[],p.O=(t,r,n,a)=>{if(!r){var o=1/0;for(s=0;s<e.length;s++){for(var[r,n,a]=e[s],i=!0,f=0;f<r.length;f++)(!1&a||o>=a)&&Object.keys(p.O).every((e=>p.O[e](r[f])))?r.splice(f--,1):(i=!1,a<o&&(o=a));if(i){e.splice(s--,1);var l=n();void 0!==l&&(t=l)}}return t}a=a||0;for(var s=e.length;s>0&&e[s-1][2]>a;s--)e[s]=e[s-1];e[s]=[r,n,a]},p.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return p.d(t,{a:t}),t},p.d=(e,t)=>{for(var r in t)p.o(t,r)&&!p.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},p.f={},p.e=e=>Promise.all(Object.keys(p.f).reduce(((t,r)=>(p.f[r](e,t),t)),[])),p.u=e=>(({127:"npm.microsoft",213:"npm.ajv",271:"npm.rxjs",343:"npm.analytics",415:"npm.uri-js",690:"npm.finos",713:"npm.consola",832:"npm.jsonforms",913:"npm.lodash"}[e]||e)+"."+e+"."+{50:"99b6e8ab92b196572545",127:"c2ce55cc34c771dd0e4f",147:"f5a63238e700b228ed81",160:"124ed2c5959b53210cbd",173:"a07cc3dded23c6eedc89",191:"0325d5c8852ae4921bad",211:"9bb272a936b1d1e91e6d",213:"0edf0dee76a3e8e16fa5",259:"2d238ae3cf8d8bdeba08",271:"c9ec2153535d20987f67",308:"d438c91caaf90811867f",338:"e0e537bcf9641a8f4d8f",343:"c50e91b7d34234ff5598",415:"4ffa54936c8e552b506d",495:"326dc00debf306d96fc4",623:"4eb55ef851cb4acfb42d",690:"a9cbfbb544d61a77cb75",713:"0a877d79045b2ced4b28",730:"d1c0de79e754bac881cb",755:"5544338a36d84c97807c",758:"476cd01897abb1315f11",817:"09800be1f64f8771bf91",832:"135f578bfa3e3426340a",913:"2f761568d7b7540de80a",914:"9c2af15b0145e5b35752"}[e]+".js"),p.miniCssF=e=>{},p.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),p.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),t={},r="@genesislcap/foundation-forms:",p.l=(e,n,a,o)=>{if(t[e])t[e].push(n);else{var i,f;if(void 0!==a)for(var l=document.getElementsByTagName("script"),s=0;s<l.length;s++){var d=l[s];if(d.getAttribute("src")==e||d.getAttribute("data-webpack")==r+a){i=d;break}}i||(f=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,p.nc&&i.setAttribute("nonce",p.nc),i.setAttribute("data-webpack",r+a),i.src=e),t[e]=[n];var u=(r,n)=>{i.onerror=i.onload=null,clearTimeout(c);var a=t[e];if(delete t[e],i.parentNode&&i.parentNode.removeChild(i),a&&a.forEach((e=>e(n))),r)return r(n)},c=setTimeout(u.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=u.bind(null,i.onerror),i.onload=u.bind(null,i.onload),f&&document.head.appendChild(i)}},p.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},p.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{p.S={};var e={},t={};p.I=(r,n)=>{n||(n=[]);var a=t[r];if(a||(a=t[r]={}),!(n.indexOf(a)>=0)){if(n.push(a),e[r])return e[r];p.o(p.S,r)||(p.S[r]={});var o=p.S[r],i="@genesislcap/foundation-forms",f=(e,t,r,n)=>{var a=o[e]=o[e]||{},f=a[t];(!f||!f.loaded&&(!n!=!f.eager?n:i>f.from))&&(a[t]={get:r,from:i,eager:!!n})},l=[];return"default"===r&&(f("@genesislcap/foundation-comms","10.2.0",(()=>Promise.all([p.e(271),p.e(690),p.e(343),p.e(147),p.e(758),p.e(338),p.e(50)]).then((()=>()=>p(9484))))),f("@genesislcap/foundation-utils","10.2.0",(()=>Promise.all([p.e(127),p.e(713),p.e(147),p.e(758),p.e(259)]).then((()=>()=>p(4259))))),f("@jsonforms/core","3.0.0",(()=>Promise.all([p.e(213),p.e(913),p.e(832),p.e(308),p.e(817)]).then((()=>()=>p(724))))),f("@microsoft/fast-element","1.11.0",(()=>p.e(127).then((()=>()=>p(1759))))),f("@microsoft/fast-foundation","2.47.0",(()=>Promise.all([p.e(127),p.e(147),p.e(495),p.e(623)]).then((()=>()=>p(2916))))),f("ajv","8.12.0",(()=>Promise.all([p.e(213),p.e(415),p.e(730)]).then((()=>()=>p(2115))))),f("tslib","1.14.1",(()=>p.e(127).then((()=>()=>p(6160))))),f("tslib","1.14.1",(()=>p.e(127).then((()=>()=>p(9726))))),f("tslib","2.5.0",(()=>p.e(191).then((()=>()=>p(1191)))))),e[r]=l.length?Promise.all(l).then((()=>e[r]=1)):1}}})(),p.p="/",n=e=>{var t=e=>e.split(".").map((e=>+e==e?+e:e)),r=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),n=r[1]?t(r[1]):[];return r[2]&&(n.length++,n.push.apply(n,t(r[2]))),r[3]&&(n.push([]),n.push.apply(n,t(r[3]))),n},a=(e,t)=>{e=n(e),t=n(t);for(var r=0;;){if(r>=e.length)return r<t.length&&"u"!=(typeof t[r])[0];var a=e[r],o=(typeof a)[0];if(r>=t.length)return"u"==o;var i=t[r],f=(typeof i)[0];if(o!=f)return"o"==o&&"n"==f||"s"==f||"u"==o;if("o"!=o&&"u"!=o&&a!=i)return a<i;r++}},o=(e,t)=>{if(0 in e){t=n(t);var r=e[0],a=r<0;a&&(r=-r-1);for(var i=0,f=1,l=!0;;f++,i++){var s,d,u=f<e.length?(typeof e[f])[0]:"";if(i>=t.length||"o"==(d=(typeof(s=t[i]))[0]))return!l||("u"==u?f>r&&!a:""==u!=a);if("u"==d){if(!l||"u"!=u)return!1}else if(l)if(u==d)if(f<=r){if(s!=e[f])return!1}else{if(a?s>e[f]:s<e[f])return!1;s!=e[f]&&(l=!1)}else if("s"!=u&&"n"!=u){if(a||f<=r)return!1;l=!1,f--}else{if(f<=r||d<u!=a)return!1;l=!1}else"s"!=u&&"n"!=u&&(l=!1,f--)}}var c=[],h=c.pop.bind(c);for(i=1;i<e.length;i++){var p=e[i];c.push(1==p?h()|h():2==p?h()&h():p?o(p,t):!h())}return!!h()},i=(e,t,r)=>{var n=e[t];return(t=Object.keys(n).reduce(((e,t)=>!o(r,t)||e&&!a(e,t)?e:t),0))&&n[t]},f=e=>(e.loaded=1,e.get()),l=(e=>function(t,r,n,a){var o=p.I(t);return o&&o.then?o.then(e.bind(e,t,p.S[t],r,n,a)):e(t,p.S[t],r,n,a)})(((e,t,r,n,a)=>{var o=t&&p.o(t,r)&&i(t,r,n);return o?f(o):a()})),s={},d={3147:()=>l("default","@microsoft/fast-element",[1,1,7,0],(()=>p.e(127).then((()=>()=>p(1759))))),5951:()=>l("default","@microsoft/fast-foundation",[1,2,33,2],(()=>Promise.all([p.e(127),p.e(495),p.e(914)]).then((()=>()=>p(2916))))),779:()=>l("default","tslib",[1,2,3,1],(()=>p.e(191).then((()=>()=>p(1191))))),50:()=>l("default","@genesislcap/foundation-utils",[1,10,2,0],(()=>Promise.all([p.e(127),p.e(713),p.e(259)]).then((()=>()=>p(4259))))),2308:()=>l("default","ajv",[1,8,6,1],(()=>Promise.all([p.e(213),p.e(415),p.e(160)]).then((()=>()=>p(2115))))),9495:()=>l("default","tslib",[1,2,3,1],(()=>p.e(127).then((()=>()=>p(9726))))),3554:()=>l("default","@jsonforms/core",[1,3,0,0],(()=>Promise.all([p.e(213),p.e(913),p.e(832),p.e(308),p.e(211)]).then((()=>()=>p(724))))),9013:()=>l("default","@genesislcap/foundation-comms",[1,10,2,0],(()=>Promise.all([p.e(271),p.e(690),p.e(343),p.e(338)]).then((()=>()=>p(9484)))))},u={50:[50],147:[3147],173:[3554,9013],308:[2308],495:[9495],758:[5951,779]},p.f.consumes=(e,t)=>{p.o(u,e)&&u[e].forEach((e=>{if(p.o(s,e))return t.push(s[e]);var r=t=>{s[e]=0,p.m[e]=r=>{delete p.c[e],r.exports=t()}},n=t=>{delete s[e],p.m[e]=r=>{throw delete p.c[e],t}};try{var a=d[e]();a.then?t.push(s[e]=a.then(r).catch(n)):r(a)}catch(e){n(e)}}))},(()=>{var e={443:0,258:0};p.f.j=(t,r)=>{var n=p.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else if(/^((25|30|75)8|147|495|50)$/.test(t))e[t]=0;else{var a=new Promise(((r,a)=>n=e[t]=[r,a]));r.push(n[2]=a);var o=p.p+p.u(t),i=new Error;p.l(o,(r=>{if(p.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;i.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",i.name="ChunkLoadError",i.type=a,i.request=o,n[1](i)}}),"chunk-"+t,t)}},p.O.j=t=>0===e[t];var t=(t,r)=>{var n,a,[o,i,f]=r,l=0;for(n in i)p.o(i,n)&&(p.m[n]=i[n]);if(f)var s=f(p);for(t&&t(r);l<o.length;l++)a=o[l],p.o(e,a)&&e[a]&&e[a][0](),e[o[l]]=0;return p.O(s)},r=self.webpackChunk_genesislcap_foundation_forms=self.webpackChunk_genesislcap_foundation_forms||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})();var b=p.O(void 0,[258],(()=>p(8451)));b=p.O(b),foundationForms=b})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack://@genesislcap/foundation-forms/./src/form.styles.ts","webpack://@genesislcap/foundation-forms/./src/utils/translation.ts","webpack://@genesislcap/foundation-forms/./src/jsonforms/json-forms.ts","webpack://@genesislcap/foundation-forms/./src/jsonforms/renderers/ControlWrapperRenderer.ts","webpack://@genesislcap/foundation-forms/./src/jsonforms/renderers/dispatch-renderer.ts","webpack://@genesislcap/foundation-forms/./src/form.template.ts","webpack://@genesislcap/foundation-forms/./src/jsonforms/testers/isOneOfBoolean.ts","webpack://@genesislcap/foundation-forms/./src/jsonforms/renderers/BooleanControlRenderer.ts","webpack://@genesislcap/foundation-forms/./src/jsonforms/renderers/RenderersRanks.ts","webpack://@genesislcap/foundation-forms/./src/jsonforms/testers/optionIs.ts","webpack://@genesislcap/foundation-forms/./src/jsonforms/testers/isOneOfOptionMultiselect.ts","webpack://@genesislcap/foundation-forms/./src/jsonforms/renderers/ConnectedMultiselectControlRenderer.ts","webpack://@genesislcap/foundation-forms/./src/jsonforms/renderers/ConnectedSelectControlRenderer.ts","webpack://@genesislcap/foundation-forms/./src/jsonforms/testers/isDate.ts","webpack://@genesislcap/foundation-forms/./src/jsonforms/renderers/DateControlRenderer.ts","webpack://@genesislcap/foundation-forms/./src/jsonforms/testers/isOneOfEnum.ts","webpack://@genesislcap/foundation-forms/./src/jsonforms/renderers/EnumControlRenderer.ts","webpack://@genesislcap/foundation-forms/./src/jsonforms/renderers/InvisibleControlRenderer.ts","webpack://@genesislcap/foundation-forms/./src/jsonforms/testers/isInvisible.ts","webpack://@genesislcap/foundation-forms/./src/jsonforms/renderers/LayoutRenderer.ts","webpack://@genesislcap/foundation-forms/./src/jsonforms/renderers/LayoutVertical2ColumnsRenderer.ts","webpack://@genesislcap/foundation-forms/./src/jsonforms/testers/isOneOfNumber.ts","webpack://@genesislcap/foundation-forms/./src/jsonforms/renderers/NumberControlRenderer.ts","webpack://@genesislcap/foundation-forms/./src/jsonforms/renderers/StringControlRenderer.ts","webpack://@genesislcap/foundation-forms/./src/form.ts","webpack://@genesislcap/foundation-forms/./src/utils/validation.ts"],"names":["foundationFormStyles","css","display","withBehaviors","forcedColorsStylesheetBehavior","MAP","genesisErrorTranslator","error","t","uischema","keyword","params","pattern","defaultErrorTranslator","template","html","when","x","jsonforms","dispatch","props","submitted","styles","errorTranslator","options","i18n","JSONForms","FASTElement","action","this","core","coreReducer","$emit","data","errors","validate","elements","forEach","e","validator","validateFn","path","scope","split","pop","label","newErrors","Array","isArray","push","schemaChanged","schema","uischemaToUse","Generate","console","log","additionalErrors","initialCore","Actions","validationMode","ajv","initCore","config","configReducer","undefined","i18nReducer","locale","translate","translateError","renderers","readonly","uischemaChanged","dataChanged","renderersChanged","validationModeChanged","ajvChanged","readonlyChanged","configChanged","enabled","visible","attr","mode","observable","customElement","name","ControlWrapperRendererTemplate","control","id","computedLabel","touched","showDescription","description","ControlWrapper","isDescriptionHidden","isFocused","showUnfocusedDescription","computeLabel","required","hideRequiredAsterisk","volatile","determinedRenderer","renderer","DispatchRenderer","createRenderer","rawProps","mapStateToJsonFormsRendererProps","rootSchema","stateMapper","dispatchMethods","mapDispatchToControlProps","useControl","mapper","jsonformsChanged","propsChanged","submittedChanged","onBlur","rendererEntry","r","tester","disconnectedCallback","super","foundationFormTemplate","jsonSchema","c","onChange","event","submissionErrors","_submit","submitting","isOneOfBoolean","or","isBooleanControl","schemaMatches","hasOwnProperty","oneOf","some","s","hasType","BooleanControlEntry","focus","placeholder","handleChange","target","checked","rankWith","mapStateToControlProps","optionIs","optionName","isControl","isOneOfOptionMultiselect","and","ConnectedMultiselectControlRendererEntry","detail","allOptionsResourceName","valueField","labelField","ConnectedSelectControlRendererEntry","value","isDate","DateControlRendererEntry","Intl","DateTimeFormat","year","month","day","format","valueAsNumber","isOneOfEnum","isEnumControl","EnumControlRendererEntry","find","option","repeat","state","ownProps","enum","map","enumToEnumOptionMapper","getTranslator","getI18nKeyPrefix","const","InvisibleControlEntry","context","hidden","LayoutRendererEntry","ctx","parent","isLayout","mapStateToLayoutProps","LayoutVertical2ColumnsEntry","uiSchema","type","hasTypeNumberOrInteger","isOneOfNumber","NumberControlRendererEntry","parseFloat","isNaN","StringControlRendererTemplate","isPassword","logger","createLogger","stringEntry","isStringControl","Form","FoundationElement","resourceNameChanged","resourceName","jsonSchemaResponse","connect","getJSONSchema","INBOUND","properties","DETAILS","removeDataProperties","Object","keys","key","includes","debug","payload","entries","length","formSubmitReq","commitEvent","ERROR","CODE","TEXT","toString","Connect","mustMatch","value1","value2","instancePath","message","schemaPath"],"mappings":"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","file":"173.173.xxxxxxxxxxxxxxxxxxxx.js","sourcesContent":["import { controlCornerRadius, designUnit, strokeWidth } from '@microsoft/fast-components';\nimport { css } from '@microsoft/fast-element';\nimport { display, forcedColorsStylesheetBehavior } from '@microsoft/fast-foundation';\nimport { SystemColors } from '@microsoft/fast-web-utilities';\n\nexport const foundationFormStyles = css`\n ${display('block')}\n :host {\n border: calc(${strokeWidth} * 1px) solid transparent;\n margin: 0;\n border-radius: calc(${controlCornerRadius} * 1px);\n padding: calc(${designUnit} * 1px);\n min-width: 64px;\n }\n\n .form-controls {\n display: grid;\n grid-gap: calc(${designUnit} * 1px);\n grid-column-gap: calc(${designUnit} * 7px);\n grid-template-columns: repeat(2, 1fr);\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n }\n\n .required::after {\n content: ' *';\n color: #f00;\n }\n\n .label {\n font-size: calc(${designUnit} * 1px + 0.7vmin);\n }\n\n .actions {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: calc(${designUnit} * 2px);\n }\n\n .error {\n border-bottom: 2px solid red;\n }\n\n .errors {\n color: #f00;\n font-size: 11px;\n width: calc(100% - 70px);\n }\n\n .submit-button {\n width: 70px;\n }\n`.withBehaviors(\n forcedColorsStylesheetBehavior(css`\n :host {\n background: ${SystemColors.Canvas};\n border-color: ${SystemColors.CanvasText};\n }\n `)\n);\n","import { defaultErrorTranslator, ErrorTranslator } from '@jsonforms/core';\n\n/**\n * @privateRemarks\n * This is a map of validation patterns to human readable error messages.\n * The idea is to add common patterns here so all apps get the human readable error messages by default instead of the AJV ones,\n * without having to implement the same custom i18n options in each app.\n */\nconst MAP: { [key in string]: string } = {\n '^[\\\\+]?[(]?[0-9]{3}[)]?[-\\\\s\\\\.]?[0-9]{3}[-\\\\s\\\\.]?[0-9]{4,6}$':\n 'Invalid phone number. Must match +###-###-######',\n};\n\nexport const genesisErrorTranslator: ErrorTranslator = (error, t, uischema): string => {\n if (error?.keyword === 'pattern') {\n return MAP[error.params.pattern] ?? 'Invalid pattern.';\n }\n return defaultErrorTranslator(error, t, uischema);\n};\n","import {\n Actions,\n configReducer,\n CoreActions,\n coreReducer,\n ErrorTranslator,\n Generate,\n i18nReducer,\n JsonFormsCore,\n JsonFormsRendererRegistryEntry,\n RendererProps,\n UISchemaElement,\n ValidationMode,\n} from '@jsonforms/core';\nimport {\n attr,\n css,\n customElement,\n FASTElement,\n html,\n observable,\n when,\n} from '@microsoft/fast-element';\nimport Ajv, { ErrorObject } from 'ajv';\nimport { genesisErrorTranslator } from '../utils/translation';\n\nconst template = html`\n <template>\n ${when(\n (x) => x.jsonforms && x.dispatch && x.props,\n html`\n <dispatch-renderer\n :jsonforms=${(x) => x.jsonforms}\n :dispatch=${(x) => x.dispatch}\n :props=${(x) => x.props}\n ?submitted=${(x) => x.submitted}\n />\n `\n )}\n </template>\n`;\nconst styles = css``;\n\nconst isObject = (elem: any): elem is Object => {\n return elem && typeof elem === 'object';\n};\n\nconst errorTranslator: ErrorTranslator = (error, t, uischema): string => {\n return (\n uischema?.options?.i18n?.error?.[error.keyword] ?? genesisErrorTranslator(error, t, uischema)\n );\n};\n\n@customElement({\n name: 'json-forms',\n template: template,\n styles: styles,\n})\nexport class JSONForms extends FASTElement {\n @attr({ mode: 'boolean' }) submitted: boolean;\n\n @observable jsonforms;\n @observable i18n;\n\n @observable schema;\n schemaChanged() {\n if (!this.schema) {\n return;\n }\n const uischemaToUse = this.uischema ?? Generate.uiSchema(this.schema);\n if (!this.uischema) {\n console.log('UI schema not provided. Auto generated schema:', uischemaToUse);\n }\n\n const additionalErrors: ErrorObject[] = this.validate(uischemaToUse);\n\n const initCore = (): JsonFormsCore => {\n const initialCore = {\n data: this.data,\n schema: this.schema,\n uischema: uischemaToUse,\n };\n const core = coreReducer(\n initialCore,\n Actions.init(this.data, this.schema, uischemaToUse, {\n validationMode: this.validationMode || 'ValidateAndShow',\n ajv: this.ajv,\n additionalErrors,\n })\n );\n return core;\n };\n\n this.jsonforms = {\n core: initCore(),\n config: configReducer(undefined, Actions.setConfig(this.config)),\n i18n: i18nReducer(\n this.i18n,\n Actions.updateI18n(\n this.i18n?.locale,\n this.i18n?.translate,\n this.i18n?.translateError || errorTranslator\n )\n ),\n renderers: this.renderers,\n readonly: this.readonly,\n };\n\n this.$emit('data-change', {\n data: this.jsonforms.core.data,\n errors: this.jsonforms.core.errors,\n });\n }\n @observable uischema: UISchemaElement;\n uischemaChanged() {\n this.schemaChanged();\n }\n\n @observable data;\n dataChanged() {\n this.schemaChanged();\n }\n\n @observable renderers: JsonFormsRendererRegistryEntry[];\n renderersChanged() {\n this.schemaChanged();\n }\n\n @observable validationMode: ValidationMode;\n validationModeChanged() {\n this.schemaChanged();\n }\n\n @observable ajv: Ajv;\n ajvChanged() {\n this.schemaChanged();\n }\n\n @attr({ mode: 'boolean' }) readonly: boolean;\n readonlyChanged() {\n this.schemaChanged();\n }\n\n @observable config: any;\n configChanged() {\n this.schemaChanged();\n }\n\n get props(): RendererProps {\n if (!this.schema && !this.uischema) {\n return undefined;\n }\n\n const uischema = this.uischema ?? Generate.uiSchema(this.schema);\n return {\n uischema,\n schema: this.schema,\n path: '',\n enabled: true,\n visible: true,\n };\n }\n\n dispatch = (action: CoreActions) => {\n this.jsonforms = {\n ...this.jsonforms,\n core: coreReducer(this.jsonforms.core as JsonFormsCore, action),\n };\n\n this.$emit('data-change', {\n data: this.jsonforms.core.data,\n errors: this.jsonforms.core.errors,\n });\n };\n\n /**\n * Performs client-side validation by running the validator defined in the UI schema.\n * @param uischema the UI schema\n * @returns ErrorObject[] that will be passed to JsonFormsCore as additionalErrors\n */\n validate = (uischema): ErrorObject[] => {\n const data = this.jsonforms?.core?.data;\n if (!data) return [];\n\n const errors = [];\n uischema?.elements?.forEach((e) => {\n const validator = e?.options?.validateFn;\n if (typeof validator !== 'function') return;\n const path = e?.scope?.split('/')?.pop();\n const label = e?.label;\n let newErrors = validator(data, path, label) ?? [];\n // the validator function is supposed to return an array of errors but let's not explode if it returns a single one\n if (!Array.isArray(newErrors)) {\n newErrors = [newErrors];\n }\n errors.push(...newErrors);\n });\n return errors;\n };\n}\n","import { computeLabel, isDescriptionHidden } from '@jsonforms/core';\nimport {\n html,\n css,\n when,\n observable,\n customElement,\n FASTElement,\n volatile,\n} from '@microsoft/fast-element';\n\nexport const ControlWrapperRendererTemplate = html`\n <template>\n ${when(\n (x) => x.control?.visible,\n html`\n <div class=\"wrapperRoot\" id=${(x) => x.control.id + x.control.uischema.scope}>\n <div for=\"${(x) => x.control.id + '-input'}\" class=\"label\">${(x) => x.computedLabel}</div>\n <div class=\"wrapper\">\n <slot></slot>\n </div>\n <div class=\"${(x) => (x.control.errors && x.touched ? 'error' : 'description')}\">\n ${(x) =>\n x.control.errors && x.touched\n ? x.control.errors\n : x.showDescription\n ? x.control.description\n : ''}\n </div>\n </div>\n `\n )}\n </template>\n`;\n\nconst styles = css`\n .wrapperRoot {\n margin-bottom: 20px;\n }\n\n .label {\n color: rgb(135, 155, 166);\n font-family: Roboto-Medium, sans-serif;\n font-style: normal;\n margin-bottom: 4px;\n display: flex;\n justify-content: space-between;\n }\n\n .error {\n font-size: 12px;\n color: #f9644d;\n margin-left: 10px;\n }\n\n .wrapper {\n display: flex;\n width: 100%;\n }\n`;\n\n@customElement({\n name: 'control-wrapper',\n styles,\n template: ControlWrapperRendererTemplate,\n})\nexport class ControlWrapper extends FASTElement {\n @observable control;\n @observable touched;\n\n @volatile\n get showDescription() {\n return !isDescriptionHidden(\n this.control.visible,\n this.control.description,\n this.control.isFocused,\n !!this.control.config.showUnfocusedDescription\n );\n }\n\n @volatile\n get computedLabel() {\n return computeLabel(\n this.control.label,\n this.control.required,\n !!this.control.config.hideRequiredAsterisk\n );\n }\n}\n","import { mapDispatchToControlProps, mapStateToJsonFormsRendererProps } from '@jsonforms/core';\nimport { FASTElement, html, css, observable, attr, customElement } from '@microsoft/fast-element';\nimport maxBy from 'lodash/maxBy';\n\nconst template = html`\n <template>${(x) => x.determinedRenderer.renderer}</template>\n`;\nconst styles = css``;\n\nconst useControl = (props, jsonforms, dispatch, stateMapper) => {\n const control = {\n ...stateMapper({ jsonforms }, props),\n };\n\n const dispatchMethods = mapDispatchToControlProps?.(dispatch);\n\n return {\n ...control,\n ...dispatchMethods,\n };\n};\n\n@customElement({\n name: 'dispatch-renderer',\n template: template,\n styles: styles,\n})\nexport class DispatchRenderer extends FASTElement {\n @observable jsonforms;\n jsonformsChanged() {\n this.createRenderer();\n }\n\n @observable props;\n propsChanged() {\n this.createRenderer();\n }\n @observable touched;\n @attr({ mode: 'boolean' }) submitted: boolean;\n submittedChanged() {\n this.touched = !!this.submitted;\n }\n @observable dispatch;\n @observable control;\n @observable renderer;\n\n createRenderer = () => {\n if (!this.jsonforms || !this.dispatch || !this.props) {\n return;\n }\n const rawProps = mapStateToJsonFormsRendererProps({ jsonforms: this.jsonforms }, this.props);\n\n const { rootSchema, ...renderer } = rawProps;\n\n this.renderer = renderer;\n\n this.control = useControl(\n this.props,\n this.jsonforms,\n this.dispatch,\n // @ts-ignore\n this.determinedRenderer.mapper\n );\n };\n\n onBlur() {\n this.touched = true;\n }\n\n get determinedRenderer() {\n const rendererEntry = maxBy(this.renderer.renderers, (r) =>\n // @ts-ignore\n r.tester(this.renderer.uischema, this.renderer.schema)\n );\n if (\n rendererEntry === undefined ||\n // @ts-ignore\n rendererEntry.tester(this.renderer.uischema, this.renderer.schema) === -1\n ) {\n console.error('UnknownRenderer this.renderer.uischema', this.renderer.uischema);\n return { renderer: 'UnknownRenderer' };\n } else {\n return rendererEntry;\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n this.touched = false;\n this.submitted = false;\n }\n}\n","import { html, when } from '@microsoft/fast-element';\nimport type { Form } from './form';\nimport { JSONForms } from './jsonforms/json-forms';\nimport { ControlWrapper } from './jsonforms/renderers/ControlWrapperRenderer';\nimport { DispatchRenderer } from './jsonforms/renderers/dispatch-renderer';\n\nJSONForms;\nControlWrapper;\nDispatchRenderer;\n\nexport const foundationFormTemplate = html<Form>`\n <template>\n <json-forms\n ?readonly=${(x) => x.readonly}\n ?submitted=${(x) => x.submitted}\n :renderers=${(x) => x.renderers}\n :uischema=${(x) => x.uischema}\n :schema=${(x) => x.jsonSchema}\n :data=${(x) => x.data}\n @data-change=${(x, c) => x.onChange(c.event as CustomEvent)}\n ></json-forms>\n ${when(\n (x) => !x.readonly,\n html<Form>`\n <div class=\"actions\">\n <div class=\"errors\">${(x) => x.submissionErrors}</div>\n <fast-button\n @click=\"${(x) => x._submit()}\"\n ?disable=${(x) => !x.submitting}\n class=\"submit-button\"\n appearance=\"accent\"\n >\n Submit\n </fast-button>\n </div>\n `\n )}\n </template>\n`;\n","import { hasType, isBooleanControl, or, schemaMatches } from '@jsonforms/core';\n\nexport const isOneOfBoolean = or(\n isBooleanControl,\n schemaMatches(\n (schema) =>\n schema.hasOwnProperty('oneOf') && (schema.oneOf as any[]).some((s) => hasType(s, 'boolean'))\n )\n);\n","import { html } from '@microsoft/fast-element';\nimport { mapStateToControlProps, rankWith } from '@jsonforms/core';\nimport { DispatchRenderer } from './dispatch-renderer';\nimport { RendererEntry } from '../../types';\nimport { isOneOfBoolean } from '../testers/isOneOfBoolean';\nimport { BOOLEAN_CONTROL_RANK } from './RenderersRanks';\n\nexport const BooleanControlRendererTemplate = html<DispatchRenderer>`\n <template>\n <control-wrapper\n :control=${(x) => x.control}\n :touched=${(x) => x.touched}\n ?submitted=${(x) => x.submitted}\n >\n <zero-checkbox\n :checked=${(x) => x.control.data}\n ?disabled=${(x) => !x.control.enabled}\n :autofocus=${(x) => x.control.config.focus}\n :placeholder=${(x) => x.control.config.placeholder}\n @change=${(x, c) => {\n x.control.handleChange(x.control.path, (c.event.target as any).checked);\n x.onBlur();\n }}\n ></zero-checkbox>\n </control-wrapper>\n </template>\n`;\n\nexport const BooleanControlEntry: RendererEntry = {\n renderer: BooleanControlRendererTemplate,\n tester: rankWith(BOOLEAN_CONTROL_RANK, isOneOfBoolean),\n mapper: mapStateToControlProps,\n};\n","export const NUMBER_CONTROL_RANK = 3;\nexport const BOOLEAN_CONTROL_RANK = 3;\nexport const MULTISELECT_CONTROL_RANK = 4;\nexport const ENUM_CONTROL_RANK = 3;\nexport const SELECT_CONTROL_RANK = 4;\nexport const DATE_CONTROL_RANK = 4;\nexport const LAYOUT_RANK = 2;\nexport const LAYOUT2COLUMNS_RANK = 2;\nexport const INVISIBLE_CONTROL_RANK = 5;\n","import { isControl, Tester, UISchemaElement } from '@jsonforms/core';\n\nexport const optionIs =\n (optionName: string): Tester =>\n (uischema: UISchemaElement): boolean => {\n if (!uischema || !isControl(uischema)) {\n return false;\n }\n\n const options = uischema.options;\n const result = !!(options && options[optionName]);\n return result;\n };\n","import { and, hasType, or, schemaMatches } from '@jsonforms/core';\nimport { optionIs } from './optionIs';\n\nexport const isOneOfOptionMultiselect = and(\n optionIs('allOptionsResourceName'),\n or(\n schemaMatches((schema) => hasType(schema, 'array')),\n schemaMatches(\n (schema) =>\n schema.hasOwnProperty('oneOf') && (schema.oneOf as any[]).some((s) => hasType(s, 'array'))\n )\n )\n);\n","import { mapStateToControlProps, rankWith } from '@jsonforms/core';\nimport { html } from '@microsoft/fast-element';\nimport { DispatchRenderer } from './dispatch-renderer';\nimport { RendererEntry } from '../../types';\nimport { isOneOfOptionMultiselect } from '../testers/isOneOfOptionMultiselect';\nimport { MULTISELECT_CONTROL_RANK } from './RenderersRanks';\n\nexport const ConnectedMultiselectControlRendererTemplate = html<DispatchRenderer>`\n <template>\n <control-wrapper\n :control=${(x) => x.control}\n :touched=${(x) => x.touched}\n ?submitted=${(x) => x.submitted}\n >\n <zero-multiselect\n style=\"width: 100%\"\n :selectedOptions=${(x) => x.control.data || []}\n @selectionChange=${(x, c) => {\n x.control.handleChange(x.control.path, (c.event as any).detail);\n x.onBlur();\n }}\n >\n <multiselect-datasource\n resourceName=${(x) => x.control.uischema.options?.allOptionsResourceName}\n value-field=${(x) => x.control.uischema.options?.valueField}\n label-field=${(x) => x.control.uischema.options?.labelField}\n ></multiselect-datasource>\n </zero-multiselect>\n </control-wrapper>\n </template>\n`;\n\nexport const ConnectedMultiselectControlRendererEntry: RendererEntry = {\n renderer: ConnectedMultiselectControlRendererTemplate,\n tester: rankWith(MULTISELECT_CONTROL_RANK, isOneOfOptionMultiselect),\n mapper: mapStateToControlProps,\n};\n","import { mapStateToControlProps, or, rankWith } from '@jsonforms/core';\nimport { html } from '@microsoft/fast-element';\nimport { DispatchRenderer } from './dispatch-renderer';\nimport { optionIs } from '../testers/optionIs';\nimport { SELECT_CONTROL_RANK } from './RenderersRanks';\n\nexport const ConnectedSelectControlRendererTemplate = html<DispatchRenderer>`\n <template>\n <control-wrapper\n :control=${(x) => x.control}\n :touched=${(x) => x.touched}\n ?submitted=${(x) => x.submitted}\n >\n <zero-combobox\n style=\"width: 100%\"\n placeholder=${(x) => x.control.label}\n ?disabled=${(x) => !x.control.enabled}\n :value=${(x) => x.control.data || ''}\n @value-change=${(x, c) => {\n const value = (c.event as any).detail?.value;\n x.control.handleChange(x.control.path, value);\n x.onBlur();\n }}\n >\n <options-datasource\n resourceName=${(x) => x.control.uischema.options?.allOptionsResourceName}\n value-field=${(x) => x.control.uischema.options?.valueField}\n label-field=${(x) => x.control.uischema.options?.labelField}\n :data=${(x) => x.control.uischema.options?.data}\n :initialSelectedValue=${(x) => x.control.data}\n ></options-datasource>\n </zero-combobox>\n </control-wrapper>\n </template>\n`;\n\nexport const ConnectedSelectControlRendererEntry: any = {\n renderer: ConnectedSelectControlRendererTemplate,\n tester: rankWith(SELECT_CONTROL_RANK, or(optionIs('allOptionsResourceName'), optionIs('data'))),\n mapper: mapStateToControlProps,\n};\n","import { schemaMatches } from '@jsonforms/core';\n\nexport const isDate = schemaMatches((schema) => schema.description === 'org.joda.time.DateTime');\n","import { html } from '@microsoft/fast-element';\nimport { mapStateToControlProps, rankWith } from '@jsonforms/core';\nimport { isDate } from '../testers/isDate';\nimport { DATE_CONTROL_RANK } from './RenderersRanks';\n\nexport const DateControlRendererTemplate = html`\n <template>\n <control-wrapper\n :control=${(x) => x.control}\n :touched=${(x) => x.touched}\n ?submitted=${(x) => x.submitted}\n >\n <zero-text-field\n :value=${(x) =>\n x.control.data === undefined || x.control.data === null\n ? ''\n : new Intl.DateTimeFormat('fr-CA', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n }).format(x.control.data)}\n @change=\"${(x, c) =>\n x.control.handleChange(x.control.path, (c.event.target as any).control.valueAsNumber)}}\"\n id=${(x) => x.control.path}\n type=\"date\"\n data-test-id=${(x) => x.control.path}\n ?required=${(x) => x.control.required}\n ?disabled=${(x) => !x.control.enabled}\n @blur=${(x) => x.onBlur()}\n style=\"width: 100%\"\n ></zero-text-field>\n </control-wrapper>\n </template>\n`;\n\nexport const DateControlRendererEntry: any = {\n renderer: DateControlRendererTemplate,\n tester: rankWith(DATE_CONTROL_RANK, isDate),\n mapper: mapStateToControlProps, // TODO: change mapper to handle dates instead of doing it in the template\n};\n","import { isEnumControl, or, schemaMatches } from '@jsonforms/core';\n\nexport const isOneOfEnum = or(\n isEnumControl,\n schemaMatches(\n (schema) =>\n schema.hasOwnProperty('oneOf') &&\n (schema.oneOf as any[]).some((s) => s.hasOwnProperty('enum'))\n )\n);\n","import {\n EnumOption,\n enumToEnumOptionMapper,\n getI18nKeyPrefix,\n getTranslator,\n JsonFormsState,\n mapStateToControlProps,\n OwnPropsOfControl,\n OwnPropsOfEnum,\n rankWith,\n StatePropsOfControl,\n} from '@jsonforms/core';\nimport { html, repeat } from '@microsoft/fast-element';\nimport { isOneOfEnum } from '../testers/isOneOfEnum';\nimport { ENUM_CONTROL_RANK } from './RenderersRanks';\n\n// overrides https://github.com/eclipsesource/jsonforms/blob/69441cdfc48f359850d87fa4b842856f1f139eb2/packages/core/src/util/renderer.ts#L515\n// to allow mapping of enums that come as oneOf\nexport const mapStateToEnumControlProps = (\n state: JsonFormsState,\n ownProps: OwnPropsOfControl & OwnPropsOfEnum\n): StatePropsOfControl & OwnPropsOfEnum => {\n const props: StatePropsOfControl = mapStateToControlProps(state, ownProps);\n const options: EnumOption[] =\n ownProps.options ||\n (\n props.schema.enum || (props.schema.oneOf as any[]).find((x) => x.hasOwnProperty('enum')).enum\n ).map((e) =>\n enumToEnumOptionMapper(\n e,\n getTranslator()(state),\n getI18nKeyPrefix(props.schema, props.uischema, props.path)\n )\n ) ||\n (props.schema.const && [\n enumToEnumOptionMapper(\n props.schema.const,\n getTranslator()(state),\n getI18nKeyPrefix(props.schema, props.uischema, props.path)\n ),\n ]);\n return {\n ...props,\n options,\n };\n};\n\nexport const EnumControlRendererTemplate = html`\n <template>\n <control-wrapper\n :control=${(x) => x.control}\n :touched=${(x) => x.touched}\n ?submitted=${(x) => x.submitted}\n >\n <zero-combobox\n style=\"width: 100%\"\n ?disabled=${(x) => !x.control.enabled}\n :value=${(x) =>\n x.control.options.find((option) => option.value === x.control.data)?.label || ''}\n @change=${(x, c) => {\n x.control.handleChange(\n x.control.path,\n x.control.options.find((option) => option.label === (c.event.target as any).value)\n ?.value\n );\n x.onBlur();\n }}\n >\n ${repeat(\n (x) => x.control.options,\n html`\n <zero-option>${(x) => x.label}</zero-option>\n `\n )}\n </zero-combobox>\n </control-wrapper>\n </template>\n`;\n\nexport const EnumControlRendererEntry: any = {\n renderer: EnumControlRendererTemplate,\n tester: rankWith(ENUM_CONTROL_RANK, isOneOfEnum),\n mapper: mapStateToEnumControlProps,\n};\n","import { mapStateToControlProps, rankWith } from '@jsonforms/core';\nimport { html } from '@microsoft/fast-element';\nimport { RendererEntry } from '../../types';\nimport { isInvisible } from '../testers/isInvisible';\nimport { DispatchRenderer } from './dispatch-renderer';\nimport { INVISIBLE_CONTROL_RANK } from './RenderersRanks';\n\nexport const InvisibleControlRendererTemplate = html<DispatchRenderer>`\n <template>\n <pre\n :value=${(x) => x.control.data || ''}\n id=${(x) => x.control.path}\n data-test-id=${(x) => x.control.path}\n style=\"display: none\"\n ></pre>\n </template>\n`;\n\nexport const InvisibleControlEntry: RendererEntry = {\n renderer: InvisibleControlRendererTemplate,\n tester: rankWith(INVISIBLE_CONTROL_RANK, isInvisible),\n mapper: mapStateToControlProps,\n};\n","import { JsonSchema, Tester, TesterContext, UISchemaElement } from '@jsonforms/core';\n\nexport const isInvisible: Tester = (\n uischema: UISchemaElement,\n schema: JsonSchema,\n context: TesterContext\n): boolean => {\n return uischema?.options?.hidden ?? false;\n};\n","import { isLayout, mapStateToLayoutProps, rankWith } from '@jsonforms/core';\nimport { html, repeat } from '@microsoft/fast-element';\nimport { LAYOUT_RANK } from './RenderersRanks';\n\nexport const LayoutRendererTemplate = html`\n <template>\n <div>\n ${repeat(\n (x) => x.control.uischema.elements,\n html`\n <dispatch-renderer\n ?submitted=${(x, ctx) => ctx.parent.submitted}\n :dispatch=${(x, ctx) => ctx.parent.dispatch}\n :jsonforms=${(x, ctx) => ctx.parent.jsonforms}\n :props=${(x, ctx) => ({\n uischema: x,\n schema: ctx.parent.control.schema,\n renderers: ctx.parent.control.renderers,\n path: ctx.parent.control.path,\n enabled: ctx.parent.control.enabled,\n })}\n ></dispatch-renderer>\n `\n )}\n </div>\n </template>\n`;\n\nexport const LayoutRendererEntry: any = {\n renderer: LayoutRendererTemplate,\n tester: rankWith(LAYOUT_RANK, isLayout),\n mapper: mapStateToLayoutProps,\n};\n","import { mapStateToLayoutProps, rankWith } from '@jsonforms/core';\nimport { html, repeat } from '@microsoft/fast-element';\nimport { LAYOUT2COLUMNS_RANK } from './RenderersRanks';\n\nexport const LayoutVertical2ColumnsRendererTemplate = html`\n <template>\n <div\n style=\"max-width:600px;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: space-between;\"\n >\n ${repeat(\n (x) => x.control.uischema.elements,\n html`\n <div style=\"width: 49%\">\n <dispatch-renderer\n ?submitted=${(x, ctx) => ctx.parent.submitted}\n :dispatch=${(x, ctx) => ctx.parent.dispatch}\n :jsonforms=${(x, ctx) => ctx.parent.jsonforms}\n :props=${(x, ctx) => ({\n uischema: x,\n schema: ctx.parent.control.schema,\n renderers: ctx.parent.control.renderers,\n path: ctx.parent.control.path,\n enabled: ctx.parent.control.enabled,\n })}\n ></dispatch-renderer>\n </div>\n `\n )}\n </div>\n </template>\n`;\n\nexport const LayoutVertical2ColumnsEntry: any = {\n renderer: LayoutVertical2ColumnsRendererTemplate,\n tester: rankWith(LAYOUT2COLUMNS_RANK, (uiSchema) => uiSchema.type === 'LayoutVertical2Columns'),\n mapper: mapStateToLayoutProps,\n};\n","import { hasType, schemaMatches } from '@jsonforms/core';\nconst hasTypeNumberOrInteger = (schema) => hasType(schema, 'number') || hasType(schema, 'integer');\n\nexport const isOneOfNumber = schemaMatches(\n (schema) =>\n hasTypeNumberOrInteger(schema) ||\n (schema.hasOwnProperty('oneOf') &&\n (schema.oneOf as any[]).some((s) => hasTypeNumberOrInteger(s)))\n);\n","import { html } from '@microsoft/fast-element';\nimport { mapStateToControlProps, rankWith } from '@jsonforms/core';\nimport { isOneOfNumber } from '../testers/isOneOfNumber';\nimport { NUMBER_CONTROL_RANK } from './RenderersRanks';\n\nexport const NumberControlRendererTemplate = html`\n <template>\n <control-wrapper\n :control=${(x) => x.control}\n :touched=${(x) => x.touched}\n ?submitted=${(x) => x.submitted}\n >\n <zero-text-field\n :value=${(x) => (x.control.data === undefined ? '' : x.control.data)}\n @change=${(x, c) => {\n const value = parseFloat((c.event.target as any).value);\n return x.control.handleChange(x.control.path, !isNaN(value) ? value : undefined);\n }}\n placeholder=${(x) => x.control.label}\n id=${(x) => x.control.path}\n data-test-id=${(x) => x.control.path}\n ?required=${(x) => x.control.required}\n ?disabled=${(x) => !x.control.enabled}\n @blur=${(x) => x.onBlur()}\n style=\"width: 100%\"\n ></zero-text-field>\n </control-wrapper>\n </template>\n`;\n\nexport const NumberControlRendererEntry: any = {\n renderer: NumberControlRendererTemplate,\n tester: rankWith(NUMBER_CONTROL_RANK, isOneOfNumber),\n mapper: mapStateToControlProps,\n};\n","import { html } from '@microsoft/fast-element';\nimport { DispatchRenderer } from './dispatch-renderer';\n\n// <pre>${(x) => JSON.stringify(x.control, null, 2)}</pre>\n\nexport const StringControlRendererTemplate = html<DispatchRenderer>`\n <template>\n <control-wrapper\n :control=${(x) => x.control}\n :touched=${(x) => x.touched}\n ?submitted=${(x) => x.submitted}\n >\n <zero-text-field\n type=${(x) => (x.control.uischema?.options?.isPassword ? 'password' : 'text')}\n :value=${(x) => x.control.data || ''}\n @change=${(x, c) => x.control.handleChange(x.control.path, (c.event.target as any).value)}\n placeholder=${(x) => x.control.label}\n id=${(x) => x.control.path}\n data-test-id=${(x) => x.control.path}\n ?required=${(x) => x.control.required}\n ?disabled=${(x) => !x.control.enabled}\n style=\"width: 100%\"\n @blur=${(x) => x.onBlur()}\n ></zero-text-field>\n </control-wrapper>\n </template>\n`;\n","import { Connect } from '@genesislcap/foundation-comms';\nimport { attr, customElement, observable } from '@microsoft/fast-element';\nimport { FoundationElement } from '@microsoft/fast-foundation';\nimport { foundationFormStyles as styles } from './form.styles';\nimport { foundationFormTemplate as template } from './form.template';\n\nimport { createLogger } from '@genesislcap/foundation-utils';\nimport {\n isControl,\n isStringControl,\n mapStateToControlProps,\n rankWith,\n UISchemaElement,\n} from '@jsonforms/core';\nimport { JSONSchema7 } from 'json-schema';\nimport { BooleanControlEntry } from './jsonforms/renderers/BooleanControlRenderer';\nimport { ConnectedMultiselectControlRendererEntry } from './jsonforms/renderers/ConnectedMultiselectControlRenderer';\nimport { ConnectedSelectControlRendererEntry } from './jsonforms/renderers/ConnectedSelectControlRenderer';\nimport { DateControlRendererEntry } from './jsonforms/renderers/DateControlRenderer';\nimport { EnumControlRendererEntry } from './jsonforms/renderers/EnumControlRenderer';\nimport { InvisibleControlEntry } from './jsonforms/renderers/InvisibleControlRenderer';\nimport { LayoutRendererEntry } from './jsonforms/renderers/LayoutRenderer';\nimport { LayoutVertical2ColumnsEntry } from './jsonforms/renderers/LayoutVertical2ColumnsRenderer';\nimport { NumberControlRendererEntry } from './jsonforms/renderers/NumberControlRenderer';\nimport { StringControlRendererTemplate } from './jsonforms/renderers/StringControlRenderer';\nimport { RendererEntry } from './types';\n\nexport const logger = createLogger('foundation-form');\n\nconst stringEntry: any = {\n renderer: StringControlRendererTemplate,\n tester: rankWith(2, isStringControl),\n mapper: mapStateToControlProps,\n};\n\nconst fallbackEntry: any = {\n renderer: StringControlRendererTemplate,\n tester: rankWith(1, isControl),\n mapper: mapStateToControlProps,\n};\n\nconst renderers = [\n fallbackEntry,\n stringEntry,\n BooleanControlEntry,\n LayoutVertical2ColumnsEntry,\n LayoutRendererEntry,\n NumberControlRendererEntry,\n ConnectedMultiselectControlRendererEntry,\n EnumControlRendererEntry,\n ConnectedSelectControlRendererEntry,\n DateControlRendererEntry,\n InvisibleControlEntry,\n];\n/**\n * Foundation form component for automatically generated forms based on json schema\n * obtained from the api, supplied initial data or supplied JSON schema.\n * Allowing customisable form elements using UI schema and set of custom renderers\n * @beta\n */\n\n@customElement({\n name: 'foundation-form',\n template,\n styles,\n})\nexport class Form extends FoundationElement {\n /**\n * Name of the backend resource which will provide metadata\n * used to generate form and later used for submitting data\n * @public\n */\n @attr resourceName: string;\n private async resourceNameChanged() {\n if (this.resourceName) {\n const jsonSchemaResponse = await this.connect.getJSONSchema(this.resourceName);\n this.jsonSchema = jsonSchemaResponse?.INBOUND?.properties?.DETAILS as JSONSchema7;\n }\n\n this.removeDataProperties();\n }\n\n private removeDataProperties() {\n if (!this.jsonSchema || !this.data) {\n return;\n }\n // removes data provided to the form that isn't part of the schema\n const properties = Object.keys(this.jsonSchema.properties);\n Object.keys(this.data).forEach((key) => {\n if (!properties.includes(key)) {\n delete this.data[key];\n logger.debug(\n 'Removing key ',\n key,\n 'from provided data because it is not part of the payload'\n );\n }\n });\n }\n\n /**\n * UI schema used to define configuration of the layout and elements in the form\n * Check {@link UiSchemaElement} for possible options\n *\n * @remarks\n * If not provided will be autogenerated based on json schema or initial data\n *\n * @example\n * Here's a simple example:\n * ```\n * const sampleUISchema = {\n * type: 'VerticalLayout',\n * elements: [\n * {\n * type: 'Control',\n * scope: '#/properties/QUANTITY',\n * label: 'Quantity',\n * },\n * {\n * type: 'Control',\n * scope: '#/properties/INSTRUMENT_ID',\n * options: {\n * allOptionsResourceName: 'INSTRUMENT',\n * valueField: 'INSTRUMENT_ID',\n * labelField: 'INSTRUMENT_ID',\n * },\n * label: 'Instrument',\n * },\n * {\n * type: 'Control',\n * scope: '#/properties/SIDE',\n * label: 'Side',\n * },\n * ],\n * };\n * ```\n * @public\n */\n @observable uischema: UISchemaElement;\n /**\n * Allows to provide set of renderers used by the form. If not provided it will default to text-field inputs\n * @public\n */\n @observable renderers: RendererEntry[] = renderers;\n /**\n * Alternatively to providing {@link Form.resourceName} you can hardcode the JSON schema on the client.\n * @public\n * @remarks\n * Use this when you want to avoid fetching metadata from the server but\n * be aware that it could get out of sync if metadata changes on the server\n */\n @observable jsonSchema: JSONSchema7;\n\n private errors: any[] = [];\n @Connect private connect!: Connect;\n /**\n * Initial data for the form\n * @public\n */\n @observable data = {};\n\n /**\n * @internal\n */\n @observable submitting: boolean;\n /**\n * @internal\n */\n @observable submitted: boolean;\n /**\n * @internal\n */\n @observable submissionErrors: string;\n\n @attr({ mode: 'boolean' }) readonly: boolean;\n\n /**\n * @internal\n */\n async _submit() {\n const payload = { ...this.data };\n this.submissionErrors = '';\n this.submitted = true;\n\n logger.debug({ payload, errors: this.errors });\n this.$emit('submit', { payload, errors: this.errors });\n if (Object.entries(payload).length !== 0 && !this.errors.length && this.resourceName) {\n this.submitting = true;\n const formSubmitReq = await this.connect.commitEvent(this.resourceName, { DETAILS: payload });\n this.submitting = false;\n if (formSubmitReq.ERROR) {\n this.$emit('submit-failure', { payload, errors: formSubmitReq.ERROR });\n this.submissionErrors = formSubmitReq.ERROR.map((x) => x.CODE + ': ' + x.TEXT).toString();\n } else {\n this.$emit('submit-success', { payload });\n }\n }\n }\n\n /**\n * @internal\n */\n onChange(event: CustomEvent) {\n logger.debug({ event });\n if (event.detail) {\n this.data = event.detail.data;\n this.errors = event.detail.errors;\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n this.submitted = false;\n this.submissionErrors = '';\n this.jsonSchema = undefined;\n this.resourceName = undefined;\n this.data = {};\n }\n}\n","/**\n * Ensures the value of the current field (the one the validator is on) matches the one of the target field.\n * @param target any other field\n * @returns a validator function that will be run by the smart form during the client-side validation stage\n */\nexport const mustMatch = (target: string) => {\n return (data, path, label) => {\n if (!path?.length || !target?.length || !data) return [];\n\n const value1 = data?.[target];\n const value2 = data?.[path];\n\n if (!value1?.length || !value2?.length || value1 === value2) return [];\n\n return [\n {\n instancePath: `/${path}`,\n message: `Needs to match ${target}`,\n schemaPath: '',\n keyword: '',\n params: {},\n },\n ];\n };\n};\n"],"sourceRoot":""}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(self.webpackChunk_genesislcap_foundation_forms=self.webpackChunk_genesislcap_foundation_forms||[]).push([[
|
|
1
|
+
(self.webpackChunk_genesislcap_foundation_forms=self.webpackChunk_genesislcap_foundation_forms||[]).push([[173],{173:(e,t,o)=>{"use strict";o.r(t),o.d(t,{Form:()=>G,genesisErrorTranslator:()=>h,logger:()=>U,mustMatch:()=>J});var r=o(779),a=o(9013),s=o(3147),n=o(5951),i=o(2193),l=o(8775);const d=s.css`
|
|
2
2
|
${(0,n.display)("block")}
|
|
3
3
|
:host {
|
|
4
4
|
border: calc(${i.H} * 1px) solid transparent;
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
</div>
|
|
131
131
|
`)}
|
|
132
132
|
</template>
|
|
133
|
-
`;var O=o(
|
|
133
|
+
`;var O=o(50);const T=(0,c.or)(c.isBooleanControl,(0,c.schemaMatches)((e=>e.hasOwnProperty("oneOf")&&e.oneOf.some((e=>(0,c.hasType)(e,"boolean")))))),k={renderer:s.html`
|
|
134
134
|
<template>
|
|
135
135
|
<control-wrapper
|
|
136
136
|
:control=${e=>e.control}
|
|
@@ -230,6 +230,15 @@
|
|
|
230
230
|
</control-wrapper>
|
|
231
231
|
</template>
|
|
232
232
|
`,tester:(0,c.rankWith)(3,D),mapper:(e,t)=>{const o=(0,c.mapStateToControlProps)(e,t),r=t.options||(o.schema.enum||o.schema.oneOf.find((e=>e.hasOwnProperty("enum"))).enum).map((t=>(0,c.enumToEnumOptionMapper)(t,(0,c.getTranslator)()(e),(0,c.getI18nKeyPrefix)(o.schema,o.uischema,o.path))))||o.schema.const&&[(0,c.enumToEnumOptionMapper)(o.schema.const,(0,c.getTranslator)()(e),(0,c.getI18nKeyPrefix)(o.schema,o.uischema,o.path))];return Object.assign(Object.assign({},o),{options:r})}},M={renderer:s.html`
|
|
233
|
+
<template>
|
|
234
|
+
<pre
|
|
235
|
+
:value=${e=>e.control.data||""}
|
|
236
|
+
id=${e=>e.control.path}
|
|
237
|
+
data-test-id=${e=>e.control.path}
|
|
238
|
+
style="display: none"
|
|
239
|
+
></pre>
|
|
240
|
+
</template>
|
|
241
|
+
`,tester:(0,c.rankWith)(5,((e,t,o)=>{var r,a;return null!==(a=null===(r=null==e?void 0:e.options)||void 0===r?void 0:r.hidden)&&void 0!==a&&a})),mapper:c.mapStateToControlProps},F={renderer:s.html`
|
|
233
242
|
<template>
|
|
234
243
|
<div>
|
|
235
244
|
${(0,s.repeat)((e=>e.control.uischema.elements),s.html`
|
|
@@ -242,7 +251,7 @@
|
|
|
242
251
|
`)}
|
|
243
252
|
</div>
|
|
244
253
|
</template>
|
|
245
|
-
`,tester:(0,c.rankWith)(2,c.isLayout),mapper:c.mapStateToLayoutProps},
|
|
254
|
+
`,tester:(0,c.rankWith)(2,c.isLayout),mapper:c.mapStateToLayoutProps},B={renderer:s.html`
|
|
246
255
|
<template>
|
|
247
256
|
<div
|
|
248
257
|
style="max-width:600px;
|
|
@@ -263,7 +272,7 @@
|
|
|
263
272
|
`)}
|
|
264
273
|
</div>
|
|
265
274
|
</template>
|
|
266
|
-
`,tester:(0,c.rankWith)(2,(e=>"LayoutVertical2Columns"===e.type)),mapper:c.mapStateToLayoutProps},
|
|
275
|
+
`,tester:(0,c.rankWith)(2,(e=>"LayoutVertical2Columns"===e.type)),mapper:c.mapStateToLayoutProps},W=e=>(0,c.hasType)(e,"number")||(0,c.hasType)(e,"integer"),L=(0,c.schemaMatches)((e=>W(e)||e.hasOwnProperty("oneOf")&&e.oneOf.some((e=>W(e))))),I={renderer:s.html`
|
|
267
276
|
<template>
|
|
268
277
|
<control-wrapper
|
|
269
278
|
:control=${e=>e.control}
|
|
@@ -283,7 +292,7 @@
|
|
|
283
292
|
></zero-text-field>
|
|
284
293
|
</control-wrapper>
|
|
285
294
|
</template>
|
|
286
|
-
`,tester:(0,c.rankWith)(3,L),mapper:c.mapStateToControlProps},
|
|
295
|
+
`,tester:(0,c.rankWith)(3,L),mapper:c.mapStateToControlProps},q=s.html`
|
|
287
296
|
<template>
|
|
288
297
|
<control-wrapper
|
|
289
298
|
:control=${e=>e.control}
|
|
@@ -304,5 +313,5 @@
|
|
|
304
313
|
></zero-text-field>
|
|
305
314
|
</control-wrapper>
|
|
306
315
|
</template>
|
|
307
|
-
`,
|
|
308
|
-
//# sourceMappingURL=
|
|
316
|
+
`,U=(0,O.createLogger)("foundation-form"),H={renderer:q,tester:(0,c.rankWith)(2,c.isStringControl),mapper:c.mapStateToControlProps},V=[{renderer:q,tester:(0,c.rankWith)(1,c.isControl),mapper:c.mapStateToControlProps},H,k,B,F,I,E,A,P,z,M];let G=class extends n.FoundationElement{constructor(){super(...arguments),this.renderers=V,this.errors=[],this.data={}}resourceNameChanged(){var e,t;return(0,r.__awaiter)(this,void 0,void 0,(function*(){if(this.resourceName){const o=yield this.connect.getJSONSchema(this.resourceName);this.jsonSchema=null===(t=null===(e=null==o?void 0:o.INBOUND)||void 0===e?void 0:e.properties)||void 0===t?void 0:t.DETAILS}this.removeDataProperties()}))}removeDataProperties(){if(!this.jsonSchema||!this.data)return;const e=Object.keys(this.jsonSchema.properties);Object.keys(this.data).forEach((t=>{e.includes(t)||(delete this.data[t],U.debug("Removing key ",t,"from provided data because it is not part of the payload"))}))}_submit(){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const e=Object.assign({},this.data);if(this.submissionErrors="",this.submitted=!0,U.debug({payload:e,errors:this.errors}),this.$emit("submit",{payload:e,errors:this.errors}),0!==Object.entries(e).length&&!this.errors.length&&this.resourceName){this.submitting=!0;const t=yield this.connect.commitEvent(this.resourceName,{DETAILS:e});this.submitting=!1,t.ERROR?(this.$emit("submit-failure",{payload:e,errors:t.ERROR}),this.submissionErrors=t.ERROR.map((e=>e.CODE+": "+e.TEXT)).toString()):this.$emit("submit-success",{payload:e})}}))}onChange(e){U.debug({event:e}),e.detail&&(this.data=e.detail.data,this.errors=e.detail.errors)}disconnectedCallback(){super.disconnectedCallback(),this.submitted=!1,this.submissionErrors="",this.jsonSchema=void 0,this.resourceName=void 0,this.data={}}};(0,r.__decorate)([s.attr],G.prototype,"resourceName",void 0),(0,r.__decorate)([s.observable],G.prototype,"uischema",void 0),(0,r.__decorate)([s.observable],G.prototype,"renderers",void 0),(0,r.__decorate)([s.observable],G.prototype,"jsonSchema",void 0),(0,r.__decorate)([a.Connect],G.prototype,"connect",void 0),(0,r.__decorate)([s.observable],G.prototype,"data",void 0),(0,r.__decorate)([s.observable],G.prototype,"submitting",void 0),(0,r.__decorate)([s.observable],G.prototype,"submitted",void 0),(0,r.__decorate)([s.observable],G.prototype,"submissionErrors",void 0),(0,r.__decorate)([(0,s.attr)({mode:"boolean"})],G.prototype,"readonly",void 0),G=(0,r.__decorate)([(0,s.customElement)({name:"foundation-form",template:x,styles:d})],G);const J=e=>(t,o,r)=>{if(!(null==o?void 0:o.length)||!(null==e?void 0:e.length)||!t)return[];const a=null==t?void 0:t[e],s=null==t?void 0:t[o];return(null==a?void 0:a.length)&&(null==s?void 0:s.length)&&a!==s?[{instancePath:`/${o}`,message:`Needs to match ${e}`,schemaPath:"",keyword:"",params:{}}]:[]}}}]);
|
|
317
|
+
//# sourceMappingURL=173.08431a9cc6e4ea92330e504a71c27e8a.js.map
|