@quandis/qbo4.ui 4.0.1-CI-20240429-215003 → 4.0.1-CI-20240429-225952
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/readme.md +0 -1
- package/src/qbo/IApiService.d.ts +1 -0
- package/src/qbo/IApiService.ts +3 -0
- package/src/qbo/Program.js +1 -6
- package/src/qbo/Program.ts +1 -6
- package/src/qbo/RestApiService.d.ts +1 -0
- package/src/qbo/RestApiService.js +5 -0
- package/src/qbo/RestApiService.ts +6 -0
- package/wwwroot/js/qbo4.ui.js +7 -7
- package/wwwroot/js/qbo4.ui.min.js +2 -2
- package/wwwroot/js/qbo4.ui.min.js.map +1 -1
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
`}};Jy([Jt({type:Boolean}),Qy("design:type",Object)],Yy.prototype,"debug",void 0),Jy([Jt({type:Boolean}),Qy("design:type",Object)],Yy.prototype,"info",void 0),Jy([Jt({type:Boolean}),Qy("design:type",Object)],Yy.prototype,"warning",void 0),Jy([Jt({type:Boolean}),Qy("design:type",Object)],Yy.prototype,"error",void 0),Jy([Jt({type:Boolean}),Qy("design:type",Object)],Yy.prototype,"critial",void 0),Jy([Jt({type:Boolean}),Qy("design:type",Object)],Yy.prototype,"window",void 0),Jy([Jt({type:Array}),Qy("design:type",Array)],Yy.prototype,"logs",void 0),Jy([Jt({type:Object}),Qy("design:type",Object)],Yy.prototype,"logCounts",void 0),Jy([Jt({type:Boolean}),Qy("design:type",Object)],Yy.prototype,"showModal",void 0),Yy=Gy=Jy([Kt("qbo-logging"),Qy("design:paramtypes",[])],Yy);var Zy=function(t,e,r,o){var n,i=arguments.length,s=i<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,r,o);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(s=(i<3?n(s):i>3?n(e,r,s):n(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s},tw=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};class ew extends Bt{constructor(){super(...arguments),this.selector="",this.cssClass="",this.selectorRoot=""}static{this.styles=[Xy]}render(){return At`<slot>
|
|
53
53
|
<input type="text" @input="${this.handleInput}" placeholder="Filter ...">
|
|
54
54
|
</slot>
|
|
55
|
-
`}connectedCallback(){super.connectedCallback(),this.root=this.getRoot()}getRoot(){if(this.selectorRoot){return this.closest(this.selectorRoot)||document}return document}handleInput(t){const e=t.target.value.toLowerCase(),r=this.root?.querySelectorAll(this.selector);null!=r&&r.forEach((t=>{(t.textContent?.toLowerCase()||"").includes(e)?this.cssClass?t.classList.remove(this.cssClass):t instanceof HTMLElement&&(t.style.display=""):this.cssClass?t.classList.add(this.cssClass):t instanceof HTMLElement&&(t.style.display="none")}))}}Zy([Jt({type:String}),tw("design:type",Object)],ew.prototype,"selector",void 0),Zy([Jt({type:String}),tw("design:type",Object)],ew.prototype,"cssClass",void 0),Zy([Jt({type:String}),tw("design:type",Object)],ew.prototype,"selectorRoot",void 0),customElements.define("qbo-find",ew);const rw={WRITE_LOG:"qbo-log",WRITING_LOG:"qbo-log-write"};function ow(t,e){if("string"==typeof t)try{t=JSON.parse(t)}catch(t){return console.error("Error parsing JSON string:",t),null}if(Array.isArray(t))return t;if("object"==typeof t&&null!==t)for(const r in t){const o=t[r];if(Array.isArray(o))return o;if("object"==typeof o){const t=ow(o,e);if(t)return t}}return null}function nw(t,...e){const r=/\${(.*?)}/g;let o=t;for(let t=0;t<e.length;t++){const n=e[t];o=o.replace(r,((t,e)=>{const r=e.split(/\.|\[|\]/).filter((t=>""!==t));let o=n;for(let e of r){if(void 0===o[e])return t;o=o[e]}return o}))}return o=o.replace(r,(()=>"")),o}function iw(t,e,r,o=!0){if(null!=t&&null!=e){for(;o&&t.firstChild;)t.removeChild(t.firstChild);r.map(((r,o)=>{const n=e.content.cloneNode(!0);null!=n.firstElementChild&&(n.firstElementChild.setAttribute("data-index",`${o}`),n.firstElementChild.innerHTML=nw(n.firstElementChild?.innerHTML??"",r)),t.appendChild(n)}))}}class sw{constructor(t,e={"Content-Type":"application/json"},r=null){this.relativePath="",this.apiEndpoint=t,this.headers=e,this.method=r}async fetch(t,e=null){const r=nw(new URL(t??this.relativePath,this.apiEndpoint).href,e),o=this.method??(null!==e?"POST":"GET"),n=new Headers(this.headers||{});null===e||n.has("Content-Type")||n.append("Content-Type","application/json");const i=await fetch(r,{method:o,headers:n,body:"POST"===o&&e?JSON.stringify(e):null});if(!i.ok)throw new Error(`API request failed with status ${i.status}`);return i.json()}}function aw(t,e,r={"Content-Type":"application/json"},o){I.container.registerInstance(t,new sw(e,r,o))}I.container.registerInstance("default",new sw(document.querySelector("base[href]")?.getAttribute("href")||window.location.origin));const lw="ApiServiceToken",cw="ValidateToken";var dw=function(t,e,r,o){var n,i=arguments.length,s=i<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,r,o);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(s=(i<3?n(s):i>3?n(e,r,s):n(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s};let uw=class{constructor(){this.message="Zip code is invalid",this.selector=".zipcode"}validate(t){return Promise.resolve(!0)}connect(t){}disconnect(){}};uw=dw([$()],uw),I.container.register(cw,{useClass:uw});let pw=class{constructor(){this.message="Email is invalid",this.selector=".email"}validate(t){return Promise.resolve(!0)}connect(t){}disconnect(){}};pw=dw([$()],pw),I.container.register(cw,{useClass:pw});let bw=class{constructor(){this.message="This value does not appear to exist.",this.selector="[data-exists]"}connect(t){}disconnect(){}async validate(t){var e=t.getAttribute("data-exists");if(!e)return!1;var r=t.getAttribute("data-exists-path");const o=I.container.isRegistered(e)?I.container.resolve(e):new sw(e);if(t instanceof HTMLInputElement||t instanceof HTMLSelectElement||t instanceof HTMLTextAreaElement){const e=ow(await o.fetch(r,{value:t.value}));return null!=e&&e.length>0}return!1}};bw=dw([$()],bw),I.container.register(cw,{useClass:bw});class fw{constructor(){this.operator="=",this.value=null}}class hw{constructor(){this.evaluators=[],this.depends="",this.condition="or",this.emptyOnDisable=!1,this.resetOnDisable=!0,this.disabledClass="disabled",this.disableChildren=!0}}const gw="DependencyValidatorOptions",vw=new Map([["!=",(t,e)=>!qT(t.value,e)],[">=",(t,e)=>t.value>=e],["<=",(t,e)=>t.value<=e],["=",(t,e)=>qT(t.value,e)],[">",(t,e)=>t.value>e],["<",(t,e)=>t.value<e]]),mw=Array.from(vw.keys());let yw=class{constructor(t,e){this.message="Dependency condition not met",this.selector="[data-depend-options]",this.optionsCache=new Map,this.checkDependencies=async t=>{console.log("checking dependencies",this.optionsCache);for(const[t,e]of this.optionsCache)await this.validate(t)},this.form=t,this.options=e,this.currentOptions=e}connect(t){this.form.querySelectorAll(this.selector).forEach((t=>{t instanceof HTMLElement&&this.getOptions(t)})),this.optionsCache.forEach(((t,e)=>{this.validate(e)})),this.form.addEventListener("change",this.checkDependencies)}disconnect(){this.form.removeEventListener("change",this.checkDependencies)}async validate(t){const e=this.getOptions(t);if(null==e)return Promise.resolve(!0);let r;r="or"===e.condition?e.evaluators.some((t=>!0===t())):e.evaluators.every((t=>!0===t())),(t instanceof HTMLInputElement||t instanceof HTMLSelectElement||t instanceof HTMLTextAreaElement)&&(t.disabled=!r),t.classList.toggle(e.disabledClass,!r);const o=MT(t,"input,select,textarea");return r?e.disableChildren&&o.forEach((t=>t.removeAttribute("disabled"))):(e.disableChildren&&o.forEach((t=>t.setAttribute("disabled","disabled"))),e.resetOnDisable?o.forEach((t=>NT(t))):e.emptyOnDisable&&o.forEach((t=>zT(t)))),Promise.resolve(r)}getOptions(t){let e=this.optionsCache.get(t);if(!e){try{e=Object.assign({},this.options,PT(t,"data-depend-"))}catch(t){console.error("Error parsing data-depend-options attribute:",t)}if(!e)return null;e.evaluators=e.depends.split(",").map((t=>{t=t.trim();let e=mw.find((e=>t.includes(e)))??"!=",r=null,o="";if(e){const n=t.split(e);r=n[0],o=n[1]??""}else t.startsWith("!")?(e="=",r=t.substring(1)):r=t;const n=this.form.querySelector(`#${CSS.escape(r)}`)??this.form.querySelector(`[name="${CSS.escape(r)}"]`);return n instanceof HTMLInputElement?"checkbox"===n.type||"radio"===n.type?"!="===e?()=>n.checked:()=>!n.checked:()=>vw.get(e)(n,o):n instanceof HTMLSelectElement?()=>vw.get(e)(n,o):n instanceof HTMLOptionElement?"!="===e?()=>n.selected:()=>!n.selected:void 0})).filter((t=>void 0!==t)),this.optionsCache.set(t,e)}return e}getElement(t){return this.form.querySelector(`#${CSS.escape(t)}`)??this.form.querySelector(`[name="${CSS.escape(t)}"]`)}};yw=function(t,e,r,o){var n,i=arguments.length,s=i<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,r,o);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(s=(i<3?n(s):i>3?n(e,r,s):n(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s}([$(),function(t,e){return function(r,o){e(r,o,t)}}(1,A(gw)),function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}("design:paramtypes",[HTMLFormElement,hw])],yw),I.container.register(gw,{useValue:new hw}),I.container.register(cw,{useClass:yw});var ww=function(t,e,r,o){var n,i=arguments.length,s=i<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,r,o);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(s=(i<3?n(s):i>3?n(e,r,s):n(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s},_w=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};let xw=class extends Bt{constructor(){super(...arguments),this.name=null,this.apiEndpoint=null,this.method="POST"}connectedCallback(){super.connectedCallback();const t={};null==this.name&&console.error("qbo-api name is required."),null==this.apiEndpoint&&console.error("qbo-api apiEndpoint is required."),this.querySelectorAll("header").forEach((e=>{const r=e.getAttribute("name"),o=e.textContent;r&&o&&(t[r]=o)})),t.ContentType&&(t["Content-Type"]=t.ContentType,delete t.ContentType),this.apiEndpoint?.startsWith("http")||(this.apiEndpoint=new URL(this.apiEndpoint??"",document.location.origin).href),aw(this.name,this.apiEndpoint,t,this.method)}render(){return At``}};ww([Jt({type:String}),_w("design:type",Object)],xw.prototype,"name",void 0),ww([Jt({type:String}),_w("design:type",Object)],xw.prototype,"apiEndpoint",void 0),ww([Jt({type:String}),_w("design:type",String)],xw.prototype,"method",void 0),xw=ww([Kt("qbo-api")],xw);var Cw=function(t,e,r,o){var n,i=arguments.length,s=i<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,r,o);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(s=(i<3?n(s):i>3?n(e,r,s):n(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s},kw=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};const Sw=(t=>{class e extends t{constructor(...t){super(...t),this.apiEndpoint=null,this.method="GET",this.error=!1,this.jsonData={},this.accept="application/json",this.headerTag='script[name="headers"]',this.html=null,this.fetchOnLoad=!0}async connectedCallback(){if(super.connectedCallback(),this.fetchOnLoad){const t=this.getHeaders(),e=this.getPayload(t);await this.fetchData(t,e)}}getHeaders(){const t=this.querySelector(this.headerTag);let e={Accept:this.accept};if(t&&null!==t.textContent)try{e=JSON.parse(t.textContent)}catch(t){console.error("Error parsing header JSON:",t)}return e}getPayload(t){const e=this.querySelector('script[name="payload"]');let r=null;if(e&&null!==e.textContent)try{r=JSON.parse(e.textContent),r&&(t["Content-Type"]="application/json")}catch(t){console.error("Error parsing payload JSON:",t)}return r}async fetchData(t,e){if(null!==this.apiEndpoint){null!==e&&(this.method="POST");try{const r=await fetch(this.apiEndpoint,{method:this.method,headers:t,body:e?JSON.stringify(e):null});"application/json"===this.accept?(this.jsonData=await r.json(),this.html=null):(this.html=await r.text(),this.jsonData=null),this.dispatchEvent(new CustomEvent("qbo-updated",{bubbles:!0,composed:!0}))}catch(t){this.error=!0,dispatchEvent(new CustomEvent("qbo-error",{detail:t}))}}}}return Cw([Jt({type:URL}),kw("design:type",Object)],e.prototype,"apiEndpoint",void 0),Cw([Jt({type:String}),kw("design:type",Object)],e.prototype,"method",void 0),Cw([Jt({type:Boolean}),kw("design:type",Object)],e.prototype,"error",void 0),Cw([Jt({type:Object}),kw("design:type",Object)],e.prototype,"jsonData",void 0),Cw([Jt({type:String}),kw("design:type",Object)],e.prototype,"accept",void 0),Cw([Jt({type:String}),kw("design:type",Object)],e.prototype,"headerTag",void 0),Cw([Jt({type:String}),kw("design:type",Object)],e.prototype,"html",void 0),Cw([Jt({type:Boolean}),kw("design:type",Object)],e.prototype,"fetchOnLoad",void 0),e})(Bt);var Ew=function(t,e,r,o){var n,i=arguments.length,s=i<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,r,o);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(s=(i<3?n(s):i>3?n(e,r,s):n(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s},Tw=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};let Aw=class extends Sw{constructor(){super(...arguments),this.loading=!1,this.target=null,this.values=[],this.targetElement=null,this.selector="*[data-badge]"}async connectedCallback(){if(this.targetElement=null!=this.target?this.closest(this.target):this,null==this.targetElement)throw new Error(`Could not find target element ${this.target}`);this.targetElement.addEventListener("qbo-updated",this.getIds.bind(this)),super.connectedCallback()}disconnectedCallback(){this.targetElement?.removeEventListener("qbo-updated",this.getIds)}getPayload(t){(super.getPayload(t)??{}).idList=this.values.join(",")}getIds(){if(console.log("reacting to target qbo-updated"),null==this.targetElement)return;const t=[];this.targetElement.querySelectorAll(this.selector).forEach((e=>{const r=e.getAttribute("data-badge");null!==r&&t.push(r)})),this.values=t}async fetchData(t,e){super.fetchData(t,e)}render(){this.targetElement.querySelectorAll(this.selector).forEach((t=>{t.innerHTML=t.getAttribute("data-badge")??""}))}};Ew([Jt({type:Boolean}),Tw("design:type",Object)],Aw.prototype,"loading",void 0),Ew([Jt(),Tw("design:type",Object)],Aw.prototype,"target",void 0),Ew([Jt(),Tw("design:type",Array)],Aw.prototype,"values",void 0),Ew([Jt(),Tw("design:type",Object)],Aw.prototype,"selector",void 0),Aw=Ew([Kt("qbo-badge")],Aw);var $w=function(t,e,r,o){var n,i=arguments.length,s=i<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,r,o);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(s=(i<3?n(s):i>3?n(e,r,s):n(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s},Ow=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};let Iw=class extends Bt{constructor(){super(...arguments),this.apiEndpoint="qbo",this.colFourClass="qbo-col-4",this.colSixClass="qbo-col-6",this.colThreeClass="qbo-col-3",this.colTwelveClass="qbo-col-12",this.contactId=null,this.contactLabel="Contact",this.contactName="Contact",this.disabled=!0,this.divSectionHeaderClass="qbo-header",this.formControlSmallClass="qbo-sm",this.formLabelSmallClass="qbo-sm",this.formSelectSmallClass="qbo-sm",this.renderInHost=!0,this.jsonData={}}createRenderRoot(){return this.renderInHost?this:super.createRenderRoot()}async connectedCallback(){super.connectedCallback();const t=I.container.isRegistered(this.apiEndpoint)?I.container.resolve(this.apiEndpoint):new sw(this.apiEndpoint);this.jsonData=await t.fetch("contact/summary.json",{ID:`${this.contactId}`})}render(){return null==this.jsonData||null==this.jsonData.ContactItem&&null!=this.contactId?At`<p>Loading...</p>`:At`<slot>
|
|
55
|
+
`}connectedCallback(){super.connectedCallback(),this.root=this.getRoot()}getRoot(){if(this.selectorRoot){return this.closest(this.selectorRoot)||document}return document}handleInput(t){const e=t.target.value.toLowerCase(),r=this.root?.querySelectorAll(this.selector);null!=r&&r.forEach((t=>{(t.textContent?.toLowerCase()||"").includes(e)?this.cssClass?t.classList.remove(this.cssClass):t instanceof HTMLElement&&(t.style.display=""):this.cssClass?t.classList.add(this.cssClass):t instanceof HTMLElement&&(t.style.display="none")}))}}Zy([Jt({type:String}),tw("design:type",Object)],ew.prototype,"selector",void 0),Zy([Jt({type:String}),tw("design:type",Object)],ew.prototype,"cssClass",void 0),Zy([Jt({type:String}),tw("design:type",Object)],ew.prototype,"selectorRoot",void 0),customElements.define("qbo-find",ew);const rw={WRITE_LOG:"qbo-log",WRITING_LOG:"qbo-log-write"};function ow(t,e){if("string"==typeof t)try{t=JSON.parse(t)}catch(t){return console.error("Error parsing JSON string:",t),null}if(Array.isArray(t))return t;if("object"==typeof t&&null!==t)for(const r in t){const o=t[r];if(Array.isArray(o))return o;if("object"==typeof o){const t=ow(o,e);if(t)return t}}return null}function nw(t,...e){const r=/\${(.*?)}/g;let o=t;for(let t=0;t<e.length;t++){const n=e[t];o=o.replace(r,((t,e)=>{const r=e.split(/\.|\[|\]/).filter((t=>""!==t));let o=n;for(let e of r){if(void 0===o[e])return t;o=o[e]}return o}))}return o=o.replace(r,(()=>"")),o}function iw(t,e,r,o=!0){if(null!=t&&null!=e){for(;o&&t.firstChild;)t.removeChild(t.firstChild);r.map(((r,o)=>{const n=e.content.cloneNode(!0);null!=n.firstElementChild&&(n.firstElementChild.setAttribute("data-index",`${o}`),n.firstElementChild.innerHTML=nw(n.firstElementChild?.innerHTML??"",r)),t.appendChild(n)}))}}class sw{constructor(t,e={"Content-Type":"application/json"},r=null){this.relativePath="",this.apiEndpoint=t,this.headers=e,this.method=r}async fetch(t,e=null){const r=nw(new URL(t??this.relativePath,this.apiEndpoint).href,e),o=this.method??(null!==e?"POST":"GET"),n=new Headers(this.headers||{});null===e||n.has("Content-Type")||n.append("Content-Type","application/json");const i=await fetch(r,{method:o,headers:n,body:"POST"===o&&e?JSON.stringify(e):null});if(!i.ok)throw new Error(`API request failed with status ${i.status}`);return i.json()}clone(t){const e=new sw(this.apiEndpoint,this.headers,this.method);return e.relativePath=t??"",e}}function aw(t,e,r={"Content-Type":"application/json"},o){I.container.registerInstance(t,new sw(e,r,o))}I.container.registerInstance("default",new sw(document.querySelector("base[href]")?.getAttribute("href")||window.location.origin));const lw="ApiServiceToken",cw="ValidateToken";var dw=function(t,e,r,o){var n,i=arguments.length,s=i<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,r,o);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(s=(i<3?n(s):i>3?n(e,r,s):n(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s};let uw=class{constructor(){this.message="Zip code is invalid",this.selector=".zipcode"}validate(t){return Promise.resolve(!0)}connect(t){}disconnect(){}};uw=dw([$()],uw),I.container.register(cw,{useClass:uw});let pw=class{constructor(){this.message="Email is invalid",this.selector=".email"}validate(t){return Promise.resolve(!0)}connect(t){}disconnect(){}};pw=dw([$()],pw),I.container.register(cw,{useClass:pw});let bw=class{constructor(){this.message="This value does not appear to exist.",this.selector="[data-exists]"}connect(t){}disconnect(){}async validate(t){var e=t.getAttribute("data-exists");if(!e)return!1;var r=t.getAttribute("data-exists-path");const o=I.container.isRegistered(e)?I.container.resolve(e):new sw(e);if(t instanceof HTMLInputElement||t instanceof HTMLSelectElement||t instanceof HTMLTextAreaElement){const e=ow(await o.fetch(r,{value:t.value}));return null!=e&&e.length>0}return!1}};bw=dw([$()],bw),I.container.register(cw,{useClass:bw});class fw{constructor(){this.operator="=",this.value=null}}class hw{constructor(){this.evaluators=[],this.depends="",this.condition="or",this.emptyOnDisable=!1,this.resetOnDisable=!0,this.disabledClass="disabled",this.disableChildren=!0}}const gw="DependencyValidatorOptions",vw=new Map([["!=",(t,e)=>!qT(t.value,e)],[">=",(t,e)=>t.value>=e],["<=",(t,e)=>t.value<=e],["=",(t,e)=>qT(t.value,e)],[">",(t,e)=>t.value>e],["<",(t,e)=>t.value<e]]),mw=Array.from(vw.keys());let yw=class{constructor(t,e){this.message="Dependency condition not met",this.selector="[data-depend-options]",this.optionsCache=new Map,this.checkDependencies=async t=>{console.log("checking dependencies",this.optionsCache);for(const[t,e]of this.optionsCache)await this.validate(t)},this.form=t,this.options=e,this.currentOptions=e}connect(t){this.form.querySelectorAll(this.selector).forEach((t=>{t instanceof HTMLElement&&this.getOptions(t)})),this.optionsCache.forEach(((t,e)=>{this.validate(e)})),this.form.addEventListener("change",this.checkDependencies)}disconnect(){this.form.removeEventListener("change",this.checkDependencies)}async validate(t){const e=this.getOptions(t);if(null==e)return Promise.resolve(!0);let r;r="or"===e.condition?e.evaluators.some((t=>!0===t())):e.evaluators.every((t=>!0===t())),(t instanceof HTMLInputElement||t instanceof HTMLSelectElement||t instanceof HTMLTextAreaElement)&&(t.disabled=!r),t.classList.toggle(e.disabledClass,!r);const o=MT(t,"input,select,textarea");return r?e.disableChildren&&o.forEach((t=>t.removeAttribute("disabled"))):(e.disableChildren&&o.forEach((t=>t.setAttribute("disabled","disabled"))),e.resetOnDisable?o.forEach((t=>NT(t))):e.emptyOnDisable&&o.forEach((t=>zT(t)))),Promise.resolve(r)}getOptions(t){let e=this.optionsCache.get(t);if(!e){try{e=Object.assign({},this.options,PT(t,"data-depend-"))}catch(t){console.error("Error parsing data-depend-options attribute:",t)}if(!e)return null;e.evaluators=e.depends.split(",").map((t=>{t=t.trim();let e=mw.find((e=>t.includes(e)))??"!=",r=null,o="";if(e){const n=t.split(e);r=n[0],o=n[1]??""}else t.startsWith("!")?(e="=",r=t.substring(1)):r=t;const n=this.form.querySelector(`#${CSS.escape(r)}`)??this.form.querySelector(`[name="${CSS.escape(r)}"]`);return n instanceof HTMLInputElement?"checkbox"===n.type||"radio"===n.type?"!="===e?()=>n.checked:()=>!n.checked:()=>vw.get(e)(n,o):n instanceof HTMLSelectElement?()=>vw.get(e)(n,o):n instanceof HTMLOptionElement?"!="===e?()=>n.selected:()=>!n.selected:void 0})).filter((t=>void 0!==t)),this.optionsCache.set(t,e)}return e}getElement(t){return this.form.querySelector(`#${CSS.escape(t)}`)??this.form.querySelector(`[name="${CSS.escape(t)}"]`)}};yw=function(t,e,r,o){var n,i=arguments.length,s=i<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,r,o);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(s=(i<3?n(s):i>3?n(e,r,s):n(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s}([$(),function(t,e){return function(r,o){e(r,o,t)}}(1,A(gw)),function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}("design:paramtypes",[HTMLFormElement,hw])],yw),I.container.register(gw,{useValue:new hw}),I.container.register(cw,{useClass:yw});var ww=function(t,e,r,o){var n,i=arguments.length,s=i<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,r,o);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(s=(i<3?n(s):i>3?n(e,r,s):n(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s},_w=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};let xw=class extends Bt{constructor(){super(...arguments),this.name=null,this.apiEndpoint=null,this.method="POST"}connectedCallback(){super.connectedCallback();const t={};null==this.name&&console.error("qbo-api name is required."),null==this.apiEndpoint&&console.error("qbo-api apiEndpoint is required."),this.querySelectorAll("header").forEach((e=>{const r=e.getAttribute("name"),o=e.textContent;r&&o&&(t[r]=o)})),t.ContentType&&(t["Content-Type"]=t.ContentType,delete t.ContentType),this.apiEndpoint?.startsWith("http")||(this.apiEndpoint=new URL(this.apiEndpoint??"",document.location.origin).href),aw(this.name,this.apiEndpoint,t,this.method)}render(){return At``}};ww([Jt({type:String}),_w("design:type",Object)],xw.prototype,"name",void 0),ww([Jt({type:String}),_w("design:type",Object)],xw.prototype,"apiEndpoint",void 0),ww([Jt({type:String}),_w("design:type",String)],xw.prototype,"method",void 0),xw=ww([Kt("qbo-api")],xw);var Cw=function(t,e,r,o){var n,i=arguments.length,s=i<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,r,o);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(s=(i<3?n(s):i>3?n(e,r,s):n(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s},kw=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};const Sw=(t=>{class e extends t{constructor(...t){super(...t),this.apiEndpoint=null,this.method="GET",this.error=!1,this.jsonData={},this.accept="application/json",this.headerTag='script[name="headers"]',this.html=null,this.fetchOnLoad=!0}async connectedCallback(){if(super.connectedCallback(),this.fetchOnLoad){const t=this.getHeaders(),e=this.getPayload(t);await this.fetchData(t,e)}}getHeaders(){const t=this.querySelector(this.headerTag);let e={Accept:this.accept};if(t&&null!==t.textContent)try{e=JSON.parse(t.textContent)}catch(t){console.error("Error parsing header JSON:",t)}return e}getPayload(t){const e=this.querySelector('script[name="payload"]');let r=null;if(e&&null!==e.textContent)try{r=JSON.parse(e.textContent),r&&(t["Content-Type"]="application/json")}catch(t){console.error("Error parsing payload JSON:",t)}return r}async fetchData(t,e){if(null!==this.apiEndpoint){null!==e&&(this.method="POST");try{const r=await fetch(this.apiEndpoint,{method:this.method,headers:t,body:e?JSON.stringify(e):null});"application/json"===this.accept?(this.jsonData=await r.json(),this.html=null):(this.html=await r.text(),this.jsonData=null),this.dispatchEvent(new CustomEvent("qbo-updated",{bubbles:!0,composed:!0}))}catch(t){this.error=!0,dispatchEvent(new CustomEvent("qbo-error",{detail:t}))}}}}return Cw([Jt({type:URL}),kw("design:type",Object)],e.prototype,"apiEndpoint",void 0),Cw([Jt({type:String}),kw("design:type",Object)],e.prototype,"method",void 0),Cw([Jt({type:Boolean}),kw("design:type",Object)],e.prototype,"error",void 0),Cw([Jt({type:Object}),kw("design:type",Object)],e.prototype,"jsonData",void 0),Cw([Jt({type:String}),kw("design:type",Object)],e.prototype,"accept",void 0),Cw([Jt({type:String}),kw("design:type",Object)],e.prototype,"headerTag",void 0),Cw([Jt({type:String}),kw("design:type",Object)],e.prototype,"html",void 0),Cw([Jt({type:Boolean}),kw("design:type",Object)],e.prototype,"fetchOnLoad",void 0),e})(Bt);var Ew=function(t,e,r,o){var n,i=arguments.length,s=i<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,r,o);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(s=(i<3?n(s):i>3?n(e,r,s):n(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s},Tw=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};let Aw=class extends Sw{constructor(){super(...arguments),this.loading=!1,this.target=null,this.values=[],this.targetElement=null,this.selector="*[data-badge]"}async connectedCallback(){if(this.targetElement=null!=this.target?this.closest(this.target):this,null==this.targetElement)throw new Error(`Could not find target element ${this.target}`);this.targetElement.addEventListener("qbo-updated",this.getIds.bind(this)),super.connectedCallback()}disconnectedCallback(){this.targetElement?.removeEventListener("qbo-updated",this.getIds)}getPayload(t){(super.getPayload(t)??{}).idList=this.values.join(",")}getIds(){if(console.log("reacting to target qbo-updated"),null==this.targetElement)return;const t=[];this.targetElement.querySelectorAll(this.selector).forEach((e=>{const r=e.getAttribute("data-badge");null!==r&&t.push(r)})),this.values=t}async fetchData(t,e){super.fetchData(t,e)}render(){this.targetElement.querySelectorAll(this.selector).forEach((t=>{t.innerHTML=t.getAttribute("data-badge")??""}))}};Ew([Jt({type:Boolean}),Tw("design:type",Object)],Aw.prototype,"loading",void 0),Ew([Jt(),Tw("design:type",Object)],Aw.prototype,"target",void 0),Ew([Jt(),Tw("design:type",Array)],Aw.prototype,"values",void 0),Ew([Jt(),Tw("design:type",Object)],Aw.prototype,"selector",void 0),Aw=Ew([Kt("qbo-badge")],Aw);var $w=function(t,e,r,o){var n,i=arguments.length,s=i<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,r,o);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(s=(i<3?n(s):i>3?n(e,r,s):n(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s},Ow=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};let Iw=class extends Bt{constructor(){super(...arguments),this.apiEndpoint="qbo",this.colFourClass="qbo-col-4",this.colSixClass="qbo-col-6",this.colThreeClass="qbo-col-3",this.colTwelveClass="qbo-col-12",this.contactId=null,this.contactLabel="Contact",this.contactName="Contact",this.disabled=!0,this.divSectionHeaderClass="qbo-header",this.formControlSmallClass="qbo-sm",this.formLabelSmallClass="qbo-sm",this.formSelectSmallClass="qbo-sm",this.renderInHost=!0,this.jsonData={}}createRenderRoot(){return this.renderInHost?this:super.createRenderRoot()}async connectedCallback(){super.connectedCallback();const t=I.container.isRegistered(this.apiEndpoint)?I.container.resolve(this.apiEndpoint):new sw(this.apiEndpoint);this.jsonData=await t.fetch("contact/summary.json",{ID:`${this.contactId}`})}render(){return null==this.jsonData||null==this.jsonData.ContactItem&&null!=this.contactId?At`<p>Loading...</p>`:At`<slot>
|
|
56
56
|
<div class="${this.colSixClass}">
|
|
57
57
|
<label for="${this.contactName}" class="${this.formLabelSmallClass}">${this.contactLabel}</label>
|
|
58
58
|
<input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="${this.contactName}" value="${this.jsonData?.ContactItem?.Contact}"/>
|
|
@@ -315,5 +315,5 @@
|
|
|
315
315
|
<tbody>${this.options.map(((e,r)=>At`<tr data-index="${r}">${t.map((t=>At`<td>${e[t]}</td>`))}</tr>`))}</tbody>
|
|
316
316
|
<tfoot><tr><td colspan="${t.length}"><slot name="footer">${t.length} rows rendered.</slot></td></tr></tfoot>
|
|
317
317
|
</table>
|
|
318
|
-
</slot>`}loadData(){if(null!=this.dataSelector){const t=document.querySelector(this.dataSelector);if(null!=t)return ow(t.text)}return null}};OT([Jt({type:Boolean}),IT("design:type",Object)],DT.prototype,"loading",void 0),OT([Jt({type:Boolean}),IT("design:type",Object)],DT.prototype,"renderInHost",void 0),OT([Jt({attribute:"qbo-class"}),IT("design:type",Object)],DT.prototype,"qboClass",void 0),OT([Jt(),IT("design:type",Object)],DT.prototype,"dataSelector",void 0),OT([Jt(),IT("design:type",Object)],DT.prototype,"options",void 0),DT=OT([Kt("qbo-table")],DT);var jT=function(t,e,r,o){var n,i=arguments.length,s=i<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,r,o);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(s=(i<3?n(s):i>3?n(e,r,s):n(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s},RT=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};let LT=class extends Bt{constructor(){super(),this.renderInHost=!1,this.autoComplete="off",this.validatedClass="was-validated",this.workingClass=["bg-light","text-secondary"],this.form=null,this.validators=[],this.validate=async t=>{console.trace("validating form"),t.preventDefault();const e=Array.from(this.form?.querySelectorAll("*"));for(const t of e)t instanceof HTMLInputElement||t instanceof HTMLSelectElement||t instanceof HTMLTextAreaElement?(console.trace("validating element ",t),await this.validateElement(t)):console.trace("ignoring element ",t);this.form?.checkValidity()?console.trace("form is valid, js submit"):(console.trace("form is invalid"),t.preventDefault(),t.stopPropagation()),this.form?.classList.add(this.validatedClass),this.dispatchEvent(new Event("qbo-form-validated",{bubbles:!0}))},this.validateElement=async t=>{const e=t instanceof Event?t.target:t;if(console.trace("validateElement start ",e),e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement){if(e.setCustomValidity(""),!e.checkValidity())return;for(const t of this.validators)if(e.matches(t.selector)){if(console.trace("element matches selector ",t.selector," for ",e.matches(t.selector)?"true":"false"),!e.checkValidity())break;this.workingClass.forEach((t=>e.classList.add(t)));const r=await t.validate(e);this.workingClass.forEach((t=>e.classList.remove(t))),e.setCustomValidity(r?"":t.message),console.trace("input validity is ",e.checkValidity()," message is ",e.validationMessage)}else console.trace("element does not match selector ",t.selector," for ",e.matches(t.selector)?"true":"false")}console.trace("validateElement end ",e),e?.dispatchEvent(new Event("qbo-input-validated",{bubbles:!0}))},this.childContainer=I.container.createChildContainer()}async connectedCallback(){super.connectedCallback(),this.form=this.closest("form"),null!=this.form&&(this.form?.addEventListener("submit",this.validate),this.form?.addEventListener("change",this.validateElement),this.childContainer.registerInstance(HTMLFormElement,this.form),this.validators=this.childContainer.resolveAll(cw),this.validators.forEach((t=>t.connect(this.form))))}async disconnectedCallback(){super.disconnectedCallback(),this.validators.forEach((t=>t.disconnect())),this.form?.removeEventListener("change",this.validateElement),this.form?.removeEventListener("submit",this.validate)}render(){return At``}};function PT(t,e,r="options"){const o={},n=`${e}${r}`,i=t.getAttributeNames();for(const s of i)if(s.startsWith(e)){const i=s.slice(e.length);if(null!=r&&s===n)try{const e=JSON.parse(t.getAttribute(s));Object.assign(o,e)}catch(e){console.error(`Error parsing JSON from element ${t.name} attribute ${n} (${t.getAttribute(s)}):`,t,e)}else o[i]=t.getAttribute(s)}return o}function MT(t,e){const r=Array.from(t.querySelectorAll(e));return t.matches(e)&&r.unshift(t),r}function NT(t){if(t instanceof HTMLInputElement)"checkbox"===t.type||"radio"===t.type?t.checked=t.defaultChecked:t.value=t.defaultValue;else if(t instanceof HTMLSelectElement){var e=t.querySelectorAll("option[selected]");0==e.length?t.selectedIndex=0:e.forEach((t=>{t instanceof HTMLOptionElement&&(t.selected=!0)}))}}function zT(t){t instanceof HTMLInputElement?"checkbox"===t.type||"radio"===t.type?t.checked=!1:t.value="":t instanceof HTMLSelectElement&&(t.options.selectedIndex=0)}function qT(t,e,r="*",o=!0){return e=(e=e.replace(/([.+^${}()|[\]\\])/g,"\\$1")).replace(new RegExp("\\"+r,"g"),".*"),new RegExp("^"+e+"$",o?"i":"").test(t)}function HT(t){const e=t.dataset,r={};for(const t in e)e.hasOwnProperty(t)&&void 0!==e[t]&&(r[t]=e[t]);return r}function VT(t){const e=t.match(/api:\/\/([^/]+)/),r=e?e[1]:t,o=e?t.substring(`api://${r}`.length):"",n=I.container.isRegistered(r)?I.container.resolve(r):new sw(t);
|
|
318
|
+
</slot>`}loadData(){if(null!=this.dataSelector){const t=document.querySelector(this.dataSelector);if(null!=t)return ow(t.text)}return null}};OT([Jt({type:Boolean}),IT("design:type",Object)],DT.prototype,"loading",void 0),OT([Jt({type:Boolean}),IT("design:type",Object)],DT.prototype,"renderInHost",void 0),OT([Jt({attribute:"qbo-class"}),IT("design:type",Object)],DT.prototype,"qboClass",void 0),OT([Jt(),IT("design:type",Object)],DT.prototype,"dataSelector",void 0),OT([Jt(),IT("design:type",Object)],DT.prototype,"options",void 0),DT=OT([Kt("qbo-table")],DT);var jT=function(t,e,r,o){var n,i=arguments.length,s=i<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,r,o);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(s=(i<3?n(s):i>3?n(e,r,s):n(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s},RT=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};let LT=class extends Bt{constructor(){super(),this.renderInHost=!1,this.autoComplete="off",this.validatedClass="was-validated",this.workingClass=["bg-light","text-secondary"],this.form=null,this.validators=[],this.validate=async t=>{console.trace("validating form"),t.preventDefault();const e=Array.from(this.form?.querySelectorAll("*"));for(const t of e)t instanceof HTMLInputElement||t instanceof HTMLSelectElement||t instanceof HTMLTextAreaElement?(console.trace("validating element ",t),await this.validateElement(t)):console.trace("ignoring element ",t);this.form?.checkValidity()?console.trace("form is valid, js submit"):(console.trace("form is invalid"),t.preventDefault(),t.stopPropagation()),this.form?.classList.add(this.validatedClass),this.dispatchEvent(new Event("qbo-form-validated",{bubbles:!0}))},this.validateElement=async t=>{const e=t instanceof Event?t.target:t;if(console.trace("validateElement start ",e),e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement){if(e.setCustomValidity(""),!e.checkValidity())return;for(const t of this.validators)if(e.matches(t.selector)){if(console.trace("element matches selector ",t.selector," for ",e.matches(t.selector)?"true":"false"),!e.checkValidity())break;this.workingClass.forEach((t=>e.classList.add(t)));const r=await t.validate(e);this.workingClass.forEach((t=>e.classList.remove(t))),e.setCustomValidity(r?"":t.message),console.trace("input validity is ",e.checkValidity()," message is ",e.validationMessage)}else console.trace("element does not match selector ",t.selector," for ",e.matches(t.selector)?"true":"false")}console.trace("validateElement end ",e),e?.dispatchEvent(new Event("qbo-input-validated",{bubbles:!0}))},this.childContainer=I.container.createChildContainer()}async connectedCallback(){super.connectedCallback(),this.form=this.closest("form"),null!=this.form&&(this.form?.addEventListener("submit",this.validate),this.form?.addEventListener("change",this.validateElement),this.childContainer.registerInstance(HTMLFormElement,this.form),this.validators=this.childContainer.resolveAll(cw),this.validators.forEach((t=>t.connect(this.form))))}async disconnectedCallback(){super.disconnectedCallback(),this.validators.forEach((t=>t.disconnect())),this.form?.removeEventListener("change",this.validateElement),this.form?.removeEventListener("submit",this.validate)}render(){return At``}};function PT(t,e,r="options"){const o={},n=`${e}${r}`,i=t.getAttributeNames();for(const s of i)if(s.startsWith(e)){const i=s.slice(e.length);if(null!=r&&s===n)try{const e=JSON.parse(t.getAttribute(s));Object.assign(o,e)}catch(e){console.error(`Error parsing JSON from element ${t.name} attribute ${n} (${t.getAttribute(s)}):`,t,e)}else o[i]=t.getAttribute(s)}return o}function MT(t,e){const r=Array.from(t.querySelectorAll(e));return t.matches(e)&&r.unshift(t),r}function NT(t){if(t instanceof HTMLInputElement)"checkbox"===t.type||"radio"===t.type?t.checked=t.defaultChecked:t.value=t.defaultValue;else if(t instanceof HTMLSelectElement){var e=t.querySelectorAll("option[selected]");0==e.length?t.selectedIndex=0:e.forEach((t=>{t instanceof HTMLOptionElement&&(t.selected=!0)}))}}function zT(t){t instanceof HTMLInputElement?"checkbox"===t.type||"radio"===t.type?t.checked=!1:t.value="":t instanceof HTMLSelectElement&&(t.options.selectedIndex=0)}function qT(t,e,r="*",o=!0){return e=(e=e.replace(/([.+^${}()|[\]\\])/g,"\\$1")).replace(new RegExp("\\"+r,"g"),".*"),new RegExp("^"+e+"$",o?"i":"").test(t)}function HT(t){const e=t.dataset,r={};for(const t in e)e.hasOwnProperty(t)&&void 0!==e[t]&&(r[t]=e[t]);return r}function VT(t){const e=t.match(/api:\/\/([^/]+)/),r=e?e[1]:t,o=e?t.substring(`api://${r}`.length):"",n=I.container.isRegistered(r)?I.container.resolve(r):new sw(t);return o?n.clone(o):n}jT([Jt({type:Boolean}),RT("design:type",Object)],LT.prototype,"renderInHost",void 0),jT([Jt({type:String}),RT("design:type",Object)],LT.prototype,"autoComplete",void 0),jT([Jt({type:String}),RT("design:type",Object)],LT.prototype,"validatedClass",void 0),jT([Jt({converter:{fromAttribute:(t,e)=>t?.split(" "),toAttribute:(t,e)=>t.join(" ")}}),RT("design:type",Object)],LT.prototype,"workingClass",void 0),LT=jT([Kt("qbo-validate"),RT("design:paramtypes",[])],LT)})(),o})()));
|
|
319
319
|
//# sourceMappingURL=qbo4.ui.min.js.map
|