@mmlogic/components 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{index-OvnIRO4Y.js → index-BPj2cBXs.js} +48 -1
- package/dist/cjs/index.cjs.js +31 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/mosterdcomponents.cjs.js +2 -2
- package/dist/cjs/mrd-boolean-field_16.cjs.entry.js +48 -16
- package/dist/cjs/mrd-table.cjs.entry.js +46 -31
- package/dist/collection/components/mrd-field/mrd-field.js +1 -1
- package/dist/collection/components/mrd-form/mrd-form.js +13 -0
- package/dist/collection/components/mrd-list-field/mrd-list-field.js +17 -15
- package/dist/collection/components/mrd-relation-field/mrd-relation-field.js +31 -6
- package/dist/collection/components/mrd-table/mrd-table.js +40 -11
- package/dist/collection/components/mrd-table/mrd-table.scss +4 -0
- package/dist/collection/types/client-layout.js +31 -0
- package/dist/collection/utils/cell-renderer.js +15 -10
- package/dist/components/client-layout.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/mrd-field2.js +1 -1
- package/dist/components/mrd-form.js +1 -1
- package/dist/components/mrd-list-field2.js +1 -1
- package/dist/components/mrd-number-field2.js +1 -1
- package/dist/components/mrd-relation-field2.js +1 -1
- package/dist/components/mrd-table.js +1 -1
- package/dist/components/validation.js +1 -1
- package/dist/esm/{index-DQ_he8te.js → index-_tsCCkAi.js} +48 -1
- package/dist/esm/index.js +32 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/mosterdcomponents.js +3 -3
- package/dist/esm/mrd-boolean-field_16.entry.js +48 -16
- package/dist/esm/mrd-table.entry.js +37 -22
- package/dist/mosterdcomponents/index.esm.js +1 -1
- package/dist/mosterdcomponents/mosterdcomponents.esm.js +1 -1
- package/dist/mosterdcomponents/p-09392901.entry.js +1 -0
- package/dist/mosterdcomponents/p-_tsCCkAi.js +2 -0
- package/dist/mosterdcomponents/p-baf08615.entry.js +1 -0
- package/dist/types/components/mrd-form/mrd-form.d.ts +3 -0
- package/dist/types/components/mrd-list-field/mrd-list-field.d.ts +2 -1
- package/dist/types/components/mrd-relation-field/mrd-relation-field.d.ts +3 -1
- package/dist/types/components/mrd-table/mrd-table.d.ts +3 -0
- package/dist/types/components.d.ts +14 -5
- package/dist/types/types/client-layout.d.ts +104 -14
- package/dist/types/utils/cell-renderer.d.ts +3 -10
- package/package.json +1 -1
- package/dist/mosterdcomponents/p-88cd0930.entry.js +0 -1
- package/dist/mosterdcomponents/p-926ed331.entry.js +0 -1
- package/dist/mosterdcomponents/p-DQ_he8te.js +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r,c as e,h as i,H as d,g as o}from"./p-_tsCCkAi.js";import{ClientLayoutItemFieldDataType as l,ClientLayoutItemType as t,ClientLayoutItemRelationDisplayType as a}from"./index.esm.js";import{p as s,d as n}from"./p-Dt-aHxkM.js";const m=class{constructor(i){r(this,i),this.mrdChange=e(this,"mrdChange"),this.mrdBlur=e(this,"mrdBlur"),this.name="",this.label="",this.value=!1,this.required=!1,this.disabled=!1,this.locale=navigator.language,this.checked=!1,this.handleChange=r=>{this.checked=r.target.checked,this.mrdChange.emit({name:this.name,value:this.checked})},this.handleBlur=()=>{this.mrdBlur.emit({name:this.name,value:this.checked})}}componentWillLoad(){this.checked=!!this.value}render(){return i(d,{key:"aed1d936d686870114a12aad9fc4cccb76ecd31e"},i("div",{key:"5cc8aaa0f12d4195d02fce8a810d7d993e2e8c99",class:"mrd-boolean-field"},i("label",{key:"41c3b3e0f01778fc2654ba86e3fe4e5a07c8537a",class:"mrd-boolean-field__toggle-label"},i("input",{key:"c261e6903e050d2f3d8df8abb90c74d99ed20161",class:"mrd-boolean-field__checkbox",type:"checkbox",name:this.name,checked:this.checked,disabled:this.disabled,onChange:this.handleChange,onBlur:this.handleBlur}),i("span",{key:"079ee220fe692536af15a7fb4286626102ae940e",class:"mrd-boolean-field__toggle","aria-hidden":"true"}),this.label&&i("span",{key:"1f4f52a41f0bd6ba4c61cf9d4db74ab2f1aa8877",class:"mrd-boolean-field__text"+(this.required?" mrd-boolean-field__text--required":"")},this.label))))}};m.style=".sc-mrd-boolean-field-h{display:block}.mrd-boolean-field.sc-mrd-boolean-field{display:flex;align-items:center;width:100%}.mrd-boolean-field__toggle-label.sc-mrd-boolean-field{display:flex;align-items:center;gap:var(--mrd-space-3);cursor:pointer;user-select:none}.mrd-boolean-field__checkbox.sc-mrd-boolean-field{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.mrd-boolean-field__checkbox.sc-mrd-boolean-field:checked+.mrd-boolean-field__toggle.sc-mrd-boolean-field{background-color:var(--mrd-color-primary)}.mrd-boolean-field__checkbox.sc-mrd-boolean-field:checked+.mrd-boolean-field__toggle.sc-mrd-boolean-field::after{transform:translateX(20px)}.mrd-boolean-field__checkbox.sc-mrd-boolean-field:focus+.mrd-boolean-field__toggle.sc-mrd-boolean-field{box-shadow:var(--mrd-shadow-focus)}.mrd-boolean-field__checkbox.sc-mrd-boolean-field:disabled+.mrd-boolean-field__toggle.sc-mrd-boolean-field{opacity:0.5;cursor:not-allowed}.mrd-boolean-field__toggle.sc-mrd-boolean-field{position:relative;display:inline-block;width:44px;height:24px;background-color:var(--mrd-color-neutral-300);border-radius:var(--mrd-border-radius-full);transition:background-color var(--mrd-transition);flex-shrink:0}.mrd-boolean-field__toggle.sc-mrd-boolean-field::after{content:'';position:absolute;top:2px;left:2px;width:20px;height:20px;background-color:var(--mrd-color-white);border-radius:50%;transition:transform var(--mrd-transition);box-shadow:var(--mrd-shadow-sm)}.mrd-boolean-field__text.sc-mrd-boolean-field{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-color-neutral-800)}.mrd-boolean-field__text--required.sc-mrd-boolean-field::after{content:' *';color:var(--mrd-color-danger)}";const c={nl:{required:"Dit veld is verplicht",select_placeholder:"Selecteer een optie",search_placeholder:"Zoeken...",upload_file:"Bestand uploaden",choose_file:"Bestand kiezen",clear:"Wissen",today:"Vandaag",invalid_email:"Voer een geldig e-mailadres in",invalid_url:"Voer een geldige URL in",invalid_number:"Voer een geldig getal in",drop_file_here:"Sleep bestand hierheen of",browse:"bladeren",file_too_large:"Bestand is te groot",search_results:"Zoekresultaten",no_results:"Geen resultaten gevonden",loading:"Laden...",submit:"Opslaan",cancel:"Annuleren",remove:"Verwijderen",add:"Toevoegen",yes:"Ja",no:"Nee"},en:{required:"This field is required",select_placeholder:"Select an option",search_placeholder:"Search...",upload_file:"Upload file",choose_file:"Choose file",clear:"Clear",today:"Today",invalid_email:"Please enter a valid email address",invalid_url:"Please enter a valid URL",invalid_number:"Please enter a valid number",drop_file_here:"Drop file here or",browse:"browse",file_too_large:"File is too large",search_results:"Search results",no_results:"No results found",loading:"Loading...",submit:"Save",cancel:"Cancel",remove:"Remove",add:"Add",yes:"Yes",no:"No"},ar:{required:"هذا الحقل مطلوب",select_placeholder:"اختر خياراً",search_placeholder:"بحث...",upload_file:"رفع ملف",choose_file:"اختر ملفاً",clear:"مسح",today:"اليوم",invalid_email:"يرجى إدخال عنوان بريد إلكتروني صحيح",invalid_url:"يرجى إدخال رابط صحيح",invalid_number:"يرجى إدخال رقم صحيح",drop_file_here:"اسحب الملف هنا أو",browse:"تصفح",file_too_large:"الملف كبير جداً",search_results:"نتائج البحث",no_results:"لم يتم العثور على نتائج",loading:"جار التحميل...",submit:"حفظ",cancel:"إلغاء",remove:"إزالة",add:"إضافة",yes:"نعم",no:"لا"}};function f(r,e){var i,d,o;const l=e.split("-")[0].toLowerCase();return null!==(o=null!==(d=(null!==(i=c[l])&&void 0!==i?i:c.en)[r])&&void 0!==d?d:c.en[r])&&void 0!==o?o:r}function h(r){return null!=r&&("string"==typeof r?r.trim().length>0:Array.isArray(r)?r.length>0:"object"!=typeof r||!("amount"in r)||null!=r.amount&&""!==r.amount)}const u=["EUR","USD","GBP","CHF","JPY","CNY","AUD","CAD","SEK","NOK","DKK","NZD","SGD","HKD","PLN","CZK","HUF","MXN","BRL","INR","TRY","ZAR","AED","SAR"],b=class{constructor(i){r(this,i),this.mrdChange=e(this,"mrdChange"),this.mrdBlur=e(this,"mrdBlur"),this.name="",this.label="",this.value={amount:null,currency:"EUR"},this.required=!1,this.disabled=!1,this.locale=navigator.language,this.amountDisplay="",this.currency="EUR",this.error="",this.handleAmountInput=r=>{this.amountDisplay=r.target.value},this.handleAmountBlur=r=>{const e=r.target.value,i=s(e,this.locale);this.error=this.required&&!h(e)?f("required",this.locale):"";const d={amount:i,currency:this.currency};this.mrdChange.emit({name:this.name,value:d}),this.mrdBlur.emit({name:this.name,value:d})},this.handleCurrencyChange=r=>{this.currency=r.target.value;const e=s(this.amountDisplay,this.locale);this.mrdChange.emit({name:this.name,value:{amount:e,currency:this.currency}})}}componentWillLoad(){this.value&&(this.currency=this.value.currency||"EUR",this.amountDisplay=null!==this.value.amount?String(this.value.amount):"")}render(){const r=!!this.error;return i(d,{key:"d3450e9c26b1a755d3e6a5a3561d93b2ac566a28"},i("div",{key:"b66942cc1953daff728504deef8a9cc1330ef549",class:"mrd-currency-field"},this.label&&i("label",{key:"3d3f2f06e9ffea944552f0f7cf3150d0246c54f0",class:"mrd-currency-field__label"+(this.required?" mrd-currency-field__label--required":"")},this.label),i("div",{key:"d30a2adfceefdbefef2d4fe6633a163a753b15d0",class:"mrd-currency-field__row"},i("input",{key:"9af09b19b6cbe24498d6ca8edf7b28f675afdec5",class:"mrd-currency-field__amount"+(r?" mrd-currency-field__amount--error":""),type:"text",inputMode:"decimal",name:`${this.name}_amount`,value:this.amountDisplay,placeholder:"0.00",required:this.required,disabled:this.disabled,onInput:this.handleAmountInput,onBlur:this.handleAmountBlur}),i("select",{key:"21e55b04b7bf16586b5cfaa82d77db45c6dedf21",class:"mrd-currency-field__currency",disabled:this.disabled,onChange:this.handleCurrencyChange},u.map((r=>i("option",{key:r,value:r,selected:r===this.currency},r))))),r&&i("span",{key:"7a0006d4230557cf9c58f82f21de73b5d12f7e17",class:"mrd-currency-field__error"},this.error)))}};b.style=".sc-mrd-currency-field-h{display:block}.mrd-currency-field.sc-mrd-currency-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%}.mrd-currency-field__label.sc-mrd-currency-field{display:block;font-family:var(--mrd-font-family);font-size:var(--mrd-label-font-size);font-weight:var(--mrd-label-font-weight);color:var(--mrd-label-color)}.mrd-currency-field__label--required.sc-mrd-currency-field::after{content:' *';color:var(--mrd-color-danger)}.mrd-currency-field__row.sc-mrd-currency-field{display:flex;gap:var(--mrd-space-2);align-items:stretch}.mrd-currency-field__amount.sc-mrd-currency-field{flex:1;height:var(--mrd-input-height);padding:var(--mrd-input-padding-y) var(--mrd-input-padding-x);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-input-color);background-color:var(--mrd-input-bg);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);transition:border-color var(--mrd-transition), box-shadow var(--mrd-transition);outline:none;appearance:none;text-align:right;box-sizing:border-box}.mrd-currency-field__amount.sc-mrd-currency-field:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-currency-field__amount.sc-mrd-currency-field:disabled{background-color:var(--mrd-input-bg-disabled);cursor:not-allowed;opacity:0.7}.mrd-currency-field__amount--error.sc-mrd-currency-field{border-color:var(--mrd-border-color-error)}.mrd-currency-field__amount--error.sc-mrd-currency-field:focus{box-shadow:var(--mrd-shadow-focus-error)}.mrd-currency-field__currency.sc-mrd-currency-field{width:90px;height:var(--mrd-input-height);padding:var(--mrd-input-padding-y) var(--mrd-space-2);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-medium);color:var(--mrd-input-color);background-color:var(--mrd-color-neutral-50);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);outline:none;cursor:pointer;box-sizing:border-box;appearance:none;text-align:center}.mrd-currency-field__currency.sc-mrd-currency-field:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-currency-field__currency.sc-mrd-currency-field:disabled{background-color:var(--mrd-input-bg-disabled);cursor:not-allowed;opacity:0.7}.mrd-currency-field__error.sc-mrd-currency-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}";const v=class{constructor(i){r(this,i),this.mrdChange=e(this,"mrdChange"),this.mrdBlur=e(this,"mrdBlur"),this.name="",this.label="",this.value="",this.required=!1,this.disabled=!1,this.locale=navigator.language,this.error="",this.handleChange=r=>{const e=r.target.value;this.error=this.required&&!h(e)?f("required",this.locale):"",this.mrdChange.emit({name:this.name,value:e})},this.handleBlur=r=>{this.mrdBlur.emit({name:this.name,value:r.target.value})}}render(){const r=!!this.error;return i(d,{key:"84c777fc68a95e0b1ceb08d61e3af7afa199ce94"},i("div",{key:"6653d94ab79c74342ce792792547018e4464a814",class:"mrd-date-field"},this.label&&i("label",{key:"2fa7b7ec50c784f9410ca48b93d50e39dc6e0bee",class:"mrd-date-field__label"+(this.required?" mrd-date-field__label--required":"")},this.label),i("input",{key:"f79ebbaf0e28ad7668a5400d1df514b66457b72d",class:"mrd-date-field__input"+(r?" mrd-date-field__input--error":""),type:"date",name:this.name,value:this.value,required:this.required,disabled:this.disabled,onChange:this.handleChange,onBlur:this.handleBlur}),r&&i("span",{key:"e52f0b720d76e8ba0586fb40395b6875860762db",class:"mrd-date-field__error"},this.error)))}};v.style=".sc-mrd-date-field-h{display:block}.mrd-date-field.sc-mrd-date-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%}.mrd-date-field__label.sc-mrd-date-field{display:block;font-family:var(--mrd-font-family);font-size:var(--mrd-label-font-size);font-weight:var(--mrd-label-font-weight);color:var(--mrd-label-color)}.mrd-date-field__label--required.sc-mrd-date-field::after{content:' *';color:var(--mrd-color-danger)}.mrd-date-field__input.sc-mrd-date-field{display:block;width:100%;height:var(--mrd-input-height);padding:var(--mrd-input-padding-y) var(--mrd-input-padding-x);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-input-color);background-color:var(--mrd-input-bg);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);transition:border-color var(--mrd-transition), box-shadow var(--mrd-transition);outline:none;appearance:none;box-sizing:border-box;cursor:pointer}.mrd-date-field__input.sc-mrd-date-field:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-date-field__input.sc-mrd-date-field:disabled{background-color:var(--mrd-input-bg-disabled);cursor:not-allowed;opacity:0.7}.mrd-date-field__input--error.sc-mrd-date-field{border-color:var(--mrd-border-color-error)}.mrd-date-field__input--error.sc-mrd-date-field:focus{box-shadow:var(--mrd-shadow-focus-error)}.mrd-date-field__error.sc-mrd-date-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}";const p=class{constructor(i){r(this,i),this.mrdChange=e(this,"mrdChange"),this.mrdBlur=e(this,"mrdBlur"),this.name="",this.label="",this.value="",this.required=!1,this.disabled=!1,this.locale=navigator.language,this.error="",this.handleChange=r=>{const e=r.target.value;this.error=this.required&&!h(e)?f("required",this.locale):"",this.mrdChange.emit({name:this.name,value:e})},this.handleBlur=r=>{this.mrdBlur.emit({name:this.name,value:r.target.value})}}render(){const r=!!this.error;return i(d,{key:"79331514eedaf208598a440423da6c154d0d516c"},i("div",{key:"a02a65bdef03a4243b700a68e32722a30781fa45",class:"mrd-datetime-field"},this.label&&i("label",{key:"adcf653253f64e8686b33211da4a5e8597b0786a",class:"mrd-datetime-field__label"+(this.required?" mrd-datetime-field__label--required":"")},this.label),i("input",{key:"49a9fba058d2857c476d8ff038766f8b19b21a41",class:"mrd-datetime-field__input"+(r?" mrd-datetime-field__input--error":""),type:"datetime-local",name:this.name,value:this.value,required:this.required,disabled:this.disabled,onChange:this.handleChange,onBlur:this.handleBlur}),r&&i("span",{key:"6d0d822b7cce825121b4abc77425442eb2556d76",class:"mrd-datetime-field__error"},this.error)))}};p.style=".sc-mrd-datetime-field-h{display:block}.mrd-datetime-field.sc-mrd-datetime-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%}.mrd-datetime-field__label.sc-mrd-datetime-field{display:block;font-family:var(--mrd-font-family);font-size:var(--mrd-label-font-size);font-weight:var(--mrd-label-font-weight);color:var(--mrd-label-color)}.mrd-datetime-field__label--required.sc-mrd-datetime-field::after{content:' *';color:var(--mrd-color-danger)}.mrd-datetime-field__input.sc-mrd-datetime-field{display:block;width:100%;height:var(--mrd-input-height);padding:var(--mrd-input-padding-y) var(--mrd-input-padding-x);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-input-color);background-color:var(--mrd-input-bg);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);transition:border-color var(--mrd-transition), box-shadow var(--mrd-transition);outline:none;appearance:none;box-sizing:border-box;cursor:pointer}.mrd-datetime-field__input.sc-mrd-datetime-field:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-datetime-field__input.sc-mrd-datetime-field:disabled{background-color:var(--mrd-input-bg-disabled);cursor:not-allowed;opacity:0.7}.mrd-datetime-field__input--error.sc-mrd-datetime-field{border-color:var(--mrd-border-color-error)}.mrd-datetime-field__input--error.sc-mrd-datetime-field:focus{box-shadow:var(--mrd-shadow-focus-error)}.mrd-datetime-field__error.sc-mrd-datetime-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}";const _=class{constructor(i){r(this,i),this.mrdChange=e(this,"mrdChange"),this.mrdBlur=e(this,"mrdBlur"),this.name="",this.label="",this.value="",this.placeholder="",this.required=!1,this.disabled=!1,this.locale=navigator.language,this.error="",this.handleInput=r=>{this.mrdChange.emit({name:this.name,value:r.target.value})},this.handleBlur=r=>{const e=r.target.value;var i;this.error=this.required&&!h(e)?f("required",this.locale):e&&(i=e)&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(i)?f("invalid_email",this.locale):"",this.mrdBlur.emit({name:this.name,value:e})}}render(){const r=!!this.error;return i(d,{key:"851ec092957ab86e811b292eaabe29d04a600fe0"},i("div",{key:"2d8969d60378f3161656369494549d682de8ec0e",class:"mrd-email-field"},this.label&&i("label",{key:"7a35cc60d4804097e1a54f984c7da1829f6bbd11",class:"mrd-email-field__label"+(this.required?" mrd-email-field__label--required":"")},this.label),i("input",{key:"1fc20e860aa021886f7ed522c3a0c8dd2cb1e093",class:"mrd-email-field__input"+(r?" mrd-email-field__input--error":""),type:"email",name:this.name,value:this.value,placeholder:this.placeholder||"name@example.com",required:this.required,disabled:this.disabled,onInput:this.handleInput,onBlur:this.handleBlur}),r&&i("span",{key:"a44b3b41b7cd6b8c643cc64e6aadd884a2ba4961",class:"mrd-email-field__error"},this.error)))}};_.style=".sc-mrd-email-field-h{display:block}.mrd-email-field.sc-mrd-email-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%}.mrd-email-field__label.sc-mrd-email-field{display:block;font-family:var(--mrd-font-family);font-size:var(--mrd-label-font-size);font-weight:var(--mrd-label-font-weight);color:var(--mrd-label-color)}.mrd-email-field__label--required.sc-mrd-email-field::after{content:' *';color:var(--mrd-color-danger)}.mrd-email-field__input.sc-mrd-email-field{display:block;width:100%;height:var(--mrd-input-height);padding:var(--mrd-input-padding-y) var(--mrd-input-padding-x);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-input-color);background-color:var(--mrd-input-bg);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);transition:border-color var(--mrd-transition), box-shadow var(--mrd-transition);outline:none;appearance:none;box-sizing:border-box}.mrd-email-field__input.sc-mrd-email-field::placeholder{color:var(--mrd-input-placeholder-color)}.mrd-email-field__input.sc-mrd-email-field:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-email-field__input.sc-mrd-email-field:disabled{background-color:var(--mrd-input-bg-disabled);cursor:not-allowed;opacity:0.7}.mrd-email-field__input--error.sc-mrd-email-field{border-color:var(--mrd-border-color-error)}.mrd-email-field__input--error.sc-mrd-email-field:focus{box-shadow:var(--mrd-shadow-focus-error)}.mrd-email-field__error.sc-mrd-email-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}";const g=class{constructor(i){r(this,i),this.mrdChange=e(this,"mrdChange"),this.mrdBlur=e(this,"mrdBlur"),this.mrdSearch=e(this,"mrdSearch"),this.locale=navigator.language,this.handleChange=r=>{r.stopPropagation(),this.mrdChange.emit(r.detail)},this.handleBlur=r=>{r.stopPropagation(),this.mrdBlur.emit(r.detail)},this.handleSearch=r=>{r.stopPropagation(),this.mrdSearch.emit(r.detail)}}render(){var r,e,o,s,n,m,c,f,h,u,b,v,p,_,g,y,x,w,k,z,q,C,B,j,O,D,S,M,A;const{item:L,locale:E,value:F}=this;if(L.type===t.RELATION&&L.relation){const l=L.relation;return i(d,null,i("mrd-relation-field",{name:l.name,label:l.label,required:l.required,disabled:null!==(r=l.disabled)&&void 0!==r&&r,locale:E,relatedClass:l.relatedClass,displayType:null!==(e=l.displayType)&&void 0!==e?e:a.SEARCH,multiple:null!==(o=l.multiple)&&void 0!==o&&o,dropdownValues:null!==(s=l.dropdownValues)&&void 0!==s?s:[],value:F,onMrdChange:this.handleChange,onMrdBlur:this.handleBlur,onMrdSearch:this.handleSearch}))}if(L.type!==t.FIELD||!L.field)return i(d,null);const R=L.field,N={name:R.name,label:R.label,required:R.required,disabled:null!==(n=R.disabled)&&void 0!==n&&n,locale:E,onMrdChange:this.handleChange,onMrdBlur:this.handleBlur};switch(R.dataType){case l.TEXT:return i(d,null,i("mrd-text-field",Object.assign({},N,{value:null!==(m=F)&&void 0!==m?m:"",placeholder:null!==(c=R.placeholder)&&void 0!==c?c:""})));case l.TEXTBLOCK:return i(d,null,i("mrd-textarea-field",Object.assign({},N,{value:null!==(f=F)&&void 0!==f?f:"",placeholder:null!==(h=R.placeholder)&&void 0!==h?h:""})));case l.INTEGER:case l.DECIMAL:case l.PERCENTAGE:return i(d,null,i("mrd-number-field",Object.assign({},N,{value:null!==(u=F)&&void 0!==u?u:null,dataType:R.dataType,decimalPrecision:null!==(b=R.decimalPrecision)&&void 0!==b?b:2,placeholder:null!==(v=R.placeholder)&&void 0!==v?v:""})));case l.CURRENCY:return i(d,null,i("mrd-currency-field",Object.assign({},N,{value:null!==(p=F)&&void 0!==p?p:{amount:null,currency:null!==(_=R.currencyCode)&&void 0!==_?_:"EUR"}})));case l.BOOLEAN:return i(d,null,i("mrd-boolean-field",Object.assign({},N,{value:null!==(g=F)&&void 0!==g&&g})));case l.DATE:return i(d,null,i("mrd-date-field",Object.assign({},N,{value:null!==(y=F)&&void 0!==y?y:""})));case l.DATETIME:return i(d,null,i("mrd-datetime-field",Object.assign({},N,{value:null!==(x=F)&&void 0!==x?x:""})));case l.TIME:return i(d,null,i("mrd-time-field",Object.assign({},N,{value:null!==(w=F)&&void 0!==w?w:""})));case l.EMAIL:return i(d,null,i("mrd-email-field",Object.assign({},N,{value:null!==(k=F)&&void 0!==k?k:"",placeholder:null!==(z=R.placeholder)&&void 0!==z?z:""})));case l.HYPERLINK:return i(d,null,i("mrd-hyperlink-field",Object.assign({},N,{value:null!==(q=F)&&void 0!==q?q:"",placeholder:null!==(C=R.placeholder)&&void 0!==C?C:""})));case l.LIST:return i(d,null,i("mrd-list-field",Object.assign({},N,{value:null!==(B=F)&&void 0!==B?B:"",multiple:null!==(j=R.multiple)&&void 0!==j&&j,listItems:null!==(O=R.listItems)&&void 0!==O?O:[]})));case l.FILE:return i(d,null,i("mrd-file-field",Object.assign({},N,{accept:null!==(D=R.accept)&&void 0!==D?D:"",maxSize:null!==(S=R.maxSize)&&void 0!==S?S:0})));case l.IMAGE:return i(d,null,i("mrd-image-field",Object.assign({},N,{accept:null!==(M=R.accept)&&void 0!==M?M:"image/*",maxSize:null!==(A=R.maxSize)&&void 0!==A?A:0})));default:return i(d,null)}}},y=class{constructor(i){r(this,i),this.mrdChange=e(this,"mrdChange"),this.mrdBlur=e(this,"mrdBlur"),this.name="",this.label="",this.required=!1,this.disabled=!1,this.locale=navigator.language,this.accept="",this.maxSize=0,this.fileName="",this.isDragging=!1,this.error="",this.handleInputChange=r=>{var e;const i=r.target.files;this.handleFile(null!==(e=null==i?void 0:i[0])&&void 0!==e?e:null)},this.handleDragOver=r=>{r.preventDefault(),this.isDragging=!0},this.handleDragLeave=()=>{this.isDragging=!1},this.handleDrop=r=>{var e,i,d;r.preventDefault(),this.isDragging=!1;const o=null!==(d=null===(i=null===(e=r.dataTransfer)||void 0===e?void 0:e.files)||void 0===i?void 0:i[0])&&void 0!==d?d:null;this.handleFile(o)},this.handleZoneClick=()=>{var r;this.disabled||null===(r=this.fileInputRef)||void 0===r||r.click()},this.handleClear=r=>{r.stopPropagation(),this.fileName="",this.error="",this.fileInputRef&&(this.fileInputRef.value=""),this.mrdChange.emit({name:this.name,value:null})}}handleFile(r){if(!r)return this.fileName="",void this.mrdChange.emit({name:this.name,value:null});this.maxSize>0&&r.size>this.maxSize?this.error=f("file_too_large",this.locale):(this.error="",this.fileName=r.name,this.mrdChange.emit({name:this.name,value:r}))}render(){const r=!!this.error;return i(d,{key:"6617c70edaf193c204a951ff8116d54742592f84"},i("div",{key:"69a45446da411c1cfdadd9ee7051e3ceea95a2d2",class:"mrd-file-field"},this.label&&i("label",{key:"ca415565514c5a3829b1e4a446493916bd1b5b17",class:"mrd-file-field__label"+(this.required?" mrd-file-field__label--required":"")},this.label),i("div",{key:"abee0fc6a53c9f1266e6ed2d0ec8ab85a20a81ca",class:`mrd-file-field__zone${this.isDragging?" mrd-file-field__zone--dragging":""}${r?" mrd-file-field__zone--error":""}${this.disabled?" mrd-file-field__zone--disabled":""}`,onClick:this.handleZoneClick,onDragOver:this.handleDragOver,onDragLeave:this.handleDragLeave,onDrop:this.handleDrop},i("input",{key:"c1dbca750d4115b7d8ea3dcd9ed3405ed11c93a2",ref:r=>this.fileInputRef=r,class:"mrd-file-field__input",type:"file",name:this.name,accept:this.accept,disabled:this.disabled,required:this.required&&!this.fileName,onChange:this.handleInputChange}),this.fileName?i("div",{class:"mrd-file-field__selected"},i("svg",{class:"mrd-file-field__icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},i("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),i("polyline",{points:"14 2 14 8 20 8"})),i("span",{class:"mrd-file-field__filename"},this.fileName),i("button",{class:"mrd-file-field__clear",type:"button",onClick:this.handleClear,"aria-label":f("clear",this.locale)},"✕")):i("div",{class:"mrd-file-field__prompt"},i("svg",{class:"mrd-file-field__upload-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},i("polyline",{points:"16 16 12 12 8 16"}),i("line",{x1:"12",y1:"12",x2:"12",y2:"21"}),i("path",{d:"M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3"})),i("span",null,f("drop_file_here",this.locale)," ",i("span",{class:"mrd-file-field__browse"},f("browse",this.locale))))),r&&i("span",{key:"91ef6a6240f139e161288cb812d17e13a619ec89",class:"mrd-file-field__error"},this.error)))}};y.style=".sc-mrd-file-field-h{display:block}.mrd-file-field.sc-mrd-file-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%}.mrd-file-field__label.sc-mrd-file-field{display:block;font-family:var(--mrd-font-family);font-size:var(--mrd-label-font-size);font-weight:var(--mrd-label-font-weight);color:var(--mrd-label-color)}.mrd-file-field__label--required.sc-mrd-file-field::after{content:' *';color:var(--mrd-color-danger)}.mrd-file-field__zone.sc-mrd-file-field{display:flex;align-items:center;justify-content:center;padding:var(--mrd-space-6);border:2px dashed var(--mrd-border-color);border-radius:var(--mrd-border-radius-md);background-color:var(--mrd-color-neutral-50);cursor:pointer;transition:border-color var(--mrd-transition), background-color var(--mrd-transition);min-height:100px;position:relative}.mrd-file-field__zone.sc-mrd-file-field:hover{border-color:var(--mrd-color-primary);background-color:var(--mrd-color-primary-light)}.mrd-file-field__zone--dragging.sc-mrd-file-field{border-color:var(--mrd-color-primary);background-color:var(--mrd-color-primary-light)}.mrd-file-field__zone--error.sc-mrd-file-field{border-color:var(--mrd-border-color-error)}.mrd-file-field__zone--disabled.sc-mrd-file-field{opacity:0.6;cursor:not-allowed}.mrd-file-field__zone--disabled.sc-mrd-file-field:hover{border-color:var(--mrd-border-color);background-color:var(--mrd-color-neutral-50)}.mrd-file-field__input.sc-mrd-file-field{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;pointer-events:none}.mrd-file-field__prompt.sc-mrd-file-field{display:flex;flex-direction:column;align-items:center;gap:var(--mrd-space-2);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);color:var(--mrd-color-neutral-500);text-align:center}.mrd-file-field__upload-icon.sc-mrd-file-field{width:32px;height:32px;color:var(--mrd-color-neutral-400)}.mrd-file-field__browse.sc-mrd-file-field{color:var(--mrd-color-primary);font-weight:var(--mrd-font-weight-medium);text-decoration:underline}.mrd-file-field__selected.sc-mrd-file-field{display:flex;align-items:center;gap:var(--mrd-space-2);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);color:var(--mrd-color-neutral-700)}.mrd-file-field__icon.sc-mrd-file-field{width:20px;height:20px;color:var(--mrd-color-primary);flex-shrink:0}.mrd-file-field__filename.sc-mrd-file-field{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.mrd-file-field__clear.sc-mrd-file-field{background:none;border:none;cursor:pointer;color:var(--mrd-color-neutral-400);font-size:var(--mrd-font-size-sm);padding:var(--mrd-space-1);border-radius:var(--mrd-border-radius-sm);line-height:1}.mrd-file-field__clear.sc-mrd-file-field:hover{color:var(--mrd-color-danger);background-color:var(--mrd-color-danger-light)}.mrd-file-field__error.sc-mrd-file-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}";const x=class{constructor(i){r(this,i),this.mrdSubmit=e(this,"mrdSubmit"),this.mrdSearch=e(this,"mrdSearch"),this.locale=navigator.language,this.values={},this.formValues={},this.errors={},this.submitted=!1,this.handleFieldChange=r=>{const{name:e,value:i}=r.detail;this.formValues=Object.assign(Object.assign({},this.formValues),{[e]:i}),this.errors[e]&&(this.errors=Object.assign(Object.assign({},this.errors),{[e]:""}))},this.handleSearch=r=>{this.mrdSearch.emit(r.detail)},this.handleSubmit=r=>{r.preventDefault(),this.submitted=!0,this.validate()&&this.mrdSubmit.emit(Object.assign({},this.formValues))}}componentWillLoad(){var r;this.formValues=Object.assign({},null!==(r=this.values)&&void 0!==r?r:{})}valuesChanged(r){this.formValues=Object.assign({},null!=r?r:{}),this.errors={},this.submitted=!1}async setFieldValue(r,e){this.formValues=Object.assign(Object.assign({},this.formValues),{[r]:e}),this.errors[r]&&(this.errors=Object.assign(Object.assign({},this.errors),{[r]:""}))}collectFields(r){const e=[];for(const i of r)i.type!==t.FIELD&&i.type!==t.RELATION||e.push(i),i.items&&e.push(...this.collectFields(i.items));return e}validate(){var r,e,i;const d={},o=this.collectFields(null!==(e=null===(r=this.layout)||void 0===r?void 0:r.items)&&void 0!==e?e:[]);for(const r of o){const e=null!==(i=r.field)&&void 0!==i?i:r.relation;e&&e.required&&!h(this.formValues[e.name])&&(d[e.name]=f("required",this.locale))}return this.errors=d,0===Object.keys(d).length}renderItems(r){return r.map((r=>{var e,d,o,l;if(r.type===t.SECTION)return i("fieldset",{class:"mrd-form__section"},r.label&&i("legend",{class:"mrd-form__section-legend"},r.label),i("div",{class:"mrd-form__section-body"},r.items&&this.renderItems(r.items)));if(r.type===t.GROUP)return i("div",{class:"mrd-form__group"},r.label&&i("div",{class:"mrd-form__group-label"},r.label),i("div",{class:"mrd-form__group-body"},r.items&&this.renderItems(r.items)));const a=null!==(l=null!==(d=null===(e=r.field)||void 0===e?void 0:e.name)&&void 0!==d?d:null===(o=r.relation)||void 0===o?void 0:o.name)&&void 0!==l?l:"";return i("div",{class:"mrd-form__field"},i("mrd-field",{item:r,locale:this.locale,value:this.formValues[a],onMrdChange:this.handleFieldChange,onMrdBlur:this.handleFieldChange,onMrdSearch:this.handleSearch}),this.errors[a]&&i("span",{class:"mrd-form__field-error"},this.errors[a]))}))}render(){if(!this.layout)return i(d,null);const r=this.locale.startsWith("ar")?"rtl":"ltr";return i(d,null,i("form",{class:"mrd-form",dir:r,onSubmit:this.handleSubmit,noValidate:!0},this.layout.title&&i("h2",{class:"mrd-form__title"},this.layout.title),i("div",{class:"mrd-form__body"},this.renderItems(this.layout.items)),i("div",{class:"mrd-form__footer"},i("button",{type:"submit",class:"mrd-form__submit"},f("submit",this.locale)))))}static get watchers(){return{values:[{valuesChanged:0}]}}};x.style=".sc-mrd-form-h{display:block}.mrd-form.sc-mrd-form{font-family:var(--mrd-font-family);width:100%}.mrd-form__title.sc-mrd-form{font-size:var(--mrd-font-size-2xl);font-weight:var(--mrd-font-weight-bold);color:var(--mrd-color-neutral-900);margin:0 0 var(--mrd-space-6) 0}.mrd-form__body.sc-mrd-form{display:flex;flex-direction:column;gap:var(--mrd-space-5)}.mrd-form__field.sc-mrd-form{display:flex;flex-direction:column;gap:var(--mrd-space-1)}.mrd-form__field-error.sc-mrd-form{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}.mrd-form__section.sc-mrd-form{border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius-md);padding:var(--mrd-space-4) var(--mrd-space-5);margin:0}.mrd-form__section-legend.sc-mrd-form{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);font-weight:var(--mrd-font-weight-semibold);color:var(--mrd-color-neutral-700);padding:0 var(--mrd-space-2)}.mrd-form__section-body.sc-mrd-form{display:flex;flex-direction:column;gap:var(--mrd-space-4);margin-top:var(--mrd-space-2)}.mrd-form__group.sc-mrd-form{display:flex;flex-direction:column;gap:var(--mrd-space-2)}.mrd-form__group-label.sc-mrd-form{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-semibold);color:var(--mrd-color-neutral-500);text-transform:uppercase;letter-spacing:0.05em}.mrd-form__group-body.sc-mrd-form{display:flex;flex-direction:column;gap:var(--mrd-space-4);padding-left:var(--mrd-space-4);border-left:3px solid var(--mrd-color-neutral-200)}.mrd-form__footer.sc-mrd-form{margin-top:var(--mrd-space-8);padding-top:var(--mrd-space-5);border-top:var(--mrd-border-width) solid var(--mrd-border-color);display:flex;justify-content:flex-end}.mrd-form__submit.sc-mrd-form{display:inline-flex;align-items:center;justify-content:center;height:var(--mrd-input-height);padding:0 var(--mrd-space-6);background-color:var(--mrd-color-primary);color:var(--mrd-color-white);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);font-weight:var(--mrd-font-weight-medium);border:none;border-radius:var(--mrd-border-radius);cursor:pointer;transition:background-color var(--mrd-transition)}.mrd-form__submit.sc-mrd-form:hover{background-color:var(--mrd-color-primary-hover)}.mrd-form__submit.sc-mrd-form:focus{outline:none;box-shadow:var(--mrd-shadow-focus)}.mrd-form__submit.sc-mrd-form:active{background-color:var(--mrd-color-primary-dark)}";const w=class{constructor(i){r(this,i),this.mrdChange=e(this,"mrdChange"),this.mrdBlur=e(this,"mrdBlur"),this.name="",this.label="",this.value="",this.placeholder="",this.required=!1,this.disabled=!1,this.locale=navigator.language,this.error="",this.handleInput=r=>{this.mrdChange.emit({name:this.name,value:r.target.value})},this.handleBlur=r=>{const e=r.target.value;this.error=this.required&&!h(e)?f("required",this.locale):e&&!function(r){if(!r)return!0;try{return new URL(r),!0}catch(r){return!1}}(e)?f("invalid_url",this.locale):"",this.mrdBlur.emit({name:this.name,value:e})}}render(){const r=!!this.error;return i(d,{key:"4f642cb037c6e25786593dbf0cbead71ce34580c"},i("div",{key:"c679d95924bc2d22089c435ec15a35132a4a062d",class:"mrd-hyperlink-field"},this.label&&i("label",{key:"b391dd2d152c68fe75517926c40779313a23b9d9",class:"mrd-hyperlink-field__label"+(this.required?" mrd-hyperlink-field__label--required":"")},this.label),i("input",{key:"ea0d2aba8520ecbde4df8e4507e0f16bd497baa9",class:"mrd-hyperlink-field__input"+(r?" mrd-hyperlink-field__input--error":""),type:"url",name:this.name,value:this.value,placeholder:this.placeholder||"https://",required:this.required,disabled:this.disabled,onInput:this.handleInput,onBlur:this.handleBlur}),r&&i("span",{key:"fab1d90c726b69c6c43c7997fd1b7480678c2c78",class:"mrd-hyperlink-field__error"},this.error)))}};w.style=".sc-mrd-hyperlink-field-h{display:block}.mrd-hyperlink-field.sc-mrd-hyperlink-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%}.mrd-hyperlink-field__label.sc-mrd-hyperlink-field{display:block;font-family:var(--mrd-font-family);font-size:var(--mrd-label-font-size);font-weight:var(--mrd-label-font-weight);color:var(--mrd-label-color)}.mrd-hyperlink-field__label--required.sc-mrd-hyperlink-field::after{content:' *';color:var(--mrd-color-danger)}.mrd-hyperlink-field__input.sc-mrd-hyperlink-field{display:block;width:100%;height:var(--mrd-input-height);padding:var(--mrd-input-padding-y) var(--mrd-input-padding-x);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-input-color);background-color:var(--mrd-input-bg);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);transition:border-color var(--mrd-transition), box-shadow var(--mrd-transition);outline:none;appearance:none;box-sizing:border-box}.mrd-hyperlink-field__input.sc-mrd-hyperlink-field::placeholder{color:var(--mrd-input-placeholder-color)}.mrd-hyperlink-field__input.sc-mrd-hyperlink-field:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-hyperlink-field__input.sc-mrd-hyperlink-field:disabled{background-color:var(--mrd-input-bg-disabled);cursor:not-allowed;opacity:0.7}.mrd-hyperlink-field__input--error.sc-mrd-hyperlink-field{border-color:var(--mrd-border-color-error)}.mrd-hyperlink-field__input--error.sc-mrd-hyperlink-field:focus{box-shadow:var(--mrd-shadow-focus-error)}.mrd-hyperlink-field__error.sc-mrd-hyperlink-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}";const k=class{constructor(i){r(this,i),this.mrdChange=e(this,"mrdChange"),this.mrdBlur=e(this,"mrdBlur"),this.name="",this.label="",this.required=!1,this.disabled=!1,this.locale=navigator.language,this.accept="image/*",this.maxSize=0,this.previewUrl="",this.fileName="",this.isDragging=!1,this.error="",this.handleInputChange=r=>{var e;const i=r.target.files;this.handleFile(null!==(e=null==i?void 0:i[0])&&void 0!==e?e:null)},this.handleDragOver=r=>{r.preventDefault(),this.isDragging=!0},this.handleDragLeave=()=>{this.isDragging=!1},this.handleDrop=r=>{var e,i,d;r.preventDefault(),this.isDragging=!1;const o=null!==(d=null===(i=null===(e=r.dataTransfer)||void 0===e?void 0:e.files)||void 0===i?void 0:i[0])&&void 0!==d?d:null;this.handleFile(o)},this.handleZoneClick=()=>{var r;this.disabled||null===(r=this.fileInputRef)||void 0===r||r.click()},this.handleClear=r=>{r.stopPropagation(),this.previewUrl="",this.fileName="",this.error="",this.fileInputRef&&(this.fileInputRef.value=""),this.mrdChange.emit({name:this.name,value:null})}}handleFile(r){if(!r)return this.previewUrl="",this.fileName="",void this.mrdChange.emit({name:this.name,value:null});if(this.maxSize>0&&r.size>this.maxSize)return void(this.error=f("file_too_large",this.locale));if(!r.type.startsWith("image/"))return void(this.error="Please select an image file");this.error="",this.fileName=r.name;const e=new FileReader;e.onload=r=>{var e;this.previewUrl=null===(e=r.target)||void 0===e?void 0:e.result},e.readAsDataURL(r),this.mrdChange.emit({name:this.name,value:r})}render(){const r=!!this.error;return i(d,{key:"c188d49744b7044d46b6c6f42126032f1ecc8a8f"},i("div",{key:"53990650a5109172addca5ae274b180569b08860",class:"mrd-image-field"},this.label&&i("label",{key:"3dc78faca422fcafed31833a11307cace9f2ff13",class:"mrd-image-field__label"+(this.required?" mrd-image-field__label--required":"")},this.label),i("div",{key:"4ca9eb1362c999721742ac3d727326078fe844c7",class:`mrd-image-field__zone${this.isDragging?" mrd-image-field__zone--dragging":""}${r?" mrd-image-field__zone--error":""}${this.disabled?" mrd-image-field__zone--disabled":""}`,onClick:this.handleZoneClick,onDragOver:this.handleDragOver,onDragLeave:this.handleDragLeave,onDrop:this.handleDrop},i("input",{key:"9e3a237ffb69ce9f6fb20e6b3e603e4db453e7e9",ref:r=>this.fileInputRef=r,class:"mrd-image-field__input",type:"file",name:this.name,accept:this.accept,disabled:this.disabled,required:this.required&&!this.previewUrl,onChange:this.handleInputChange}),this.previewUrl?i("div",{class:"mrd-image-field__preview-container"},i("div",{class:"mrd-image-field__preview-thumb"},i("img",{class:"mrd-image-field__preview",src:this.previewUrl,alt:this.fileName})),i("div",{class:"mrd-image-field__preview-info"},i("span",{class:"mrd-image-field__preview-name"},this.fileName)),i("button",{class:"mrd-image-field__clear",type:"button",onClick:this.handleClear,"aria-label":f("clear",this.locale)},f("remove",this.locale))):i("div",{class:"mrd-image-field__prompt"},i("svg",{class:"mrd-image-field__upload-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},i("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),i("circle",{cx:"8.5",cy:"8.5",r:"1.5"}),i("polyline",{points:"21 15 16 10 5 21"})),i("span",null,f("drop_file_here",this.locale)," ",i("span",{class:"mrd-image-field__browse"},f("browse",this.locale))))),r&&i("span",{key:"85cf998e1ab26cce7fbf87836df25672971a4eb1",class:"mrd-image-field__error"},this.error)))}};k.style=".sc-mrd-image-field-h{display:block}.mrd-image-field.sc-mrd-image-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%}.mrd-image-field__label.sc-mrd-image-field{display:block;font-family:var(--mrd-font-family);font-size:var(--mrd-label-font-size);font-weight:var(--mrd-label-font-weight);color:var(--mrd-label-color)}.mrd-image-field__label--required.sc-mrd-image-field::after{content:' *';color:var(--mrd-color-danger)}.mrd-image-field__zone.sc-mrd-image-field{display:flex;align-items:center;justify-content:center;border:2px dashed var(--mrd-border-color);border-radius:var(--mrd-border-radius-md);background-color:var(--mrd-color-neutral-50);cursor:pointer;transition:border-color var(--mrd-transition), background-color var(--mrd-transition);min-height:100px;position:relative}.mrd-image-field__zone.sc-mrd-image-field:hover{border-color:var(--mrd-color-primary);background-color:var(--mrd-color-primary-light)}.mrd-image-field__zone--dragging.sc-mrd-image-field{border-color:var(--mrd-color-primary);background-color:var(--mrd-color-primary-light)}.mrd-image-field__zone--error.sc-mrd-image-field{border-color:var(--mrd-border-color-error)}.mrd-image-field__zone--disabled.sc-mrd-image-field{opacity:0.6;cursor:not-allowed}.mrd-image-field__zone--disabled.sc-mrd-image-field:hover{border-color:var(--mrd-border-color);background-color:var(--mrd-color-neutral-50)}.mrd-image-field__input.sc-mrd-image-field{position:absolute;inset:0;opacity:0;width:100%;height:100%;pointer-events:none}.mrd-image-field__prompt.sc-mrd-image-field{display:flex;flex-direction:column;align-items:center;gap:var(--mrd-space-2);padding:var(--mrd-space-6);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);color:var(--mrd-color-neutral-500);text-align:center}.mrd-image-field__upload-icon.sc-mrd-image-field{width:40px;height:40px;color:var(--mrd-color-neutral-400)}.mrd-image-field__browse.sc-mrd-image-field{color:var(--mrd-color-primary);font-weight:var(--mrd-font-weight-medium);text-decoration:underline}.mrd-image-field__preview-container.sc-mrd-image-field{display:flex;align-items:center;gap:var(--mrd-space-4);padding:var(--mrd-space-4);width:100%}.mrd-image-field__preview-thumb.sc-mrd-image-field{flex-shrink:0;width:80px;height:80px;border-radius:var(--mrd-border-radius);overflow:hidden;border:var(--mrd-border-width) solid var(--mrd-border-color);background-color:var(--mrd-color-neutral-100)}.mrd-image-field__preview.sc-mrd-image-field{width:100%;height:100%;object-fit:cover;display:block}.mrd-image-field__preview-info.sc-mrd-image-field{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--mrd-space-1)}.mrd-image-field__preview-name.sc-mrd-image-field{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-medium);color:var(--mrd-color-neutral-800);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mrd-image-field__overlay.sc-mrd-image-field{display:none}.mrd-image-field__clear.sc-mrd-image-field{flex-shrink:0;background-color:var(--mrd-color-white);color:var(--mrd-color-danger);border:var(--mrd-border-width) solid var(--mrd-color-danger);border-radius:var(--mrd-border-radius);padding:var(--mrd-space-1) var(--mrd-space-3);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-medium);cursor:pointer;transition:background-color var(--mrd-transition), color var(--mrd-transition)}.mrd-image-field__clear.sc-mrd-image-field:hover{background-color:var(--mrd-color-danger);color:var(--mrd-color-white)}.mrd-image-field__error.sc-mrd-image-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}";const z=class{constructor(i){r(this,i),this.mrdChange=e(this,"mrdChange"),this.mrdBlur=e(this,"mrdBlur"),this.name="",this.label="",this.value="",this.required=!1,this.disabled=!1,this.multiple=!1,this.locale=navigator.language,this.listItems=[],this.error="",this.selected=[],this.handleSelectChange=r=>{const e=r.target;if(this.multiple){const r=Array.from(e.selectedOptions).map((r=>r.value));this.selected=r,this.error=this.required&&!h(r)?f("required",this.locale):"",this.mrdChange.emit({name:this.name,value:r})}else{const r=e.value;this.error=this.required&&!h(r)?f("required",this.locale):"",this.mrdChange.emit({name:this.name,value:r})}},this.handleBlur=()=>{this.mrdBlur.emit({name:this.name,value:this.multiple?this.selected:this.value})},this.toggleCheckbox=r=>{this.selected=this.selected.includes(r)?this.selected.filter((e=>e!==r)):[...this.selected,r],this.error=this.required&&!h(this.selected)?f("required",this.locale):"",this.mrdChange.emit({name:this.name,value:this.selected})}}componentWillLoad(){this.multiple&&(this.selected=Array.isArray(this.value)?this.value:this.value?[this.value]:[])}getContrastColor(r){if(!r)return"#000000";const e=r.replace("#","");return(.299*parseInt(e.substr(0,2),16)+.587*parseInt(e.substr(2,2),16)+.114*parseInt(e.substr(4,2),16))/255>.5?"#000000":"#ffffff"}render(){var r,e;const o=!!this.error,l=Array.isArray(this.value)?null!==(r=this.value[0])&&void 0!==r?r:"":null!==(e=this.value)&&void 0!==e?e:"";return i(d,null,i("div",{class:"mrd-list-field"},this.label&&i("label",{class:"mrd-list-field__label"+(this.required?" mrd-list-field__label--required":"")},this.label),this.multiple?i("div",{class:"mrd-list-field__checkbox-list"+(o?" mrd-list-field__checkbox-list--error":"")},this.listItems.map((r=>{var e,d;return i("label",{key:r.key,class:"mrd-list-field__checkbox-item"},i("input",{type:"checkbox",checked:this.selected.includes(r.key),disabled:this.disabled,onChange:()=>this.toggleCheckbox(r.key)}),(r.color||r.backgroundColor)&&i("span",{class:"mrd-list-field__color-dot",style:{backgroundColor:null!==(d=null!==(e=r.backgroundColor)&&void 0!==e?e:r.color)&&void 0!==d?d:""}}),i("span",null,r.label))}))):i("select",{class:"mrd-list-field__select"+(o?" mrd-list-field__select--error":""),name:this.name,required:this.required,disabled:this.disabled,onChange:this.handleSelectChange,onBlur:this.handleBlur},i("option",{value:""},f("select_placeholder",this.locale)),this.listItems.map((r=>{var e,d;const o=null!==(d=null!==(e=r.backgroundColor)&&void 0!==e?e:r.color)&&void 0!==d?d:null,t=o?{backgroundColor:o,color:this.getContrastColor(o)}:{};return i("option",{key:r.key,value:r.key,selected:r.key===l,style:t},r.label)}))),o&&i("span",{class:"mrd-list-field__error"},this.error)))}};z.style=".sc-mrd-list-field-h{display:block}.mrd-list-field.sc-mrd-list-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%}.mrd-list-field__label.sc-mrd-list-field{display:block;font-family:var(--mrd-font-family);font-size:var(--mrd-label-font-size);font-weight:var(--mrd-label-font-weight);color:var(--mrd-label-color)}.mrd-list-field__label--required.sc-mrd-list-field::after{content:' *';color:var(--mrd-color-danger)}.mrd-list-field__select.sc-mrd-list-field{display:block;width:100%;height:var(--mrd-input-height);padding:var(--mrd-input-padding-y) var(--mrd-input-padding-x);padding-right:calc(var(--mrd-input-padding-x) + 1.5rem);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-input-color);background-color:var(--mrd-input-bg);background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right var(--mrd-space-3) center;border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);transition:border-color var(--mrd-transition), box-shadow var(--mrd-transition);outline:none;appearance:none;cursor:pointer;box-sizing:border-box}.mrd-list-field__select.sc-mrd-list-field:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-list-field__select.sc-mrd-list-field:disabled{background-color:var(--mrd-input-bg-disabled);cursor:not-allowed;opacity:0.7}.mrd-list-field__select--error.sc-mrd-list-field{border-color:var(--mrd-border-color-error)}.mrd-list-field__select--error.sc-mrd-list-field:focus{box-shadow:var(--mrd-shadow-focus-error)}.mrd-list-field__checkbox-list.sc-mrd-list-field{display:flex;flex-direction:column;gap:var(--mrd-space-2);padding:var(--mrd-space-3);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);background-color:var(--mrd-input-bg)}.mrd-list-field__checkbox-list--error.sc-mrd-list-field{border-color:var(--mrd-border-color-error)}.mrd-list-field__checkbox-item.sc-mrd-list-field{display:flex;align-items:center;gap:var(--mrd-space-2);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-input-color);cursor:pointer}.mrd-list-field__checkbox-item.sc-mrd-list-field input[type='checkbox'].sc-mrd-list-field{width:1rem;height:1rem;cursor:pointer;accent-color:var(--mrd-color-primary)}.mrd-list-field__color-dot.sc-mrd-list-field{display:inline-block;width:12px;height:12px;border-radius:50%;flex-shrink:0}.mrd-list-field__error.sc-mrd-list-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}";const q=class{constructor(i){r(this,i),this.mrdChange=e(this,"mrdChange"),this.mrdBlur=e(this,"mrdBlur"),this.name="",this.label="",this.value=null,this.placeholder="",this.required=!1,this.disabled=!1,this.locale=navigator.language,this.dataType=l.INTEGER,this.decimalPrecision=2,this.displayValue="",this.error="",this.handleInput=r=>{this.displayValue=r.target.value},this.handleBlur=r=>{const e=r.target.value,i=s(e,this.locale);this.error=!this.required||null!==i&&""!==e?""===e||function(r,e){if(null==r||""===r)return!0;const i=Number(r);return!isNaN(i)&&(e===l.INTEGER?Number.isInteger(i):e!==l.PERCENTAGE||i>=0&&i<=100)}(i,this.dataType)?"":f("invalid_number",this.locale):f("required",this.locale),null!==i&&h(e)&&(this.displayValue=this.formatForDisplay(i)),this.mrdChange.emit({name:this.name,value:i}),this.mrdBlur.emit({name:this.name,value:i})},this.handleFocus=()=>{if(null!=this.value){const r=String(this.value);this.displayValue=r}}}componentWillLoad(){null!=this.value&&(this.displayValue=this.formatForDisplay(this.value))}formatForDisplay(r){return this.dataType===l.PERCENTAGE?n(r,this.locale,{minimumFractionDigits:0,maximumFractionDigits:this.decimalPrecision})+"%":n(r,this.locale,this.dataType===l.DECIMAL?{minimumFractionDigits:this.decimalPrecision,maximumFractionDigits:this.decimalPrecision}:{maximumFractionDigits:0})}render(){const r=!!this.error,e=this.dataType===l.PERCENTAGE?"%":"";return i(d,{key:"68d81012d9180dde4160a507121b83f04698834a"},i("div",{key:"b8e46f6d23527b2c95ad2738fc63a07adfce4fda",class:"mrd-number-field"},this.label&&i("label",{key:"c3271c7a8adfd8bcb3b4f51e580239f928a354a5",class:"mrd-number-field__label"+(this.required?" mrd-number-field__label--required":"")},this.label),i("div",{key:"c46b69affd1e22c539511f6743b6d23fe73fb079",class:"mrd-number-field__input-wrapper"},i("input",{key:"e68188829c2e03c947c5605332a2681de550a0d5",class:"mrd-number-field__input"+(r?" mrd-number-field__input--error":""),type:"text",inputMode:"decimal",name:this.name,value:this.displayValue,placeholder:this.placeholder||(e?`0${e}`:"0"),required:this.required,disabled:this.disabled,onInput:this.handleInput,onBlur:this.handleBlur,onFocus:this.handleFocus})),r&&i("span",{key:"bdc2723e2547517765bd64ad70c5103c7a2b363c",class:"mrd-number-field__error"},this.error)))}};q.style=".sc-mrd-number-field-h{display:block}.mrd-number-field.sc-mrd-number-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%}.mrd-number-field__label.sc-mrd-number-field{display:block;font-family:var(--mrd-font-family);font-size:var(--mrd-label-font-size);font-weight:var(--mrd-label-font-weight);color:var(--mrd-label-color)}.mrd-number-field__label--required.sc-mrd-number-field::after{content:' *';color:var(--mrd-color-danger)}.mrd-number-field__input-wrapper.sc-mrd-number-field{position:relative;display:flex;align-items:center}.mrd-number-field__input.sc-mrd-number-field{display:block;width:100%;height:var(--mrd-input-height);padding:var(--mrd-input-padding-y) var(--mrd-input-padding-x);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-input-color);background-color:var(--mrd-input-bg);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);transition:border-color var(--mrd-transition), box-shadow var(--mrd-transition);outline:none;appearance:none;box-sizing:border-box;text-align:right}.mrd-number-field__input.sc-mrd-number-field::placeholder{color:var(--mrd-input-placeholder-color);text-align:left}.mrd-number-field__input.sc-mrd-number-field:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-number-field__input.sc-mrd-number-field:disabled{background-color:var(--mrd-input-bg-disabled);cursor:not-allowed;opacity:0.7}.mrd-number-field__input--error.sc-mrd-number-field{border-color:var(--mrd-border-color-error)}.mrd-number-field__input--error.sc-mrd-number-field:focus{box-shadow:var(--mrd-shadow-focus-error)}.mrd-number-field__error.sc-mrd-number-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}";const C=class{constructor(i){r(this,i),this.mrdChange=e(this,"mrdChange"),this.mrdBlur=e(this,"mrdBlur"),this.mrdSearch=e(this,"mrdSearch"),this.name="",this.label="",this.required=!1,this.disabled=!1,this.locale=navigator.language,this.relatedClass="",this.displayType=a.SEARCH,this.multiple=!1,this.dropdownValues=[],this.value=null,this.searchQuery="",this.searchResults=[],this.isLoading=!1,this.selectedItems=[],this.showResults=!1,this.error="",this.highlightedIndex=-1,this.searchDebounce=null,this.handleKeyDown=r=>{this.showResults&&0!==this.searchResults.length?"ArrowDown"===r.key?(r.preventDefault(),this.highlightedIndex=Math.min(this.highlightedIndex+1,this.searchResults.length-1)):"ArrowUp"===r.key?(r.preventDefault(),this.highlightedIndex=Math.max(this.highlightedIndex-1,0)):"Enter"===r.key?(r.preventDefault(),this.highlightedIndex>=0&&this.handleResultSelect(this.searchResults[this.highlightedIndex])):"Escape"===r.key&&(this.showResults=!1,this.highlightedIndex=-1):"Escape"===r.key&&(this.showResults=!1,this.highlightedIndex=-1)},this.clearSelection=()=>{this.selectedItems=[],this.searchQuery="",this.searchResults=[],this.showResults=!1,this.highlightedIndex=-1,this.mrdChange.emit({name:this.name,value:this.multiple?[]:null})},this.handleSearchInput=r=>{const e=r.target.value;this.searchQuery=e,this.searchDebounce&&clearTimeout(this.searchDebounce),e.trim().length>=2?(this.isLoading=!0,this.showResults=!0,this.searchDebounce=setTimeout((()=>{this.mrdSearch.emit({query:e,relatedClass:this.relatedClass})}),300)):(this.searchResults=[],this.showResults=!1,this.isLoading=!1)},this.handleResultSelect=r=>{if(this.multiple){this.selectedItems.find((e=>e.id===r.id))||(this.selectedItems=[...this.selectedItems,r]),this.searchQuery="",this.searchResults=[],this.showResults=!1;const e=this.selectedItems.map((r=>r.id));this.mrdChange.emit({name:this.name,value:e})}else this.selectedItems=[r],this.searchQuery=r.label,this.showResults=!1,this.mrdChange.emit({name:this.name,value:r.id});this.error=this.required&&!h(this.selectedItems)?f("required",this.locale):""},this.handleRemoveSelected=r=>{this.selectedItems=this.selectedItems.filter((e=>e.id!==r));const e=this.selectedItems.map((r=>r.id));this.mrdChange.emit({name:this.name,value:this.multiple?e:null})},this.handleDropdownChange=r=>{const e=r.target.value;this.error=this.required&&!h(e)?f("required",this.locale):"",this.mrdChange.emit({name:this.name,value:e})},this.handleBlur=()=>{var r,e;setTimeout((()=>{this.showResults=!1,this.highlightedIndex=-1}),200);const i=this.multiple?this.selectedItems.map((r=>r.id)):null!==(e=null===(r=this.selectedItems[0])||void 0===r?void 0:r.id)&&void 0!==e?e:null;this.mrdBlur.emit({name:this.name,value:i})}}async setSearchResults(r){this.searchResults=r,this.isLoading=!1,this.showResults=!0,this.highlightedIndex=-1}async setLoading(r){this.isLoading=r}componentWillLoad(){var r;this.value&&(Array.isArray(this.value)?this.value.length>0&&"object"==typeof this.value[0]&&(this.selectedItems=this.value,this.searchQuery=""):"object"==typeof this.value&&(this.selectedItems=[this.value],this.searchQuery=null!==(r=this.value.label)&&void 0!==r?r:""))}render(){var r,e;const o=!!this.error;if(this.displayType===a.DROPDOWN){const l=Array.isArray(this.value)?null!==(r=this.value[0])&&void 0!==r?r:"":null!==(e=this.value)&&void 0!==e?e:"";return i(d,null,i("div",{class:"mrd-relation-field"},this.label&&i("label",{class:"mrd-relation-field__label"+(this.required?" mrd-relation-field__label--required":"")},this.label),i("select",{class:"mrd-relation-field__select"+(o?" mrd-relation-field__select--error":""),name:this.name,required:this.required,disabled:this.disabled,onChange:this.handleDropdownChange},i("option",{value:""},f("select_placeholder",this.locale)),this.dropdownValues.map((r=>i("option",{key:r.key,value:r.key,selected:r.key===l},r.label)))),o&&i("span",{class:"mrd-relation-field__error"},this.error)))}const l=this.label&&i("label",{class:"mrd-relation-field__label"+(this.required?" mrd-relation-field__label--required":"")},this.label);return i(d,null,!this.multiple&&this.selectedItems.length>0?i("div",{class:"mrd-relation-field"},l,i("div",{class:"mrd-relation-field__selected-value"+(o?" mrd-relation-field__selected-value--error":"")},i("span",{class:"mrd-relation-field__selected-name"},this.selectedItems[0].label),i("button",{type:"button",class:"mrd-relation-field__selected-clear",onClick:this.clearSelection,"aria-label":f("remove",this.locale)},"✕")),o&&i("span",{class:"mrd-relation-field__error"},this.error)):i("div",{class:"mrd-relation-field"},l,this.multiple&&this.selectedItems.length>0&&i("div",{class:"mrd-relation-field__tags"},this.selectedItems.map((r=>i("span",{key:r.id,class:"mrd-relation-field__tag"},r.label,i("button",{type:"button",class:"mrd-relation-field__tag-remove",onClick:()=>this.handleRemoveSelected(r.id),"aria-label":f("remove",this.locale)},"✕"))))),i("div",{class:"mrd-relation-field__search-wrapper"},i("input",{class:"mrd-relation-field__search"+(o?" mrd-relation-field__search--error":""),type:"text",value:this.searchQuery,placeholder:f("search_placeholder",this.locale),disabled:this.disabled,onInput:this.handleSearchInput,onKeyDown:this.handleKeyDown,onBlur:this.handleBlur}),this.isLoading&&i("span",{class:"mrd-relation-field__spinner","aria-label":f("loading",this.locale)})),this.showResults&&i("div",{class:"mrd-relation-field__results"},0!==this.searchResults.length||this.isLoading?this.searchResults.map(((r,e)=>i("div",{key:r.id,class:"mrd-relation-field__result-item"+(e===this.highlightedIndex?" mrd-relation-field__result-item--highlighted":""),onMouseDown:()=>this.handleResultSelect(r)},i("span",{class:"mrd-relation-field__result-label"},r.label),r.description&&i("span",{class:"mrd-relation-field__result-desc"},r.description)))):i("div",{class:"mrd-relation-field__no-results"},f("no_results",this.locale))),o&&i("span",{class:"mrd-relation-field__error"},this.error)))}};C.style=".sc-mrd-relation-field-h{display:block}.mrd-relation-field.sc-mrd-relation-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%;position:relative}.mrd-relation-field__label.sc-mrd-relation-field{display:block;font-family:var(--mrd-font-family);font-size:var(--mrd-label-font-size);font-weight:var(--mrd-label-font-weight);color:var(--mrd-label-color)}.mrd-relation-field__label--required.sc-mrd-relation-field::after{content:' *';color:var(--mrd-color-danger)}.mrd-relation-field__select.sc-mrd-relation-field{display:block;width:100%;height:var(--mrd-input-height);padding:var(--mrd-input-padding-y) var(--mrd-input-padding-x);padding-right:calc(var(--mrd-input-padding-x) + 1.5rem);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-input-color);background-color:var(--mrd-input-bg);background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right var(--mrd-space-3) center;border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);outline:none;appearance:none;cursor:pointer;box-sizing:border-box}.mrd-relation-field__select.sc-mrd-relation-field:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-relation-field__select.sc-mrd-relation-field:disabled{background-color:var(--mrd-input-bg-disabled);cursor:not-allowed;opacity:0.7}.mrd-relation-field__select--error.sc-mrd-relation-field{border-color:var(--mrd-border-color-error)}.mrd-relation-field__select--error.sc-mrd-relation-field:focus{box-shadow:var(--mrd-shadow-focus-error)}.mrd-relation-field__tags.sc-mrd-relation-field{display:flex;flex-wrap:wrap;gap:var(--mrd-space-1);margin-bottom:var(--mrd-space-1)}.mrd-relation-field__tag.sc-mrd-relation-field{display:inline-flex;align-items:center;gap:var(--mrd-space-1);padding:var(--mrd-space-1) var(--mrd-space-2);background-color:var(--mrd-color-primary-light);color:var(--mrd-color-primary-dark);border-radius:var(--mrd-border-radius-full);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-medium)}.mrd-relation-field__tag-remove.sc-mrd-relation-field{background:none;border:none;cursor:pointer;color:var(--mrd-color-primary-dark);font-size:var(--mrd-font-size-xs);padding:0;line-height:1;opacity:0.7}.mrd-relation-field__tag-remove.sc-mrd-relation-field:hover{opacity:1}.mrd-relation-field__search-wrapper.sc-mrd-relation-field{position:relative;display:flex;align-items:center}.mrd-relation-field__search.sc-mrd-relation-field{display:block;width:100%;height:var(--mrd-input-height);padding:var(--mrd-input-padding-y) var(--mrd-input-padding-x);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-input-color);background-color:var(--mrd-input-bg);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);outline:none;appearance:none;box-sizing:border-box}.mrd-relation-field__search.sc-mrd-relation-field::placeholder{color:var(--mrd-input-placeholder-color)}.mrd-relation-field__search.sc-mrd-relation-field:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-relation-field__search.sc-mrd-relation-field:disabled{background-color:var(--mrd-input-bg-disabled);cursor:not-allowed;opacity:0.7}.mrd-relation-field__search--error.sc-mrd-relation-field{border-color:var(--mrd-border-color-error)}.mrd-relation-field__search--error.sc-mrd-relation-field:focus{box-shadow:var(--mrd-shadow-focus-error)}.mrd-relation-field__spinner.sc-mrd-relation-field{position:absolute;right:var(--mrd-space-3);width:16px;height:16px;border:2px solid var(--mrd-color-neutral-200);border-top-color:var(--mrd-color-primary);border-radius:50%;animation:mrd-spin 0.7s linear infinite}@keyframes mrd-spin{to{transform:rotate(360deg)}}.mrd-relation-field__results.sc-mrd-relation-field{position:absolute;top:calc(100% + var(--mrd-space-1));left:0;right:0;background-color:var(--mrd-color-white);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);box-shadow:var(--mrd-shadow-md);z-index:var(--mrd-z-dropdown);max-height:240px;overflow-y:auto}.mrd-relation-field__result-item.sc-mrd-relation-field{display:flex;flex-direction:column;padding:var(--mrd-space-2) var(--mrd-space-3);cursor:pointer;transition:background-color var(--mrd-transition-fast)}.mrd-relation-field__result-item.sc-mrd-relation-field:hover{background-color:var(--mrd-color-neutral-50)}.mrd-relation-field__result-item.sc-mrd-relation-field:not(:last-child){border-bottom:var(--mrd-border-width) solid var(--mrd-color-neutral-100)}.mrd-relation-field__result-label.sc-mrd-relation-field{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-color-neutral-800);font-weight:var(--mrd-font-weight-medium)}.mrd-relation-field__result-desc.sc-mrd-relation-field{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-xs);color:var(--mrd-color-neutral-500);margin-top:var(--mrd-space-1)}.mrd-relation-field__result-item--highlighted.sc-mrd-relation-field{background-color:var(--mrd-color-primary-light)}.mrd-relation-field__selected-value.sc-mrd-relation-field{display:flex;align-items:center;gap:var(--mrd-space-2);height:var(--mrd-input-height);padding:var(--mrd-input-padding-y) var(--mrd-input-padding-x);background-color:var(--mrd-color-primary-light);border:var(--mrd-border-width) solid var(--mrd-color-primary);border-radius:var(--mrd-border-radius);box-sizing:border-box}.mrd-relation-field__selected-value--error.sc-mrd-relation-field{border-color:var(--mrd-border-color-error);background-color:var(--mrd-color-danger-light)}.mrd-relation-field__selected-name.sc-mrd-relation-field{flex:1;font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);font-weight:var(--mrd-font-weight-medium);color:var(--mrd-color-primary-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mrd-relation-field__selected-clear.sc-mrd-relation-field{flex-shrink:0;background:none;border:none;cursor:pointer;color:var(--mrd-color-primary-dark);font-size:var(--mrd-font-size-sm);padding:0;line-height:1;opacity:0.6;transition:opacity var(--mrd-transition-fast)}.mrd-relation-field__selected-clear.sc-mrd-relation-field:hover{opacity:1}.mrd-relation-field__no-results.sc-mrd-relation-field{padding:var(--mrd-space-4);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);color:var(--mrd-color-neutral-500);text-align:center}.mrd-relation-field__error.sc-mrd-relation-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}";const B=class{constructor(i){r(this,i),this.mrdChange=e(this,"mrdChange"),this.mrdBlur=e(this,"mrdBlur"),this.name="",this.label="",this.value="",this.placeholder="",this.required=!1,this.disabled=!1,this.locale=navigator.language,this.error="",this.handleInput=r=>{this.mrdChange.emit({name:this.name,value:r.target.value})},this.handleBlur=r=>{const e=r.target.value;this.error=this.required&&!h(e)?f("required",this.locale):"",this.mrdBlur.emit({name:this.name,value:e})}}render(){const r=!!this.error;return i(d,{key:"4ddbcb2f8915235631c6f66449b28e664c24c0a4"},i("div",{key:"91dbb52ed715c92d4ef2bc0924fd378d0dc839a8",class:"mrd-text-field"},this.label&&i("label",{key:"cf3278503107d313c08034273916a4b84a16febd",class:"mrd-text-field__label"+(this.required?" mrd-text-field__label--required":"")},this.label),i("input",{key:"9ab992213bfaa372e453331e1b1e12a853c3ae6e",class:"mrd-text-field__input"+(r?" mrd-text-field__input--error":""),type:"text",name:this.name,value:this.value,placeholder:this.placeholder,required:this.required,disabled:this.disabled,onInput:this.handleInput,onBlur:this.handleBlur}),r&&i("span",{key:"a4ff2fdd2490f644eb97f66f15edc5af0b22e823",class:"mrd-text-field__error"},this.error)))}};B.style=".sc-mrd-text-field-h{display:block}.mrd-text-field.sc-mrd-text-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%}.mrd-text-field__label.sc-mrd-text-field{display:block;font-family:var(--mrd-font-family);font-size:var(--mrd-label-font-size);font-weight:var(--mrd-label-font-weight);color:var(--mrd-label-color)}.mrd-text-field__label--required.sc-mrd-text-field::after{content:' *';color:var(--mrd-color-danger)}.mrd-text-field__input.sc-mrd-text-field{display:block;width:100%;height:var(--mrd-input-height);padding:var(--mrd-input-padding-y) var(--mrd-input-padding-x);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-input-color);background-color:var(--mrd-input-bg);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);transition:border-color var(--mrd-transition), box-shadow var(--mrd-transition);outline:none;appearance:none;box-sizing:border-box}.mrd-text-field__input.sc-mrd-text-field::placeholder{color:var(--mrd-input-placeholder-color)}.mrd-text-field__input.sc-mrd-text-field:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-text-field__input.sc-mrd-text-field:disabled{background-color:var(--mrd-input-bg-disabled);cursor:not-allowed;opacity:0.7}.mrd-text-field__input--error.sc-mrd-text-field{border-color:var(--mrd-border-color-error)}.mrd-text-field__input--error.sc-mrd-text-field:focus{box-shadow:var(--mrd-shadow-focus-error)}.mrd-text-field__error.sc-mrd-text-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}";const j=class{constructor(i){r(this,i),this.mrdChange=e(this,"mrdChange"),this.mrdBlur=e(this,"mrdBlur"),this.name="",this.label="",this.value="",this.placeholder="",this.required=!1,this.disabled=!1,this.locale=navigator.language,this.error="",this.editorReady=!1}componentDidLoad(){this.initQuill()}async initQuill(){try{const r=(await import("./p-CiuCgGz_.js")).default;if(this.editorEl=this.el.querySelector(".mrd-textarea-field__editor"),!this.editorEl)return;const e=new r(this.editorEl,{theme:"snow",placeholder:this.placeholder,readOnly:this.disabled,modules:{toolbar:[["bold","italic","underline","strike"],[{list:"ordered"},{list:"bullet"}],[{header:[1,2,3,!1]}],["link"],["clean"]]}});this.value&&e.clipboard.dangerouslyPasteHTML(this.value),e.on("text-change",(()=>{var r,e;const i=null!==(e=null===(r=this.editorEl.querySelector(".ql-editor"))||void 0===r?void 0:r.innerHTML)&&void 0!==e?e:"";this.mrdChange.emit({name:this.name,value:i})})),e.on("selection-change",(r=>{var e,i;if(!r){const r=null!==(i=null===(e=this.editorEl.querySelector(".ql-editor"))||void 0===e?void 0:e.innerHTML)&&void 0!==i?i:"";this.error=this.required&&!h(r)?f("required",this.locale):"",this.mrdBlur.emit({name:this.name,value:r})}})),this.editorReady=!0}catch(r){console.error("Failed to load Quill editor:",r)}}render(){return i(d,{key:"8f7544745341ea2eca4450296db53ed8b41af0e2"},i("div",{key:"62937448dd685071e0500b8f7f53fe22b10ffa15",class:"mrd-textarea-field"},this.label&&i("label",{key:"4a7d807d78c2a9abeaf3ff94ee5e71b167475e25",class:"mrd-textarea-field__label"+(this.required?" mrd-textarea-field__label--required":"")},this.label),i("div",{key:"599e28a45b1c161d7cfec3de138e386bf997f9b9",class:"mrd-textarea-field__container"+(this.error?" mrd-textarea-field__container--error":"")},i("div",{key:"5824a225fa6ea29bf02dfd8e4b27a71e853f059e",class:"mrd-textarea-field__editor"})),this.error&&i("span",{key:"1c7693269df8f3fe112a6df419e6cbace75bdaa9",class:"mrd-textarea-field__error"},this.error)))}get el(){return o(this)}};j.style=".sc-mrd-textarea-field-h{display:block}.mrd-textarea-field.sc-mrd-textarea-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%}.mrd-textarea-field__label.sc-mrd-textarea-field{display:block;font-family:var(--mrd-font-family);font-size:var(--mrd-label-font-size);font-weight:var(--mrd-label-font-weight);color:var(--mrd-label-color)}.mrd-textarea-field__label--required.sc-mrd-textarea-field::after{content:' *';color:var(--mrd-color-danger)}.mrd-textarea-field__container.sc-mrd-textarea-field{border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);overflow:hidden;background-color:var(--mrd-input-bg);transition:border-color var(--mrd-transition), box-shadow var(--mrd-transition)}.mrd-textarea-field__container.sc-mrd-textarea-field:focus-within{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-textarea-field__container--error.sc-mrd-textarea-field{border-color:var(--mrd-border-color-error)}.mrd-textarea-field__container--error.sc-mrd-textarea-field:focus-within{box-shadow:var(--mrd-shadow-focus-error)}.mrd-textarea-field__editor.sc-mrd-textarea-field{min-height:150px;font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base)}.mrd-textarea-field__editor.sc-mrd-textarea-field .ql-toolbar.sc-mrd-textarea-field{border:none;border-bottom:var(--mrd-border-width) solid var(--mrd-border-color);font-family:var(--mrd-font-family)}.mrd-textarea-field__editor.sc-mrd-textarea-field .ql-container.sc-mrd-textarea-field{border:none;font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base)}.mrd-textarea-field__editor.sc-mrd-textarea-field .ql-editor.sc-mrd-textarea-field{min-height:120px;padding:var(--mrd-input-padding-y) var(--mrd-input-padding-x)}.mrd-textarea-field__editor.sc-mrd-textarea-field .ql-editor.ql-blank.sc-mrd-textarea-field::before{color:var(--mrd-input-placeholder-color);font-style:normal}.mrd-textarea-field__error.sc-mrd-textarea-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}";const O=class{constructor(i){r(this,i),this.mrdChange=e(this,"mrdChange"),this.mrdBlur=e(this,"mrdBlur"),this.name="",this.label="",this.value="",this.required=!1,this.disabled=!1,this.locale=navigator.language,this.error="",this.handleChange=r=>{const e=r.target.value;this.error=this.required&&!h(e)?f("required",this.locale):"",this.mrdChange.emit({name:this.name,value:e})},this.handleBlur=r=>{this.mrdBlur.emit({name:this.name,value:r.target.value})}}render(){const r=!!this.error;return i(d,{key:"0a6e3047eb409b50a7dfa46c724e0d9824bdbad9"},i("div",{key:"1fdcaa9cc0e44edd514d3453df0cfb264989cbca",class:"mrd-time-field"},this.label&&i("label",{key:"ae53864761258ae56e29474c2da68c852fe8db57",class:"mrd-time-field__label"+(this.required?" mrd-time-field__label--required":"")},this.label),i("input",{key:"60336f497545b61656756790cfb5ec096034ecf7",class:"mrd-time-field__input"+(r?" mrd-time-field__input--error":""),type:"time",name:this.name,value:this.value,required:this.required,disabled:this.disabled,onChange:this.handleChange,onBlur:this.handleBlur}),r&&i("span",{key:"f8409b690c67873f6e4fe10f1d404b57005f0557",class:"mrd-time-field__error"},this.error)))}};O.style=".sc-mrd-time-field-h{display:block}.mrd-time-field.sc-mrd-time-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%}.mrd-time-field__label.sc-mrd-time-field{display:block;font-family:var(--mrd-font-family);font-size:var(--mrd-label-font-size);font-weight:var(--mrd-label-font-weight);color:var(--mrd-label-color)}.mrd-time-field__label--required.sc-mrd-time-field::after{content:' *';color:var(--mrd-color-danger)}.mrd-time-field__input.sc-mrd-time-field{display:block;width:100%;height:var(--mrd-input-height);padding:var(--mrd-input-padding-y) var(--mrd-input-padding-x);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-input-color);background-color:var(--mrd-input-bg);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);transition:border-color var(--mrd-transition), box-shadow var(--mrd-transition);outline:none;appearance:none;box-sizing:border-box;cursor:pointer}.mrd-time-field__input.sc-mrd-time-field:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-time-field__input.sc-mrd-time-field:disabled{background-color:var(--mrd-input-bg-disabled);cursor:not-allowed;opacity:0.7}.mrd-time-field__input--error.sc-mrd-time-field{border-color:var(--mrd-border-color-error)}.mrd-time-field__input--error.sc-mrd-time-field:focus{box-shadow:var(--mrd-shadow-focus-error)}.mrd-time-field__error.sc-mrd-time-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}";export{m as mrd_boolean_field,b as mrd_currency_field,v as mrd_date_field,p as mrd_datetime_field,_ as mrd_email_field,g as mrd_field,y as mrd_file_field,x as mrd_form,w as mrd_hyperlink_field,k as mrd_image_field,z as mrd_list_field,q as mrd_number_field,C as mrd_relation_field,B as mrd_text_field,j as mrd_textarea_field,O as mrd_time_field}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function t(t,e,n){const l="undefined"!=typeof HTMLElement?HTMLElement.prototype:null;for(;t&&t!==l;){const l=Object.getOwnPropertyDescriptor(t,e);if(l&&(!n||l.get))return l;t=Object.getPrototypeOf(t)}}var e=(e,n)=>{var l;Object.entries(null!=(l=n.l.t)?l:{}).map((([l,[o]])=>{if(31&o||32&o){const o=e[l],s=t(Object.getPrototypeOf(e),l,!0)||Object.getOwnPropertyDescriptor(e,l);s&&Object.defineProperty(e,l,{get(){return s.get.call(this)},set(t){s.set.call(this,t)},configurable:!0,enumerable:!0}),n.o.has(l)?e[l]=n.o.get(l):void 0!==o&&(e[l]=o)}}))},n=t=>{if(t.__stencil__getHostRef)return t.__stencil__getHostRef()},l=(t,n)=>{n&&(t.__stencil__getHostRef=()=>n,n.i=t,512&n.l.u&&e(t,n))},o=(t,e)=>e in t,s=(t,e)=>(0,console.error)(t,e),i=new Map,r=new Map,c="http://www.w3.org/1999/xlink",u="undefined"!=typeof window?window:{},a={u:0,p:"",jmp:t=>t(),raf:t=>requestAnimationFrame(t),ael:(t,e,n,l)=>t.addEventListener(e,n,l),rel:(t,e,n,l)=>t.removeEventListener(e,n,l),ce:(t,e)=>new CustomEvent(t,e)},f=t=>Promise.resolve(t),d=(()=>{try{return!!u.document.adoptedStyleSheets&&(new CSSStyleSheet,"function"==typeof(new CSSStyleSheet).replaceSync)}catch(t){}return!1})(),p=!!d&&(()=>!!u.document&&Object.getOwnPropertyDescriptor(u.document.adoptedStyleSheets,"length").writable)(),h=!1,m=[],v=[],b=(t,e)=>n=>{t.push(n),h||(h=!0,e&&4&a.u?$(w):a.raf(w))},y=t=>{for(let e=0;e<t.length;e++)try{t[e](performance.now())}catch(t){s(t)}t.length=0},w=()=>{y(m),y(v),(h=m.length>0)&&a.raf(w)},$=t=>f().then(t),g=b(v,!0);function j(t){var e,n,l;return null!=(l=null==(n=null==(e=t.head)?void 0:e.querySelector('meta[name="csp-nonce"]'))?void 0:n.getAttribute("content"))?l:void 0}var O,S,k=new WeakMap,E=t=>"sc-"+t.h,M=t=>"object"==(t=typeof t)||"function"===t,C=(t,e,...n)=>{let l=null,o=null,s=!1,i=!1;const r=[],c=e=>{for(let n=0;n<e.length;n++)l=e[n],Array.isArray(l)?c(l):null!=l&&"boolean"!=typeof l&&((s="function"!=typeof t&&!M(l))&&(l+=""),s&&i?r[r.length-1].m+=l:r.push(s?x(null,l):l),i=s)};if(c(n),e){e.key&&(o=e.key);{const t=e.className||e.class;t&&(e.class="object"!=typeof t?t:Object.keys(t).filter((e=>t[e])).join(" "))}}const u=x(t,null);return u.v=e,r.length>0&&(u.$=r),u.j=o,u},x=(t,e)=>({u:0,O:t,m:null!=e?e:null,S:null,$:null,v:null,j:null}),L={},N=(t,e)=>null==t||M(t)?t:4&e?"false"!==t&&(""===t||!!t):2&e?"string"==typeof t?parseFloat(t):"number"==typeof t?t:NaN:1&e?t+"":t,P=t=>{var e;return null==(e=n(t))?void 0:e.$hostElement$},R=(t,e)=>{const n=P(t);return{emit:t=>D(n,e,{bubbles:!0,composed:!0,cancelable:!0,detail:t})}},D=(t,e,n)=>{const l=a.ce(e,n);return t.dispatchEvent(l),l},H=(t,e,l,s,i,r)=>{if(l===s)return;let f=o(t,e),d=e.toLowerCase();if("class"===e){const e=t.classList,n=A(l);let o=A(s);e.remove(...n.filter((t=>t&&!o.includes(t)))),e.add(...o.filter((t=>t&&!n.includes(t))))}else if("style"===e){for(const e in l)s&&null!=s[e]||(e.includes("-")?t.style.removeProperty(e):t.style[e]="");for(const e in s)l&&s[e]===l[e]||(e.includes("-")?t.style.setProperty(e,s[e]):t.style[e]=s[e])}else if("key"===e);else if("ref"===e)s&&K(s,t);else if(f||"o"!==e[0]||"n"!==e[1]){if("a"===e[0]&&e.startsWith("attr:")){const l=e.slice(5);let o;{const e=n(t);if(e&&e.l&&e.l.t){const t=e.l.t[l];t&&t[1]&&(o=t[1])}}return o||(o=l.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()),void(null==s||!1===s?!1===s&&""!==t.getAttribute(o)||t.removeAttribute(o):t.setAttribute(o,!0===s?"":s))}if("p"===e[0]&&e.startsWith("prop:")){const n=e.slice(5);try{t[n]=s}catch(t){}return}{const n=M(s);if((f||n&&null!==s)&&!i)try{if(t.tagName.includes("-"))t[e]!==s&&(t[e]=s);else{const n=null==s?"":s;"list"===e?f=!1:null!=l&&t[e]===n||("function"==typeof t.__lookupSetter__(e)?t[e]=n:t.setAttribute(e,n))}}catch(t){}let o=!1;d!==(d=d.replace(/^xlink\:?/,""))&&(e=d,o=!0),null==s||!1===s?!1===s&&""!==t.getAttribute(e)||(o?t.removeAttributeNS(c,e):t.removeAttribute(e)):(!f||4&r||i)&&!n&&1===t.nodeType&&(s=!0===s?"":s,o?t.setAttributeNS(c,e,s):t.setAttribute(e,s))}}else if(e="-"===e[2]?e.slice(3):o(u,d)?d.slice(2):d[2]+e.slice(3),l||s){const n=e.endsWith(U);e=e.replace(W,""),l&&a.rel(t,e,l,n),s&&a.ael(t,e,s,n)}},T=/\s/,A=t=>("object"==typeof t&&t&&"baseVal"in t&&(t=t.baseVal),t&&"string"==typeof t?t.split(T):[]),U="Capture",W=RegExp(U+"$"),z=(t,e,n)=>{const l=11===e.S.nodeType&&e.S.host?e.S.host:e.S,o=t&&t.v||{},s=e.v||{};for(const t of F(Object.keys(o)))t in s||H(l,t,o[t],void 0,n,e.u);for(const t of F(Object.keys(s)))H(l,t,o[t],s[t],n,e.u)};function F(t){return t.includes("ref")?[...t.filter((t=>"ref"!==t)),"ref"]:t}var V=!1,q=[],G=[],Y=(t,e,n)=>{const l=e.$[n];let o,s,i=0;if(null!=l.m)o=l.S=u.document.createTextNode(l.m);else{if(V||(V="svg"===l.O),!u.document)throw Error("You are trying to render a Stencil component in an environment that doesn't support the DOM.");if(o=l.S=u.document.createElementNS(V?"http://www.w3.org/2000/svg":"http://www.w3.org/1999/xhtml",l.O),V&&"foreignObject"===l.O&&(V=!1),z(null,l,V),null!=O&&void 0!==O&&o["s-si"]!==O&&o.classList.add(o["s-si"]=O),l.$){const e="template"===l.O?o.content:o;for(i=0;i<l.$.length;++i)s=Y(t,l,i),s&&e.appendChild(s)}"svg"===l.O?V=!1:"foreignObject"===o.tagName&&(V=!0)}return o["s-hn"]=S,o},Z=(t,e,n,l,o,s)=>{let i,r=t;for("template"===n.O&&(r=r.content);o<=s;++o)l[o]&&(i=Y(null,n,o),i&&(l[o].S=i,Q(r,i,e)))},_=(t,e,n)=>{for(let l=e;l<=n;++l){const e=t[l];if(e){const t=e.S;J(e),t&&t.remove()}}},B=(t,e,n=!1)=>t.O===e.O&&(n?(n&&!t.j&&e.j&&(t.j=e.j),!0):t.j===e.j),I=(t,e,n=!1)=>{const l=e.S=t.S,o=t.$,s=e.$,i=e.O,r=e.m;null==r?(z(t,e,V="svg"===i||"foreignObject"!==i&&V),null!==o&&null!==s?((t,e,n,l,o=!1)=>{let s,i,r=0,c=0,u=0,a=0,f=e.length-1,d=e[0],p=e[f],h=l.length-1,m=l[0],v=l[h];const b="template"===n.O?t.content:t;for(;r<=f&&c<=h;)if(null==d)d=e[++r];else if(null==p)p=e[--f];else if(null==m)m=l[++c];else if(null==v)v=l[--h];else if(B(d,m,o))I(d,m,o),d=e[++r],m=l[++c];else if(B(p,v,o))I(p,v,o),p=e[--f],v=l[--h];else if(B(d,v,o))I(d,v,o),Q(b,d.S,p.S.nextSibling),d=e[++r],v=l[--h];else if(B(p,m,o))I(p,m,o),Q(b,p.S,d.S),p=e[--f],m=l[++c];else{for(u=-1,a=r;a<=f;++a)if(e[a]&&null!==e[a].j&&e[a].j===m.j){u=a;break}u>=0?(i=e[u],i.O!==m.O?s=Y(e&&e[c],n,u):(I(i,m,o),e[u]=void 0,s=i.S),m=l[++c]):(s=Y(e&&e[c],n,c),m=l[++c]),s&&Q(d.S.parentNode,s,d.S)}r>f?Z(t,null==l[h+1]?null:l[h+1].S,n,l,c,h):c>h&&_(e,r,f)})(l,o,e,s,n):null!==s?(null!==t.m&&(l.textContent=""),Z(l,null,e,s,0,s.length-1)):!n&&null!==o&&_(o,0,o.length-1),V&&"svg"===i&&(V=!1)):t.m!==r&&(l.data=r)},J=t=>{t.v&&t.v.ref&&q.push((()=>t.v.ref(null))),t.$&&t.$.map(J)},K=(t,e)=>{G.push((()=>t(e)))},Q=(t,e,n)=>t.__insertBefore?t.__insertBefore(e,n):null==t?void 0:t.insertBefore(e,n),X=(t,e)=>{if(e&&!t.k&&e["s-p"]){const n=e["s-p"].push(new Promise((l=>t.k=()=>{e["s-p"].splice(n-1,1),l()})))}},tt=(t,e)=>{if(t.u|=16,4&t.u)return void(t.u|=512);X(t,t.M);const n=()=>et(t,e);if(!e)return g(n);queueMicrotask((()=>{n()}))},et=(t,e)=>{const n=t.$hostElement$,l=t.i;if(!l)throw Error(`Can't render component <${n.tagName.toLowerCase()} /> with invalid Stencil runtime! Make sure this imported component is compiled with a \`externalRuntime: true\` flag. For more information, please refer to https://stenciljs.com/docs/custom-elements#externalruntime`);let o;return e?(t.C.length&&t.C.forEach((t=>t(n))),o=ct(l,"componentWillLoad",void 0,n)):o=ct(l,"componentWillUpdate",void 0,n),o=nt(o,(()=>ct(l,"componentWillRender",void 0,n))),nt(o,(()=>ot(t,l,e)))},nt=(t,e)=>lt(t)?t.then(e).catch((t=>{console.error(t),e()})):e(),lt=t=>t instanceof Promise||t&&t.then&&"function"==typeof t.then,ot=async(t,e,n)=>{var l;const o=t.$hostElement$,s=o["s-rc"];n&&(t=>{const e=t.l,n=t.$hostElement$,l=e.u,o=((t,e)=>{var n,l,o;const s=E(e),i=r.get(s);if(!u.document)return s;if(t=11===t.nodeType?t:u.document,i)if("string"==typeof i){let o,r=k.get(t=t.head||t);if(r||k.set(t,r=new Set),!r.has(s)){o=u.document.createElement("style"),o.textContent=i;const c=null!=(n=a.L)?n:j(u.document);if(null!=c&&o.setAttribute("nonce",c),!(1&e.u))if("HEAD"===t.nodeName){const e=t.querySelectorAll("link[rel=preconnect]"),n=e.length>0?e[e.length-1].nextSibling:t.querySelector("style");t.insertBefore(o,(null==n?void 0:n.parentNode)===t?n:null)}else if("host"in t)if(d){const e=new(null!=(l=t.defaultView)?l:t.ownerDocument.defaultView).CSSStyleSheet;e.replaceSync(i),p?t.adoptedStyleSheets.unshift(e):t.adoptedStyleSheets=[e,...t.adoptedStyleSheets]}else{const e=t.querySelector("style");e?e.textContent=i+e.textContent:t.prepend(o)}else t.append(o);1&e.u&&t.insertBefore(o,null),4&e.u&&(o.textContent+="slot-fb{display:contents}slot-fb[hidden]{display:none}"),r&&r.add(s)}}else{let e=k.get(t);if(e||k.set(t,e=new Set),!e.has(s)){const n=null!=(o=t.defaultView)?o:t.ownerDocument.defaultView;let l;if(i.constructor===n.CSSStyleSheet)l=i;else{l=new n.CSSStyleSheet;for(let t=0;t<i.cssRules.length;t++)l.insertRule(i.cssRules[t].cssText,t)}p?t.adoptedStyleSheets.push(l):t.adoptedStyleSheets=[...t.adoptedStyleSheets,l],e.add(s)}}return s})(n.getRootNode(),e);10&l&&(n["s-sc"]=o,n.classList.add(o+"-h"))})(t);st(t,e,o,n),s&&(s.map((t=>t())),o["s-rc"]=void 0);{const e=null!=(l=o["s-p"])?l:[],n=()=>it(t);0===e.length?n():(Promise.all(e).then(n).catch(n),t.u|=4,e.length=0)}},st=(t,e,n,l)=>{try{e=e.render(),t.u&=-17,t.u|=2,((t,e,n=!1)=>{const l=t.$hostElement$,o=t.N||x(null,null),s=(t=>t&&t.O===L)(e)?e:C(null,null,e);if(S=l.tagName,n&&s.v)for(const t of Object.keys(s.v))l.hasAttribute(t)&&!["key","ref","style","class"].includes(t)&&(s.v[t]=l[t]);s.O=null,s.u|=4,t.N=s,s.S=o.S=l,O=l["s-sc"],I(o,s,n),q.forEach((t=>t())),q.length=0,G.forEach((t=>t())),G.length=0})(t,e,l)}catch(e){s(e,t.$hostElement$)}return null},it=t=>{const e=t.$hostElement$,n=t.i,l=t.M;ct(n,"componentDidRender",void 0,e),64&t.u?ct(n,"componentDidUpdate",void 0,e):(t.u|=64,ut(e),ct(n,"componentDidLoad",void 0,e),t.P(e),l||rt()),t.R(e),t.k&&(t.k(),t.k=void 0),512&t.u&&$((()=>tt(t,!1))),t.u&=-517},rt=()=>{$((()=>D(u,"appload",{detail:{namespace:"mosterdcomponents"}})))},ct=(t,e,n,l)=>{if(t&&t[e])try{return t[e](n)}catch(t){s(t,l)}},ut=t=>t.classList.add("hydrated"),at=(t,e,l,o)=>{const i=n(t);if(!i)return;if(!i)throw Error(`Couldn't find host element for "${o.h}" as it is unknown to this Stencil runtime. This usually happens when integrating a 3rd party Stencil component with another Stencil component or application. Please reach out to the maintainers of the 3rd party Stencil component or report this on the Stencil Discord server (https://chat.stenciljs.com) or comment on this similar [GitHub issue](https://github.com/stenciljs/core/issues/5457).`);const r=i.$hostElement$,c=i.o.get(e),u=i.u,a=i.i;if(l=N(l,o.t[e][0]),!(8&u&&void 0!==c||l===c||Number.isNaN(c)&&Number.isNaN(l))){if(i.o.set(e,l),o.D){const t=o.D[e];t&&t.map((t=>{try{const[[n,o]]=Object.entries(t);(128&u||1&o)&&(a?a[n](l,c,e):i.C.push((()=>{i.i[n](l,c,e)})))}catch(t){s(t,r)}}))}if(2&u){if(a.componentShouldUpdate&&!1===a.componentShouldUpdate(l,c,e)&&!(16&u))return;16&u||tt(i,!1)}}},ft=(e,l,o)=>{var s,i;const r=e.prototype;{e.watchers&&!l.D&&(l.D=e.watchers),e.deserializers&&!l.H&&(l.H=e.deserializers),e.serializers&&!l.T&&(l.T=e.serializers);const c=Object.entries(null!=(s=l.t)?s:{});if(c.map((([e,[s]])=>{if(31&s||2&o&&32&s){const{get:i,set:c}=t(r,e)||{};i&&(l.t[e][0]|=2048),c&&(l.t[e][0]|=4096),(1&o||!i)&&Object.defineProperty(r,e,{get(){{if(!(2048&l.t[e][0]))return((t,e)=>n(this).o.get(e))(0,e);const t=n(this),o=t?t.i:r;if(!o)return;return o[e]}},configurable:!0,enumerable:!0}),Object.defineProperty(r,e,{set(t){const i=n(this);if(i){if(c)return void 0===(32&s?this[e]:i.$hostElement$[e])&&i.o.get(e)&&(t=i.o.get(e)),c.call(this,N(t,s)),void at(this,e,t=32&s?this[e]:i.$hostElement$[e],l);{if(!(1&o&&4096&l.t[e][0]))return at(this,e,t,l),void(1&o&&!i.i&&i.C.push((()=>{4096&l.t[e][0]&&i.i[e]!==i.o.get(e)&&(i.i[e]=t)})));const n=()=>{const n=i.i[e];!i.o.get(e)&&n&&i.o.set(e,n),i.i[e]=N(t,s),at(this,e,i.i[e],l)};i.i?n():i.C.push((()=>{n()}))}}}})}else 1&o&&64&s&&Object.defineProperty(r,e,{value(...t){var l;const o=n(this);return null==(l=null==o?void 0:o.A)?void 0:l.then((()=>{var n;return null==(n=o.i)?void 0:n[e](...t)}))}})})),1&o){const t=new Map;r.attributeChangedCallback=function(e,o,s){a.jmp((()=>{var i;const u=t.get(e),a=n(this);if(this.hasOwnProperty(u)&&(s=this[u],delete this[u]),r.hasOwnProperty(u)&&"number"==typeof this[u]&&this[u]==s)return;if(null==u){const t=null==a?void 0:a.u;if(a&&t&&!(8&t)&&s!==o){const n=a.i,r=null==(i=l.D)?void 0:i[e];null==r||r.forEach((l=>{const[[i,r]]=Object.entries(l);null!=n[i]&&(128&t||1&r)&&n[i].call(n,s,o,e)}))}return}const f=c.find((([t])=>t===u));f&&4&f[1][0]&&(s=null!==s&&"false"!==s);const d=Object.getOwnPropertyDescriptor(r,u);s==this[u]||d.get&&!d.set||(this[u]=s)}))},e.observedAttributes=Array.from(new Set([...Object.keys(null!=(i=l.D)?i:{}),...c.filter((([t,e])=>31&e[0])).map((([e,n])=>{const l=n[1]||e;return t.set(l,e),l}))]))}}return e},dt=(t,e)=>{ct(t,"connectedCallback",void 0,e)},pt=(t,e)=>{ct(t,"disconnectedCallback",void 0,e||t)},ht=(t,e={})=>{var l;if(!u.document)return void console.warn("Stencil: No document found. Skipping bootstrapping lazy components.");const o=[],c=e.exclude||[],f=u.customElements,p=u.document.head,h=p.querySelector("meta[charset]"),m=u.document.createElement("style"),v=[];let b,y=!0;if(Object.assign(a,e),a.p=new URL(e.resourcesUrl||"./",u.document.baseURI).href,t.map((t=>{t[1].map((e=>{var l,u,p;const h={u:e[0],h:e[1],t:e[2],U:e[3]};h.t=e[2],h.D=null!=(l=e[4])?l:{},h.T=null!=(u=e[5])?u:{},h.H=null!=(p=e[6])?p:{};const m=h.h,w=class extends HTMLElement{"s-p";"s-rc";hasRegisteredEventListeners=!1;constructor(t){super(t),((t,e)=>{const n={u:0,$hostElement$:t,l:e,o:new Map,W:new Map};n.A=new Promise((t=>n.R=t)),n.F=new Promise((t=>n.P=t)),t["s-p"]=[],t["s-rc"]=[],n.C=[];const l=n;t.__stencil__getHostRef=()=>l})(t=this,h)}connectedCallback(){n(this)&&(this.hasRegisteredEventListeners||(this.hasRegisteredEventListeners=!0),b&&(clearTimeout(b),b=null),y?v.push(this):a.jmp((()=>(t=>{if(!(1&a.u)){const e=n(t);if(!e)return;const l=e.l,o=()=>{};if(1&e.u)(null==e?void 0:e.i)?dt(e.i,t):(null==e?void 0:e.F)&&e.F.then((()=>dt(e.i,t)));else{e.u|=1;{let n=t;for(;n=n.parentNode||n.host;)if(n["s-p"]){X(e,e.M=n);break}}l.t&&Object.entries(l.t).map((([e,[n]])=>{if(31&n&&Object.prototype.hasOwnProperty.call(t,e)){const n=t[e];delete t[e],t[e]=n}})),(async(t,e,n)=>{let l;try{if(!(32&e.u)){if(e.u|=32,n.V){const o=((t,e)=>{const n=t.h.replace(/-/g,"_"),l=t.V;if(!l)return;const o=i.get(l);return o?o[n]:import(`./${l}.entry.js`).then((t=>(i.set(l,t),t[n])),(t=>{s(t,e.$hostElement$)}))
|
|
2
|
+
/*!__STENCIL_STATIC_IMPORT_SWITCH__*/})(n,e);if(o&&"then"in o){const t=()=>{};l=await o,t()}else l=o;if(!l)throw Error(`Constructor for "${n.h}#${e.q}" was not found`);l.isProxied||(n.D=l.watchers,n.T=l.serializers,n.H=l.deserializers,ft(l,n,2),l.isProxied=!0);const r=()=>{};e.u|=8;try{new l(e)}catch(e){s(e,t)}e.u&=-9,e.u|=128,r(),dt(e.i,t)}else l=t.constructor,customElements.whenDefined(t.localName).then((()=>e.u|=128));if(l&&l.style){let t;"string"==typeof l.style&&(t=l.style);const e=E(n);if(!r.has(e)){const l=()=>{};((t,e,n)=>{let l=r.get(t);d&&n?(l=l||new CSSStyleSheet,"string"==typeof l?l=e:l.replaceSync(e)):l=e,r.set(t,l)})(e,t,!!(1&n.u)),l()}}}const o=e.M,c=()=>tt(e,!0);o&&o["s-rc"]?o["s-rc"].push(c):c()}catch(n){s(n,t),e.k&&(e.k(),e.k=void 0),e.P&&e.P(t)}})(t,e,l)}o()}})(this))))}disconnectedCallback(){a.jmp((()=>(async t=>{if(!(1&a.u)){const e=n(t);(null==e?void 0:e.i)?pt(e.i,t):(null==e?void 0:e.F)&&e.F.then((()=>pt(e.i,t)))}k.has(t)&&k.delete(t),t.shadowRoot&&k.has(t.shadowRoot)&&k.delete(t.shadowRoot)})(this))),a.raf((()=>{var t;const e=n(this);if(!e)return;const l=v.findIndex((t=>t===this));l>-1&&v.splice(l,1),(null==(t=null==e?void 0:e.N)?void 0:t.S)instanceof Node&&!e.N.S.isConnected&&delete e.N.S}))}componentOnReady(){var t;return null==(t=n(this))?void 0:t.F}};h.V=t[0],c.includes(m)||f.get(m)||(o.push(m),f.define(m,ft(w,h,1)))}))})),o.length>0&&(m.textContent+=o.sort()+"{visibility:hidden}.hydrated{visibility:inherit}",m.innerHTML.length)){m.setAttribute("data-styles","");const t=null!=(l=a.L)?l:j(u.document);null!=t&&m.setAttribute("nonce",t),p.insertBefore(m,h?h.nextSibling:p.firstChild)}y=!1,v.length?v.map((t=>t.connectedCallback())):a.jmp((()=>b=setTimeout(rt,30)))},mt=t=>a.L=t;export{L as H,ht as b,R as c,P as g,C as h,f as p,l as r,mt as s}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as t,c as r,h as e,H as s,g as a}from"./p-_tsCCkAi.js";import{f as l,a as i,b as o,c as d,d as n,e as c}from"./p-Dt-aHxkM.js";import{ClientLayoutItemType as h}from"./index.esm.js";class m{static render(t,r,e){var s,a,l,i;if(t.type===h.RELATION){const e=null!==(a=null===(s=t.relation)||void 0===s?void 0:s.name)&&void 0!==a?a:"",o=null===(l=null==r?void 0:r._links)||void 0===l?void 0:l[e];return o?Array.isArray(o)?o.map((t=>{var r;return null!==(r=t.name)&&void 0!==r?r:""})).filter(Boolean).join(", "):null!==(i=o.name)&&void 0!==i?i:"":""}if(t.type!==h.FIELD||!t.field)return"";const{name:o,dataType:d,listItems:n}=t.field,c=null==r?void 0:r[o];return null==c||""===c?"":(Array.isArray(c)?c:[c]).map((t=>m.renderValue(null!=d?d:"TEXT",t,null!=n?n:[],e))).filter((t=>""!==t)).join(", ")}static renderValue(t,r,e,s){var a;switch(t){case"INTEGER":return n(Number(r),s,{maximumFractionDigits:0});case"DECIMAL":return n(Number(r),s);case"PERCENTAGE":return c(Number(r),s);case"CURRENCY":{const{amount:t,currency:e}="object"==typeof r&&null!==r?r:{amount:r,currency:""};return e?d(Number(t),e,s):n(Number(t),s)}case"DATE":return o(r,s);case"DATETIME":return i(r,s);case"TIME":return l(r,s);case"BOOLEAN":return r?"✓":"";case"LIST":{const t=e.find((t=>t.key===String(r)));return null!==(a=null==t?void 0:t.label)&&void 0!==a?a:String(r)}case"TEXTBLOCK":return String(r).replace(/<[^>]*>/g,"").trim();default:return String(r)}}}const b=class{constructor(e){t(this,e),this.mrdLoadPage=r(this,"mrdLoadPage"),this.mrdRowClick=r(this,"mrdRowClick"),this.pendingPages=new Set,this.debounceTimer=null,this.columns=[],this.rows=[],this.locale=navigator.language,this.totalElements=0,this.pageSize=20,this.rowHeight=36,this.tableHeight=500,this.defaultSort="",this.loadedPages=new Map,this.requestedPages=new Set,this.renderStart=0,this.renderEnd=0,this.colWidths=[],this.sortField="",this.sortDir="asc",this.handleScroll=t=>{const r=this.totalElements,e=Math.floor(t.currentTarget.scrollTop/this.rowHeight),s=Math.min(e+this.visibleCount(),r-1);this.renderStart=Math.max(0,e-10),this.renderEnd=Math.min(r-1,s+10),this.requestPagesForWindow(this.renderStart,this.renderEnd)}}async init(){var t;if(null!==this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null),this.pendingPages.clear(),this.loadedPages=new Map,this.requestedPages=new Set,this.colWidths=[],this.defaultSort){const r=this.defaultSort.split(",");this.sortField=r[0].trim(),this.sortDir="desc"===(null===(t=r[1])||void 0===t?void 0:t.trim())?"desc":"asc"}else this.sortField="",this.sortDir="asc";this.renderStart=0,this.renderEnd=Math.max(0,Math.min(this.visibleCount()+10,this.totalElements-1));const r=this.el.querySelector(".mrd-table__scroll");r&&(r.scrollTop=0)}async setPage(t,r){const e=new Map(this.loadedPages);e.set(t,r),this.loadedPages=e}visibleCount(){return Math.ceil(this.tableHeight/this.rowHeight)}sortParam(){return this.sortField?"desc"===this.sortDir?`${this.sortField},desc`:this.sortField:""}colName(t){var r,e,s,a;return null!==(a=null!==(e=null===(r=t.field)||void 0===r?void 0:r.name)&&void 0!==e?e:null===(s=t.relation)||void 0===s?void 0:s.name)&&void 0!==a?a:""}handleSortClick(t){const r=this.colName(t);this.sortField===r?this.sortDir="asc"===this.sortDir?"desc":"asc":(this.sortField=r,this.sortDir="asc"),null!==this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null),this.pendingPages.clear(),this.loadedPages=new Map,this.requestedPages=new Set,this.colWidths=[],this.renderStart=0,this.renderEnd=Math.max(0,Math.min(this.visibleCount()+10,this.totalElements-1));const e=this.el.querySelector(".mrd-table__scroll");e&&(e.scrollTop=0),this.emitPagesForWindow(this.renderStart,this.renderEnd)}emitPagesForWindow(t,r){const e=Math.floor(t/this.pageSize),s=Math.floor(r/this.pageSize),a=new Set(this.requestedPages);let l=!1;for(let t=e;t<=s;t++)this.loadedPages.has(t)||a.has(t)||(a.add(t),this.mrdLoadPage.emit({page:t,sort:this.sortParam()}),l=!0);l&&(this.requestedPages=a)}getRow(t){var r;const e=this.loadedPages.get(Math.floor(t/this.pageSize));return null!==(r=null==e?void 0:e[t%this.pageSize])&&void 0!==r?r:null}requestPagesForWindow(t,r){const e=Math.floor(t/this.pageSize),s=Math.floor(r/this.pageSize);let a=!1;for(let t=e;t<=s;t++)this.loadedPages.has(t)||this.requestedPages.has(t)||this.pendingPages.has(t)||(this.pendingPages.add(t),a=!0);a&&(null!==this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout((()=>this.flushPendingPages()),150))}flushPendingPages(){if(this.debounceTimer=null,0===this.pendingPages.size)return;const t=new Set(this.requestedPages);let r=!1;for(const e of this.pendingPages){if(this.loadedPages.has(e)||t.has(e))continue;const s=e*this.pageSize;s+this.pageSize-1<this.renderStart||s>this.renderEnd||(t.add(e),this.mrdLoadPage.emit({page:e,sort:this.sortParam()}),r=!0)}this.pendingPages.clear(),r&&(this.requestedPages=t)}componentDidRender(){if(0===this.colWidths.length&&this.loadedPages.size>0&&this.totalElements>0){const t=this.el.querySelectorAll(".mrd-table__header");t.length>0&&(this.colWidths=Array.from(t).map((t=>t.offsetWidth)))}}render(){var t,r;if(!(null===(t=this.columns)||void 0===t?void 0:t.length))return null;const a=new Set(["INTEGER","DECIMAL","PERCENTAGE","CURRENCY"]);if(0===this.totalElements)return e(s,null,e("div",{class:"mrd-table"},e("table",{class:"mrd-table__table"},e("thead",null,e("tr",null,this.columns.map((t=>{var r,s,a,l;return e("th",{class:"mrd-table__header"},null!==(l=null!==(s=null===(r=t.field)||void 0===r?void 0:r.label)&&void 0!==s?s:null===(a=t.relation)||void 0===a?void 0:a.label)&&void 0!==l?l:"")})))),e("tbody",null,null===(r=this.rows)||void 0===r?void 0:r.map(((t,r)=>e("tr",{class:"mrd-table__row mrd-table__row--clickable",style:{background:r%2==0?"":"var(--mrd-color-neutral-100)"},onClick:()=>this.mrdRowClick.emit(t)},this.columns.map((r=>{var s,l;const i=m.render(r,t,this.locale),o="FIELD"===r.type&&a.has(null!==(l=null===(s=r.field)||void 0===s?void 0:s.dataType)&&void 0!==l?l:"");return e("td",{class:"mrd-table__cell"+(o?" mrd-table__cell--numeric":"")},i)}))))))),(!this.rows||0===this.rows.length)&&e("p",{class:"mrd-table__empty"},"Geen resultaten gevonden.")));const l=this.totalElements,i=this.columns.length,o=this.renderStart*this.rowHeight,d=Math.max(0,(l-1-this.renderEnd)*this.rowHeight),n=[];for(let t=this.renderStart;t<=this.renderEnd;t++){const r=this.getRow(t);n.push(null===r?e("tr",{class:"mrd-table__row mrd-table__row--loading"},e("td",{class:"mrd-table__cell--placeholder",colSpan:i},e("span",{class:"mrd-table__placeholder-bar"}))):e("tr",{class:"mrd-table__row mrd-table__row--clickable",style:{background:t%2==0?"":"var(--mrd-color-neutral-100)"},onClick:()=>this.mrdRowClick.emit(r)},this.columns.map((t=>{var s,l;const i=m.render(t,r,this.locale),o="FIELD"===t.type&&a.has(null!==(l=null===(s=t.field)||void 0===s?void 0:s.dataType)&&void 0!==l?l:"");return e("td",{class:"mrd-table__cell"+(o?" mrd-table__cell--numeric":"")},i)}))))}return e(s,null,e("div",{class:"mrd-table__scroll",style:{height:`${this.tableHeight}px`},onScroll:this.handleScroll},e("table",{class:"mrd-table__table",style:this.colWidths.length>0?{tableLayout:"fixed"}:void 0},e("thead",null,e("tr",null,this.columns.map(((t,r)=>{var s,a,l,i;const o=this.sortField===this.colName(t);return e("th",{class:"mrd-table__header mrd-table__header--sortable"+(o?` mrd-table__header--sorted-${this.sortDir}`:""),style:this.colWidths[r]?{width:`${this.colWidths[r]}px`}:void 0,onClick:()=>this.handleSortClick(t)},e("span",{class:"mrd-table__header-label"},null!==(i=null!==(a=null===(s=t.field)||void 0===s?void 0:s.label)&&void 0!==a?a:null===(l=t.relation)||void 0===l?void 0:l.label)&&void 0!==i?i:""),e("span",{class:"mrd-table__sort-icon","aria-hidden":"true"},o?"asc"===this.sortDir?"▲":"▼":"⇅"))})))),e("tbody",null,o>0&&e("tr",{class:"mrd-table__spacer",style:{height:`${o}px`}},e("td",{colSpan:i})),n,d>0&&e("tr",{class:"mrd-table__spacer",style:{height:`${d}px`}},e("td",{colSpan:i}))))),0===l&&e("p",{class:"mrd-table__empty"},"Geen resultaten gevonden."))}get el(){return a(this)}};b.style=".sc-mrd-table-h{display:block;width:100%}.mrd-table__scroll.sc-mrd-table{overflow-y:auto;overflow-x:auto;border:1px solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);overflow-anchor:none}.mrd-table.sc-mrd-table{overflow-x:auto}.mrd-table__table.sc-mrd-table{width:auto;min-width:100%;border-collapse:collapse;font-size:var(--mrd-font-size-sm);color:var(--mrd-color-neutral-900)}.mrd-table__scroll.sc-mrd-table .mrd-table__table.sc-mrd-table{min-width:max-content}.mrd-table__header.sc-mrd-table{position:sticky;top:0;z-index:1;background:var(--mrd-color-white);text-align:left;padding:var(--mrd-space-2) var(--mrd-space-4);border-bottom:2px solid var(--mrd-border-color);color:var(--mrd-color-neutral-600);font-weight:var(--mrd-font-weight-medium);white-space:nowrap;font-size:var(--mrd-font-size-xs);text-transform:uppercase;letter-spacing:0.04em}.mrd-table__header--sortable.sc-mrd-table{cursor:pointer;user-select:none}.mrd-table__header--sortable.sc-mrd-table:hover{background:var(--mrd-color-neutral-50);color:var(--mrd-color-neutral-800)}.mrd-table__header--sorted-asc.sc-mrd-table,.mrd-table__header--sorted-desc.sc-mrd-table{color:var(--mrd-color-primary);border-bottom-color:var(--mrd-color-primary)}.mrd-table__header-label.sc-mrd-table{margin-right:var(--mrd-space-1)}.mrd-table__sort-icon.sc-mrd-table{font-size:0.65rem;opacity:0.4;vertical-align:middle}.mrd-table__header--sorted-asc.sc-mrd-table .mrd-table__sort-icon.sc-mrd-table,.mrd-table__header--sorted-desc.sc-mrd-table .mrd-table__sort-icon.sc-mrd-table{opacity:1;color:var(--mrd-color-primary)}.mrd-table__row.sc-mrd-table{border-bottom:1px solid var(--mrd-border-color)}.mrd-table__row.sc-mrd-table:hover{background:var(--mrd-color-neutral-200) !important}.mrd-table__row--clickable.sc-mrd-table{cursor:pointer}.mrd-table__spacer.sc-mrd-table{border:none}.mrd-table__spacer.sc-mrd-table td.sc-mrd-table{padding:0;border:none}.mrd-table__cell.sc-mrd-table{padding:var(--mrd-space-2) var(--mrd-space-4);vertical-align:top;white-space:nowrap}.mrd-table__cell--numeric.sc-mrd-table{text-align:right;font-variant-numeric:tabular-nums}.mrd-table__row--loading.sc-mrd-table{background:transparent}.mrd-table__cell--placeholder.sc-mrd-table{padding:var(--mrd-space-2) var(--mrd-space-4);border-bottom:1px solid var(--mrd-border-color)}.mrd-table__placeholder-bar.sc-mrd-table{display:block;height:0.75rem;width:55%;border-radius:var(--mrd-border-radius-sm);background:linear-gradient( 90deg, var(--mrd-color-neutral-200) 25%, var(--mrd-color-neutral-100) 50%, var(--mrd-color-neutral-200) 75% );background-size:200% 100%;animation:mrd-shimmer 1.4s ease infinite}@keyframes mrd-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}.mrd-table__empty.sc-mrd-table{padding:var(--mrd-space-4) var(--mrd-space-3);color:var(--mrd-color-neutral-500);font-size:var(--mrd-font-size-sm);text-align:center;margin:0}";export{b as mrd_table}
|
|
@@ -13,6 +13,9 @@ export declare class MrdForm {
|
|
|
13
13
|
relatedClass: string;
|
|
14
14
|
}>;
|
|
15
15
|
componentWillLoad(): void;
|
|
16
|
+
/** Sync formValues when the values prop is set from outside after mount
|
|
17
|
+
* (e.g. when pre-filling an existing record in edit mode). */
|
|
18
|
+
valuesChanged(newValues: Record<string, unknown>): void;
|
|
16
19
|
setFieldValue(name: string, value: unknown): Promise<void>;
|
|
17
20
|
private handleFieldChange;
|
|
18
21
|
private handleSearch;
|
|
@@ -8,7 +8,8 @@ export declare class MrdListField {
|
|
|
8
8
|
disabled: boolean;
|
|
9
9
|
multiple: boolean;
|
|
10
10
|
locale: string;
|
|
11
|
-
|
|
11
|
+
/** List items from the API. Each item has a `key` (stored value) and `label`. */
|
|
12
|
+
listItems: ClientListValue[];
|
|
12
13
|
error: string;
|
|
13
14
|
selected: string[];
|
|
14
15
|
mrdChange: EventEmitter<{
|
|
@@ -10,7 +10,8 @@ export declare class MrdRelationField {
|
|
|
10
10
|
displayType: ClientLayoutItemRelationDisplayType;
|
|
11
11
|
multiple: boolean;
|
|
12
12
|
dropdownValues: ClientListValue[];
|
|
13
|
-
|
|
13
|
+
/** Plain href string/array for normal use; pass { id, label } objects to pre-fill a loaded record. */
|
|
14
|
+
value: string | string[] | RelationSearchResult | RelationSearchResult[] | null;
|
|
14
15
|
searchQuery: string;
|
|
15
16
|
searchResults: RelationSearchResult[];
|
|
16
17
|
isLoading: boolean;
|
|
@@ -33,6 +34,7 @@ export declare class MrdRelationField {
|
|
|
33
34
|
setSearchResults(results: RelationSearchResult[]): Promise<void>;
|
|
34
35
|
setLoading(loading: boolean): Promise<void>;
|
|
35
36
|
private searchDebounce;
|
|
37
|
+
componentWillLoad(): void;
|
|
36
38
|
private handleKeyDown;
|
|
37
39
|
private clearSelection;
|
|
38
40
|
private handleSearchInput;
|
|
@@ -41,6 +41,8 @@ export declare class MrdTable {
|
|
|
41
41
|
page: number;
|
|
42
42
|
sort: string;
|
|
43
43
|
}>;
|
|
44
|
+
/** Fired when a data row is clicked. Detail is the full row object including _links. */
|
|
45
|
+
mrdRowClick: EventEmitter<Record<string, any>>;
|
|
44
46
|
/**
|
|
45
47
|
* Initialise (or reset) the virtual scroll.
|
|
46
48
|
* Call after setting all props and registering the mrdLoadPage listener,
|
|
@@ -56,6 +58,7 @@ export declare class MrdTable {
|
|
|
56
58
|
/** Returns the current sort value for use in ?sort= query params. */
|
|
57
59
|
private sortParam;
|
|
58
60
|
/** Called when a header cell is clicked. Toggles direction or sets a new column. */
|
|
61
|
+
private colName;
|
|
59
62
|
private handleSortClick;
|
|
60
63
|
/** Emits mrdLoadPage immediately for all missing pages in [start, end]. */
|
|
61
64
|
private emitPagesForWindow;
|
|
@@ -264,9 +264,10 @@ export namespace Components {
|
|
|
264
264
|
*/
|
|
265
265
|
"label": string;
|
|
266
266
|
/**
|
|
267
|
+
* List items from the API. Each item has a `key` (stored value) and `label`.
|
|
267
268
|
* @default []
|
|
268
269
|
*/
|
|
269
|
-
"
|
|
270
|
+
"listItems": ClientListValue[];
|
|
270
271
|
/**
|
|
271
272
|
* @default navigator.language
|
|
272
273
|
*/
|
|
@@ -366,9 +367,10 @@ export namespace Components {
|
|
|
366
367
|
"setLoading": (loading: boolean) => Promise<void>;
|
|
367
368
|
"setSearchResults": (results: RelationSearchResult[]) => Promise<void>;
|
|
368
369
|
/**
|
|
370
|
+
* Plain href string/array for normal use; pass { id, label } objects to pre-fill a loaded record.
|
|
369
371
|
* @default null
|
|
370
372
|
*/
|
|
371
|
-
"value": string | string[] | null;
|
|
373
|
+
"value": string | string[] | RelationSearchResult | RelationSearchResult[] | null;
|
|
372
374
|
}
|
|
373
375
|
interface MrdTable {
|
|
374
376
|
/**
|
|
@@ -812,6 +814,7 @@ declare global {
|
|
|
812
814
|
};
|
|
813
815
|
interface HTMLMrdTableElementEventMap {
|
|
814
816
|
"mrdLoadPage": { page: number; sort: string };
|
|
817
|
+
"mrdRowClick": Record<string, any>;
|
|
815
818
|
}
|
|
816
819
|
interface HTMLMrdTableElement extends Components.MrdTable, HTMLStencilElement {
|
|
817
820
|
addEventListener<K extends keyof HTMLMrdTableElementEventMap>(type: K, listener: (this: HTMLMrdTableElement, ev: MrdTableCustomEvent<HTMLMrdTableElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -1176,9 +1179,10 @@ declare namespace LocalJSX {
|
|
|
1176
1179
|
*/
|
|
1177
1180
|
"label"?: string;
|
|
1178
1181
|
/**
|
|
1182
|
+
* List items from the API. Each item has a `key` (stored value) and `label`.
|
|
1179
1183
|
* @default []
|
|
1180
1184
|
*/
|
|
1181
|
-
"
|
|
1185
|
+
"listItems"?: ClientListValue[];
|
|
1182
1186
|
/**
|
|
1183
1187
|
* @default navigator.language
|
|
1184
1188
|
*/
|
|
@@ -1283,9 +1287,10 @@ declare namespace LocalJSX {
|
|
|
1283
1287
|
*/
|
|
1284
1288
|
"required"?: boolean;
|
|
1285
1289
|
/**
|
|
1290
|
+
* Plain href string/array for normal use; pass { id, label } objects to pre-fill a loaded record.
|
|
1286
1291
|
* @default null
|
|
1287
1292
|
*/
|
|
1288
|
-
"value"?: string | string[] | null;
|
|
1293
|
+
"value"?: string | string[] | RelationSearchResult | RelationSearchResult[] | null;
|
|
1289
1294
|
}
|
|
1290
1295
|
interface MrdTable {
|
|
1291
1296
|
/**
|
|
@@ -1305,6 +1310,10 @@ declare namespace LocalJSX {
|
|
|
1305
1310
|
* Fired when a page needs to be fetched. Host fetches and calls setPage(). `sort` is the raw query-param value, e.g. "name" or "name,desc".
|
|
1306
1311
|
*/
|
|
1307
1312
|
"onMrdLoadPage"?: (event: MrdTableCustomEvent<{ page: number; sort: string }>) => void;
|
|
1313
|
+
/**
|
|
1314
|
+
* Fired when a data row is clicked. Detail is the full row object including _links.
|
|
1315
|
+
*/
|
|
1316
|
+
"onMrdRowClick"?: (event: MrdTableCustomEvent<Record<string, any>>) => void;
|
|
1308
1317
|
/**
|
|
1309
1318
|
* Records per page (must match the API page size).
|
|
1310
1319
|
* @default 20
|
|
@@ -1526,7 +1535,7 @@ declare namespace LocalJSX {
|
|
|
1526
1535
|
"relatedClass": string;
|
|
1527
1536
|
"displayType": ClientLayoutItemRelationDisplayType;
|
|
1528
1537
|
"multiple": boolean;
|
|
1529
|
-
"value": string | string[] | null;
|
|
1538
|
+
"value": string | string[] | RelationSearchResult | RelationSearchResult[] | null;
|
|
1530
1539
|
}
|
|
1531
1540
|
interface MrdTableAttributes {
|
|
1532
1541
|
"locale": string;
|
|
@@ -1,8 +1,22 @@
|
|
|
1
|
+
export declare enum ClientLayoutType {
|
|
2
|
+
OBJECT_FORM_DASHBOARD = "OBJECT_FORM_DASHBOARD",
|
|
3
|
+
CLASS_DASHBOARD = "CLASS_DASHBOARD",
|
|
4
|
+
GENERAL_DASHBOARD = "GENERAL_DASHBOARD",
|
|
5
|
+
NAVIGATION_PANE = "NAVIGATION_PANE"
|
|
6
|
+
}
|
|
1
7
|
export declare enum ClientLayoutItemType {
|
|
2
8
|
FIELD = "FIELD",
|
|
3
9
|
RELATION = "RELATION",
|
|
4
10
|
SECTION = "SECTION",
|
|
5
|
-
GROUP = "GROUP"
|
|
11
|
+
GROUP = "GROUP",
|
|
12
|
+
HEADER = "HEADER",
|
|
13
|
+
TEXT = "TEXT",
|
|
14
|
+
NAVIGATE = "NAVIGATE",
|
|
15
|
+
ACTION = "ACTION",
|
|
16
|
+
SEARCH = "SEARCH",
|
|
17
|
+
VIEW = "VIEW",
|
|
18
|
+
RELATED_VIEW = "RELATED_VIEW",
|
|
19
|
+
RELATED_OBJECT = "RELATED_OBJECT"
|
|
6
20
|
}
|
|
7
21
|
export declare enum ClientLayoutItemFieldDataType {
|
|
8
22
|
TEXT = "TEXT",
|
|
@@ -23,12 +37,31 @@ export declare enum ClientLayoutItemFieldDataType {
|
|
|
23
37
|
}
|
|
24
38
|
export declare enum ClientLayoutItemRelationDisplayType {
|
|
25
39
|
SEARCH = "SEARCH",
|
|
26
|
-
DROPDOWN = "DROPDOWN"
|
|
40
|
+
DROPDOWN = "DROPDOWN",
|
|
41
|
+
CHECKBOX = "CHECKBOX"
|
|
42
|
+
}
|
|
43
|
+
export declare enum ClientLayoutItemRelationEditBehavior {
|
|
44
|
+
SEARCH = "SEARCH",
|
|
45
|
+
DROPDOWN = "DROPDOWN",
|
|
46
|
+
CHECKBOX = "CHECKBOX"
|
|
27
47
|
}
|
|
48
|
+
/** A selectable list item as returned by the API. */
|
|
28
49
|
export interface ClientListValue {
|
|
29
|
-
value
|
|
50
|
+
/** Raw key stored in the database (API uses `key`, older code used `value`). */
|
|
51
|
+
key: string;
|
|
30
52
|
label: string;
|
|
31
|
-
color?: string;
|
|
53
|
+
color?: string | null;
|
|
54
|
+
backgroundColor?: string | null;
|
|
55
|
+
}
|
|
56
|
+
export interface CurrencyValue {
|
|
57
|
+
amount: number | null;
|
|
58
|
+
currency: string;
|
|
59
|
+
decimals?: number;
|
|
60
|
+
}
|
|
61
|
+
export interface RelationSearchResult {
|
|
62
|
+
id: string;
|
|
63
|
+
label: string;
|
|
64
|
+
description?: string;
|
|
32
65
|
}
|
|
33
66
|
export interface ClientLayoutItemField {
|
|
34
67
|
name: string;
|
|
@@ -37,8 +70,10 @@ export interface ClientLayoutItemField {
|
|
|
37
70
|
required: boolean;
|
|
38
71
|
disabled?: boolean;
|
|
39
72
|
multiple?: boolean;
|
|
73
|
+
header?: boolean;
|
|
74
|
+
defaultValue?: string | null;
|
|
75
|
+
listItems?: ClientListValue[] | null;
|
|
40
76
|
placeholder?: string;
|
|
41
|
-
listValues?: ClientListValue[];
|
|
42
77
|
accept?: string;
|
|
43
78
|
maxSize?: number;
|
|
44
79
|
decimalPrecision?: number;
|
|
@@ -48,29 +83,84 @@ export interface ClientLayoutItemRelation {
|
|
|
48
83
|
name: string;
|
|
49
84
|
label: string;
|
|
50
85
|
relatedClass: string;
|
|
51
|
-
|
|
86
|
+
mostSignificantClass?: string;
|
|
87
|
+
displayType?: ClientLayoutItemRelationDisplayType;
|
|
88
|
+
editBehavior?: ClientLayoutItemRelationEditBehavior | null;
|
|
52
89
|
required: boolean;
|
|
53
90
|
disabled?: boolean;
|
|
54
91
|
multiple?: boolean;
|
|
92
|
+
defaultValue?: string | null;
|
|
55
93
|
dropdownValues?: ClientListValue[];
|
|
56
94
|
}
|
|
95
|
+
export interface ClientLayoutItemNavigate {
|
|
96
|
+
dataClass: string;
|
|
97
|
+
icon?: string | null;
|
|
98
|
+
navigationType?: string | null;
|
|
99
|
+
}
|
|
100
|
+
export interface ClientLayoutItemView {
|
|
101
|
+
/** Key into the `views` map of DashboardMetadata. */
|
|
102
|
+
name: string;
|
|
103
|
+
dataClass: string;
|
|
104
|
+
showTitle: boolean;
|
|
105
|
+
}
|
|
106
|
+
export interface ClientLayoutItemRelatedView {
|
|
107
|
+
name: string;
|
|
108
|
+
fromClass?: string | null;
|
|
109
|
+
relatedClass: string;
|
|
110
|
+
filterClass?: string | null;
|
|
111
|
+
showTitle: boolean;
|
|
112
|
+
}
|
|
113
|
+
export interface ClientLayoutItemRelatedObject {
|
|
114
|
+
name: string;
|
|
115
|
+
relatedClass: string;
|
|
116
|
+
}
|
|
117
|
+
export interface ClientLayoutItemSearch {
|
|
118
|
+
dataClass: string;
|
|
119
|
+
showTitle: boolean;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* A single item in a ClientLayout. The `type` discriminator determines which
|
|
123
|
+
* optional fields are present. Components should only act on types they
|
|
124
|
+
* understand and ignore others.
|
|
125
|
+
*/
|
|
57
126
|
export interface ClientLayoutItem {
|
|
58
127
|
type: ClientLayoutItemType;
|
|
128
|
+
label?: string;
|
|
59
129
|
field?: ClientLayoutItemField;
|
|
60
130
|
relation?: ClientLayoutItemRelation;
|
|
61
|
-
label?: string;
|
|
62
131
|
items?: ClientLayoutItem[];
|
|
132
|
+
navigate?: ClientLayoutItemNavigate;
|
|
133
|
+
view?: ClientLayoutItemView;
|
|
134
|
+
relatedView?: ClientLayoutItemRelatedView;
|
|
135
|
+
relatedObject?: ClientLayoutItemRelatedObject;
|
|
136
|
+
search?: ClientLayoutItemSearch;
|
|
137
|
+
name?: string;
|
|
63
138
|
}
|
|
64
139
|
export interface ClientLayout {
|
|
140
|
+
type?: ClientLayoutType;
|
|
141
|
+
label?: string;
|
|
142
|
+
/** Used as the form title (mrd-form). */
|
|
65
143
|
title?: string;
|
|
144
|
+
tabPage?: boolean;
|
|
66
145
|
items: ClientLayoutItem[];
|
|
67
146
|
}
|
|
68
|
-
export interface
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
147
|
+
export interface ClientViewMetadata {
|
|
148
|
+
name: string | null;
|
|
149
|
+
defaultView: boolean;
|
|
150
|
+
defaultSort?: string | null;
|
|
151
|
+
/** Column definitions — each item is a FIELD or RELATION item. */
|
|
152
|
+
values: ClientLayoutItem[];
|
|
153
|
+
type?: string;
|
|
154
|
+
referenceType?: string | null;
|
|
155
|
+
filterType?: string | null;
|
|
156
|
+
singularLabel?: string;
|
|
157
|
+
pluralLabel?: string;
|
|
72
158
|
}
|
|
73
|
-
export interface
|
|
74
|
-
|
|
75
|
-
|
|
159
|
+
export interface ClientDashboardMetadata {
|
|
160
|
+
layouts: ClientLayout[];
|
|
161
|
+
views: Record<string, ClientViewMetadata>;
|
|
162
|
+
layoutType: ClientLayoutType;
|
|
163
|
+
_links?: Record<string, {
|
|
164
|
+
href: string;
|
|
165
|
+
}>;
|
|
76
166
|
}
|
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
label: string;
|
|
5
|
-
dataType?: string;
|
|
6
|
-
listItems?: Array<{
|
|
7
|
-
key: string;
|
|
8
|
-
label: string;
|
|
9
|
-
}>;
|
|
10
|
-
}
|
|
1
|
+
import { ClientLayoutItem } from '../types/client-layout';
|
|
2
|
+
/** TableColumn is an alias for ClientLayoutItem — used for table column definitions. */
|
|
3
|
+
export type TableColumn = ClientLayoutItem;
|
|
11
4
|
export declare class CellRenderer {
|
|
12
5
|
static render(column: TableColumn, row: Record<string, any>, locale: string): string;
|
|
13
6
|
private static renderValue;
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as t,c as r,h as e,H as s,g as a}from"./p-DQ_he8te.js";import{f as l,a as i,b as o,c as d,d as n,e as c}from"./p-Dt-aHxkM.js";class h{static render(t,r,e){var s,a;if("RELATION"===t.type){const e=null===(s=null==r?void 0:r._links)||void 0===s?void 0:s[t.name];return e?Array.isArray(e)?e.map((t=>{var r;return null!==(r=t.name)&&void 0!==r?r:""})).filter(Boolean).join(", "):null!==(a=e.name)&&void 0!==a?a:"":""}const l=null==r?void 0:r[t.name];return null==l||""===l?"":(Array.isArray(l)?l:[l]).map((r=>{var s;return h.renderValue(null!==(s=t.dataType)&&void 0!==s?s:"TEXT",r,t,e)})).filter((t=>""!==t)).join(", ")}static renderValue(t,r,e,s){var a,h;switch(t){case"INTEGER":return n(Number(r),s,{maximumFractionDigits:0});case"DECIMAL":return n(Number(r),s);case"PERCENTAGE":return c(Number(r),s);case"CURRENCY":{const{amount:t,currency:e}="object"==typeof r&&null!==r?r:{amount:r,currency:""};return e?d(Number(t),e,s):n(Number(t),s)}case"DATE":return o(r,s);case"DATETIME":return i(r,s);case"TIME":return l(r,s);case"BOOLEAN":return r?"✓":"";case"LIST":{const t=null===(a=e.listItems)||void 0===a?void 0:a.find((t=>t.key===String(r)));return null!==(h=null==t?void 0:t.label)&&void 0!==h?h:String(r)}case"TEXTBLOCK":return String(r).replace(/<[^>]*>/g,"").trim();default:return String(r)}}}const m=class{constructor(e){t(this,e),this.mrdLoadPage=r(this,"mrdLoadPage"),this.pendingPages=new Set,this.debounceTimer=null,this.columns=[],this.rows=[],this.locale=navigator.language,this.totalElements=0,this.pageSize=20,this.rowHeight=36,this.tableHeight=500,this.defaultSort="",this.loadedPages=new Map,this.requestedPages=new Set,this.renderStart=0,this.renderEnd=0,this.colWidths=[],this.sortField="",this.sortDir="asc",this.handleScroll=t=>{const r=this.totalElements,e=Math.floor(t.currentTarget.scrollTop/this.rowHeight),s=Math.min(e+this.visibleCount(),r-1);this.renderStart=Math.max(0,e-10),this.renderEnd=Math.min(r-1,s+10),this.requestPagesForWindow(this.renderStart,this.renderEnd)}}async init(){var t;if(null!==this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null),this.pendingPages.clear(),this.loadedPages=new Map,this.requestedPages=new Set,this.colWidths=[],this.defaultSort){const r=this.defaultSort.split(",");this.sortField=r[0].trim(),this.sortDir="desc"===(null===(t=r[1])||void 0===t?void 0:t.trim())?"desc":"asc"}else this.sortField="",this.sortDir="asc";this.renderStart=0,this.renderEnd=Math.max(0,Math.min(this.visibleCount()+10,this.totalElements-1));const r=this.el.querySelector(".mrd-table__scroll");r&&(r.scrollTop=0)}async setPage(t,r){const e=new Map(this.loadedPages);e.set(t,r),this.loadedPages=e}visibleCount(){return Math.ceil(this.tableHeight/this.rowHeight)}sortParam(){return this.sortField?"desc"===this.sortDir?`${this.sortField},desc`:this.sortField:""}handleSortClick(t){this.sortField===t.name?this.sortDir="asc"===this.sortDir?"desc":"asc":(this.sortField=t.name,this.sortDir="asc"),null!==this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null),this.pendingPages.clear(),this.loadedPages=new Map,this.requestedPages=new Set,this.colWidths=[],this.renderStart=0,this.renderEnd=Math.max(0,Math.min(this.visibleCount()+10,this.totalElements-1));const r=this.el.querySelector(".mrd-table__scroll");r&&(r.scrollTop=0),this.emitPagesForWindow(this.renderStart,this.renderEnd)}emitPagesForWindow(t,r){const e=Math.floor(t/this.pageSize),s=Math.floor(r/this.pageSize),a=new Set(this.requestedPages);let l=!1;for(let t=e;t<=s;t++)this.loadedPages.has(t)||a.has(t)||(a.add(t),this.mrdLoadPage.emit({page:t,sort:this.sortParam()}),l=!0);l&&(this.requestedPages=a)}getRow(t){var r;const e=this.loadedPages.get(Math.floor(t/this.pageSize));return null!==(r=null==e?void 0:e[t%this.pageSize])&&void 0!==r?r:null}requestPagesForWindow(t,r){const e=Math.floor(t/this.pageSize),s=Math.floor(r/this.pageSize);let a=!1;for(let t=e;t<=s;t++)this.loadedPages.has(t)||this.requestedPages.has(t)||this.pendingPages.has(t)||(this.pendingPages.add(t),a=!0);a&&(null!==this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout((()=>this.flushPendingPages()),150))}flushPendingPages(){if(this.debounceTimer=null,0===this.pendingPages.size)return;const t=new Set(this.requestedPages);let r=!1;for(const e of this.pendingPages){if(this.loadedPages.has(e)||t.has(e))continue;const s=e*this.pageSize;s+this.pageSize-1<this.renderStart||s>this.renderEnd||(t.add(e),this.mrdLoadPage.emit({page:e,sort:this.sortParam()}),r=!0)}this.pendingPages.clear(),r&&(this.requestedPages=t)}componentDidRender(){if(0===this.colWidths.length&&this.loadedPages.size>0&&this.totalElements>0){const t=this.el.querySelectorAll(".mrd-table__header");t.length>0&&(this.colWidths=Array.from(t).map((t=>t.offsetWidth)))}}render(){var t,r;if(!(null===(t=this.columns)||void 0===t?void 0:t.length))return null;const a=new Set(["INTEGER","DECIMAL","PERCENTAGE","CURRENCY"]);if(0===this.totalElements)return e(s,null,e("div",{class:"mrd-table"},e("table",{class:"mrd-table__table"},e("thead",null,e("tr",null,this.columns.map((t=>e("th",{class:"mrd-table__header"},t.label))))),e("tbody",null,null===(r=this.rows)||void 0===r?void 0:r.map(((t,r)=>e("tr",{class:"mrd-table__row",style:{background:r%2==0?"":"var(--mrd-color-neutral-100)"}},this.columns.map((r=>{var s;const l=h.render(r,t,this.locale),i="FIELD"===r.type&&a.has(null!==(s=r.dataType)&&void 0!==s?s:"");return e("td",{class:"mrd-table__cell"+(i?" mrd-table__cell--numeric":"")},l)}))))))),(!this.rows||0===this.rows.length)&&e("p",{class:"mrd-table__empty"},"Geen resultaten gevonden.")));const l=this.totalElements,i=this.columns.length,o=this.renderStart*this.rowHeight,d=Math.max(0,(l-1-this.renderEnd)*this.rowHeight),n=[];for(let t=this.renderStart;t<=this.renderEnd;t++){const r=this.getRow(t);n.push(null===r?e("tr",{class:"mrd-table__row mrd-table__row--loading"},e("td",{class:"mrd-table__cell--placeholder",colSpan:i},e("span",{class:"mrd-table__placeholder-bar"}))):e("tr",{class:"mrd-table__row",style:{background:t%2==0?"":"var(--mrd-color-neutral-100)"}},this.columns.map((t=>{var s;const l=h.render(t,r,this.locale),i="FIELD"===t.type&&a.has(null!==(s=t.dataType)&&void 0!==s?s:"");return e("td",{class:"mrd-table__cell"+(i?" mrd-table__cell--numeric":"")},l)}))))}return e(s,null,e("div",{class:"mrd-table__scroll",style:{height:`${this.tableHeight}px`},onScroll:this.handleScroll},e("table",{class:"mrd-table__table",style:this.colWidths.length>0?{tableLayout:"fixed"}:void 0},e("thead",null,e("tr",null,this.columns.map(((t,r)=>{const s=this.sortField===t.name;return e("th",{class:"mrd-table__header mrd-table__header--sortable"+(s?` mrd-table__header--sorted-${this.sortDir}`:""),style:this.colWidths[r]?{width:`${this.colWidths[r]}px`}:void 0,onClick:()=>this.handleSortClick(t)},e("span",{class:"mrd-table__header-label"},t.label),e("span",{class:"mrd-table__sort-icon","aria-hidden":"true"},s?"asc"===this.sortDir?"▲":"▼":"⇅"))})))),e("tbody",null,o>0&&e("tr",{class:"mrd-table__spacer",style:{height:`${o}px`}},e("td",{colSpan:i})),n,d>0&&e("tr",{class:"mrd-table__spacer",style:{height:`${d}px`}},e("td",{colSpan:i}))))),0===l&&e("p",{class:"mrd-table__empty"},"Geen resultaten gevonden."))}get el(){return a(this)}};m.style=".sc-mrd-table-h{display:block;width:100%}.mrd-table__scroll.sc-mrd-table{overflow-y:auto;overflow-x:auto;border:1px solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);overflow-anchor:none}.mrd-table.sc-mrd-table{overflow-x:auto}.mrd-table__table.sc-mrd-table{width:auto;min-width:100%;border-collapse:collapse;font-size:var(--mrd-font-size-sm);color:var(--mrd-color-neutral-900)}.mrd-table__scroll.sc-mrd-table .mrd-table__table.sc-mrd-table{min-width:max-content}.mrd-table__header.sc-mrd-table{position:sticky;top:0;z-index:1;background:var(--mrd-color-white);text-align:left;padding:var(--mrd-space-2) var(--mrd-space-4);border-bottom:2px solid var(--mrd-border-color);color:var(--mrd-color-neutral-600);font-weight:var(--mrd-font-weight-medium);white-space:nowrap;font-size:var(--mrd-font-size-xs);text-transform:uppercase;letter-spacing:0.04em}.mrd-table__header--sortable.sc-mrd-table{cursor:pointer;user-select:none}.mrd-table__header--sortable.sc-mrd-table:hover{background:var(--mrd-color-neutral-50);color:var(--mrd-color-neutral-800)}.mrd-table__header--sorted-asc.sc-mrd-table,.mrd-table__header--sorted-desc.sc-mrd-table{color:var(--mrd-color-primary);border-bottom-color:var(--mrd-color-primary)}.mrd-table__header-label.sc-mrd-table{margin-right:var(--mrd-space-1)}.mrd-table__sort-icon.sc-mrd-table{font-size:0.65rem;opacity:0.4;vertical-align:middle}.mrd-table__header--sorted-asc.sc-mrd-table .mrd-table__sort-icon.sc-mrd-table,.mrd-table__header--sorted-desc.sc-mrd-table .mrd-table__sort-icon.sc-mrd-table{opacity:1;color:var(--mrd-color-primary)}.mrd-table__row.sc-mrd-table{border-bottom:1px solid var(--mrd-border-color)}.mrd-table__row.sc-mrd-table:hover{background:var(--mrd-color-neutral-200) !important}.mrd-table__spacer.sc-mrd-table{border:none}.mrd-table__spacer.sc-mrd-table td.sc-mrd-table{padding:0;border:none}.mrd-table__cell.sc-mrd-table{padding:var(--mrd-space-2) var(--mrd-space-4);vertical-align:top;white-space:nowrap}.mrd-table__cell--numeric.sc-mrd-table{text-align:right;font-variant-numeric:tabular-nums}.mrd-table__row--loading.sc-mrd-table{background:transparent}.mrd-table__cell--placeholder.sc-mrd-table{padding:var(--mrd-space-2) var(--mrd-space-4);border-bottom:1px solid var(--mrd-border-color)}.mrd-table__placeholder-bar.sc-mrd-table{display:block;height:0.75rem;width:55%;border-radius:var(--mrd-border-radius-sm);background:linear-gradient( 90deg, var(--mrd-color-neutral-200) 25%, var(--mrd-color-neutral-100) 50%, var(--mrd-color-neutral-200) 75% );background-size:200% 100%;animation:mrd-shimmer 1.4s ease infinite}@keyframes mrd-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}.mrd-table__empty.sc-mrd-table{padding:var(--mrd-space-4) var(--mrd-space-3);color:var(--mrd-color-neutral-500);font-size:var(--mrd-font-size-sm);text-align:center;margin:0}";export{m as mrd_table}
|