@uportal/form-builder 2.0.0 → 2.1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"form-builder.min.js","sources":["../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit-html/lit-html.js","../node_modules/lit-element/lit-element.js","../node_modules/jwt-decode/build/jwt-decode.esm.js","../src/form-builder.js"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.1\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=S(t,h._$AS(t,i.values),h,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new R(this.O(l()),this.O(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.1\");const B=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.1\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","function e(e){this.message=e}e.prototype=new Error,e.prototype.name=\"InvalidCharacterError\";var r=\"undefined\"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,\"\");if(t.length%4==1)throw new e(\"'atob' failed: The string to be decoded is not correctly encoded.\");for(var n,o,a=0,i=0,c=\"\";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(o);return c};function t(e){var t=e.replace(/-/g,\"+\").replace(/_/g,\"/\");switch(t.length%4){case 0:break;case 2:t+=\"==\";break;case 3:t+=\"=\";break;default:throw\"Illegal base64url string!\"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t=\"0\"+t),\"%\"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if(\"string\"!=typeof e)throw new n(\"Invalid token specified\");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(\".\")[o]))}catch(e){throw new n(\"Invalid token specified: \"+e.message)}}n.prototype=new Error,n.prototype.name=\"InvalidTokenError\";export default o;export{n as InvalidTokenError};\n//# sourceMappingURL=jwt-decode.esm.js.map\n","import { LitElement, html, css } from 'lit';\nimport decode from 'jwt-decode';\n\nfunction delay(ms) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\n/**\n * Dynamic Form Builder Web Component\n * Fetches JSON schema and form data, then renders a dynamic form\n * \n * @element form-builder\n * \n * @attr {string} fbms-base-url - Base URL of the form builder microservice\n * @attr {string} fbms-form-fname - Form name to fetch\n * @attr {string} oidc-url - OpenID Connect URL for authentication\n * @attr {string} styles - Optional custom CSS styles\n */\nclass FormBuilder extends LitElement {\n static properties = {\n fbmsBaseUrl: { type: String, attribute: 'fbms-base-url' },\n fbmsFormFname: { type: String, attribute: 'fbms-form-fname' },\n oidcUrl: { type: String, attribute: 'oidc-url' },\n customStyles: { type: String, attribute: 'styles' },\n\n // Internal state\n schema: { type: Object, state: true },\n formData: { type: Object, state: true },\n uiSchema: { type: Object, state: true },\n fbmsFormVersion: { type: String, state: true },\n loading: { type: Boolean, state: true },\n submitting: { type: Boolean, state: true },\n error: { type: String, state: true },\n token: { type: String, state: true },\n decoded: { type: Object, state: true },\n };\n\n static styles = css`\n :host {\n display: block;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\n }\n\n .container {\n max-width: 800px;\n margin: 0 auto;\n padding: 20px;\n }\n\n .loading {\n text-align: center;\n padding: 40px;\n color: #666;\n }\n\n .error {\n background-color: #fee;\n border: 1px solid #fcc;\n border-radius: 4px;\n padding: 15px;\n margin: 20px 0;\n color: #c00;\n }\n\n form {\n display: flex;\n flex-direction: column;\n gap: 20px;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n label {\n font-weight: 500;\n color: #333;\n }\n\n .required::after {\n content: ' *';\n color: #c00;\n }\n\n .description {\n font-size: 0.875rem;\n color: #666;\n margin-top: 4px;\n }\n\n input[type=\"text\"],\n input[type=\"email\"],\n input[type=\"number\"],\n input[type=\"date\"],\n input[type=\"tel\"],\n textarea,\n select {\n padding: 8px 12px;\n border: 1px solid #ccc;\n border-radius: 4px;\n font-size: 1rem;\n font-family: inherit;\n width: 100%;\n box-sizing: border-box;\n }\n\n input:focus,\n textarea:focus,\n select:focus {\n outline: none;\n border-color: #0066cc;\n box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.1);\n }\n\n textarea {\n min-height: 100px;\n resize: vertical;\n }\n\n input[type=\"checkbox\"],\n input[type=\"radio\"] {\n margin-right: 8px;\n }\n\n .checkbox-group,\n .radio-group {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .checkbox-item,\n .radio-item {\n display: flex;\n align-items: center;\n }\n\n .error-message {\n color: #c00;\n font-size: 0.875rem;\n margin-top: 4px;\n }\n\n .buttons {\n display: flex;\n gap: 12px;\n margin-top: 20px;\n }\n\n button {\n padding: 10px 20px;\n border: none;\n border-radius: 4px;\n font-size: 1rem;\n cursor: pointer;\n font-family: inherit;\n transition: background-color 0.2s;\n }\n\n button[type=\"submit\"] {\n background-color: #0066cc;\n color: white;\n }\n\n button[type=\"submit\"]:hover {\n background-color: #0052a3;\n }\n\n button[type=\"button\"] {\n background-color: #c0c0c0;\n color: #333;\n }\n\n button[type=\"button\"]:hover {\n background-color: #e0e0e0;\n }\n\n button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .spinner {\n display: inline-block;\n width: 1em;\n height: 1em;\n border: 2px solid rgba(255, 255, 255, 0.3);\n border-radius: 50%;\n border-top-color: white;\n animation: spin 0.8s linear infinite;\n margin-right: 8px;\n vertical-align: middle;\n }\n\n @keyframes spin {\n to { transform: rotate(360deg); }\n }\n\n .button-content {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n `;\n\n constructor() {\n super();\n this.loading = true;\n this.submitting = false;\n this.error = null;\n this.schema = null;\n this.formData = {};\n this.uiSchema = null;\n this.fbmsFormVersion = null;\n this.token = null;\n this.decoded = {sub: 'unknown'};\n this.fieldErrors = {};\n }\n\n async connectedCallback() {\n super.connectedCallback();\n await this.initialize();\n }\n\n async initialize() {\n try {\n this.loading = true;\n this.error = null;\n\n // Fetch OIDC token if URL provided\n if (this.oidcUrl) {\n await this.fetchToken();\n }\n\n // Fetch form schema and data\n await Promise.all([\n this.fetchSchema(),\n this.fetchFormData(),\n ]);\n\n this.loading = false;\n } catch (err) {\n this.error = err.message || 'Failed to initialize form';\n this.loading = false;\n }\n }\n\n async fetchToken() {\n try {\n const response = await fetch(this.oidcUrl, {\n credentials: 'include',\n });\n\n if (!response.ok) {\n throw new Error('Failed to authenticate');\n }\n\n const data = await response.text();\n this.token = data\n this.decoded = decode(this.token);\n } catch (err) {\n console.error('Token fetch error:', err);\n throw new Error('Authentication failed');\n }\n }\n\n async fetchSchema() {\n const url = `${this.fbmsBaseUrl}/api/v1/forms/${this.fbmsFormFname}`;\n const headers = {\n 'content-type': 'application/jwt',\n };\n\n if (this.token) {\n headers['Authorization'] = `Bearer ${this.token}`;\n }\n\n const response = await fetch(url, {\n credentials: 'same-origin',\n headers,\n });\n\n if (!response.ok) {\n throw new Error(`Failed to fetch schema: ${response.statusText}`);\n }\n\n const data = await response.json();\n this.fbmsFormVersion = data.version;\n this.schema = data.schema || data;\n this.uiSchema = data.metadata;\n }\n\n async fetchFormData() {\n const url = `${this.fbmsBaseUrl}/api/v1/submissions/${this.fbmsFormFname}?safarifix=${Math.random()}`;\n const headers = {\n 'content-type': 'application/jwt',\n };\n\n if (this.token) {\n headers['Authorization'] = `Bearer ${this.token}`;\n }\n\n try {\n const response = await fetch(url, {\n credentials: 'same-origin',\n headers,\n });\n\n if (response.ok) {\n const payload = await response.json();\n this.formData = payload.answers;\n } else {\n // It's OK if there's no existing data\n this.formData = {};\n }\n } catch (err) {\n // Non-critical error\n console.warn('Could not fetch form data:', err);\n this.formData = {};\n }\n }\n\n handleInputChange(fieldName, event) {\n const { type, value, checked } = event.target;\n\n this.formData = {\n ...this.formData,\n [fieldName]: type === 'checkbox' ? checked : value,\n };\n\n // Clear field error on change\n if (this.fieldErrors[fieldName]) {\n this.fieldErrors = { ...this.fieldErrors };\n delete this.fieldErrors[fieldName];\n }\n }\n\n handleArrayChange(fieldName, index, event) {\n const currentArray = this.formData[fieldName] || [];\n const newArray = [...currentArray];\n newArray[index] = event.target.value;\n\n this.formData = {\n ...this.formData,\n [fieldName]: newArray,\n };\n }\n\n validateForm() {\n const errors = {};\n const { properties = {}, required = [] } = this.schema;\n\n // Check required fields\n required.forEach(fieldName => {\n const value = this.formData[fieldName];\n if (value === undefined || value === null || value === '') {\n errors[fieldName] = 'This field is required';\n }\n });\n\n // Type validation\n Object.entries(properties).forEach(([fieldName, fieldSchema]) => {\n const value = this.formData[fieldName];\n\n if (value !== undefined && value !== null && value !== '') {\n // Email validation\n if (fieldSchema.format === 'email') {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n if (!emailRegex.test(value)) {\n errors[fieldName] = 'Invalid email address';\n }\n }\n\n // Number validation\n if (fieldSchema.type === 'number' || fieldSchema.type === 'integer') {\n const num = Number(value);\n if (isNaN(num)) {\n errors[fieldName] = 'Must be a number';\n } else {\n if (fieldSchema.minimum !== undefined && num < fieldSchema.minimum) {\n errors[fieldName] = `Must be at least ${fieldSchema.minimum}`;\n }\n if (fieldSchema.maximum !== undefined && num > fieldSchema.maximum) {\n errors[fieldName] = `Must be at most ${fieldSchema.maximum}`;\n }\n }\n }\n\n // String length validation\n if (fieldSchema.type === 'string') {\n if (fieldSchema.minLength && value.length < fieldSchema.minLength) {\n errors[fieldName] = `Must be at least ${fieldSchema.minLength} characters`;\n }\n if (fieldSchema.maxLength && value.length > fieldSchema.maxLength) {\n errors[fieldName] = `Must be at most ${fieldSchema.maxLength} characters`;\n }\n }\n }\n });\n\n this.fieldErrors = errors;\n return Object.keys(errors).length === 0;\n }\n\n async handleSubmit(event) {\n event.preventDefault();\n\n if (!this.validateForm()) {\n this.requestUpdate();\n return;\n }\n\n // Prevent double-submission\n if (this.submitting) {\n return;\n }\n\n try {\n this.submitting = true;\n this.error = null;\n const body = {\n username: this.decoded.sub,\n formFname: this.fbmsFormFname,\n formVersion: this.fbmsFormVersion,\n timestamp: Date.now(),\n answers: this.formData\n };\n await delay(300);\n\n const url = `${this.fbmsBaseUrl}/api/v1/submissions/${this.fbmsFormFname}`;\n const headers = {\n 'content-type': 'application/json',\n };\n\n if (this.token) {\n headers['Authorization'] = `Bearer ${this.token}`;\n }\n\n const response = await fetch(url, {\n method: 'POST',\n credentials: 'same-origin',\n headers,\n body: JSON.stringify(body),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to submit form: ${response.statusText}`);\n }\n\n // Dispatch success event\n this.dispatchEvent(new CustomEvent('form-submit-success', {\n detail: { data: body },\n bubbles: true,\n composed: true,\n }));\n\n // Optional: Reset or show success message\n this.error = null;\n } catch (err) {\n this.error = err.message || 'Failed to submit form';\n\n this.dispatchEvent(new CustomEvent('form-submit-error', {\n detail: { error: err.message },\n bubbles: true,\n composed: true,\n }));\n } finally {\n this.submitting = false;\n }\n }\n\n handleReset() {\n this.formData = {};\n this.fieldErrors = {};\n this.requestUpdate();\n }\n\n renderField(fieldName, fieldSchema) {\n const value = this.formData[fieldName];\n const error = this.fieldErrors[fieldName];\n const required = this.schema.required?.includes(fieldName);\n const uiOptions = this.uiSchema?.[fieldName] || {};\n\n return html`\n <div class=\"form-group\">\n <label class=\"${required ? 'required' : ''}\" for=\"${fieldName}\">\n ${fieldSchema.title || fieldName}\n </label>\n\n ${fieldSchema.description ? html`\n <span class=\"description\">${fieldSchema.description}</span>\n ` : ''}\n\n ${this.renderInput(fieldName, fieldSchema, value, uiOptions)}\n\n ${error ? html`\n <span class=\"error-message\">${error}</span>\n ` : ''}\n </div>\n `;\n }\n\n renderInput(fieldName, fieldSchema, value, uiOptions) {\n const { type, enum: enumValues, format } = fieldSchema;\n\n // Enum - render as select\n if (enumValues) {\n return html`\n <select\n id=\"${fieldName}\"\n name=\"${fieldName}\"\n .value=\"${value || ''}\"\n @change=\"${(e) => this.handleInputChange(fieldName, e)}\"\n >\n <option value=\"\">-- Select --</option>\n ${enumValues.map(opt => html`\n <option value=\"${opt}\" ?selected=\"${value === opt}\">\n ${opt}\n </option>\n `)}\n </select>\n `;\n }\n\n // Boolean - render as checkbox\n if (type === 'boolean') {\n return html`\n <div class=\"checkbox-item\">\n <input\n type=\"checkbox\"\n id=\"${fieldName}\"\n name=\"${fieldName}\"\n .checked=\"${!!value}\"\n @change=\"${(e) => this.handleInputChange(fieldName, e)}\"\n />\n <label for=\"${fieldName}\">${fieldSchema.title || fieldName}</label>\n </div>\n `;\n }\n\n // String with format\n if (type === 'string') {\n if (format === 'email') {\n return html`\n <input\n type=\"email\"\n id=\"${fieldName}\"\n name=\"${fieldName}\"\n .value=\"${value || ''}\"\n @input=\"${(e) => this.handleInputChange(fieldName, e)}\"\n />\n `;\n }\n\n if (format === 'date') {\n return html`\n <input\n type=\"date\"\n id=\"${fieldName}\"\n name=\"${fieldName}\"\n .value=\"${value || ''}\"\n @input=\"${(e) => this.handleInputChange(fieldName, e)}\"\n />\n `;\n }\n\n if (uiOptions['ui:widget'] === 'textarea') {\n return html`\n <textarea\n id=\"${fieldName}\"\n name=\"${fieldName}\"\n .value=\"${value || ''}\"\n @input=\"${(e) => this.handleInputChange(fieldName, e)}\"\n ></textarea>\n `;\n }\n\n // Default text input\n return html`\n <input\n type=\"text\"\n id=\"${fieldName}\"\n name=\"${fieldName}\"\n .value=\"${value || ''}\"\n @input=\"${(e) => this.handleInputChange(fieldName, e)}\"\n />\n `;\n }\n\n // Number\n if (type === 'number' || type === 'integer') {\n return html`\n <input\n type=\"number\"\n id=\"${fieldName}\"\n name=\"${fieldName}\"\n .value=\"${value || ''}\"\n step=\"${type === 'integer' ? '1' : 'any'}\"\n @input=\"${(e) => this.handleInputChange(fieldName, e)}\"\n />\n `;\n }\n\n // Fallback\n return html`\n <input\n type=\"text\"\n id=\"${fieldName}\"\n name=\"${fieldName}\"\n .value=\"${value || ''}\"\n @input=\"${(e) => this.handleInputChange(fieldName, e)}\"\n />\n `;\n }\n\n render() {\n if (this.loading) {\n return html`\n <div class=\"container\">\n <div class=\"loading\">Loading form...</div>\n </div>\n `;\n }\n\n if (this.error) {\n return html`\n <div class=\"container\">\n <div class=\"error\">\n <strong>Error:</strong> ${this.error}\n </div>\n </div>\n `;\n }\n\n if (!this.schema || !this.schema.properties) {\n return html`\n <div class=\"container\">\n <div class=\"error\">Invalid form schema</div>\n </div>\n `;\n }\n\n return html`\n ${this.customStyles ? html`<style>${this.customStyles}</style>` : ''}\n\n <div class=\"container\">\n <form @submit=\"${this.handleSubmit}\">\n ${this.schema.title ? html`<h2>${this.schema.title}</h2>` : ''}\n ${this.schema.description ? html`<p>${this.schema.description}</p>` : ''}\n\n ${Object.entries(this.schema.properties).map(([fieldName, fieldSchema]) =>\n this.renderField(fieldName, fieldSchema)\n )}\n\n <div class=\"buttons\">\n <button type=\"submit\" ?disabled=\"${this.submitting}\">\n <span class=\"button-content\">\n ${this.submitting ? html`<span class=\"spinner\"></span>` : ''}\n ${this.submitting ? 'Submitting...' : 'Submit'}\n </span>\n </button>\n <button type=\"button\" @click=\"${this.handleReset}\" ?disabled=\"${this.submitting}\">\n Reset\n </button>\n </div>\n </form>\n </div>\n `;\n }\n}\n\ncustomElements.define('form-builder', FormBuilder);\n"],"names":["t","globalThis","e","ShadowRoot","ShadyCSS","nativeShadow","Document","prototype","CSSStyleSheet","s","Symbol","o","WeakMap","n$3","constructor","this","_$cssResult$","Error","cssText","styleSheet","length","get","replaceSync","set","toString","i","reduce","n","c","cssRules","r","is","defineProperty","getOwnPropertyDescriptor","h","getOwnPropertyNames","getOwnPropertySymbols","getPrototypeOf","Object","a","trustedTypes","l","emptyScript","p","reactiveElementPolyfillSupport","d","u","toAttribute","Boolean","Array","JSON","stringify","fromAttribute","Number","parse","f","b","attribute","type","String","converter","reflect","useDefault","hasChanged","metadata","litPropertyMetadata","HTMLElement","addInitializer","_$Ei","push","observedAttributes","finalize","_$Eh","keys","createProperty","state","hasOwnProperty","create","wrapped","elementProperties","noAccessor","getPropertyDescriptor","call","requestUpdate","configurable","enumerable","getPropertyOptions","Map","finalized","properties","_$Eu","elementStyles","finalizeStyles","styles","isArray","Set","flat","reverse","unshift","toLowerCase","super","_$Ep","isUpdatePending","hasUpdated","_$Em","_$Ev","_$ES","Promise","enableUpdating","_$AL","_$E_","forEach","addController","_$EO","add","renderRoot","isConnected","hostConnected","removeController","delete","size","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","adoptedStyleSheets","map","document","createElement","litNonce","setAttribute","textContent","appendChild","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$ET","removeAttribute","_$Ej","hasAttribute","C","_$EP","has","_$Eq","reject","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","update","_$EM","_$AE","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","y","mode","ReactiveElement","reactiveElementVersions","createPolicy","createHTML","Math","random","toFixed","slice","createComment","v","_","m","RegExp","g","$","x","_$litType$","strings","values","T","for","E","A","createTreeWalker","P","V","lastIndex","exec","test","startsWith","N","parts","el","currentNode","content","firstChild","replaceWith","childNodes","nextNode","nodeType","hasAttributes","getAttributeNames","endsWith","getAttribute","split","index","name","ctor","H","I","L","k","tagName","append","data","indexOf","innerHTML","S","_$Co","_$Cl","_$litDirective$","_$AO","_$AT","_$AS","M","_$AV","_$AN","_$AD","_$AM","parentNode","_$AU","creationScope","importNode","R","nextSibling","z","_$AI","_$Cv","_$AH","_$AA","_$AB","options","startNode","endNode","_$AR","iterator","O","insertBefore","createTextNode","_$AC","_$AP","remove","setConnected","element","fill","j","arguments","toggleAttribute","capture","once","passive","removeEventListener","addEventListener","handleEvent","host","litHtmlPolyfillSupport","litHtmlVersions","renderOptions","_$Do","renderBefore","render","_$litPart$","_$litElement$","litElementHydrateSupport","LitElement","litElementPolyfillSupport","message","litElementVersions","window","atob","bind","replace","charAt","fromCharCode","decodeURIComponent","charCodeAt","toUpperCase","FormBuilder","static","fbmsBaseUrl","fbmsFormFname","oidcUrl","customStyles","schema","formData","uiSchema","fbmsFormVersion","loading","submitting","error","token","decoded","css","sub","fieldErrors","initialize","fetchToken","all","fetchSchema","fetchFormData","err","response","fetch","credentials","ok","text","header","decode","console","url","headers","statusText","json","version","payload","answers","warn","handleInputChange","fieldName","event","value","checked","target","handleArrayChange","newArray","validateForm","errors","required","entries","fieldSchema","format","num","isNaN","undefined","minimum","maximum","minLength","maxLength","handleSubmit","ms","preventDefault","body","username","formFname","formVersion","timestamp","Date","now","resolve","setTimeout","method","dispatchEvent","CustomEvent","detail","bubbles","composed","handleReset","renderField","includes","uiOptions","html","title","description","renderInput","enum","enumValues","opt","customElements","define"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
1
+ {"version":3,"file":"form-builder.min.js","sources":["../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit-html/lit-html.js","../node_modules/lit-element/lit-element.js","../node_modules/jwt-decode/build/esm/index.js","../src/form-builder.js"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.1\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=S(t,h._$AS(t,i.values),h,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new R(this.O(l()),this.O(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.1\");const B=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.1\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","export class InvalidTokenError extends Error {\n}\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(atob(str).replace(/(.)/g, (m, p) => {\n let code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n }));\n}\nfunction base64UrlDecode(str) {\n let output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw new Error(\"base64 string is not of the correct length\");\n }\n try {\n return b64DecodeUnicode(output);\n }\n catch (err) {\n return atob(output);\n }\n}\nexport function jwtDecode(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified: must be a string\");\n }\n options || (options = {});\n const pos = options.header === true ? 0 : 1;\n const part = token.split(\".\")[pos];\n if (typeof part !== \"string\") {\n throw new InvalidTokenError(`Invalid token specified: missing part #${pos + 1}`);\n }\n let decoded;\n try {\n decoded = base64UrlDecode(part);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid base64 for part #${pos + 1} (${e.message})`);\n }\n try {\n return JSON.parse(decoded);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid json for part #${pos + 1} (${e.message})`);\n }\n}\n","import { LitElement, html, css } from 'lit';\nimport { jwtDecode } from 'jwt-decode';\n\n/**\n * Dynamic Form Builder Web Component\n * Fetches JSON schema and form data, then renders a dynamic form\n *\n * @element form-builder\n *\n * @attr {string} fbms-base-url - Base URL of the form builder microservice\n * @attr {string} fbms-form-fname - Form name to fetch\n * @attr {string} oidc-url - OpenID Connect URL for authentication\n * @attr {string} styles - Optional custom CSS styles\n */\nclass FormBuilder extends LitElement {\n static properties = {\n fbmsBaseUrl: { type: String, attribute: 'fbms-base-url' },\n fbmsFormFname: { type: String, attribute: 'fbms-form-fname' },\n oidcUrl: { type: String, attribute: 'oidc-url' },\n customStyles: { type: String, attribute: 'styles' },\n\n // Internal state\n schema: { type: Object, state: true },\n _formData: { type: Object, state: true },\n uiSchema: { type: Object, state: true },\n fbmsFormVersion: { type: String, state: true },\n loading: { type: Boolean, state: true },\n submitting: { type: Boolean, state: true },\n error: { type: String, state: true },\n token: { type: String, state: true },\n decoded: { type: Object, state: true },\n submitSuccess: { type: Boolean, state: true },\n validationFailed: { type: Boolean, state: true },\n initialFormData: { type: Object, state: true },\n hasChanges: { type: Boolean, state: true },\n submissionStatus: { type: Object, state: true },\n formCompleted: { type: Boolean, state: true },\n submissionError: { type: String, state: true },\n };\n\n static styles = css`\n :host {\n display: block;\n font-family:\n -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\n }\n\n .container {\n max-width: 800px;\n margin: 0 auto;\n padding: 20px;\n }\n\n .loading {\n text-align: center;\n padding: 40px;\n color: #666;\n }\n\n .error {\n background-color: #fee;\n border: 1px solid #fcc;\n border-radius: 4px;\n padding: 15px;\n margin: 20px 0;\n color: #c00;\n }\n\n form {\n display: flex;\n flex-direction: column;\n gap: 20px;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin: 14px 0px;\n }\n\n .nested-object {\n margin-left: 20px;\n padding-left: 20px;\n border-left: 2px solid #e0e0e0;\n margin-top: 10px;\n }\n\n .nested-object-title {\n font-weight: 600;\n color: #333;\n margin-bottom: 10px;\n }\n\n .nested-object-description {\n font-size: 0.875rem;\n color: #666;\n margin-bottom: 15px;\n }\n\n label {\n font-weight: 500;\n color: #333;\n }\n\n .required::after {\n content: ' *';\n color: #c00;\n }\n\n .description {\n font-size: 0.875rem;\n color: #666;\n margin-top: 4px;\n }\n\n input[type='text'],\n input[type='email'],\n input[type='number'],\n input[type='date'],\n input[type='tel'],\n textarea,\n select {\n padding: 8px 12px;\n border: 1px solid #ccc;\n border-radius: 4px;\n font-size: 1rem;\n font-family: inherit;\n width: 100%;\n box-sizing: border-box;\n }\n\n input:focus,\n textarea:focus,\n select:focus {\n outline: none;\n border-color: #0066cc;\n box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.1);\n }\n\n select[multiple] {\n min-height: 120px;\n padding: 4px;\n }\n\n select[multiple] option {\n padding: 4px 8px;\n }\n\n textarea {\n min-height: 100px;\n resize: vertical;\n }\n\n input[type='checkbox'],\n input[type='radio'] {\n margin-right: 8px;\n }\n\n fieldset {\n border: none;\n padding: 0;\n margin: 0;\n min-width: 0; /* Fix for some browsers */\n }\n\n legend {\n font-weight: 700;\n color: #333;\n padding: 0;\n margin-bottom: 8px;\n font-size: 1rem;\n }\n\n .checkbox-group,\n .radio-group {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .checkbox-item,\n .radio-item {\n display: flex;\n align-items: center;\n }\n\n .checkbox-group.inline,\n .radio-group.inline {\n flex-direction: row;\n flex-wrap: wrap;\n gap: 16px;\n }\n\n .checkbox-group.inline .checkbox-item,\n .radio-group.inline .radio-item {\n margin-right: 0;\n }\n\n .error-message {\n color: #c00;\n font-size: 0.875rem;\n margin-top: 4px;\n }\n\n .buttons {\n display: flex;\n gap: 12px;\n margin-top: 20px;\n }\n\n button {\n padding: 10px 20px;\n border: none;\n border-radius: 4px;\n font-size: 1rem;\n cursor: pointer;\n font-family: inherit;\n transition: background-color 0.2s;\n }\n\n button[type='submit'] {\n background-color: #0066cc;\n color: white;\n }\n\n button[type='submit']:hover {\n background-color: #0052a3;\n }\n\n button[type='button'] {\n background-color: #c0c0c0;\n color: #333;\n }\n\n button[type='button']:hover {\n background-color: #e0e0e0;\n }\n\n button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .spinner {\n display: inline-block;\n width: 1em;\n height: 1em;\n border: 2px solid rgba(255, 255, 255, 0.3);\n border-radius: 50%;\n border-top-color: white;\n animation: spin 0.8s linear infinite;\n margin-right: 8px;\n vertical-align: middle;\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n .button-content {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n\n .status-message {\n padding: 12px 16px;\n border-radius: 4px;\n margin-bottom: 20px;\n font-weight: 500;\n }\n\n .status-message.success {\n background-color: #d4edda;\n border: 1px solid #c3e6cb;\n color: #155724;\n }\n\n .status-message.validation-error {\n background-color: #fff3cd;\n border: 1px solid #ffeaa7;\n color: #856404;\n }\n\n .status-message.error {\n background-color: #f8d7da;\n border: 1px solid #f5c6cb;\n color: #721c24;\n }\n\n .status-message ul {\n margin: 8px 0 0 0;\n padding-left: 20px;\n }\n\n .status-message li {\n margin: 4px 0;\n }\n\n form.submitting input,\n form.submitting textarea,\n form.submitting select,\n form.submitting button:not([type='submit']) {\n opacity: 0.6;\n pointer-events: none;\n cursor: not-allowed;\n }\n\n .info-only {\n padding: 20px 0;\n }\n\n .info-only p {\n line-height: 1.6;\n color: #333;\n }\n\n .info-label {\n font-weight: 500;\n color: #333;\n display: block;\n }\n `;\n\n // Getter and setter for formData\n get formData() {\n return this._formData;\n }\n\n set formData(value) {\n const oldValue = this._formData;\n this._formData = value;\n this.requestUpdate('formData', oldValue);\n this.updateStateFlags();\n }\n\n /**\n * Get custom error message from schema if available\n * Follows the pattern: schema.properties.fieldName.messages.ruleName\n * For nested fields: schema.properties.parent.properties.child.messages.ruleName\n * Returns null if field, messages, or rule doesn't exist\n */\n getCustomErrorMessage(fieldPath, ruleName) {\n const pathParts = fieldPath.split('.');\n let current = this.schema;\n\n // Navigate to the field schema\n for (const part of pathParts) {\n current = current?.properties?.[part];\n if (!current) return null;\n }\n\n // Check for custom message\n return current?.messages?.[ruleName] ?? null;\n }\n\n constructor() {\n super();\n this.loading = true;\n this.submitting = false;\n this.error = null;\n this.schema = null;\n this._formData = {};\n this.uiSchema = null;\n this.fbmsFormVersion = null;\n this.token = null;\n this.decoded = { sub: 'unknown' };\n this.fieldErrors = {};\n this.submitSuccess = false;\n this.validationFailed = false;\n this.initialFormData = {};\n this.hasChanges = false;\n this.submissionStatus = null;\n this.formCompleted = false;\n this.submissionError = null;\n }\n\n async connectedCallback() {\n super.connectedCallback();\n await this.initialize();\n }\n\n async initialize() {\n try {\n this.loading = true;\n this.error = null;\n\n // Fetch OIDC token if URL provided\n if (this.oidcUrl) {\n await this.fetchToken();\n }\n\n // Fetch form schema and data\n await Promise.all([this.fetchSchema(), this.fetchFormData()]);\n\n this.loading = false;\n } catch (err) {\n this.error = err.message || 'Failed to initialize form';\n this.loading = false;\n }\n }\n\n /**\n * Deep clone an object, handling Dates and other types\n * Uses structuredClone if available, otherwise falls back to manual recursive\n */\n deepClone(obj) {\n if (obj === null || obj === undefined) return obj;\n\n // Use structuredClone if available (modern browsers)\n if (typeof structuredClone === 'function') {\n try {\n return structuredClone(obj);\n } catch (err) {\n console.warn('structuredClone failed, falling back to manual clone:', err);\n }\n }\n\n // Fallback: manual deep clone handling common types\n if (obj instanceof Date) {\n return new Date(obj.getTime());\n }\n\n if (Array.isArray(obj)) {\n return obj.map((item) => this.deepClone(item));\n }\n\n if (typeof obj === 'object') {\n const cloned = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n cloned[key] = this.deepClone(obj[key]);\n }\n }\n return cloned;\n }\n\n // Primitives\n return obj;\n }\n\n /**\n * Deep equality check, handling Dates and other types\n */\n deepEqual(obj1, obj2) {\n if (obj1 === obj2) return true;\n\n if (obj1 === null || obj2 === null) return false;\n if (obj1 === undefined || obj2 === undefined) return false;\n\n if (obj1 instanceof Date && obj2 instanceof Date) {\n return obj1.getTime() === obj2.getTime();\n }\n\n // If only one is a Date, they are not equal\n if (obj1 instanceof Date || obj2 instanceof Date) {\n return false;\n }\n\n if (Array.isArray(obj1) && Array.isArray(obj2)) {\n if (obj1.length !== obj2.length) return false;\n return obj1.every((item, index) => this.deepEqual(item, obj2[index]));\n }\n\n if (typeof obj1 === 'object' && typeof obj2 === 'object') {\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n\n if (keys1.length !== keys2.length) return false;\n\n return keys1.every((key) => this.deepEqual(obj1[key], obj2[key]));\n }\n\n return false;\n }\n\n async fetchToken() {\n try {\n const response = await fetch(this.oidcUrl, {\n credentials: 'include',\n });\n\n if (!response.ok) {\n throw new Error('Failed to authenticate');\n }\n\n const data = await response.text();\n this.token = data;\n try {\n this.decoded = jwtDecode(this.token);\n } catch (_err) {\n // Only need this to get the name, so warn\n console.warn('Security Token failed to decode -- setting user to unknown');\n this.decoded = { sub: 'unknown' };\n }\n } catch (err) {\n console.error('Token fetch error:', err);\n throw new Error('Authentication failed');\n }\n }\n\n async fetchSchema() {\n const url = `${this.fbmsBaseUrl}/api/v1/forms/${this.fbmsFormFname}`;\n const headers = {\n 'content-type': 'application/jwt',\n };\n\n if (this.token) {\n headers['Authorization'] = `Bearer ${this.token}`;\n }\n\n const response = await fetch(url, {\n credentials: 'same-origin',\n headers,\n });\n\n if (!response.ok) {\n throw new Error(`Failed to fetch schema: ${response.statusText}`);\n }\n\n const data = await response.json();\n this.fbmsFormVersion = data.version;\n this.schema = data.schema || data;\n this.uiSchema = data.metadata;\n }\n\n async fetchFormData() {\n const url = `${this.fbmsBaseUrl}/api/v1/submissions/${this.fbmsFormFname}?safarifix=${Math.random()}`;\n const headers = {\n 'content-type': 'application/jwt',\n };\n\n if (this.token) {\n headers['Authorization'] = `Bearer ${this.token}`;\n }\n\n try {\n const response = await fetch(url, {\n credentials: 'same-origin',\n headers,\n });\n\n if (response.ok) {\n const payload = await response.json();\n this._formData = payload?.answers ?? {}; // Use private property\n this.initialFormData = this.deepClone(this._formData); // Use deepClone\n } else {\n this._formData = {};\n this.initialFormData = {};\n }\n this.hasChanges = false;\n this.requestUpdate();\n } catch (err) {\n // Non-critical error\n console.warn('Could not fetch form data:', err);\n this._formData = {};\n this.initialFormData = {};\n this.hasChanges = false;\n this.requestUpdate();\n }\n }\n\n updateStateFlags() {\n // Clear status messages when user makes changes\n this.submitSuccess = false;\n this.validationFailed = false;\n this.submissionError = null;\n\n // Check if form data has changed from initial state\n this.hasChanges = !this.deepEqual(this.formData, this.initialFormData);\n }\n\n /**\n * Get nested value from formData using dot notation path\n * e.g., \"contact_information.email\" => formData.contact_information.email\n */\n getNestedValue(path) {\n if (!path || typeof path !== 'string') return undefined;\n\n const parts = path.split('.').filter((part) => part.length > 0);\n if (parts.length === 0) return undefined;\n\n let value = this.formData;\n for (const part of parts) {\n value = value?.[part];\n }\n return value;\n }\n\n /**\n * Sanitize a string for use as an HTML ID\n * Replaces spaces and special characters with hyphens and collapses consecutive hyphens\n * Ensures the ID starts with a letter by adding a prefix if necessary\n */\n sanitizeId(str) {\n if (typeof str !== 'string') {\n str = String(str ?? '');\n }\n\n // Replace invalid characters and collapse multiple hyphens\n let sanitized = str.replace(/[^a-zA-Z0-9-_.]/g, '-').replace(/-+/g, '-');\n\n // Trim leading/trailing hyphens that may have been introduced\n sanitized = sanitized.replace(/^-+/, '').replace(/-+$/, '');\n\n // Ensure we have some content\n if (!sanitized) {\n sanitized = 'id';\n }\n\n // Ensure the ID starts with a letter\n if (!/^[A-Za-z]/.test(sanitized)) {\n sanitized = 'id-' + sanitized;\n }\n\n return sanitized;\n }\n\n /**\n * Set nested value in formData using dot notation path\n */\n setNestedValue(path, value) {\n if (!path || typeof path !== 'string') return;\n\n const parts = path.split('.').filter((part) => part.length > 0);\n if (parts.length === 0) return;\n\n const newData = { ...this.formData };\n let current = newData;\n\n for (let i = 0; i < parts.length - 1; i++) {\n const part = parts[i];\n const existing = current[part];\n // Note: Arrays are not currently supported in schemas, but we preserve them\n // to maintain data integrity. Setting properties on arrays may produce unexpected results.\n if (Array.isArray(existing)) {\n current[part] = [...existing];\n } else if (!existing || typeof existing !== 'object') {\n current[part] = {};\n } else {\n current[part] = { ...existing };\n }\n current = current[part];\n }\n\n current[parts[parts.length - 1]] = value;\n this.formData = newData;\n }\n\n /**\n * Get the schema object at a given path\n * e.g., \"contact_information\" => schema.properties.contact_information\n */\n getSchemaAtPath(path) {\n if (!path) return this.schema; // Handle empty string/null/undefined\n\n const parts = path.split('.').filter((part) => part.length > 0);\n if (parts.length === 0) return this.schema; // All segments were empty\n\n let schema = this.schema;\n\n for (const part of parts) {\n schema = schema.properties?.[part];\n if (!schema) return null;\n }\n\n return schema;\n }\n\n handleInputChange(fieldPath, event) {\n const { type, value, checked } = event.target;\n this.setNestedValue(fieldPath, type === 'checkbox' ? checked : value);\n\n // Clear field error on change\n if (this.fieldErrors[fieldPath]) {\n this.fieldErrors = { ...this.fieldErrors };\n delete this.fieldErrors[fieldPath];\n }\n\n this.updateStateFlags();\n }\n\n handleArrayChange(fieldPath, index, event) {\n const currentArray = this.getNestedValue(fieldPath) || [];\n const newArray = [...currentArray];\n newArray[index] = event.target.value;\n this.setNestedValue(fieldPath, newArray);\n\n this.updateStateFlags();\n }\n\n handleMultiSelectChange(fieldPath, event) {\n const selectedOptions = Array.from(event.target.selectedOptions);\n const values = selectedOptions.map((option) => option.value);\n\n this.setNestedValue(fieldPath, values);\n\n // Clear field error on change\n if (this.fieldErrors[fieldPath]) {\n this.fieldErrors = { ...this.fieldErrors };\n delete this.fieldErrors[fieldPath];\n }\n\n this.updateStateFlags();\n }\n\n handleCheckboxArrayChange(fieldPath, optionValue, event) {\n const { checked } = event.target;\n const currentArray = this.getNestedValue(fieldPath) || [];\n\n let newArray;\n if (checked) {\n // Add to array if not already present\n newArray = currentArray.includes(optionValue) ? currentArray : [...currentArray, optionValue];\n } else {\n // Remove from array\n newArray = currentArray.filter((v) => v !== optionValue);\n }\n\n this.setNestedValue(fieldPath, newArray);\n\n // Clear field error on change\n if (this.fieldErrors[fieldPath]) {\n this.fieldErrors = { ...this.fieldErrors };\n delete this.fieldErrors[fieldPath];\n }\n\n this.updateStateFlags();\n }\n\n /**\n * Recursively validate form fields including nested objects\n */\n validateFormFields(properties, required = [], basePath = '', depth = 0) {\n const MAX_DEPTH = 10;\n if (depth > MAX_DEPTH) {\n console.warn(`Schema nesting exceeds maximum depth of ${MAX_DEPTH} at path: ${basePath}`);\n return {};\n }\n\n const errors = {};\n\n // Check required fields\n required.forEach((fieldName) => {\n const fieldPath = basePath ? `${basePath}.${fieldName}` : fieldName;\n const value = this.getNestedValue(fieldPath);\n if (value === undefined || value === null || value === '') {\n const customMsg = this.getCustomErrorMessage(fieldPath, 'required');\n errors[fieldPath] = customMsg || 'This field is required';\n }\n });\n\n // Type validation\n Object.entries(properties).forEach(([fieldName, fieldSchema]) => {\n const fieldPath = basePath ? `${basePath}.${fieldName}` : fieldName;\n const value = this.getNestedValue(fieldPath);\n\n // Handle nested objects recursively\n if (fieldSchema.type === 'object' && fieldSchema.properties) {\n const nestedErrors = this.validateFormFields(\n fieldSchema.properties,\n fieldSchema.required || [],\n fieldPath,\n depth + 1\n );\n Object.assign(errors, nestedErrors);\n return;\n }\n\n if (value !== undefined && value !== null && value !== '') {\n // Email validation\n if (fieldSchema.format === 'email') {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n if (!emailRegex.test(value)) {\n // Support both 'format' (generic) and 'email' (specific) custom message keys\n const customMsg =\n this.getCustomErrorMessage(fieldPath, 'format') ||\n this.getCustomErrorMessage(fieldPath, 'email');\n errors[fieldPath] = customMsg || 'Invalid email address';\n }\n }\n\n // Pattern validation\n if (fieldSchema.pattern) {\n const regex = new RegExp(fieldSchema.pattern);\n if (!regex.test(value)) {\n const customMsg = this.getCustomErrorMessage(fieldPath, 'pattern');\n errors[fieldPath] = customMsg || 'Invalid format';\n }\n }\n\n // Number validation\n if (fieldSchema.type === 'number' || fieldSchema.type === 'integer') {\n const num = Number(value);\n if (isNaN(num)) {\n const customMsg = this.getCustomErrorMessage(fieldPath, 'type');\n errors[fieldPath] = customMsg || 'Must be a number';\n } else {\n if (fieldSchema.minimum !== undefined && num < fieldSchema.minimum) {\n const customMsg = this.getCustomErrorMessage(fieldPath, 'minimum');\n errors[fieldPath] = customMsg || `Must be at least ${fieldSchema.minimum}`;\n }\n if (fieldSchema.maximum !== undefined && num > fieldSchema.maximum) {\n const customMsg = this.getCustomErrorMessage(fieldPath, 'maximum');\n errors[fieldPath] = customMsg || `Must be at most ${fieldSchema.maximum}`;\n }\n }\n }\n\n // String length validation\n if (fieldSchema.type === 'string') {\n if (fieldSchema.minLength && value.length < fieldSchema.minLength) {\n const customMsg = this.getCustomErrorMessage(fieldPath, 'minLength');\n errors[fieldPath] = customMsg || `Must be at least ${fieldSchema.minLength} characters`;\n }\n if (fieldSchema.maxLength && value.length > fieldSchema.maxLength) {\n const customMsg = this.getCustomErrorMessage(fieldPath, 'maxLength');\n errors[fieldPath] = customMsg || `Must be at most ${fieldSchema.maxLength} characters`;\n }\n }\n }\n });\n\n return errors;\n }\n\n validateForm() {\n const { properties = {}, required = [] } = this.schema;\n this.fieldErrors = this.validateFormFields(properties, required);\n return Object.keys(this.fieldErrors).length === 0;\n }\n\n async handleSubmit(event) {\n event.preventDefault();\n\n // Clear previous status messages\n this.submitSuccess = false;\n this.validationFailed = false;\n if (!this.validateForm()) {\n this.validationFailed = true;\n await this.updateComplete; // Wait for render to complete\n\n // Scroll to validation warning banner at top of form\n const validationWarning = this.shadowRoot.querySelector('.status-message.validation-error');\n if (validationWarning) {\n validationWarning.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n return;\n }\n\n // Prevent double-submission\n if (this.submitting) {\n return;\n }\n\n await this.submitWithRetry(false);\n }\n\n async submitWithRetry(isRetry = false) {\n try {\n // Only set submitting on the first call, not on retry\n if (!isRetry) {\n this.submitting = true;\n }\n this.submissionError = null;\n this.submissionStatus = null; // Clear previous messages\n\n const body = {\n username: this.decoded.sub,\n formFname: this.fbmsFormFname,\n formVersion: this.fbmsFormVersion,\n timestamp: Date.now(),\n answers: this.formData,\n };\n\n const url = `${this.fbmsBaseUrl}/api/v1/submissions/${this.fbmsFormFname}`;\n const headers = {\n 'content-type': 'application/json',\n };\n\n if (this.token) {\n headers['Authorization'] = `Bearer ${this.token}`;\n }\n\n const response = await fetch(url, {\n method: 'POST',\n credentials: 'same-origin',\n headers,\n body: JSON.stringify(body),\n });\n\n // Try to parse response body for messages (even on error)\n let responseData = null;\n try {\n responseData = await response.json();\n this.submissionStatus = responseData;\n } catch (jsonErr) {\n // Response might not be JSON\n console.warn('Could not parse response as JSON:', jsonErr);\n }\n\n // Handle 403 - token may be stale\n if (response.status === 403 && !isRetry) {\n console.warn('Received 403, attempting to refresh token and retry...');\n\n // Re-fetch token if OIDC URL is configured\n if (this.oidcUrl) {\n try {\n await this.fetchToken();\n console.warn('Token refreshed successfully, retrying submission...');\n\n // Retry once with new token (submitting flag stays true)\n return await this.submitWithRetry(true);\n } catch (tokenError) {\n console.error('Failed to refresh token:', tokenError);\n // Fall through to handle the original 403 error\n throw new Error('Authentication failed: Unable to refresh token');\n }\n } else {\n console.warn('OIDC URL is not configured; cannot refresh token. Skipping retry.');\n // Fall through to handle the 403 error normally\n }\n }\n\n if (!response.ok) {\n // Provide specific error for 403 after retry\n if (response.status === 403 && isRetry) {\n throw new Error(\n 'Authorization failed: Access denied even after token refresh. You may not have permission to submit this form.'\n );\n }\n\n // Use server error message if available\n const errorMessage =\n responseData?.messageHeader ||\n responseData?.message ||\n `Failed to submit form: ${response.statusText}`;\n throw new Error(errorMessage);\n }\n\n // Check for form forwarding header (safely handle missing headers object)\n const formForward = response.headers?.get ? response.headers.get('x-fbms-formforward') : null;\n if (formForward) {\n // eslint-disable-next-line no-console\n console.info(`Form submitted successfully. Forwarding to next form: ${formForward}`);\n this.fbmsFormFname = formForward;\n\n // Keep success state and messages visible for the forwarded form\n this.submitSuccess = true;\n // Note: submissionStatus is preserved to show server messages on the next form\n this.formCompleted = false;\n\n // Re-initialize with the new form\n this.loading = true;\n try {\n await this.initialize();\n return; // Exit early, don't show success message for intermediate form\n // Note: finally block will set submitting = false\n } catch (forwardingError) {\n console.error('Failed to load forwarded form:', forwardingError);\n this.loading = false;\n this.submissionError =\n forwardingError?.message || 'Form was submitted, but loading the next form failed.';\n }\n }\n\n // Dispatch success event\n this.dispatchEvent(\n new CustomEvent('form-submit-success', {\n detail: { data: body },\n bubbles: true,\n composed: true,\n })\n );\n\n // No form forward - this is the final form completion\n this.formCompleted = true;\n this.submitSuccess = true;\n this.submissionError = null;\n this.initialFormData = this.deepClone(this.formData);\n this.hasChanges = false;\n\n await this.updateComplete;\n\n // Scroll to success message\n const successMsg = this.shadowRoot.querySelector('.status-message.success');\n if (successMsg) {\n successMsg.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n } catch (err) {\n this.submissionError = err.message || 'Failed to submit form';\n\n this.dispatchEvent(\n new CustomEvent('form-submit-error', {\n detail: { error: err.message },\n bubbles: true,\n composed: true,\n })\n );\n\n // Scroll to error message at top of form\n await this.updateComplete;\n const errorMsg = this.shadowRoot.querySelector('.status-message.error');\n if (errorMsg) {\n errorMsg.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n } finally {\n this.submitting = false;\n }\n }\n\n handleReset() {\n this.formData = {};\n this.fieldErrors = {};\n this.requestUpdate();\n }\n\n /**\n * Render a field - can be a simple input or a nested object\n */\n renderField(fieldName, fieldSchema, basePath = '', depth = 0) {\n const MAX_DEPTH = 10;\n if (depth > MAX_DEPTH) {\n console.warn(`Schema nesting exceeds maximum depth of ${MAX_DEPTH}`);\n return html`<div class=\"error\">Schema too deeply nested</div>`;\n }\n\n const fieldPath = basePath ? `${basePath}.${fieldName}` : fieldName;\n\n // Handle nested objects with properties\n if (fieldSchema.type === 'object' && fieldSchema.properties) {\n return this.renderNestedObject(fieldName, fieldSchema, basePath, depth);\n }\n\n // Single-value enum - render as informational text only (title serves as the message)\n if (fieldSchema.enum && fieldSchema.enum.length === 1) {\n return html`\n <div class=\"form-group\">\n <span class=\"info-label\">${fieldSchema.title || fieldName}</span>\n ${fieldSchema.description\n ? html`<span class=\"description\">${fieldSchema.description}</span>`\n : ''}\n </div>\n `;\n }\n\n // Regular field\n const value = this.getNestedValue(fieldPath);\n const error = this.fieldErrors[fieldPath];\n // For nested fields, check the parent schema's required array\n const parentSchema = basePath ? this.getSchemaAtPath(basePath) : this.schema;\n const required = parentSchema?.required?.includes(fieldName) ?? false;\n const uiSchemaPath = fieldPath.split('.');\n let uiOptions = this.uiSchema;\n for (const part of uiSchemaPath) {\n uiOptions = uiOptions?.[part];\n }\n uiOptions = uiOptions || {};\n\n const widget = uiOptions['ui:widget'];\n const isGroupedInput = widget === 'radio' || widget === 'checkboxes';\n\n return html`\n <div class=\"form-group\">\n ${!isGroupedInput\n ? html`\n <label class=\"${required ? 'required' : ''}\" for=\"${fieldPath}\">\n ${fieldSchema.title || fieldName}\n </label>\n `\n : ''}\n ${fieldSchema.description && !isGroupedInput\n ? html` <span class=\"description\">${fieldSchema.description}</span> `\n : ''}\n ${this.renderInput(fieldPath, fieldSchema, value, uiOptions)}\n ${error ? html` <span class=\"error-message\">${error}</span> ` : ''}\n </div>\n `;\n }\n\n /**\n * Render a nested object with its own properties\n */\n renderNestedObject(fieldName, fieldSchema, basePath = '', depth = 0) {\n const fieldPath = basePath ? `${basePath}.${fieldName}` : fieldName;\n\n return html`\n <div class=\"nested-object\">\n ${fieldSchema.title\n ? html`<div class=\"nested-object-title\">${fieldSchema.title}</div>`\n : ''}\n ${fieldSchema.description\n ? html`<div class=\"nested-object-description\">${fieldSchema.description}</div>`\n : ''}\n ${Object.entries(fieldSchema.properties).map(([nestedFieldName, nestedFieldSchema]) =>\n this.renderField(nestedFieldName, nestedFieldSchema, fieldPath, depth + 1)\n )}\n </div>\n `;\n }\n\n renderInput(fieldPath, fieldSchema, value, uiOptions) {\n const { type, enum: enumValues, format, items } = fieldSchema;\n const widget = uiOptions['ui:widget'];\n const isInline = uiOptions['ui:options']?.inline;\n\n // Single-value enum - no input needed, title/label already displays the message\n if (enumValues && enumValues.length === 1) {\n return html``;\n }\n\n // Array of enums with checkboxes widget - render as checkboxes\n if (type === 'array' && items?.enum && widget === 'checkboxes') {\n const selectedValues = Array.isArray(value) ? value : [];\n const containerClass = isInline ? 'checkbox-group inline' : 'checkbox-group';\n\n // Extract basePath and fieldName from fieldPath\n const pathParts = fieldPath.split('.');\n const fieldName = pathParts[pathParts.length - 1];\n const basePath = pathParts.slice(0, -1).join('.');\n\n const parentSchema = basePath ? this.getSchemaAtPath(basePath) : this.schema;\n const isRequired = parentSchema?.required?.includes(fieldName) ?? false;\n\n return html`\n <fieldset class=\"${containerClass}\">\n <legend class=\"${isRequired ? 'required' : ''}\">${fieldSchema.title || fieldName}</legend>\n ${fieldSchema.description\n ? html`<span class=\"description\">${fieldSchema.description}</span>`\n : ''}\n ${items.enum.map((opt) => {\n const sanitizedId = this.sanitizeId(`${fieldPath}-${opt}`);\n return html`\n <div class=\"checkbox-item\">\n <input\n type=\"checkbox\"\n id=\"${sanitizedId}\"\n name=\"${fieldPath}\"\n value=\"${opt}\"\n .checked=\"${selectedValues.includes(opt)}\"\n @change=\"${(e) => this.handleCheckboxArrayChange(fieldPath, opt, e)}\"\n />\n <label for=\"${sanitizedId}\">${opt}</label>\n </div>\n `;\n })}\n </fieldset>\n `;\n }\n\n // Array of enums without widget - render as multi-select dropdown (default)\n if (type === 'array' && items?.enum) {\n const selectedValues = Array.isArray(value) ? value : [];\n\n return html`\n <select\n id=\"${fieldPath}\"\n name=\"${fieldPath}\"\n multiple\n size=\"5\"\n @change=\"${(e) => this.handleMultiSelectChange(fieldPath, e)}\"\n >\n ${items.enum.map(\n (opt) => html`\n <option value=\"${opt}\" ?selected=\"${selectedValues.includes(opt)}\">${opt}</option>\n `\n )}\n </select>\n `;\n }\n\n // Enum with radio widget - render as radio buttons\n if (enumValues && widget === 'radio') {\n const containerClass = isInline ? 'radio-group inline' : 'radio-group';\n\n // Extract basePath and fieldName from fieldPath\n const pathParts = fieldPath.split('.');\n const fieldName = pathParts[pathParts.length - 1];\n const basePath = pathParts.slice(0, -1).join('.');\n\n const parentSchema = basePath ? this.getSchemaAtPath(basePath) : this.schema;\n const isRequired = parentSchema?.required?.includes(fieldName) ?? false;\n\n return html`\n <fieldset class=\"${containerClass}\">\n <legend class=\"${isRequired ? 'required' : ''}\">${fieldSchema.title || fieldName}</legend>\n ${fieldSchema.description\n ? html`<span class=\"description\">${fieldSchema.description}</span>`\n : ''}\n ${enumValues.map((opt) => {\n const sanitizedId = this.sanitizeId(`${fieldPath}-${opt}`);\n return html`\n <div class=\"radio-item\">\n <input\n type=\"radio\"\n id=\"${sanitizedId}\"\n name=\"${fieldPath}\"\n value=\"${opt}\"\n .checked=\"${value === opt}\"\n @change=\"${(e) => this.handleInputChange(fieldPath, e)}\"\n />\n <label for=\"${sanitizedId}\">${opt}</label>\n </div>\n `;\n })}\n </fieldset>\n `;\n }\n\n // Enum - render as select (default)\n if (enumValues) {\n return html`\n <select\n id=\"${fieldPath}\"\n name=\"${fieldPath}\"\n .value=\"${value || ''}\"\n @change=\"${(e) => this.handleInputChange(fieldPath, e)}\"\n >\n <option value=\"\">-- Select --</option>\n ${enumValues.map(\n (opt) => html` <option value=\"${opt}\" ?selected=\"${value === opt}\">${opt}</option> `\n )}\n </select>\n `;\n }\n\n // Boolean - render as checkbox\n if (type === 'boolean') {\n return html`\n <div class=\"checkbox-item\">\n <input\n type=\"checkbox\"\n id=\"${fieldPath}\"\n name=\"${fieldPath}\"\n .checked=\"${!!value}\"\n @change=\"${(e) => this.handleInputChange(fieldPath, e)}\"\n />\n <label for=\"${fieldPath}\">${fieldSchema.title || fieldPath.split('.').pop()}</label>\n </div>\n `;\n }\n\n // String with format\n if (type === 'string') {\n if (format === 'email') {\n return html`\n <input\n type=\"email\"\n id=\"${fieldPath}\"\n name=\"${fieldPath}\"\n .value=\"${value || ''}\"\n @input=\"${(e) => this.handleInputChange(fieldPath, e)}\"\n />\n `;\n }\n\n if (format === 'date') {\n return html`\n <input\n type=\"date\"\n id=\"${fieldPath}\"\n name=\"${fieldPath}\"\n .value=\"${value || ''}\"\n @input=\"${(e) => this.handleInputChange(fieldPath, e)}\"\n />\n `;\n }\n\n if (uiOptions['ui:widget'] === 'textarea') {\n return html`\n <textarea\n id=\"${fieldPath}\"\n name=\"${fieldPath}\"\n .value=\"${value || ''}\"\n @input=\"${(e) => this.handleInputChange(fieldPath, e)}\"\n ></textarea>\n `;\n }\n\n // Default text input\n return html`\n <input\n type=\"text\"\n id=\"${fieldPath}\"\n name=\"${fieldPath}\"\n .value=\"${value || ''}\"\n @input=\"${(e) => this.handleInputChange(fieldPath, e)}\"\n />\n `;\n }\n\n // Number\n if (type === 'number' || type === 'integer') {\n return html`\n <input\n type=\"number\"\n id=\"${fieldPath}\"\n name=\"${fieldPath}\"\n .value=\"${value || ''}\"\n step=\"${type === 'integer' ? '1' : 'any'}\"\n @input=\"${(e) => this.handleInputChange(fieldPath, e)}\"\n />\n `;\n }\n\n // Fallback\n return html`\n <input\n type=\"text\"\n id=\"${fieldPath}\"\n name=\"${fieldPath}\"\n .value=\"${value || ''}\"\n @input=\"${(e) => this.handleInputChange(fieldPath, e)}\"\n />\n `;\n }\n\n render() {\n if (this.error) {\n return html`\n <div class=\"container\">\n <div class=\"error\"><strong>Error:</strong> ${this.error}</div>\n </div>\n `;\n }\n\n if (this.loading) {\n return html`\n <div class=\"container\">\n <div class=\"loading\">Loading form...</div>\n </div>\n `;\n }\n\n if (!this.schema || !this.schema.properties) {\n return html`\n <div class=\"container\">\n <div class=\"error\">Invalid form schema</div>\n </div>\n `;\n }\n\n // NEW: Success-only view when form is completed\n if (this.formCompleted) {\n return html`\n ${this.customStyles\n ? html`<style>\n ${this.customStyles}\n </style>`\n : ''}\n\n <div class=\"container\">\n <div class=\"status-message success\">\n <h2>✓ Form submitted successfully!</h2>\n ${this.submissionStatus?.messages?.length > 0\n ? html`\n <ul>\n ${this.submissionStatus.messages.map((msg) => html`<li>${msg}</li>`)}\n </ul>\n `\n : ''}\n </div>\n </div>\n `;\n }\n\n // Regular form view (rest of existing render code)\n const hasFields = Object.keys(this.schema.properties).length > 0;\n\n return html`\n ${this.customStyles\n ? html`<style>\n ${this.customStyles}\n </style>`\n : ''}\n\n <div class=\"container\">\n ${this.submitSuccess\n ? html`\n <div class=\"status-message success\">\n ✓ Your form was successfully submitted.\n ${this.submissionStatus?.messages?.length > 0\n ? html`\n <ul>\n ${this.submissionStatus.messages.map((msg) => html`<li>${msg}</li>`)}\n </ul>\n `\n : ''}\n </div>\n `\n : ''}\n ${hasFields\n ? html`\n <form @submit=\"${this.handleSubmit}\" class=\"${this.submitting ? 'submitting' : ''}\">\n ${this.schema.title ? html`<h2>${this.schema.title}</h2>` : ''}\n ${this.schema.description ? html`<p>${this.schema.description}</p>` : ''}\n ${this.validationFailed\n ? html`\n <div class=\"status-message validation-error\">\n ⚠ Please correct the errors below before submitting.\n </div>\n `\n : ''}\n ${this.submissionError\n ? html`\n <div class=\"status-message error\">\n <strong>Error:</strong> ${this.submissionError}\n ${this.submissionStatus?.messages?.length > 0\n ? html`\n <ul>\n ${this.submissionStatus.messages.map(\n (msg) => html`<li>${msg}</li>`\n )}\n </ul>\n `\n : ''}\n </div>\n `\n : ''}\n ${Object.entries(this.schema.properties).map(([fieldName, fieldSchema]) =>\n this.renderField(fieldName, fieldSchema)\n )}\n\n <div class=\"buttons\">\n <button type=\"submit\" ?disabled=\"${this.submitting || !this.hasChanges}\">\n <span class=\"button-content\">\n ${this.submitting ? html`<span class=\"spinner\"></span>` : ''}\n ${this.submitting ? 'Submitting...' : 'Submit'}\n </span>\n </button>\n <button type=\"button\" @click=\"${this.handleReset}\" ?disabled=\"${this.submitting}\">\n Reset\n </button>\n </div>\n </form>\n `\n : html`\n <div class=\"info-only\">\n ${this.schema.title ? html`<h2>${this.schema.title}</h2>` : ''}\n ${this.schema.description ? html`<p>${this.schema.description}</p>` : ''}\n </div>\n `}\n </div>\n `;\n }\n}\n\ncustomElements.define('form-builder', FormBuilder);\n"],"names":["t","globalThis","e","ShadowRoot","ShadyCSS","nativeShadow","Document","prototype","CSSStyleSheet","s","Symbol","o","WeakMap","n$2","constructor","this","_$cssResult$","Error","cssText","styleSheet","length","get","replaceSync","set","toString","i","reduce","n","c","cssRules","r","is","defineProperty","getOwnPropertyDescriptor","h","getOwnPropertyNames","getOwnPropertySymbols","getPrototypeOf","Object","a","trustedTypes","l","emptyScript","p","reactiveElementPolyfillSupport","d","u","toAttribute","Boolean","Array","JSON","stringify","fromAttribute","Number","parse","f","b","attribute","type","String","converter","reflect","useDefault","hasChanged","metadata","litPropertyMetadata","HTMLElement","addInitializer","_$Ei","push","observedAttributes","finalize","_$Eh","keys","createProperty","state","hasOwnProperty","create","wrapped","elementProperties","noAccessor","getPropertyDescriptor","call","requestUpdate","configurable","enumerable","getPropertyOptions","Map","finalized","properties","_$Eu","elementStyles","finalizeStyles","styles","isArray","Set","flat","reverse","unshift","toLowerCase","super","_$Ep","isUpdatePending","hasUpdated","_$Em","_$Ev","_$ES","Promise","enableUpdating","_$AL","_$E_","forEach","addController","_$EO","add","renderRoot","isConnected","hostConnected","removeController","delete","size","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","adoptedStyleSheets","map","document","createElement","litNonce","setAttribute","textContent","appendChild","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$ET","removeAttribute","_$Ej","hasAttribute","C","_$EP","has","_$Eq","reject","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","update","_$EM","_$AE","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","y","mode","ReactiveElement","reactiveElementVersions","createPolicy","createHTML","Math","random","toFixed","slice","createComment","v","_","m","RegExp","g","$","x","_$litType$","strings","values","T","for","E","A","createTreeWalker","P","V","lastIndex","exec","test","startsWith","N","parts","el","currentNode","content","firstChild","replaceWith","childNodes","nextNode","nodeType","hasAttributes","getAttributeNames","endsWith","getAttribute","split","index","name","ctor","H","I","L","k","tagName","append","data","indexOf","innerHTML","S","_$Co","_$Cl","_$litDirective$","_$AO","_$AT","_$AS","M","_$AV","_$AN","_$AD","_$AM","parentNode","_$AU","creationScope","importNode","R","nextSibling","z","_$AI","_$Cv","_$AH","_$AA","_$AB","options","startNode","endNode","_$AR","iterator","O","insertBefore","createTextNode","_$AC","_$AP","remove","setConnected","element","fill","j","arguments","toggleAttribute","capture","once","passive","removeEventListener","addEventListener","handleEvent","host","litHtmlPolyfillSupport","litHtmlVersions","renderOptions","_$Do","renderBefore","render","_$litPart$","_$litElement$","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","InvalidTokenError","base64UrlDecode","str","output","replace","decodeURIComponent","atob","code","charCodeAt","toUpperCase","b64DecodeUnicode","err","FormBuilder","static","fbmsBaseUrl","fbmsFormFname","oidcUrl","customStyles","schema","_formData","uiSchema","fbmsFormVersion","loading","submitting","error","token","decoded","submitSuccess","validationFailed","initialFormData","hasChanges","submissionStatus","formCompleted","submissionError","css","formData","value","oldValue","updateStateFlags","getCustomErrorMessage","fieldPath","ruleName","pathParts","current","part","messages","sub","fieldErrors","initialize","fetchToken","all","fetchSchema","fetchFormData","message","deepClone","obj","structuredClone","console","warn","Date","getTime","item","cloned","key","deepEqual","obj1","obj2","undefined","every","keys1","keys2","response","fetch","credentials","ok","text","pos","header","jwtDecode","_err","url","headers","statusText","json","version","payload","answers","getNestedValue","path","filter","sanitizeId","sanitized","setNestedValue","newData","existing","getSchemaAtPath","handleInputChange","event","checked","target","handleArrayChange","newArray","handleMultiSelectChange","from","selectedOptions","option","handleCheckboxArrayChange","optionValue","currentArray","includes","validateFormFields","required","basePath","depth","errors","fieldName","customMsg","entries","fieldSchema","nestedErrors","assign","format","pattern","num","isNaN","minimum","maximum","minLength","maxLength","validateForm","handleSubmit","preventDefault","validationWarning","querySelector","scrollIntoView","behavior","block","submitWithRetry","isRetry","body","username","formFname","formVersion","timestamp","now","method","responseData","jsonErr","status","tokenError","errorMessage","messageHeader","formForward","info","forwardingError","dispatchEvent","CustomEvent","detail","bubbles","composed","successMsg","errorMsg","handleReset","renderField","html","renderNestedObject","enum","title","description","parentSchema","uiSchemaPath","uiOptions","widget","isGroupedInput","renderInput","nestedFieldName","nestedFieldSchema","enumValues","items","isInline","inline","selectedValues","containerClass","join","isRequired","opt","sanitizedId","pop","msg","hasFields","customElements","define"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uportal/form-builder",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "Create html input forms on the fly using Lit",
5
5
  "main": "dist/form-builder.js",
6
6
  "module": "dist/form-builder.js",
@@ -13,8 +13,24 @@
13
13
  "build": "rollup -c",
14
14
  "dev": "rollup -c -w",
15
15
  "serve": "wds --node-resolve --open --watch",
16
- "lint": "eslint src/**/*.js",
17
- "format": "prettier --write src/**/*.js"
16
+ "test": "wtr --coverage",
17
+ "test:watch": "wtr --watch",
18
+ "test:ci": "wtr --coverage",
19
+ "lint": "eslint .",
20
+ "lint:fix": "eslint --fix .",
21
+ "lint:check": "prettier --check 'src/**/*.{js,css}' 'test/**/*.{js,html}' '*.{json,md}'",
22
+ "format": "prettier --write 'src/**/*.{js,css}' 'test/**/*.{js,html}' '*.{json,md}'",
23
+ "prepare": "husky",
24
+ "pre-commit": "lint-staged"
25
+ },
26
+ "lint-staged": {
27
+ "*.js": [
28
+ "prettier --write",
29
+ "eslint --fix"
30
+ ],
31
+ "*.{json,md,css,html}": [
32
+ "prettier --write"
33
+ ]
18
34
  },
19
35
  "keywords": [
20
36
  "web-components",
@@ -27,17 +43,29 @@
27
43
  "author": "",
28
44
  "license": "Apache-2.0",
29
45
  "dependencies": {
30
- "lit": "^3.1.0",
31
- "jwt-decode": "^3.0.0"
46
+ "jwt-decode": "^4.0.0",
47
+ "lit": "^3.0.0"
32
48
  },
33
49
  "devDependencies": {
34
- "@rollup/plugin-node-resolve": "^15.2.3",
50
+ "@eslint/css": "^0.14.1",
51
+ "@eslint/js": "^9.39.2",
52
+ "@eslint/json": "^0.14.0",
53
+ "@eslint/markdown": "^7.5.1",
54
+ "@open-wc/testing": "^4.0.0",
55
+ "@rollup/plugin-node-resolve": "^16.0.3",
35
56
  "@rollup/plugin-terser": "^0.4.4",
36
57
  "@web/dev-server": "^0.4.1",
37
- "eslint": "^8.56.0",
58
+ "@web/test-runner": "^0.20.2",
59
+ "@web/test-runner-playwright": "^0.11.0",
60
+ "eslint": "^9.39.2",
61
+ "globals": "^16.5.0",
62
+ "husky": "^9.1.7",
63
+ "lint-staged": "^16.2.7",
38
64
  "prettier": "^3.2.4",
39
65
  "rollup": "^4.9.5",
40
- "rollup-plugin-summary": "^2.0.0"
66
+ "rollup-plugin-summary": "^3.0.1",
67
+ "rollup-plugin-visualizer": "^6.0.5",
68
+ "sinon": "^21.0.0"
41
69
  },
42
70
  "repository": {
43
71
  "type": "git",