@genesislcap/foundation-forms 10.3.0 → 10.3.1-alpha-08364b6.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.173.a07cc3dded23c6eedc89.js → 173.173.72404a543fa554805856.js} +3 -3
- package/dist/{173.08431a9cc6e4ea92330e504a71c27e8a.js.map → 173.a84be468354229f21219811743190e9a.js.map} +1 -1
- package/dist/338.338.3768ac40171574445388.js +3 -0
- package/dist/{338.0093c8b5d0effa408253f6e584f0307e.js.map → 338.b80e69713f188e86ac3d235966bec4b6.js.map} +1 -1
- package/dist/755.755.001fb1761db3672074d3.js +2 -0
- package/dist/{755.a11ac6ce339ed263836e06faeae3e1d1.js.map → 755.ef9ff39a1d56dfd14bc47cd9f22cfc9f.js.map} +1 -1
- package/dist/{foundationForms.c272844e1508b4a769472844fbd0a3fe.js.map → foundationForms.76da734dcb8b5804415dc15f81837c4e.js.map} +1 -1
- package/dist/index.html +2 -2
- package/dist/{main.604f4066969762050a89cc5d3b80c6e4.js.map → main.3c0082e87729584525356a6468a82555.js.map} +1 -1
- package/dist/main.8584b1425d55f4af99a6.js +2 -0
- package/dist/remoteEntry.js +2 -2
- package/package.json +5 -5
- package/dist/338.338.e0e537bcf9641a8f4d8f.js +0 -3
- package/dist/755.755.5544338a36d84c97807c.js +0 -2
- package/dist/main.692b00524d77e975ec94.js +0 -2
- /package/dist/{338.338.e0e537bcf9641a8f4d8f.js.LICENSE.txt → 338.338.3768ac40171574445388.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+"."+{127:"c2ce55cc34c771dd0e4f",147:"f5a63238e700b228ed81",160:"124ed2c5959b53210cbd",173:"72404a543fa554805856",191:"0325d5c8852ae4921bad",211:"9bb272a936b1d1e91e6d",213:"0edf0dee76a3e8e16fa5",259:"2d238ae3cf8d8bdeba08",271:"c9ec2153535d20987f67",308:"d438c91caaf90811867f",338:"3768ac40171574445388",343:"c50e91b7d34234ff5598",415:"4ffa54936c8e552b506d",495:"326dc00debf306d96fc4",622:"afd433fa4494da3ccde9",623:"4eb55ef851cb4acfb42d",690:"a9cbfbb544d61a77cb75",713:"0a877d79045b2ced4b28",730:"d1c0de79e754bac881cb",755:"001fb1761db3672074d3",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.3.0",(()=>Promise.all([p.e(271),p.e(690),p.e(343),p.e(147),p.e(758),p.e(338),p.e(622)]).then((()=>()=>p(9484))))),f("@genesislcap/foundation-utils","10.3.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))))),622:()=>l("default","@genesislcap/foundation-utils",[1,10,3,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))))),697:()=>l("default","@genesislcap/foundation-comms",[1,10,3,0],(()=>Promise.all([p.e(271),p.e(690),p.e(343),p.e(338)]).then((()=>()=>p(9484))))),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)))))},u={147:[3147],173:[697,3554],308:[2308],495:[9495],622:[622],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,93: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(/^(147|308|495|622|758|93)$/.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,[93],(()=>p(8451)));b=p.O(b),foundationForms=b})();
|
|
@@ -1,4 +1,4 @@
|
|
|
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(
|
|
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(697),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(622);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}
|
|
@@ -314,4 +314,4 @@
|
|
|
314
314
|
</control-wrapper>
|
|
315
315
|
</template>
|
|
316
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.
|
|
317
|
+
//# sourceMappingURL=173.a84be468354229f21219811743190e9a.js.map
|
|
@@ -1 +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
|
+
{"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":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! For license information please see 338.338.3768ac40171574445388.js.LICENSE.txt */
|
|
2
|
+
(self.webpackChunk_genesislcap_foundation_forms=self.webpackChunk_genesislcap_foundation_forms||[]).push([[338],{6980:(e,t,s)=>{"use strict";s.d(t,{Q3:()=>n,Ze:()=>o,KA:()=>a,Vj:()=>d});s(3964);var r=s(6335);function i(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(e){return null}}function n(){if(r.jU){var e=navigator,t=e.languages;return e.userLanguage||(t&&t.length?t[0]:e.language)}}function o(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch(e){}}function a(e){return function(e){for(var t,s=Object.create(null),r=/([^&=]+)=?([^&]*)/g;t=r.exec(e);){var n=i(t[1]),o=i(t[2]);"[]"===n.substring(n.length-2)?(s[n=n.substring(0,n.length-2)]||(s[n]=[])).push(o):s[n]=""===o||o}for(var a in s){var d=a.split("[");d.length>1&&(c(s,d.map((function(e){return e.replace(/[?[\]\\ ]/g,"")})),s[a]),delete s[a])}return s}(function(e){if(e){var t=e.match(/\?(.*)/);return t&&t[1]?t[1].split("#")[0]:""}return r.jU&&window.location.search.substring(1)}(e))}function c(e,t,s){for(var r=t.length-1,i=0;i<r;++i){var n=t[i];if("__proto__"===n||"constructor"===n)break;n in e||(e[n]={}),e=e[n]}e[t[r]]=s}function d(){for(var e="",t=0,s=4294967295*Math.random()|0;t++<36;){var r="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"[t-1],i=15&s;e+="-"==r||"4"==r?r:("x"==r?i:3&i|8).toString(16),s=t%8==0?4294967295*Math.random()|0:s>>4}return e}},3964:function(e){e.exports=function(e,t,s,r,i){for(t=t.split?t.split("."):t,r=0;r<t.length;r++)e=e?e[t[r]]:i;return e===i?s:e}},9484:(e,t,s)=>{"use strict";s.r(t),s.d(t,{Auth:()=>Ne,AuthError:()=>P,AuthType:()=>C,Connect:()=>_e,ConnectConfig:()=>G,CredentialManager:()=>Ie,CredentialManagerConfig:()=>ve,CurrentUser:()=>Me,Datasource:()=>ke,DatasourceDefaults:()=>Le,EventMessageType:()=>L,FDC3:()=>He,FieldTypeEnum:()=>Ue,FoundationAnalytics:()=>d,FoundationAnalyticsEventType:()=>a,Http:()=>N,HttpConnect:()=>V,HttpConnectConfig:()=>F,MAX_RECONNECT_ATTEMPTS:()=>ee,MessageBuilder:()=>k,MessageCode:()=>w,MessageType:()=>U,MetadataCache:()=>u,ResourceType:()=>Ce,Serializer:()=>M,Session:()=>f,Socket:()=>de,SocketMessageHandler:()=>ae,SocketObservable:()=>oe,SocketReconnectStrategy:()=>te,SocketSubject:()=>ne,SocketSubscription:()=>Y.w0,TYPES_MAP:()=>we,WSConnect:()=>Se,defaultConnectConfig:()=>Ee,defaultCredentialManagerConfig:()=>me,defaultCredentialRequestOptions:()=>Ae,defaultHttpConnectConfig:()=>H,exponentialScheduler:()=>re,extractFieldDefinitions:()=>ye,isWebSocketExpression:()=>g,linearScheduler:()=>ie,logger:()=>o,messageOrThrow:()=>y,retryInterval:()=>se,toFieldMetadata:()=>Pe,until:()=>S});var r=s(961),i=s(5951),n=s(622);const o=(0,n.createLogger)("foundation-comms");var a;!function(e){e.controlClicked="controlClicked",e.routeChanged="routeChanged"}(a||(a={}));class c{constructor(e){this.analytics=(0,r.ZP)(e)}trackEvent(e,t){o.debug(`FoundationAnalytics.trackEvent ${e} : ${JSON.stringify(t)}`),this.analytics.track(e,t)}}const d=i.DI.createInterface((e=>e.singleton(c)));var h=s(779),l=s(3147);class E{constructor(){this.cachedMetadata=new Map}getMetadataFor(e){return this.cachedMetadata.get(e)}hasMetadataFor(e){return this.cachedMetadata.has(e)}setMetadataFor(e,t){this.cachedMetadata.set(e,t)}}(0,h.__decorate)([l.observable],E.prototype,"cachedMetadata",void 0);const u=i.DI.createInterface((e=>e.singleton(E))),g=new RegExp(/wss?:\/\/[-a-zA-Z0-9@:%._\+~#=]{1,256}\b([-a-zA-Z0-9()@:%_\+.~#?&\/=]*)\b\/*$/,"i");function S(e,t=300){const s=r=>{e()?r():setTimeout((()=>s(r)),t)};return new Promise(s)}var _=s(6714),T=s(6697),R=s(6383),p=s(9866),v=s(804),O=s(7211),A=s(4866);class m{constructor(){this.storageKeyPrefix="",this.returnUrl=this.getSessionStorageItem("returnUrl")||""}deleteUserFromSessionStorage(){["authToken","refreshToken","sessionId","ssoToken"].forEach((e=>this.removeSessionStorageItem(e)))}setStorageKeyPrefix(e){this.storageKeyPrefix=`${e.replace(/\s/g,"")}/`}setAuthResult(e){this.setSessionStorageItem("authToken",e.SESSION_AUTH_TOKEN),this.setSessionStorageItem("refreshToken",e.REFRESH_AUTH_TOKEN),this.setSessionStorageItem("username",e.USER_NAME),this.setSessionStorageItem("sessionId",e.SESSION_ID)}captureReturnUrl(){const{pathname:e,search:t,hash:s}=location;if("/login"===e)return;const r=`${"/"!==e?e:""}`;this.returnUrl=`${r}${t}${s}`,this.setSessionStorageItem("returnUrl",this.returnUrl)}setItem(e,t,s){"local"===s?localStorage.setItem(this.storageKeyPrefix+e,t):sessionStorage.setItem(this.storageKeyPrefix+e,t)}getItem(e,t){return"local"===t?localStorage.getItem(this.storageKeyPrefix+e):sessionStorage.getItem(this.storageKeyPrefix+e)}removeItem(e,t){"local"===t?localStorage.removeItem(this.storageKeyPrefix+e):sessionStorage.removeItem(this.storageKeyPrefix+e)}setLocalStorageItem(e,t){this.setItem(e,t,"local")}setSessionStorageItem(e,t){this.setItem(e,t,"session")}getLocalStorageItem(e){return this.getItem(e,"local")}getSessionStorageItem(e){return this.getItem(e,"session")}removeLocalStorageItem(e){this.removeItem(e,"local")}removeSessionStorageItem(e){this.removeItem(e,"session")}}const f=i.DI.createInterface((e=>e.singleton(m)));class I{serialize(e){return JSON.stringify(e)}deserialize(e){return e?"string"==typeof e?JSON.parse(e):e.data?JSON.parse(e.data):e.text().then((e=>JSON.parse(e))):Promise.resolve({})}}const M=i.DI.createInterface((e=>e.singleton(I)));let b=class{constructor(e){this.serializer=e}get(e,t){return(0,h.__awaiter)(this,void 0,void 0,(function*(){const s=yield fetch(e,Object.assign(Object.assign({},t),{method:"GET"}));return(t.serializer||this.serializer).deserialize(s)}))}post(e,t){return(0,h.__awaiter)(this,void 0,void 0,(function*(){const s=yield fetch(e,Object.assign(Object.assign({},t),{method:"POST"}));return(t.serializer||this.serializer).deserialize(s)}))}};b=(0,h.__decorate)([(0,h.__param)(0,M)],b);const N=i.DI.createInterface((e=>e.singleton(b)));var C,U,L,w;!function(e){e.BASIC="BASIC",e.SSO="SSO",e.JWT="JWT",e.REFRESH="REFRESH"}(C||(C={}));class P extends Error{constructor(e,t,s="Auth Failed \n"){super(s),this.sent=e,this.received=t,Object.setPrototypeOf(this,P.prototype)}isIgnorableError(){var e,t,s,r;return null===(r=null===(s=null===(t=null===(e=this.received)||void 0===e?void 0:e.DETAILS)||void 0===t?void 0:t.ERROR)||void 0===s?void 0:s.toLowerCase())||void 0===r?void 0:r.includes("request needs the user to be logged")}getMessageError(){var e,t;return Array.isArray(null===(e=this.received)||void 0===e?void 0:e.ERROR)?null===(t=this.received)||void 0===t?void 0:t.ERROR.map((e=>this.errorDetailFormatter(e))).join("\n"):""}getDetailsError(){var e,t,s,r;return Array.isArray(null===(t=null===(e=this.received)||void 0===e?void 0:e.DETAILS)||void 0===t?void 0:t.ERROR)?null===(r=null===(s=this.received)||void 0===s?void 0:s.DETAILS)||void 0===r?void 0:r.ERROR.map((e=>this.errorDetailFormatter(e))).join("\n"):""}hasPasswordExpiredError(){return this.hasErrorCode("PASSWORD_EXPIRED")}hasErrorCode(e){var t,s;return!!Array.isArray(null===(t=this.received)||void 0===t?void 0:t.ERROR)&&(null===(s=this.received)||void 0===s?void 0:s.ERROR.some((t=>t.CODE===e)))}errorDetailFormatter(e){return`\n ${e.CODE}: \n ${e.TEXT}`}}!function(e){e.LOGON_ACK="LOGON_ACK",e.LOGON_NACK="LOGON_NACK",e.LOGOFF_ACK="LOGOFF_ACK",e.LOGOFF_NACK="LOGOFF_NACK",e.HEARTBEAT_PING="HEARTBEAT_PING",e.HEARTBEAT_PONG="HEARTBEAT_PONG",e.MORE_ROWS="MORE_ROWS",e.MSG_ACK="MSG_ACK",e.MSG_NACK="MSG_NACK",e.LOGOUT_ACK="LOGOUT_ACK",e.LOGOUT_NACK="LOGOUT_NACK",e.QUERY_UPDATE="QUERY_UPDATE"}(U||(U={})),function(e){e.EVENT_LOGIN_AUTH="EVENT_LOGIN_AUTH",e.EVENT_LOGIN_AUTH_ACK="EVENT_LOGIN_AUTH_ACK",e.EVENT_LOGIN_AUTH_NACK="EVENT_LOGIN_AUTH_NACK",e.EVENT_LOGOUT="EVENT_LOGOUT",e.DATA_LOGON="DATA_LOGON",e.DATA_LOGOFF="DATA_LOGOFF",e.META_REQUEST="META_REQUEST",e.JSON_SCHEMA_REQUEST="JSON_SCHEMA_REQUEST",e.RESOURCES_REQUEST="RESOURCES_REQUEST",e.EVENT_CHANGE_USER_PASSWORD="EVENT_CHANGE_USER_PASSWORD",e.EVENT_SELF_SERVICE_PASSWORD_RESET="EVENT_SELF_SERVICE_PASSWORD_RESET",e.EVENT_PASSWORD_RESET_ACTION="EVENT_PASSWORD_RESET_ACTION"}(L||(L={})),function(e){e.SESSION_NOT_FOUND="SESSION_NOT_FOUND",e.UNKNOWN_MESSAGE_TYPE="UNKNOWN_MESSAGE_TYPE"}(w||(w={}));const y=e=>{if(e.ERROR)throw new Error(e.ERROR.map((e=>e.TEXT)).join());return e};let D=class{constructor(e,t){this.session=e,this.uuid=t}createLoginMessage(e){let t;switch(e.type){case C.BASIC:t={USER_NAME:e.username,PASSWORD:e.password};break;case C.REFRESH:t={USER_NAME:e.username,REFRESH_AUTH_TOKEN:e.refreshToken};break;case C.SSO:t={SSO_TOKEN:e.ssoToken};break;case C.JWT:t={JWT:e.jwt,DOMAIN:e.domain}}return{DETAILS:t,SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:L.EVENT_LOGIN_AUTH}}createLogoutMessage(e){var t,s;return{SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:L.EVENT_LOGOUT,SESSION_AUTH_TOKEN:null!==(t=e.authToken)&&void 0!==t?t:this.session.getSessionStorageItem("authToken"),SESSION_ID:null!==(s=e.sessionId)&&void 0!==s?s:this.session.getSessionStorageItem("sessionId")}}createDataLogonMessage(e,t){return{SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:L.DATA_LOGON,DETAILS:Object.assign({DATASOURCE_NAME:e},t),SESSION_AUTH_TOKEN:this.session.getSessionStorageItem("authToken")}}createDataLogoffMessage(e){return{SOURCE_REF:e,MESSAGE_TYPE:L.DATA_LOGOFF,SESSION_AUTH_TOKEN:this.session.getSessionStorageItem("authToken")}}createRequestMessage(e,t){return Object.assign({SOURCE_REF:this.uuid.createId(),SESSION_AUTH_TOKEN:this.session.getSessionStorageItem("authToken"),MESSAGE_TYPE:e.startsWith("REQ_")?e:`REQ_${e}`},t)}createMetaRequestMessage(e,t=L.META_REQUEST){return{SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:t,DETAILS:{FEATURE:e},SESSION_AUTH_TOKEN:this.session.getSessionStorageItem("authToken")}}createCommitMessage(e,t){return Object.assign({SOURCE_REF:this.uuid.createId(),SESSION_AUTH_TOKEN:this.session.getSessionStorageItem("authToken"),MESSAGE_TYPE:e},t)}createRefreshTokenMessage(){return{SOURCE_REF:this.uuid.createId(),SESSION_AUTH_TOKEN:this.session.getSessionStorageItem("authToken"),MESSAGE_TYPE:L.EVENT_LOGIN_AUTH,DETAILS:{REFRESH_AUTH_TOKEN:this.session.getSessionStorageItem("refreshToken")}}}createChangePasswordMessage(e,t,s){return{USER_NAME:e,SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:L.EVENT_CHANGE_USER_PASSWORD,DETAILS:{OLD_PASSWORD:t,NEW_PASSWORD:s}}}createForgotPasswordMessage(e,t,s=e){return{USER_NAME:s,SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:L.EVENT_SELF_SERVICE_PASSWORD_RESET,DETAILS:{USER_NAME:e,RETURN_URL:t}}}createForgotPasswordTokenMessage(e,t,s,r=e){return{USER_NAME:r,SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:L.EVENT_PASSWORD_RESET_ACTION,DETAILS:{USER_NAME:e,RESET_TOKEN:t,NEW_PASSWORD:s}}}createMoreRowsMessage(e){return{SOURCE_REF:this.uuid.createId(),MESSAGE_TYPE:U.MORE_ROWS,DETAILS:{SOURCE_REF:e},SESSION_AUTH_TOKEN:this.session.getSessionStorageItem("authToken")}}};D=(0,h.__decorate)([(0,h.__param)(0,f),(0,h.__param)(1,n.UUID)],D);const k=i.DI.createInterface((e=>e.singleton(D))),G=i.DI.createInterface(),F=i.DI.createInterface(),H={polling:Object.assign({POLLING_MAP:{EVENT_AMEND_USER:{TEMP_FREQUENCY:500,AMOUNT_OF_POLLS:5,QUERIES:["ALL_USERS"]}},POLLING_INTERVAL_MAP:{ALL_TRADES:5e3,ALL_USERS:5e3,ALL_PROCESSES_STATUS:1e4},POLLING_FREQUENCY:5e3},{})};let x=class e{get isConnected(){return this._isConnected}set isConnected(e){this._isConnected=e,this.isConnectedSubject.next(this._isConnected)}constructor(e,t,s,r,i,n=H){this.http=e,this.messageBuilder=t,this.session=s,this.metaCache=r,this.serializer=i,this.config=n,this.isWorking=!1,this._isConnected=!1,this.isConnectedSubject=new _.X(this._isConnected),this.ongoingTurbo={},this.streams=new Map}checkHost(){return(0,h.__awaiter)(this,void 0,void 0,(function*(){try{return this.getMessage({MESSAGE_TYPE:U.HEARTBEAT_PING,SOURCE_REF:"host check"}).then((e=>e.MESSAGE_TYPE===U.HEARTBEAT_PONG))}catch(e){return o.error(e),!1}}))}send(t,s){return this.http.post(e.getUrl(this.host,t),{body:e.getBody(t),headers:e.getHeaders(t)})}httpMode(){return!0}setValidSession(e){o.warn("setValidSession() called while in http polling mode.")}connect(e){return(0,h.__awaiter)(this,void 0,void 0,(function*(){return this.host=e,this.host.endsWith("/")||(this.host=this.host.concat("/")),this.checkHost().then((e=>(this.isConnected=e,this.session.setSessionStorageItem("hostUrl",this.host),e)))}))}disconnect(){this.isConnected=!1,this.streams.clear(),this.ongoingTurbo={},this.host=void 0}snapshot(e,t){return(0,h.__awaiter)(this,void 0,void 0,(function*(){const s=this.messageBuilder.createDataLogonMessage(e,t);return o.debug(`HTTP MODE - ${s.MESSAGE_TYPE} (snapshot) message created -> `,s),this.send(s).then((e=>(this.dataLogoff(s.SOURCE_REF).catch((e=>o.error(e))),e)))}))}stream(e,t,s,r){const i=this.messageBuilder.createDataLogonMessage(e,r);o.debug(`HTTP MODE - ${i.MESSAGE_TYPE} (stream) message created -> `,i);const n=i.SOURCE_REF;this.streams.set(n,{SOURCE_REF:n,POLLING_FREQUENCY:new _.X(this.config.polling.POLLING_FREQUENCY),RESOURCE_NAME:e});const a=this.streams.get(n).POLLING_FREQUENCY,c=(0,T.z)((0,R.D)(this.send(i)),a.pipe((0,p.w)((e=>(0,v.F)(e)))).pipe((0,p.w)((()=>(0,R.D)(this.getMessage(i)))))).pipe((0,O.o)((()=>this.streams.has(n))),(0,A.x)((()=>{o.debug(`Terminating stream for ${e} - ${n}`),this.dataLogoff(n)})));return this.streams.get(n).STREAM=c,c}getMessage(t){return(0,h.__awaiter)(this,void 0,void 0,(function*(){return this.http.get(e.getUrl(this.host,t),{headers:e.getHeaders(t)})}))}getMoreRows(e){return(0,h.__awaiter)(this,void 0,void 0,(function*(){const t=this.messageBuilder.createMoreRowsMessage(e);return o.debug(`HTTP MODE - ${t.MESSAGE_TYPE} message created -> `,t),this.send(t)}))}dataLogoff(e){return(0,h.__awaiter)(this,void 0,void 0,(function*(){const t=this.messageBuilder.createDataLogoffMessage(e);return this.send(t).then((t=>(this.streams.has(e)&&(o.debug(`Removing stream ${e}`),this.streams.delete(e)),t)))}))}getMetadata(e,t=!0){return(0,h.__awaiter)(this,void 0,void 0,(function*(){const t=this.messageBuilder.createMetaRequestMessage(e);return o.debug(`HTTP MODE - ${t.MESSAGE_TYPE} (metadata) message created -> `,t),this.send(t).then((e=>e.DETAILS))}))}getJSONSchema(e){return(0,h.__awaiter)(this,void 0,void 0,(function*(){const t=this.messageBuilder.createMetaRequestMessage(e,L.JSON_SCHEMA_REQUEST);return o.debug(`HTTP MODE! - ${t.MESSAGE_TYPE} (json schema) message created -> `,t),this.send(t)}))}request(e,t){const s=this.messageBuilder.createRequestMessage(e,t);return o.debug(`HTTP MODE! - ${s.MESSAGE_TYPE} (request server) message created -> `,s),this.send(s)}commitEvent(e,t){return(0,h.__awaiter)(this,void 0,void 0,(function*(){const s=this.messageBuilder.createCommitMessage(e,t);return o.debug(`HTTP MODE! - ${s.MESSAGE_TYPE} (commit) message created -> `,s),this.send(s).then((t=>(this.maybeTurbo(e,t),t)))}))}maybeTurbo(e,t){var s;if(!(null===(s=null==t?void 0:t.MESSAGE_TYPE)||void 0===s?void 0:s.endsWith("_ACK")))return;if(this.ongoingTurbo[e])return void o.debug(`${e} polling frequency is already accelerated.`);const r=this.config.polling.POLLING_MAP[e];if(!(null==r?void 0:r.TEMP_FREQUENCY)||!r.AMOUNT_OF_POLLS)return;const i=r.TEMP_FREQUENCY,n=i*r.AMOUNT_OF_POLLS,a=JSON.parse(JSON.stringify(this.config.polling.POLLING_INTERVAL_MAP)),c=JSON.parse(JSON.stringify(this.config.polling.POLLING_INTERVAL_MAP));for(const e of r.QUERIES)c[e]=i,a[e]||(a[e]=this.config.polling.POLLING_FREQUENCY);o.debug(`${e} TRIGGERED -> ENFORCING TURBO | FREQUENCY=${i}ms DURATION=${n}`),this.ongoingTurbo[e]=!0,this.updateIntervals({polling:{POLLING_INTERVAL_MAP:c}}),setTimeout((()=>{o.debug(`RESTORED ORIGINAL POLLING INTERVALS FOR ${e}`),this.updateIntervals({polling:{POLLING_INTERVAL_MAP:a}}),this.ongoingTurbo[e]=!1}),n)}updateIntervals(e){const{POLLING_INTERVAL_MAP:t}=e.polling;t&&(this.config.polling.POLLING_INTERVAL_MAP=t,this.handlePollingIntervalMapUpdate(t))}handlePollingIntervalMapUpdate(e){if(e)for(const t in e){if(!e.hasOwnProperty(t))continue;const s=e[t];this.config.polling.POLLING_INTERVAL_MAP[t]=s,o.debug(`Setting polling frequency for ${t} = ${s}`),[...this.streams.values()].filter((e=>e.RESOURCE_NAME===t)).forEach((e=>{var t;return null===(t=null==e?void 0:e.POLLING_FREQUENCY)||void 0===t?void 0:t.next(s)}))}}static getHeaders(e){const t={"Content-type":"application/json; charset=UTF-8","source-ref":e.SOURCE_REF};return e.SESSION_AUTH_TOKEN&&(t["SESSION-AUTH-TOKEN"]=e.SESSION_AUTH_TOKEN),e.MESSAGE_TYPE===L.EVENT_LOGOUT&&(t["SESSION-ID"]=e.SESSION_ID),t}static getBody(e){return JSON.stringify(e)}static getUrl(e,t){const s=t.MESSAGE_TYPE;let r=t.MESSAGE_TYPE.replace(/_/g,"-").toLowerCase();return s===L.DATA_LOGON&&(r=t.DETAILS.DATASOURCE_NAME.replace(/_/g,"-").toLowerCase()),`${e}${r}`}};(0,h.__decorate)([l.observable],x.prototype,"host",void 0),(0,h.__decorate)([l.observable],x.prototype,"isWorking",void 0),(0,h.__decorate)([l.observable],x.prototype,"_isConnected",void 0),(0,h.__decorate)([l.volatile],x.prototype,"isConnected",null),x=(0,h.__decorate)([(0,h.__param)(0,N),(0,h.__param)(1,k),(0,h.__param)(2,f),(0,h.__param)(3,u),(0,h.__param)(4,n.JSONSerializer),(0,h.__param)(5,(0,i.optional)(F))],x);const V=i.DI.createInterface((e=>e.singleton(x)));var $=s(2284),B=s(2355),Y=s(7078),K=s(8239),W=s(7674),j=s(94),Q=s(526),z=s(7821),q=s(8370),J=s(2354);const X=1e4,Z=6e4,ee=10;var te;!function(e){e.Linear="linear",e.Exponential="exponential"}(te||(te={}));const se=(e,t)=>new B.y((s=>{let r,i=0;return function n(){s.next(i),clearTimeout(r),r=setTimeout(n,t(e,i)),i+=1}(),()=>{clearTimeout(r)}})),re=(e,t)=>{const{reconnectInterval:s=X}=e,r=s>Z?Z:s,i=Math.round(Math.log2(Z/r));return r*Math.pow(2,t%i)},ie=(e,t)=>{const{reconnectInterval:s=X}=e;return s>Z?Z:s};class ne extends $.x{constructor(){super()}}class oe extends B.y{constructor(...e){super(...e)}}class ae{constructor(e,t,s,r){this._message=e,this._onMessage=t,this._onError=s,this._isSubscription=r}get sentMessage(){return this._message}get onReceivedMessage(){return this._onMessage}get onReceivedError(){return this._onError}get isSubscription(){return this._isSubscription}}let ce=class{isConnectedChanged(e,t){this.isConnectedSubject.next(t)}constructor(e,t,s,r){this.messageBuilder=e,this.session=t,this.serializer=s,this.uuid=r,this.defaultInterval=1e4,this.secondsMultiplier=1e3,this.isConnectedSubject=new _.X(!1),this.isConnected=!1,this.hasValidSession=!1,this.heartbeatIsEnabled=!0,this.heartbeatInterval=this.defaultInterval,this.isReconnecting=!1,this.socketMessages=()=>this.wsMessages}get heartbeatLoggingIsEnabled(){var e,t;return null!==(t=null===(e=this.connectOptions)||void 0===e?void 0:e.enableHeartbeatLogging)&&void 0!==t&&t}get messageLoggingIsEnabled(){var e,t;return null!==(t=null===(e=this.connectOptions)||void 0===e?void 0:e.enableMessageLogging)&&void 0!==t&&t}connect(e,t,s){return this.url=e,this.connectOptions=t,this.reconnectOptions=s,new Promise((e=>{var t,s,r,i;o.info(`${this.isReconnecting?"Reconnecting":"Connecting"} to ${this.url}`);(!this.isReconnecting||!(null===(t=this.reconnectOptions)||void 0===t?void 0:t.reconnectStreams))&&this.cleanMessages(),null===(s=this.socketSubscription)||void 0===s||s.unsubscribe(),this.websocket=new J.p({url:this.url,openObserver:{next:()=>{this.isConnected=!0,this.session.setSessionStorageItem("hostUrl",this.url),this.prepareHeartbeat(),o.info("WebSocket connection is now open"),e(this.isConnected)}},closeObserver:{next:t=>{this.disconnectedByServer=!t.wasClean,this.isConnected=!1,o.info(`WebSocket connection was closed due an error - Code: ${t.code} ${t.reason?" | Reason: "+t.reason:""}`),e(this.isConnected)}},serializer:this.serializer.serialize,deserializer:this.serializer.deserialize});this.socketSubscription=this.websocket.subscribe(null!==(i=null===(r=this.connectOptions)||void 0===r?void 0:r.connectObserver)&&void 0!==i?i:{next:e=>(0,h.__awaiter)(this,void 0,void 0,(function*(){var t;const s=`Response Message received for SourceRef: ${e.SOURCE_REF} | MessageType: ${e.MESSAGE_TYPE}`;this.logMessageTypeFlow(e.MESSAGE_TYPE,o.info,s);const{SOURCE_REF:r,MESSAGE_TYPE:i}=e,n=this.getMessageHandler(r,i);if(!n)return;let a=!1;switch(e.MESSAGE_TYPE){case L.EVENT_LOGIN_AUTH_ACK:{this.hasValidSession=!0;const s=e.DETAILS;s.HEARTBEAT_INTERVAL_SECS&&void 0===(null===(t=this.connectOptions)||void 0===t?void 0:t.heartbeatInterval)&&(this.heartbeatInterval=s.HEARTBEAT_INTERVAL_SECS*this.secondsMultiplier,this.prepareHeartbeat());break}case U.LOGOUT_ACK:return this.hasValidSession=!1,n.onReceivedMessage.call(this,e),void this.cleanMessages();case U.LOGON_ACK:return;case U.LOGOFF_ACK:if(e.LOGGED_OUT&&this.hasValidSession){const e=this.messageBuilder.createRefreshTokenMessage(),t=yield this.send(e);t?t.MESSAGE_TYPE===L.EVENT_LOGIN_AUTH_ACK&&(this.session.setAuthResult(t),this.wsMessageHandlers.forEach((e=>{e.isSubscription&&(e.sentMessage.SESSION_AUTH_TOKEN=t.SESSION_AUTH_TOKEN,this.websocket.next(e.sentMessage))}))):this.hasValidSession=!1}break;case U.QUERY_UPDATE:if(!n.isSubscription){const e=this.messageBuilder.createDataLogoffMessage(r);this.send(e)}break;case U.MSG_NACK:a=!0}a?n.onReceivedError.call(this,{receivedMessage:e,sentMessage:n.sentMessage}):n.onReceivedMessage.call(this,e),this.wsMessages.next(e),n.isSubscription||this.removeMessageHandler(r)})),error:e=>{o.debug("Error found: ",e),this.reconnect()},complete:()=>{var e;this.disconnectedByServer&&(null===(e=this.connectOptions)||void 0===e?void 0:e.alwaysOn)?this.reconnect():o.info("Connection is now closed")}})}))}prepareHeartbeat(){var e,t,s,r;this.heartbeatSubscription&&this.heartbeatSubscription.unsubscribe();const i=()=>(0,h.__awaiter)(this,void 0,void 0,(function*(){if(!this.isConnected)return;const e={MESSAGE_TYPE:U.HEARTBEAT_PING,SOURCE_REF:this.uuid.createId()},t=yield this.send(e);this.heartbeatIsEnabled=t.MESSAGE_TYPE===U.HEARTBEAT_PONG&&t.SOURCE_REF===e.SOURCE_REF}));if(null!==(t=null===(e=this.connectOptions)||void 0===e?void 0:e.enableHeartbeat)&&void 0!==t?t:this.heartbeatIsEnabled){const e=null!==(r=null===(s=this.connectOptions)||void 0===s?void 0:s.heartbeatInterval)&&void 0!==r?r:this.heartbeatInterval;this.heartbeatSubscription=(0,K.H)(e,e).pipe((0,O.o)((()=>this.websocket&&this.isConnected)),(0,Q.b)((()=>this.heartbeatLoggingIsEnabled&&o.debug(`Sending a heartbeat ping every ${e} ms`)))).subscribe((()=>i()))}}reconnect(){var e,t,s,r,i;const n=!(null===(e=this.connectOptions)||void 0===e?void 0:e.alwaysOn)&&!1===(null===(t=this.connectOptions)||void 0===t?void 0:t.enableHeartbeat);if(this.isReconnecting||n)return;this.isReconnecting=!0;const a=(null===(s=this.reconnectOptions)||void 0===s?void 0:s.reconnectStrategy)===te.Exponential?re:ie,c=this.isConnectedSubject.asObservable().pipe((0,p.w)((e=>e?(0,W.of)(-1):se(this.reconnectOptions,a).pipe((0,z.z)((e=>{var t,s,r;let i;return i=(null===(t=this.connectOptions)||void 0===t?void 0:t.alwaysOn)?e+1:null!==(r=null===(s=this.reconnectOptions)||void 0===s?void 0:s.reconnectAttempts)&&void 0!==r?r:ee,e<i?(0,W.of)(e):(0,j._)((()=>new Error(`Max reconnect attempts ${i} reached.`)))}))))),(0,O.o)((()=>this.websocket&&!this.isConnected)));c.subscribe(null!==(i=null===(r=this.reconnectOptions)||void 0===r?void 0:r.reconnectObserver)&&void 0!==i?i:{next:e=>{o.debug(`Attempt no. ${e+1} to reconnect`),this.websocket.complete(),this.connect(this.url,this.connectOptions,this.reconnectOptions)},error:e=>{var t;o.debug(e),null===(t=this.socketSubscription)||void 0===t||t.unsubscribe(),this.isReconnecting=!1},complete:()=>{o.info(this.isConnected?"Reconnected":"Disconnected"),this.isReconnecting=!1,this.wsMessageHandlers.forEach((e=>{e.isSubscription&&this.websocket.next(e.sentMessage)}))}})}reset(){this.isConnected=!1,this.websocket&&this.websocket.complete(),this.websocket=null,this.cleanMessages()}cleanMessages(){this.wsMessages&&this.wsMessages.complete(),this.wsMessages=new ne,this.wsMessageHandlers=new Map}send(e,t=!0){if(!this.isConnected)return void Promise.reject(new Error("WebSocket connection is closed"));const s=`Sending Message for SourceRef: ${e.SOURCE_REF} | MessageType: ${e.MESSAGE_TYPE}`;return this.logMessageTypeFlow(e.MESSAGE_TYPE,o.info,s),new Promise(((s,r)=>{const i=e=>{s(e)},n=e=>{r(e)};t&&this.setMessageHandler(e,i,n),this.websocket.next(e)}))}sendForStream(e,t,s){if(!this.isConnected)return(0,j._)((()=>new Error("WebSocket connection is closed")));if(!this.hasValidSession)return(0,j._)((()=>new Error("WebSocket connection is open but there is no valid/active session, please check your auth flow")));const r=`Sending Message (stream) for SourceRef: ${e.SOURCE_REF} | MessageType: ${e.MESSAGE_TYPE}`;return this.logMessageTypeFlow(e.MESSAGE_TYPE,o.info,r),this.setMessageHandler(e,t,s,!0),this.websocket.next(e),(0,R.D)(this.wsMessages.pipe((0,q.h)((t=>t.SOURCE_REF===e.SOURCE_REF))))}setMessageHandler(e,t,s,r=!1){const i=`Setting Message Handler for SourceRef: ${e.SOURCE_REF} | MessageType: ${e.MESSAGE_TYPE}`;this.logMessageTypeFlow(e.MESSAGE_TYPE,o.debug,i),this.wsMessageHandlers.set(e.SOURCE_REF,new ae(e,t,s,r))}removeMessageHandler(e){this.wsMessageHandlers.delete(e)}getMessageHandler(e,t){const s=`Getting Message Handler for SourceRef: ${e} | MessageType: ${t}`;return this.logMessageTypeFlow(t,o.debug,s),this.wsMessageHandlers.get(e)}logMessageTypeFlow(e,t,s){switch(e){case U.HEARTBEAT_PING:case U.HEARTBEAT_PONG:this.heartbeatLoggingIsEnabled&&t(s);break;default:this.messageLoggingIsEnabled&&t(s)}}};(0,h.__decorate)([l.observable],ce.prototype,"websocket",void 0),(0,h.__decorate)([l.observable],ce.prototype,"wsMessages",void 0),(0,h.__decorate)([l.observable],ce.prototype,"wsMessageHandlers",void 0),(0,h.__decorate)([l.observable],ce.prototype,"isConnected",void 0),(0,h.__decorate)([l.observable],ce.prototype,"disconnectedByServer",void 0),(0,h.__decorate)([l.observable],ce.prototype,"hasValidSession",void 0),(0,h.__decorate)([l.observable],ce.prototype,"heartbeatIsEnabled",void 0),(0,h.__decorate)([l.observable],ce.prototype,"isReconnecting",void 0),ce=(0,h.__decorate)([(0,h.__param)(0,k),(0,h.__param)(1,f),(0,h.__param)(2,M),(0,h.__param)(3,n.UUID)],ce);const de=i.DI.createInterface((e=>e.singleton(ce)));let he,le;try{he=""}catch(e){}try{le=void 0}catch(e){}const Ee={connect:{alwaysOn:!1,enableHeartbeat:!0,enableHeartbeatLogging:!1,heartbeatInterval:1e4,enableMessageLogging:!1},reconnect:{reconnectAttempts:10,reconnectInterval:1e4,reconnectStreams:!0}};let ue=class{get isConnected(){return this.socket.isConnected}get isConnectedSubject(){return this.socket.isConnectedSubject}constructor(e,t,s,r=Ee){this.socket=e,this.messageBuilder=t,this.metaCache=s,this.config=r,this.isWorking=!1}httpMode(){return!1}setValidSession(e){this.socket.hasValidSession=e}send(e,t){return this.socket.send(e,t)}connect(e){return(0,h.__awaiter)(this,void 0,void 0,(function*(){return this.socket.reset(),g.test(e)?this.socket.connect(e,this.config.connect,this.config.reconnect):(o.error(`Specified host (${e}) is not valid WebSocket url. Connection will not proceed.`),void o.warn("Make sure the host url starts with wss:// or ws://"))}))}disconnect(){this.socket.reset()}snapshot(e,t){return(0,h.__awaiter)(this,void 0,void 0,(function*(){const s=this.messageBuilder.createDataLogonMessage(e,t);return o.debug(`${s.MESSAGE_TYPE} (snapshot) message created -> `,s),this.socket.send(s)}))}stream(e,t,s,r){const i=this.messageBuilder.createDataLogonMessage(e,r);return o.debug(`${i.MESSAGE_TYPE} (stream) message created -> `,i),this.socket.sendForStream(i,t,s)}getMoreRows(e){return(0,h.__awaiter)(this,void 0,void 0,(function*(){const t=this.messageBuilder.createMoreRowsMessage(e);return o.debug(`${t.MESSAGE_TYPE} message created -> `,t),this.socket.send(t,!1)}))}dataLogoff(e){return(0,h.__awaiter)(this,void 0,void 0,(function*(){const t=this.messageBuilder.createDataLogoffMessage(e);return o.debug(`${t.MESSAGE_TYPE} message created -> `,t),this.socket.send(t)}))}getMetadata(e,t=!0){var s;return(0,h.__awaiter)(this,void 0,void 0,(function*(){if(t&&(yield S((()=>!1===this.isWorking)),this.metaCache.hasMetadataFor(e)))return o.debug(`Cached metadata retrieved for ${e}`),this.metaCache.getMetadataFor(e);const r=this.messageBuilder.createMetaRequestMessage(e);let i;o.debug(`${r.MESSAGE_TYPE} (metadata) message created -> `,r);try{this.isWorking=!0;const e=yield this.socket.send(r);i=null!==(s=null==e?void 0:e.DETAILS)&&void 0!==s?s:[]}finally{i&&this.metaCache.setMetadataFor(e,i),this.isWorking=!1}return i}))}getJSONSchema(e){return(0,h.__awaiter)(this,void 0,void 0,(function*(){const t=this.messageBuilder.createMetaRequestMessage(e,L.JSON_SCHEMA_REQUEST);return o.debug(`${t.MESSAGE_TYPE} (json schema) message created -> `,t),this.socket.send(t)}))}request(e,t){const s=this.messageBuilder.createRequestMessage(e,t);return o.debug(`${s.MESSAGE_TYPE} (request server) message created -> `,s),this.socket.send(s)}commitEvent(e,t){return(0,h.__awaiter)(this,void 0,void 0,(function*(){const s=this.messageBuilder.createCommitMessage(e,t);return o.debug(`${s.MESSAGE_TYPE} (commit) message created -> `,s),this.socket.send(s)}))}};(0,h.__decorate)([l.observable],ue.prototype,"isWorking",void 0),(0,h.__decorate)([l.volatile],ue.prototype,"isConnected",null),ue=(0,h.__decorate)([(0,h.__param)(0,de),(0,h.__param)(1,k),(0,h.__param)(2,u),(0,h.__param)(3,(0,i.optional)(G))],ue);const ge="true"===le||!1,Se=i.DI.createInterface((e=>e.singleton(ue))),_e=i.DI.createInterface((e=>ge?e.aliasTo(V):e.aliasTo(Se)));function Te(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var r in s)e[r]=s[r]}return e}var Re=function e(t,s){function r(e,r,i){if("undefined"!=typeof document){"number"==typeof(i=Te({},s,i)).expires&&(i.expires=new Date(Date.now()+864e5*i.expires)),i.expires&&(i.expires=i.expires.toUTCString()),e=encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var n="";for(var o in i)i[o]&&(n+="; "+o,!0!==i[o]&&(n+="="+i[o].split(";")[0]));return document.cookie=e+"="+t.write(r,e)+n}}return Object.create({set:r,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var s=document.cookie?document.cookie.split("; "):[],r={},i=0;i<s.length;i++){var n=s[i].split("="),o=n.slice(1).join("=");try{var a=decodeURIComponent(n[0]);if(r[a]=t.read(o,a),e===a)break}catch(e){}}return e?r[e]:r}},remove:function(e,t){r(e,"",Te({},t,{expires:-1}))},withAttributes:function(t){return e(this.converter,Te({},this.attributes,t))},withConverter:function(t){return e(Te({},this.converter,t),this.attributes)}},{attributes:{value:Object.freeze(s)},converter:{value:Object.freeze(t)}})}({read:function(e){return'"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"});const pe=Re,ve=i.DI.createInterface();function Oe(){return(null===navigator||void 0===navigator?void 0:navigator.credentials)?"PasswordCredential"in window||(o.warn("PasswordCredential not available in this browser."),!1):(o.warn("CredentialsContainer not available in this browser."),!1)}const Ae={password:!0,mediation:"optional"},me={cookie:{path:"/",name:"credentials",expires:7300,storePasswords:!1}};let fe=class{constructor(e,t=me){this.session=e,this.config=t}createBasicCredentials(e){return{type:C.BASIC,username:e.username,password:e.password}}createRefreshCredentials(e){var t,s;return{type:C.REFRESH,username:null!==(t=null==e?void 0:e.username)&&void 0!==t?t:this.getUsername(),refreshToken:null!==(s=null==e?void 0:e.refreshToken)&&void 0!==s?s:this.getRefreshToken()}}createSSOCredentials(e){var t;return{type:C.SSO,ssoToken:null!==(t=null==e?void 0:e.ssoToken)&&void 0!==t?t:this.getSSOToken()}}validateBasicCredentials(e){return e&&!!e.username&&!!e.password}validateRefreshCredentials(e){return e&&!!e.refreshToken&&!!e.username}validateSSOCredentials(e){return e&&!!e.ssoToken}storeCredentialsInContainer(e){return(0,h.__awaiter)(this,void 0,void 0,(function*(){if(!Oe())return;const t=new PasswordCredential(e);return o.debug("Storing credentials in CredentialsContainer"),navigator.credentials.store(t)}))}getCredentialsFromContainer(e=Ae){return(0,h.__awaiter)(this,void 0,void 0,(function*(){if(Oe())return o.debug("Getting credentials from CredentialsContainer"),yield navigator.credentials.get(e)}))}storeCredentialsInCookie(e){const{password:t}=e,s=(0,h.__rest)(e,["password"]),r=this.config.cookie.storePasswords?e:s;return o.debug("Storing credentials in cookie"),!!pe.set(this.config.cookie.name,JSON.stringify(r),{expires:this.config.cookie.expires,domain:location.hostname,path:this.config.cookie.path,secure:!0})}getCredentialsFromCookie(){o.debug("Getting credentials from cookie");const e=pe.get(this.config.cookie.name);return e?JSON.parse(e):void 0}storeCredentials(e){return(0,h.__awaiter)(this,void 0,void 0,(function*(){if(Oe()){const t=yield this.storeCredentialsInContainer(e);return Promise.resolve(!!t)}return Promise.resolve(this.storeCredentialsInCookie(e))}))}getCredentials(e){return(0,h.__awaiter)(this,void 0,void 0,(function*(){return Oe()?this.getCredentialsFromContainer(e):Promise.resolve(this.getCredentialsFromCookie())}))}getSSOToken(){return this.session.getSessionStorageItem("ssoToken")}getUsername(){return this.session.getSessionStorageItem("username")}getRefreshToken(){return this.session.getSessionStorageItem("refreshToken")}removeCookie(){pe.remove(this.config.cookie.name,{domain:location.hostname,path:this.config.cookie.path})}removeSSOToken(){this.session.removeSessionStorageItem("ssoToken")}removeUsername(){this.session.removeSessionStorageItem("username")}removeRefreshToken(){this.session.removeSessionStorageItem("refreshToken")}removeAll(){this.removeCookie(),this.removeSSOToken(),this.removeUsername(),this.removeRefreshToken()}preventSilentAccess(){return Oe()&&navigator.credentials.preventSilentAccess()}};fe=(0,h.__decorate)([(0,h.__param)(0,f),(0,h.__param)(1,(0,i.optional)(ve))],fe);const Ie=i.DI.createInterface((e=>e.singleton(fe)));class Me{constructor(e){Object.assign(this,e)}hasAdminProfile(){return this.hasProfile("ADMIN")}hasPermission(e){return this.hasKey(this.permissions,e)}hasProfile(e){return this.hasKey(this.profiles,e)}hasKey(e,t){return!!(e&&e.length&&t)&&(Array.isArray(t)||(t=[t]),t.some((t=>e.includes(t))))}}(0,h.__decorate)([l.observable],Me.prototype,"permissions",void 0),(0,h.__decorate)([l.observable],Me.prototype,"profiles",void 0),(0,h.__decorate)([l.observable],Me.prototype,"username",void 0);let be=class{get isLoggedIn(){return!!this.loggedUserResult&&!(!this.loggedUserResult.authToken||!this.loggedUserResult.sessionId)}constructor(e,t,s,r){this.session=e,this.connect=t,this.messageBuilder=s,this.credentialManager=r,this.isWorking=!1,this.loggedUserResult=null,this.currentUser=null}login(e){var t;return(0,h.__awaiter)(this,void 0,void 0,(function*(){this.isWorking=!0;try{const s=this.messageBuilder.createLoginMessage(e),r=yield this.connect.send(s);if(!r||r.ERROR||(null===(t=r.DETAILS)||void 0===t?void 0:t.ERROR))throw new P(s,r);this.applyAuthResults({authToken:r.SESSION_AUTH_TOKEN,refreshToken:r.REFRESH_AUTH_TOKEN,profiles:r.PROFILE,username:r.USER_NAME,permissions:r.PERMISSION,sessionId:r.SESSION_ID}),this.session.setAuthResult(r),o.debug("Login Authentication Result:",r)}catch(e){if(o.error("Login Authentication Error:",e),!(e instanceof P&&e.isIgnorableError()))throw this.removeAuthResults(),e;o.warn("Ignoring authentication error as it is a known edge case.")}finally{this.isWorking=!1}return this.loggedUserResult}))}logout(){var e;return(0,h.__awaiter)(this,void 0,void 0,(function*(){this.isWorking=!0;let t={success:!1};try{const s=this.messageBuilder.createLogoutMessage(this.loggedUserResult);this.session.deleteUserFromSessionStorage(),this.connect.setValidSession(!1);const{CODE:r,DETAILS:i,MESSAGE_TYPE:n}=yield this.connect.send(s);t={success:n===U.LOGOUT_ACK||r===w.SESSION_NOT_FOUND,error:null!==(e=null==i?void 0:i.ERROR)&&void 0!==e?e:void 0}}catch(e){const s=new P(e.sentMessage,e.receivedMessage);if(o.error("Logout Authentication Error:",s),!s.isIgnorableError())throw e;o.warn("Ignoring authentication error as it is a known edge case."),t.success=!0}finally{this.removeAuthResults(),this.isWorking=!1}return t}))}reAuthFromSession(){return(0,h.__awaiter)(this,void 0,void 0,(function*(){const e=this.session.getSessionStorageItem("hostUrl");if(e&&(yield this.connect.connect(e))){const e=this.messageBuilder.createRefreshTokenMessage(),t=yield this.connect.send(e);if((null==t?void 0:t.MESSAGE_TYPE)===L.EVENT_LOGIN_AUTH_ACK)return this.session.setAuthResult(t),this.connect.setValidSession(!0),this.applyAuthResults(this.getLoggedUserFromSession(t)),!0}return this.session.deleteUserFromSessionStorage(),this.connect.setValidSession(!1),!1}))}getLoggedUserFromSession(e){const t=e.USER_NAME,s=e.SESSION_AUTH_TOKEN,r=e.REFRESH_AUTH_TOKEN;return t&&s&&r?{username:t,authToken:s,refreshToken:r,profiles:e.PROFILE,permissions:e.PERMISSION,sessionId:e.SESSION_ID}:null}applyAuthResults(e){e?(this.loggedUserResult={authToken:e.authToken,refreshToken:e.refreshToken,profiles:e.profiles,username:e.username,permissions:e.permissions,sessionId:e.sessionId},this.currentUser=new Me({permissions:e.permissions,profiles:e.profiles,username:e.username})):this.removeAuthResults()}removeAuthResults(){this.loggedUserResult=null,this.currentUser=null}};(0,h.__decorate)([l.observable],be.prototype,"isWorking",void 0),(0,h.__decorate)([l.observable],be.prototype,"loggedUserResult",void 0),(0,h.__decorate)([l.observable],be.prototype,"currentUser",void 0),(0,h.__decorate)([l.volatile],be.prototype,"isLoggedIn",null),be=(0,h.__decorate)([(0,h.__param)(0,f),(0,h.__param)(1,_e),(0,h.__param)(2,k),(0,h.__param)(3,Ie)],be);const Ne=i.DI.createInterface((e=>e.singleton(be)));var Ce,Ue;!function(e){e.DATASERVER="DATASERVER",e.EVENT_HANDLER="EVENT_HANDLER",e.REQUEST_SERVER="REQUEST_SERVER"}(Ce||(Ce={}));class Le{}Le.MAX_ROWS_250=250,Le.MAX_VIEW_1000=1e3,Le.REQ_REP_POLLING_INTERVAL_MS=1e4,function(e){e.STRING="STRING",e.NUMBER="NUMBER",e.BOOLEAN="BOOLEAN",e.ENUM="ENUM",e.DATE="DATE",e.DATETIME="DATETIME",e.CUSTOM="CUSTOM"}(Ue||(Ue={}));const we={STRING:Ue.STRING,ENUM:Ue.ENUM,BOOLEAN:Ue.BOOLEAN,INT:Ue.NUMBER,DOUBLE:Ue.NUMBER,BIGDECIMAL:Ue.NUMBER,DATE:Ue.DATE,DATETIME:Ue.DATETIME},Pe=e=>e?e.map((e=>{const t={name:e.NAME,type:we[e.TYPE]||Ue.STRING};if(e.TYPE===Ue.ENUM&&e.VALID_VALUES)try{t.enumOptions=Array.isArray(e.VALID_VALUES)?e.VALID_VALUES:e.VALID_VALUES.split("|")}catch(e){o.error(e),t.enumOptions=[]}return t})):null,ye=e=>{const t=null==e?void 0:e.TYPE;if(t===Ce.DATASERVER)return e.FIELD||[];if(t===Ce.REQUEST_SERVER)return e.REPLY_FIELD||[];throw new Error(`Unsupported resource type: ${t}`)};let De=class{constructor(e,t){this.connect=e,this.auth=t,this.initialized=!1,this.readOnly=!0,this.originalFieldDef=[],this.requestFields=[],this.fieldMetadata=[],this.availableIndexes=[],this.defaultOptions={criteria:"",isSnapshot:!1,maxRows:Le.MAX_ROWS_250,maxView:Le.MAX_VIEW_1000,orderBy:"",resourceName:"",reverse:!1}}init(e,t=!0){var s;return(0,h.__awaiter)(this,void 0,void 0,(function*(){if(!this.validResourceName(null==e?void 0:e.resourceName))return!1;if(this.options=Object.assign(Object.assign({},this.defaultOptions),e),t){o.debug(`Initializing ${this.options.resourceName} Datasource`);const t=yield this.connect.getMetadata(this.options.resourceName).catch((t=>o.error(`Metadata Fetch failed for ${e.resourceName}:`,t)));if(!t)return!1;this.resourceType=t.TYPE,this.availableIndexes=null!==(s=t.INDEXES)&&void 0!==s?s:[],this.originalFieldDef=ye(t),this.fieldMetadata=Pe(this.originalFieldDef),this.requestFields=t.REQUEST_FIELD||[],o.debug(`Datasource for ${this.options.resourceName} is ready`)}return this.options.isSnapshot||(this._stream=yield this.createStream()),this.initialized=!0,this.initialized}))}get stream(){return this._stream}get params(){const e={CRITERIA_MATCH:this.options.criteria,FIELDS:this.options.fields,MAX_ROWS:this.options.maxRows,MAX_VIEW:this.options.maxView,REQUEST:this.options.request,REVERSE:this.options.reverse};if(this.options.orderBy)if(this.availableIndexes.findIndex((e=>e.NAME===this.options.orderBy))>-1)e.ORDER_BY=this.options.orderBy;else{const e=this.availableIndexes.map((e=>e.NAME));o.warn("Specified [orderBy] index is not valid and will not be used. See https://learn.genesis.global/docs/database/data-types/index-entities/ - Available indexes:",e)}return o.debug("Getting configured params:",e),e}snapshot(){var e;return(0,h.__awaiter)(this,void 0,void 0,(function*(){switch(o.debug(`Requesting snapshot for ${this.options.resourceName} (${this.resourceType}).`),this.resourceType){case Ce.DATASERVER:return this.connect.snapshot(this.options.resourceName,this.params);case Ce.REQUEST_SERVER:{const t={DETAILS:Object.assign({},this.params),REQUEST:null},s={};if(this.requestFields.forEach((e=>{s[e.NAME]="*"})),t.REQUEST=s,null===(e=null==this?void 0:this.options)||void 0===e?void 0:e.criteria){const e=this.criteriaToReqFields(this.options.criteria);t.REQUEST=Object.assign(Object.assign({},t.REQUEST),e)}return this.connect.request(this.options.resourceName,t)}default:throw new Error(`Snapshot not supported for selected resource type: ${this.resourceType}`)}}))}snapshotFiltered(e="ROW_REF"){return(0,h.__awaiter)(this,void 0,void 0,(function*(){const t=yield this.snapshot();return Array.isArray(t)?t:t.REPLY?t.REPLY:t.ROW?this.filterRows(t,e).inserts:void 0}))}filterRows(e,t){const s=e=>{const s=Object.assign(Object.assign({},e),{[t]:e.DETAILS[t]});return delete s.DETAILS,s},r=[],i=[],n=[];for(const t of e.ROW)if(t.DETAILS)switch(t.DETAILS.OPERATION){case"INSERT":r.push(s(t));break;case"MODIFY":n.push(s(t));break;case"DELETE":i.push(s(t));break;default:o.error(`Unsupported operation type: ${t.DETAILS.OPERATION}`)}return{inserts:r,deletes:i,updates:n,SOURCE_REF:e.SOURCE_REF}}createStream(){return(0,h.__awaiter)(this,void 0,void 0,(function*(){if(![Ce.DATASERVER,Ce.REQUEST_SERVER].includes(this.resourceType))throw new Error(`Streaming not supported for selected resource type: ${this.resourceType}`);return this.resourceType===Ce.DATASERVER?this.createDataserverStream():(o.debug(`Creating fake stream by polling ${this.options.resourceName} REQUEST_SERVER`),this.createReqRepStream())}))}createDataserverStream(){return(0,h.__awaiter)(this,void 0,void 0,(function*(){return this.connect.stream(this.options.resourceName,(e=>{}),(e=>o.error(e)),this.params)}))}createReqRepStream(){return(0,K.H)(0,Le.REQ_REP_POLLING_INTERVAL_MS).pipe((0,O.o)((()=>this.connect.isConnected&&this.auth.isLoggedIn)),(0,p.w)((()=>(0,R.D)(this.snapshot()))))}validResourceName(e){return!!e&&!!e.trim().length}criteriaToReqFields(e){const t=e.split("&&").map((e=>e.trim())),s={};return t.forEach((e=>{const t=e.substr(0,e.indexOf("=")).trim().replace(/["']/g,""),r=e.substr(e.lastIndexOf("=")+1,e.length).trim().replace(/["']/g,"");s[t]=r})),s}};(0,h.__decorate)([l.observable],De.prototype,"initialized",void 0),(0,h.__decorate)([l.observable],De.prototype,"readOnly",void 0),(0,h.__decorate)([l.volatile],De.prototype,"stream",null),De=(0,h.__decorate)([(0,h.__param)(0,_e),(0,h.__param)(1,Ne)],De);const ke=i.DI.createInterface((e=>e.transient(De)));var Ge=s(3614);class Fe{constructor(){this.isReady=!1,this.connect()}connect(){return(0,h.__awaiter)(this,void 0,void 0,(function*(){try{this.isReady=!1,yield(0,Ge.E$)(),o.debug("fdc3 connection success")}catch(e){throw o.error("fdc3 connection error",e),e}}))}addIntentListeners(e){e.forEach(((e,t)=>{const s=(0,Ge.v7)(t,e);o.debug(`fdc3 addIntentListener for '${t}', ${s}`)}))}findIntent(e,t){return o.debug(`fdc3 findIntent '${e}' '${t}'`),(0,Ge.z6)(e,t)}findIntentsByContext(e){return o.debug(`fdc3 findIntentsByContext '${e}'`),(0,Ge.PJ)(e)}raiseIntent(e,t){return Ge.C5&&(0,Ge.Bh)((0,Ge.C5)(),"1.2")?(o.debug(`fdc3 raiseIntentForContext '${e}'`),(0,Ge.NY)(e)):t?(o.debug(`fdc3 raiseIntent '${t}' '${e}'`),(0,Ge.v$)(t,e)):void o.error(`fdc3 unable to raiseIntent using context '${e}' and intent '${t}'.`)}joinChannel(e){return o.debug(`fdc3 joinChannel '${e}'`),(0,Ge.JJ)(e)}getOrCreateChannel(e){return o.debug(`fdc3 getOrCreateChannel '${e}'`),(0,Ge.Uo)(e)}broadcastOnChannel(e,t){return(0,h.__awaiter)(this,void 0,void 0,(function*(){const s=yield this.getOrCreateChannel(e);o.debug(`fdc3 broadcast '${e}' '${t}'`),s.broadcast(t)}))}}(0,h.__decorate)([l.observable],Fe.prototype,"isReady",void 0);const He=i.DI.createInterface((e=>e.singleton(Fe)))}}]);
|
|
3
|
+
//# sourceMappingURL=338.b80e69713f188e86ac3d235966bec4b6.js.map
|