@mmlogic/components 0.3.10 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/dist/cjs/{index-BPj2cBXs.js → index-CAzwGt9u.js} +38 -0
  2. package/dist/cjs/loader.cjs.js +2 -2
  3. package/dist/cjs/mosterdcomponents.cjs.js +2 -2
  4. package/dist/cjs/mrd-boolean-field_23.cjs.entry.js +1280 -1073
  5. package/dist/collection/collection-manifest.json +23 -23
  6. package/dist/collection/components/{mrd-document-container/mrd-document-container.scss → documents/mrd-document-container/mrd-document-container.css} +3 -3
  7. package/dist/collection/components/{mrd-document-container → documents/mrd-document-container}/mrd-document-container.js +54 -8
  8. package/dist/collection/components/documents/mrd-document-list/folder-tree.js +109 -0
  9. package/dist/collection/components/{mrd-document-list/mrd-document-list.scss → documents/mrd-document-list/mrd-document-list.css} +17 -4
  10. package/dist/collection/components/{mrd-document-list → documents/mrd-document-list}/mrd-document-list.js +166 -237
  11. package/dist/collection/components/documents/mrd-document-list/tree-view.js +75 -0
  12. package/dist/collection/components/{mrd-document-view/mrd-document-view.scss → documents/mrd-document-view/mrd-document-view.css} +1 -1
  13. package/dist/collection/components/{mrd-document-view → documents/mrd-document-view}/mrd-document-view.js +4 -4
  14. package/dist/collection/components/fields/field-helpers.js +17 -0
  15. package/dist/collection/components/fields/file-upload-common.js +38 -0
  16. package/dist/collection/components/{mrd-boolean-field/mrd-boolean-field.scss → fields/mrd-boolean-field/mrd-boolean-field.css} +3 -3
  17. package/dist/collection/components/{mrd-boolean-field → fields/mrd-boolean-field}/mrd-boolean-field.js +1 -1
  18. package/dist/collection/components/{mrd-currency-field/mrd-currency-field.scss → fields/mrd-currency-field/mrd-currency-field.css} +11 -9
  19. package/dist/collection/components/{mrd-currency-field → fields/mrd-currency-field}/mrd-currency-field.js +7 -13
  20. package/dist/collection/components/{mrd-date-field/mrd-date-field.scss → fields/mrd-date-field/mrd-date-field.css} +8 -10
  21. package/dist/collection/components/{mrd-date-field → fields/mrd-date-field}/mrd-date-field.js +3 -10
  22. package/dist/collection/components/{mrd-datetime-field/mrd-datetime-field.scss → fields/mrd-datetime-field/mrd-datetime-field.css} +8 -10
  23. package/dist/collection/components/{mrd-datetime-field → fields/mrd-datetime-field}/mrd-datetime-field.js +3 -10
  24. package/dist/collection/components/{mrd-email-field/mrd-email-field.scss → fields/mrd-email-field/mrd-email-field.css} +2 -11
  25. package/dist/collection/components/{mrd-email-field → fields/mrd-email-field}/mrd-email-field.js +6 -13
  26. package/dist/collection/components/{mrd-file-field/mrd-file-field.scss → fields/mrd-file-field/mrd-file-field.css} +19 -24
  27. package/dist/collection/components/{mrd-file-field → fields/mrd-file-field}/mrd-file-field.js +13 -24
  28. package/dist/collection/components/{mrd-hyperlink-field/mrd-hyperlink-field.scss → fields/mrd-hyperlink-field/mrd-hyperlink-field.css} +7 -16
  29. package/dist/collection/components/{mrd-hyperlink-field → fields/mrd-hyperlink-field}/mrd-hyperlink-field.js +9 -15
  30. package/dist/collection/components/{mrd-image-field/mrd-image-field.scss → fields/mrd-image-field/mrd-image-field.css} +15 -24
  31. package/dist/collection/components/{mrd-image-field → fields/mrd-image-field}/mrd-image-field.js +13 -28
  32. package/dist/collection/components/{mrd-list-field/mrd-list-field.scss → fields/mrd-list-field/mrd-list-field.css} +18 -21
  33. package/dist/collection/components/{mrd-list-field → fields/mrd-list-field}/mrd-list-field.js +10 -25
  34. package/dist/collection/components/{mrd-longtext-field/mrd-longtext-field.scss → fields/mrd-longtext-field/mrd-longtext-field.css} +21 -18
  35. package/dist/collection/components/{mrd-longtext-field → fields/mrd-longtext-field}/mrd-longtext-field.js +3 -10
  36. package/dist/collection/components/{mrd-number-field/mrd-number-field.scss → fields/mrd-number-field/mrd-number-field.css} +9 -10
  37. package/dist/collection/components/{mrd-number-field → fields/mrd-number-field}/mrd-number-field.js +7 -6
  38. package/dist/collection/components/{mrd-relation-field/mrd-relation-field.scss → fields/mrd-relation-field/mrd-relation-field.css} +61 -59
  39. package/dist/collection/components/{mrd-relation-field → fields/mrd-relation-field}/mrd-relation-field.js +16 -26
  40. package/dist/collection/components/{mrd-secret-field/mrd-secret-field.scss → fields/mrd-secret-field/mrd-secret-field.css} +7 -10
  41. package/dist/collection/components/{mrd-secret-field → fields/mrd-secret-field}/mrd-secret-field.js +4 -11
  42. package/dist/collection/components/{mrd-text-field/mrd-text-field.scss → fields/mrd-text-field/mrd-text-field.css} +2 -11
  43. package/dist/collection/components/{mrd-text-field → fields/mrd-text-field}/mrd-text-field.js +3 -10
  44. package/dist/collection/components/{mrd-textarea-field/mrd-textarea-field.scss → fields/mrd-textarea-field/mrd-textarea-field.css} +7 -10
  45. package/dist/collection/components/{mrd-textarea-field → fields/mrd-textarea-field}/mrd-textarea-field.js +3 -9
  46. package/dist/collection/components/{mrd-time-field/mrd-time-field.scss → fields/mrd-time-field/mrd-time-field.css} +8 -10
  47. package/dist/collection/components/{mrd-time-field → fields/mrd-time-field}/mrd-time-field.js +3 -10
  48. package/dist/collection/components/{mrd-field/mrd-field.scss → form/mrd-field/mrd-field.css} +1 -1
  49. package/dist/collection/components/{mrd-field → form/mrd-field}/mrd-field.js +3 -3
  50. package/dist/collection/components/{mrd-form/mrd-form.scss → form/mrd-form/mrd-form.css} +1 -1
  51. package/dist/collection/components/{mrd-form → form/mrd-form}/mrd-form.js +5 -5
  52. package/dist/collection/components/layout/mrd-layout-section/field-value.js +111 -0
  53. package/dist/collection/components/layout/mrd-layout-section/layout-helpers.js +29 -0
  54. package/dist/collection/components/{mrd-layout-section/mrd-layout-section.scss → layout/mrd-layout-section/mrd-layout-section.css} +4 -4
  55. package/dist/collection/components/{mrd-layout-section → layout/mrd-layout-section}/mrd-layout-section.js +58 -133
  56. package/dist/collection/components/{mrd-table/mrd-table.scss → table/mrd-table/mrd-table.css} +11 -13
  57. package/dist/collection/components/{mrd-table → table/mrd-table}/mrd-table.js +111 -439
  58. package/dist/collection/components/table/mrd-table/table-filter-popup.js +85 -0
  59. package/dist/collection/components/table/mrd-table/table-parts.js +110 -0
  60. package/dist/collection/components/table/mrd-table/table-query.js +178 -0
  61. package/dist/collection/components/table/mrd-table/virtual-scroll.js +49 -0
  62. package/dist/collection/dev/app.js +19 -18
  63. package/dist/collection/dev/example-data.js +58 -43
  64. package/dist/collection/utils/i18n.js +10 -0
  65. package/dist/collection/utils/query-params.js +43 -0
  66. package/dist/components/field-helpers.js +1 -0
  67. package/dist/components/file-upload-common.js +1 -0
  68. package/dist/components/i18n.js +1 -1
  69. package/dist/components/mrd-boolean-field2.js +1 -1
  70. package/dist/components/mrd-currency-field2.js +1 -1
  71. package/dist/components/mrd-date-field2.js +1 -1
  72. package/dist/components/mrd-datetime-field2.js +1 -1
  73. package/dist/components/mrd-document-container2.js +1 -1
  74. package/dist/components/mrd-document-list2.js +1 -1
  75. package/dist/components/mrd-document-view2.js +1 -1
  76. package/dist/components/mrd-email-field2.js +1 -1
  77. package/dist/components/mrd-file-field2.js +1 -1
  78. package/dist/components/mrd-form.js +1 -1
  79. package/dist/components/mrd-hyperlink-field2.js +1 -1
  80. package/dist/components/mrd-image-field2.js +1 -1
  81. package/dist/components/mrd-layout-section.js +1 -1
  82. package/dist/components/mrd-list-field2.js +1 -1
  83. package/dist/components/mrd-longtext-field2.js +1 -1
  84. package/dist/components/mrd-number-field2.js +1 -1
  85. package/dist/components/mrd-relation-field2.js +1 -1
  86. package/dist/components/mrd-secret-field2.js +1 -1
  87. package/dist/components/mrd-table2.js +1 -1
  88. package/dist/components/mrd-text-field2.js +1 -1
  89. package/dist/components/mrd-textarea-field2.js +1 -1
  90. package/dist/components/mrd-time-field2.js +1 -1
  91. package/dist/components/query-params.js +1 -0
  92. package/dist/esm/{index-_tsCCkAi.js → index-DiSEJMA8.js} +38 -1
  93. package/dist/esm/loader.js +3 -3
  94. package/dist/esm/mosterdcomponents.js +3 -3
  95. package/dist/esm/mrd-boolean-field_23.entry.js +1280 -1073
  96. package/dist/mosterdcomponents/mosterdcomponents.css +1 -1
  97. package/dist/mosterdcomponents/mosterdcomponents.esm.js +1 -1
  98. package/dist/mosterdcomponents/p-9b3c0917.entry.js +1 -0
  99. package/dist/mosterdcomponents/p-DiSEJMA8.js +2 -0
  100. package/dist/types/components/{mrd-document-container → documents/mrd-document-container}/mrd-document-container.d.ts +7 -2
  101. package/dist/types/components/documents/mrd-document-list/folder-tree.d.ts +66 -0
  102. package/dist/types/components/{mrd-document-list → documents/mrd-document-list}/mrd-document-list.d.ts +28 -38
  103. package/dist/types/components/documents/mrd-document-list/tree-view.d.ts +32 -0
  104. package/dist/types/components/{mrd-document-view → documents/mrd-document-view}/mrd-document-view.d.ts +2 -2
  105. package/dist/types/components/fields/field-helpers.d.ts +18 -0
  106. package/dist/types/components/fields/file-upload-common.d.ts +18 -0
  107. package/dist/types/components/{mrd-boolean-field → fields/mrd-boolean-field}/mrd-boolean-field.d.ts +1 -1
  108. package/dist/types/components/{mrd-currency-field → fields/mrd-currency-field}/mrd-currency-field.d.ts +2 -2
  109. package/dist/types/components/{mrd-date-field → fields/mrd-date-field}/mrd-date-field.d.ts +1 -1
  110. package/dist/types/components/{mrd-datetime-field → fields/mrd-datetime-field}/mrd-datetime-field.d.ts +1 -1
  111. package/dist/types/components/{mrd-email-field → fields/mrd-email-field}/mrd-email-field.d.ts +1 -1
  112. package/dist/types/components/{mrd-file-field → fields/mrd-file-field}/mrd-file-field.d.ts +2 -4
  113. package/dist/types/components/{mrd-hyperlink-field → fields/mrd-hyperlink-field}/mrd-hyperlink-field.d.ts +2 -2
  114. package/dist/types/components/{mrd-image-field → fields/mrd-image-field}/mrd-image-field.d.ts +2 -4
  115. package/dist/types/components/{mrd-list-field → fields/mrd-list-field}/mrd-list-field.d.ts +2 -2
  116. package/dist/types/components/{mrd-longtext-field → fields/mrd-longtext-field}/mrd-longtext-field.d.ts +1 -1
  117. package/dist/types/components/{mrd-number-field → fields/mrd-number-field}/mrd-number-field.d.ts +2 -2
  118. package/dist/types/components/{mrd-relation-field → fields/mrd-relation-field}/mrd-relation-field.d.ts +2 -2
  119. package/dist/types/components/{mrd-secret-field → fields/mrd-secret-field}/mrd-secret-field.d.ts +1 -1
  120. package/dist/types/components/{mrd-text-field → fields/mrd-text-field}/mrd-text-field.d.ts +1 -1
  121. package/dist/types/components/{mrd-textarea-field → fields/mrd-textarea-field}/mrd-textarea-field.d.ts +1 -1
  122. package/dist/types/components/{mrd-time-field → fields/mrd-time-field}/mrd-time-field.d.ts +1 -1
  123. package/dist/types/components/{mrd-field → form/mrd-field}/mrd-field.d.ts +2 -2
  124. package/dist/types/components/{mrd-form → form/mrd-form}/mrd-form.d.ts +2 -2
  125. package/dist/types/components/layout/mrd-layout-section/field-value.d.ts +22 -0
  126. package/dist/types/components/layout/mrd-layout-section/layout-helpers.d.ts +8 -0
  127. package/dist/types/components/{mrd-layout-section → layout/mrd-layout-section}/mrd-layout-section.d.ts +4 -8
  128. package/dist/types/components/{mrd-table → table/mrd-table}/mrd-table.d.ts +6 -13
  129. package/dist/types/components/table/mrd-table/table-filter-popup.d.ts +35 -0
  130. package/dist/types/components/table/mrd-table/table-parts.d.ts +61 -0
  131. package/dist/types/components/table/mrd-table/table-query.d.ts +50 -0
  132. package/dist/types/components/table/mrd-table/virtual-scroll.d.ts +26 -0
  133. package/dist/types/components.d.ts +36 -5
  134. package/dist/types/types/client-layout.d.ts +5 -0
  135. package/dist/types/utils/query-params.d.ts +14 -0
  136. package/package.json +7 -2
  137. package/dist/components/validation.js +0 -1
  138. package/dist/mosterdcomponents/cell-renderer-B-AJDBcj.js.map +0 -1
  139. package/dist/mosterdcomponents/client-layout-ChqRA3AF.js.map +0 -1
  140. package/dist/mosterdcomponents/format-BAfsQfy1.js.map +0 -1
  141. package/dist/mosterdcomponents/i18n-s1XrKcD2.js.map +0 -1
  142. package/dist/mosterdcomponents/index-DkY-NQj0.js.map +0 -1
  143. package/dist/mosterdcomponents/index-DwF_Sp__.js.map +0 -1
  144. package/dist/mosterdcomponents/index.esm.js.map +0 -1
  145. package/dist/mosterdcomponents/mosterdcomponents.esm.js.map +0 -1
  146. package/dist/mosterdcomponents/p-69452249.entry.js +0 -1
  147. package/dist/mosterdcomponents/p-_tsCCkAi.js +0 -2
  148. package/dist/mosterdcomponents/quill-C9pgw_k-.js.map +0 -1
  149. package/dist/mosterdcomponents/validation-Br9k2Ztw.js.map +0 -1
@@ -1 +1 @@
1
- import{proxyCustomElement as e,HTMLElement as i,createEvent as r,h as l,Host as d,transformTag as o}from"@stencil/core/internal/client";import{t}from"./i18n.js";const s=e(class extends i{constructor(e){super(),!1!==e&&this.__registerHost(),this.mrdChange=r(this,"mrdChange",7),this.mrdBlur=r(this,"mrdBlur",7),this.mrdUpload=r(this,"mrdUpload",7),this.name="",this.label="",this.value=null,this.required=!1,this.disabled=!1,this.locale=navigator.language,this.accept="",this.maxSize=0,this.fileName="",this.isDragging=!1,this.uploading=!1,this.error="",this.handleInputChange=e=>{var i;const r=e.target.files;this.handleFile(null!==(i=null==r?void 0:r[0])&&void 0!==i?i:null)},this.handleDragOver=e=>{e.preventDefault(),this.isDragging=!0},this.handleDragLeave=()=>{this.isDragging=!1},this.handleDrop=e=>{var i,r,l;e.preventDefault(),this.isDragging=!1;const d=null!==(l=null===(r=null===(i=e.dataTransfer)||void 0===i?void 0:i.files)||void 0===r?void 0:r[0])&&void 0!==l?l:null;this.handleFile(d)},this.handleZoneClick=()=>{var e;this.disabled||this.uploading||null===(e=this.fileInputRef)||void 0===e||e.click()},this.handleClear=e=>{e.stopPropagation(),this.fileName="",this.error="",this.uploading=!1,this.fileInputRef&&(this.fileInputRef.value=""),this.mrdChange.emit({name:this.name,value:null})}}valueChanged(e){"string"==typeof e&&e?this.uploading=!1:e||(this.uploading=!1,this.fileName="")}handleFile(e){if(!e)return this.fileName="",this.uploading=!1,void this.mrdChange.emit({name:this.name,value:null});this.maxSize>0&&e.size>this.maxSize?this.error=t("file_too_large",this.locale):(this.error="",this.fileName=e.name,this.uploading=!0,this.mrdChange.emit({name:this.name,value:e}),this.mrdUpload.emit({name:this.name,file:e}))}render(){const e=this.uploading||"string"==typeof this.value&&this.value||this.fileName,i=!!this.error,r=["mrd-file-field__zone",this.isDragging?"mrd-file-field__zone--dragging":"",i?"mrd-file-field__zone--error":"",this.disabled||this.uploading?"mrd-file-field__zone--disabled":""].filter(Boolean).join(" ");return l(d,{key:"095bb39f3cb1680cf5e7e51bdfd06d8eb087f237"},l("div",{key:"7e5b5fe6e63b6530221083c8bcb82bcac59a5fe7",class:"mrd-file-field"},this.label&&l("label",{key:"c34723f4199371d6fe8ea87463d878b89c038590",class:"mrd-file-field__label"+(this.required?" mrd-file-field__label--required":"")},this.label),l("div",{key:"4727667345d3cd4a5c65a431744a09f366943c13",class:r,onClick:this.handleZoneClick,onDragOver:this.handleDragOver,onDragLeave:this.handleDragLeave,onDrop:this.handleDrop},l("input",{key:"45ed41c0f094dbe269561c8586e473f908cdf4a4",ref:e=>this.fileInputRef=e,class:"mrd-file-field__input",type:"file",name:this.name,accept:this.accept,disabled:this.disabled||this.uploading,required:this.required&&!e,onChange:this.handleInputChange}),e?l("div",{class:"mrd-file-field__selected"},this.uploading?l("span",{class:"mrd-file-field__spinner","aria-label":t("loading",this.locale)}):l("svg",{class:"mrd-file-field__icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},l("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),l("polyline",{points:"14 2 14 8 20 8"})),l("span",{class:"mrd-file-field__filename"},this.fileName),!this.uploading&&l("button",{class:"mrd-file-field__clear",type:"button",onClick:this.handleClear,"aria-label":t("clear",this.locale)},"✕")):l("div",{class:"mrd-file-field__prompt"},l("svg",{class:"mrd-file-field__upload-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},l("polyline",{points:"16 16 12 12 8 16"}),l("line",{x1:"12",y1:"12",x2:"12",y2:"21"}),l("path",{d:"M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3"})),l("span",null,t("drop_file_here",this.locale)," ",l("span",{class:"mrd-file-field__browse"},t("browse",this.locale))))),i&&l("span",{key:"00ce94ead3c32ed63e903cfd9d8480084a308d84",class:"mrd-file-field__error"},this.error)))}static get watchers(){return{value:[{valueChanged:0}]}}static get style(){return".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__spinner.sc-mrd-file-field{display:inline-block;flex-shrink:0;width:18px;height:18px;border:2px solid var(--mrd-color-neutral-300);border-top-color:var(--mrd-color-primary);border-radius:50%;animation:mrd-file-spin 0.6s linear infinite}@keyframes mrd-file-spin{to{transform:rotate(360deg)}}.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)}"}},[2,"mrd-file-field",{name:[1],label:[1],value:[16],required:[4],disabled:[4],locale:[1],accept:[1],maxSize:[2,"max-size"],fileName:[32],isDragging:[32],uploading:[32],error:[32]},void 0,{value:[{valueChanged:0}]}]);function a(){"undefined"!=typeof customElements&&["mrd-file-field"].forEach((e=>{"mrd-file-field"===e&&(customElements.get(o(e))||customElements.define(o(e),s))}))}export{s as M,a as d}
1
+ import{proxyCustomElement as e,HTMLElement as i,createEvent as r,h as l,Host as d,transformTag as o}from"@stencil/core/internal/client";import{t as s}from"./i18n.js";import{F as t,a}from"./field-helpers.js";import{m as f,v as n,u as m}from"./file-upload-common.js";const c=e(class extends i{constructor(e){super(),!1!==e&&this.__registerHost(),this.mrdChange=r(this,"mrdChange",7),this.mrdBlur=r(this,"mrdBlur",7),this.mrdUpload=r(this,"mrdUpload",7),this.name="",this.label="",this.value=null,this.required=!1,this.disabled=!1,this.locale=navigator.language,this.accept="",this.maxSize=0,this.fileName="",this.isDragging=!1,this.uploading=!1,this.error="",this.handleInputChange=e=>{var i;const r=e.target.files;this.handleFile(null!==(i=null==r?void 0:r[0])&&void 0!==i?i:null)},this.drag=f((e=>this.isDragging=e),(e=>this.handleFile(e))),this.handleZoneClick=()=>{var e;this.disabled||this.uploading||null===(e=this.fileInputRef)||void 0===e||e.click()},this.handleClear=e=>{e.stopPropagation(),this.fileName="",this.error="",this.uploading=!1,this.fileInputRef&&(this.fileInputRef.value=""),this.mrdChange.emit({name:this.name,value:null})}}valueChanged(e){"string"==typeof e&&e?this.uploading=!1:e||(this.uploading=!1,this.fileName="")}handleFile(e){if(!e)return this.fileName="",this.uploading=!1,void this.mrdChange.emit({name:this.name,value:null});const i=n(e,this.maxSize,this.locale);i?this.error=i:(this.error="",this.fileName=e.name,this.uploading=!0,this.mrdChange.emit({name:this.name,value:e}),this.mrdUpload.emit({name:this.name,file:e}))}render(){const e=this.uploading||"string"==typeof this.value&&this.value||this.fileName,i=m("mrd-file-field",{dragging:this.isDragging,error:!!this.error,disabled:this.disabled||this.uploading});return l(d,{key:"2c4cee79cd0f95ed3750dfc86007a2b36aa3da15"},l("div",{key:"5b47d0f83e8e38b22bb04409544ec2af580274f1",class:"mrd-file-field"},l(t,{key:"47a92d5680670bf750854fa6e7883da54a40baec",base:"mrd-file-field",label:this.label,required:this.required}),l("div",{key:"684f6ab39c32635fb5ca966ccab4a061d8682f89",class:i,onClick:this.handleZoneClick,onDragOver:this.drag.onDragOver,onDragLeave:this.drag.onDragLeave,onDrop:this.drag.onDrop},l("input",{key:"a47231d8c68280623daf0c5a2e4341417e7a88d0",ref:e=>this.fileInputRef=e,class:"mrd-file-field__input",type:"file",name:this.name,accept:this.accept,disabled:this.disabled||this.uploading,required:this.required&&!e,onChange:this.handleInputChange}),e?l("div",{class:"mrd-file-field__selected"},this.uploading?l("span",{class:"mrd-file-field__spinner","aria-label":s("loading",this.locale)}):l("svg",{class:"mrd-file-field__icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},l("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),l("polyline",{points:"14 2 14 8 20 8"})),l("span",{class:"mrd-file-field__filename"},this.fileName),!this.uploading&&l("button",{class:"mrd-file-field__clear",type:"button",onClick:this.handleClear,"aria-label":s("clear",this.locale)},"✕")):l("div",{class:"mrd-file-field__prompt"},l("svg",{class:"mrd-file-field__upload-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},l("polyline",{points:"16 16 12 12 8 16"}),l("line",{x1:"12",y1:"12",x2:"12",y2:"21"}),l("path",{d:"M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3"})),l("span",null,s("drop_file_here",this.locale)," ",l("span",{class:"mrd-file-field__browse"},s("browse",this.locale))))),l(a,{key:"5f18e91aa94319a5571c368e745c108fb0d371a7",base:"mrd-file-field",error:this.error})))}static get watchers(){return{value:[{valueChanged:0}]}}static get style(){return'.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__error.sc-mrd-file-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}.mrd-file-field__zone.sc-mrd-file-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-file-field__zone.sc-mrd-file-field:hover,.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__zone.sc-mrd-file-field{padding:var(--mrd-space-6)}.mrd-file-field__input.sc-mrd-file-field{position:absolute;inset:0;opacity:0;width:100%;height:100%;pointer-events:none;cursor:pointer}.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__spinner.sc-mrd-file-field{display:inline-block;width:18px;height:18px;border:2px solid var(--mrd-color-neutral-300);border-top-color:var(--mrd-color-primary);border-radius:50%;animation:mrd-spin 0.6s linear infinite;flex-shrink:0}@keyframes mrd-spin{to{transform:rotate(360deg)}}'}},[2,"mrd-file-field",{name:[1],label:[1],value:[16],required:[4],disabled:[4],locale:[1],accept:[1],maxSize:[2,"max-size"],fileName:[32],isDragging:[32],uploading:[32],error:[32]},void 0,{value:[{valueChanged:0}]}]);function h(){"undefined"!=typeof customElements&&["mrd-file-field"].forEach((e=>{"mrd-file-field"===e&&(customElements.get(o(e))||customElements.define(o(e),c))}))}export{c as M,h as d}
@@ -1 +1 @@
1
- import{proxyCustomElement as r,HTMLElement as e,createEvent as t,h as i,Host as o,transformTag as s}from"@stencil/core/internal/client";import{a as d,d as m}from"./client-layout.js";import{t as l}from"./i18n.js";import{v as a}from"./validation.js";import{d as n}from"./mrd-boolean-field2.js";import{d as c}from"./mrd-currency-field2.js";import{d as f}from"./mrd-date-field2.js";import{d as u}from"./mrd-datetime-field2.js";import{d as h}from"./mrd-email-field2.js";import{d as v}from"./mrd-field2.js";import{d as p}from"./mrd-file-field2.js";import{d as b}from"./mrd-hyperlink-field2.js";import{d as g}from"./mrd-image-field2.js";import{d as _}from"./mrd-list-field2.js";import{d as y}from"./mrd-longtext-field2.js";import{d as j}from"./mrd-number-field2.js";import{d as k}from"./mrd-relation-field2.js";import{d as x}from"./mrd-secret-field2.js";import{d as w}from"./mrd-text-field2.js";import{d as O}from"./mrd-textarea-field2.js";import{d as E}from"./mrd-time-field2.js";const C=r(class extends e{constructor(r){super(),!1!==r&&this.__registerHost(),this.mrdSubmit=t(this,"mrdSubmit",7),this.mrdCancel=t(this,"mrdCancel",7),this.mrdSearch=t(this,"mrdSearch",7),this.mrdFetchAll=t(this,"mrdFetchAll",7),this.mrdUpload=t(this,"mrdUpload",7),this.locale=navigator.language,this.values={},this.referenceHref="",this.referenceClass="",this.showCancel=!1,this.me=null,this.formValues={},this.errors={},this.submitted=!1,this.initialValues={},this.handleFieldChange=r=>{const{name:e,value:t}=r.detail,i=this.getHref(this.formValues[e]);this.formValues=Object.assign(Object.assign({},this.formValues),{[e]:t}),this.errors[e]&&(this.errors=Object.assign(Object.assign({},this.errors),{[e]:""}));const o=this.getHref(t);if(o!==i)for(const r of this.collectDependentDropdowns())r.commonRelation===e&&(this.formValues=Object.assign(Object.assign({},this.formValues),{[r.name]:null}),this.mrdFetchAll.emit({name:r.name,relatedClass:r.relatedClass,mostSignificantClass:r.mostSignificantClass,commonRelation:r.commonRelation,filter:r.commonRelation+"_href",filterValue:o}))},this.handleSearch=r=>{r.stopPropagation(),this.mrdSearch.emit(r.detail)},this.handleFetchAll=r=>{r.stopPropagation(),this.mrdFetchAll.emit(r.detail)},this.handleUpload=r=>{r.stopPropagation(),this.mrdUpload.emit(r.detail)},this.handleSubmit=r=>{r.preventDefault(),this.submitted=!0,this.validate()&&this.mrdSubmit.emit(this.buildSubmitPayload())}}componentWillLoad(){var r,e;this.initialValues=Object.assign({},null!==(r=this.values)&&void 0!==r?r:{}),this.formValues=Object.assign({},null!==(e=this.values)&&void 0!==e?e:{}),this.applyDefaultValues()}componentDidLoad(){setTimeout((()=>{this.applyReferenceValue(),this.emitDependentFetchAll()}),0)}valuesChanged(r){this.initialValues=Object.assign({},null!=r?r:{}),this.formValues=Object.assign({},null!=r?r:{}),this.applyReferenceValue(),this.applyDefaultValues(),this.errors={},this.submitted=!1,setTimeout((()=>this.emitDependentFetchAll()),0)}meChanged(){this.applyDefaultValues()}applyDefaultValues(){var r,e,t,i,o,s,m,l;const a=this.collectFields(null!==(e=null===(r=this.layout)||void 0===r?void 0:r.items)&&void 0!==e?e:[]),n={};for(const r of a){if(!r.name)continue;const e=this.formValues[r.name];if(null!=e&&""!==e)continue;const a=null!==(o=null!==(t=r.defaultValue)&&void 0!==t?t:null===(i=r.field)||void 0===i?void 0:i.defaultValue)&&void 0!==o?o:null===(s=r.relation)||void 0===s?void 0:s.defaultValue;if(a)if(r.type===d.FIELD){const e=this.resolveFieldDefault(a,null!==(m=r.dataType)&&void 0!==m?m:null===(l=r.field)||void 0===l?void 0:l.dataType);null!=e&&(n[r.name]=e)}else r.type===d.RELATION&&"me()"===a&&this.me&&(n[r.name]=this.me)}Object.keys(n).length>0&&(this.formValues=Object.assign(Object.assign({},this.formValues),n))}resolveFieldDefault(r,e){return"today()"===r?(new Date).toISOString().slice(0,10):"now()"===r?(new Date).toISOString().replace(/\.\d{3}Z$/,"Z"):r}applyReferenceValue(){if(!this.referenceHref||!this.referenceClass)return;const r=this.resolveReferenceFieldName();r&&(this.formValues[r]||(this.formValues=Object.assign(Object.assign({},this.formValues),{[r]:this.referenceHref})))}resolveReferenceFieldName(){var r,e;const t=this.collectFields(null!==(e=null===(r=this.layout)||void 0===r?void 0:r.items)&&void 0!==e?e:[]),i=t.find((r=>r.type===d.RELATION&&r.mostSignificantClass===this.referenceClass));if(null==i?void 0:i.name)return i.name;const o=new Set(t.filter((r=>r.type===d.RELATION)).map((r=>r.name)));for(const r of t)if(r.type===d.RELATION&&r.editBehavior===m.DROPDOWN&&r.commonRelation&&!o.has(r.commonRelation))return r.commonRelation;return null}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]:""}))}collectDependentDropdowns(){var r,e;return this.collectFields(null!==(e=null===(r=this.layout)||void 0===r?void 0:r.items)&&void 0!==e?e:[]).filter((r=>r.type===d.RELATION&&r.editBehavior===m.DROPDOWN&&!!r.commonRelation))}emitDependentFetchAll(){for(const r of this.collectDependentDropdowns()){const e=this.getHref(this.formValues[r.commonRelation]);e&&this.mrdFetchAll.emit({name:r.name,relatedClass:r.relatedClass,mostSignificantClass:r.mostSignificantClass,commonRelation:r.commonRelation,filter:r.commonRelation+"_href",filterValue:e})}}getHref(r){return r?"string"==typeof r?r:"object"==typeof r&&"id"in r?r.id:"":""}collectFields(r){const e=[];for(const t of r)t.type!==d.FIELD&&t.type!==d.RELATION||e.push(t),t.items&&e.push(...this.collectFields(t.items));return e}validate(){var r,e;const t={},i=this.collectFields(null!==(e=null===(r=this.layout)||void 0===r?void 0:r.items)&&void 0!==e?e:[]);for(const r of i)r.name&&r.required&&!a(this.formValues[r.name])&&(t[r.name]=l("required",this.locale));return this.errors=t,0===Object.keys(t).length}normalizeFieldValue(r){return""===r||null==r?null:r}normalizeRelationValue(r){return null==r||""===r?null:"string"==typeof r?r||null:Array.isArray(r)?r.map((r=>"object"==typeof r&&null!==r&&"id"in r?r.id:r+"")):"object"==typeof r&&"id"in r&&r.id||null}deepEqual(r,e){if(r===e)return!0;if(null==r&&null==e)return!0;if(null==r||null==e)return!1;if(Array.isArray(r)&&Array.isArray(e)){if(r.length!==e.length)return!1;const t=[...r].sort(),i=[...e].sort();return JSON.stringify(t)===JSON.stringify(i)}return JSON.stringify(r)===JSON.stringify(e)}buildSubmitPayload(){var r,e;const t={},i=this.collectFields(null!==(e=null===(r=this.layout)||void 0===r?void 0:r.items)&&void 0!==e?e:[]);for(const r of i){if(!r.name)continue;const e=r.name;if(r.type===d.FIELD){const r=this.formValues[e];if(r instanceof File)continue;const i=this.normalizeFieldValue(r),o=this.normalizeFieldValue(this.initialValues[e]);if(this.deepEqual(i,o))continue;t[e]=i}else if(r.type===d.RELATION){const r=this.normalizeRelationValue(this.formValues[e]),i=this.normalizeRelationValue(this.initialValues[e]);if(this.deepEqual(r,i))continue;t[e]=r}}return t}renderItems(r){return r.map((r=>{var e;if(r.type===d.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===d.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 t=null!==(e=r.name)&&void 0!==e?e:"";return i("div",{class:"mrd-form__field"},i("mrd-field",{item:r,locale:this.locale,value:this.formValues[t],onMrdChange:this.handleFieldChange,onMrdBlur:this.handleFieldChange,onMrdSearch:this.handleSearch,onMrdFetchAll:this.handleFetchAll,onMrdUpload:this.handleUpload}),this.errors[t]&&i("span",{class:"mrd-form__field-error"},this.errors[t]))}))}render(){if(!this.layout)return i(o,null);const r=this.locale.startsWith("ar")?"rtl":"ltr";return i(o,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"},l("submit",this.locale)),this.showCancel&&i("button",{type:"button",class:"mrd-form__cancel",onClick:()=>this.mrdCancel.emit()},l("cancel",this.locale)))))}static get watchers(){return{values:[{valuesChanged:0}],me:[{meChanged:0}]}}static get style(){return".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;gap:var(--mrd-space-3)}.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)}.mrd-form__cancel.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:transparent;color:var(--mrd-color-neutral-600);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);font-weight:var(--mrd-font-weight-medium);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);cursor:pointer;transition:background-color var(--mrd-transition), color var(--mrd-transition)}.mrd-form__cancel.sc-mrd-form:hover{background-color:var(--mrd-color-neutral-100);color:var(--mrd-color-neutral-800)}.mrd-form__cancel.sc-mrd-form:focus{outline:none;box-shadow:var(--mrd-shadow-focus)}.mrd-form__cancel.sc-mrd-form:active{background-color:var(--mrd-color-neutral-200)}"}},[2,"mrd-form",{layout:[16],locale:[1],values:[16],referenceHref:[1,"reference-href"],referenceClass:[1,"reference-class"],showCancel:[4,"show-cancel"],me:[16],formValues:[32],errors:[32],submitted:[32],setFieldValue:[64]},void 0,{values:[{valuesChanged:0}],me:[{meChanged:0}]}]),z=C,S=function(){"undefined"!=typeof customElements&&["mrd-form","mrd-boolean-field","mrd-currency-field","mrd-date-field","mrd-datetime-field","mrd-email-field","mrd-field","mrd-file-field","mrd-hyperlink-field","mrd-image-field","mrd-list-field","mrd-longtext-field","mrd-number-field","mrd-relation-field","mrd-secret-field","mrd-text-field","mrd-textarea-field","mrd-time-field"].forEach((r=>{switch(r){case"mrd-form":customElements.get(s(r))||customElements.define(s(r),C);break;case"mrd-boolean-field":customElements.get(s(r))||n();break;case"mrd-currency-field":customElements.get(s(r))||c();break;case"mrd-date-field":customElements.get(s(r))||f();break;case"mrd-datetime-field":customElements.get(s(r))||u();break;case"mrd-email-field":customElements.get(s(r))||h();break;case"mrd-field":customElements.get(s(r))||v();break;case"mrd-file-field":customElements.get(s(r))||p();break;case"mrd-hyperlink-field":customElements.get(s(r))||b();break;case"mrd-image-field":customElements.get(s(r))||g();break;case"mrd-list-field":customElements.get(s(r))||_();break;case"mrd-longtext-field":customElements.get(s(r))||y();break;case"mrd-number-field":customElements.get(s(r))||j();break;case"mrd-relation-field":customElements.get(s(r))||k();break;case"mrd-secret-field":customElements.get(s(r))||x();break;case"mrd-text-field":customElements.get(s(r))||w();break;case"mrd-textarea-field":customElements.get(s(r))||O();break;case"mrd-time-field":customElements.get(s(r))||E()}}))};export{z as MrdForm,S as defineCustomElement}
1
+ import{proxyCustomElement as r,HTMLElement as e,createEvent as t,h as i,Host as o,transformTag as s}from"@stencil/core/internal/client";import{a as d,d as m}from"./client-layout.js";import{t as l}from"./i18n.js";import{e as a}from"./field-helpers.js";import{d as n}from"./mrd-boolean-field2.js";import{d as c}from"./mrd-currency-field2.js";import{d as f}from"./mrd-date-field2.js";import{d as u}from"./mrd-datetime-field2.js";import{d as h}from"./mrd-email-field2.js";import{d as v}from"./mrd-field2.js";import{d as p}from"./mrd-file-field2.js";import{d as b}from"./mrd-hyperlink-field2.js";import{d as g}from"./mrd-image-field2.js";import{d as _}from"./mrd-list-field2.js";import{d as y}from"./mrd-longtext-field2.js";import{d as j}from"./mrd-number-field2.js";import{d as k}from"./mrd-relation-field2.js";import{d as x}from"./mrd-secret-field2.js";import{d as w}from"./mrd-text-field2.js";import{d as O}from"./mrd-textarea-field2.js";import{d as E}from"./mrd-time-field2.js";const C=r(class extends e{constructor(r){super(),!1!==r&&this.__registerHost(),this.mrdSubmit=t(this,"mrdSubmit",7),this.mrdCancel=t(this,"mrdCancel",7),this.mrdSearch=t(this,"mrdSearch",7),this.mrdFetchAll=t(this,"mrdFetchAll",7),this.mrdUpload=t(this,"mrdUpload",7),this.locale=navigator.language,this.values={},this.referenceHref="",this.referenceClass="",this.showCancel=!1,this.me=null,this.formValues={},this.errors={},this.submitted=!1,this.initialValues={},this.handleFieldChange=r=>{const{name:e,value:t}=r.detail,i=this.getHref(this.formValues[e]);this.formValues=Object.assign(Object.assign({},this.formValues),{[e]:t}),this.errors[e]&&(this.errors=Object.assign(Object.assign({},this.errors),{[e]:""}));const o=this.getHref(t);if(o!==i)for(const r of this.collectDependentDropdowns())r.commonRelation===e&&(this.formValues=Object.assign(Object.assign({},this.formValues),{[r.name]:null}),this.mrdFetchAll.emit({name:r.name,relatedClass:r.relatedClass,mostSignificantClass:r.mostSignificantClass,commonRelation:r.commonRelation,filter:r.commonRelation+"_href",filterValue:o}))},this.handleSearch=r=>{r.stopPropagation(),this.mrdSearch.emit(r.detail)},this.handleFetchAll=r=>{r.stopPropagation(),this.mrdFetchAll.emit(r.detail)},this.handleUpload=r=>{r.stopPropagation(),this.mrdUpload.emit(r.detail)},this.handleSubmit=r=>{r.preventDefault(),this.submitted=!0,this.validate()&&this.mrdSubmit.emit(this.buildSubmitPayload())}}componentWillLoad(){var r,e;this.initialValues=Object.assign({},null!==(r=this.values)&&void 0!==r?r:{}),this.formValues=Object.assign({},null!==(e=this.values)&&void 0!==e?e:{}),this.applyDefaultValues()}componentDidLoad(){setTimeout((()=>{this.applyReferenceValue(),this.emitDependentFetchAll()}),0)}valuesChanged(r){this.initialValues=Object.assign({},null!=r?r:{}),this.formValues=Object.assign({},null!=r?r:{}),this.applyReferenceValue(),this.applyDefaultValues(),this.errors={},this.submitted=!1,setTimeout((()=>this.emitDependentFetchAll()),0)}meChanged(){this.applyDefaultValues()}applyDefaultValues(){var r,e,t,i,o,s,m,l;const a=this.collectFields(null!==(e=null===(r=this.layout)||void 0===r?void 0:r.items)&&void 0!==e?e:[]),n={};for(const r of a){if(!r.name)continue;const e=this.formValues[r.name];if(null!=e&&""!==e)continue;const a=null!==(o=null!==(t=r.defaultValue)&&void 0!==t?t:null===(i=r.field)||void 0===i?void 0:i.defaultValue)&&void 0!==o?o:null===(s=r.relation)||void 0===s?void 0:s.defaultValue;if(a)if(r.type===d.FIELD){const e=this.resolveFieldDefault(a,null!==(m=r.dataType)&&void 0!==m?m:null===(l=r.field)||void 0===l?void 0:l.dataType);null!=e&&(n[r.name]=e)}else r.type===d.RELATION&&"me()"===a&&this.me&&(n[r.name]=this.me)}Object.keys(n).length>0&&(this.formValues=Object.assign(Object.assign({},this.formValues),n))}resolveFieldDefault(r,e){return"today()"===r?(new Date).toISOString().slice(0,10):"now()"===r?(new Date).toISOString().replace(/\.\d{3}Z$/,"Z"):r}applyReferenceValue(){if(!this.referenceHref||!this.referenceClass)return;const r=this.resolveReferenceFieldName();r&&(this.formValues[r]||(this.formValues=Object.assign(Object.assign({},this.formValues),{[r]:this.referenceHref})))}resolveReferenceFieldName(){var r,e;const t=this.collectFields(null!==(e=null===(r=this.layout)||void 0===r?void 0:r.items)&&void 0!==e?e:[]),i=t.find((r=>r.type===d.RELATION&&r.mostSignificantClass===this.referenceClass));if(null==i?void 0:i.name)return i.name;const o=new Set(t.filter((r=>r.type===d.RELATION)).map((r=>r.name)));for(const r of t)if(r.type===d.RELATION&&r.editBehavior===m.DROPDOWN&&r.commonRelation&&!o.has(r.commonRelation))return r.commonRelation;return null}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]:""}))}collectDependentDropdowns(){var r,e;return this.collectFields(null!==(e=null===(r=this.layout)||void 0===r?void 0:r.items)&&void 0!==e?e:[]).filter((r=>r.type===d.RELATION&&r.editBehavior===m.DROPDOWN&&!!r.commonRelation))}emitDependentFetchAll(){for(const r of this.collectDependentDropdowns()){const e=this.getHref(this.formValues[r.commonRelation]);e&&this.mrdFetchAll.emit({name:r.name,relatedClass:r.relatedClass,mostSignificantClass:r.mostSignificantClass,commonRelation:r.commonRelation,filter:r.commonRelation+"_href",filterValue:e})}}getHref(r){return r?"string"==typeof r?r:"object"==typeof r&&"id"in r?r.id:"":""}collectFields(r){const e=[];for(const t of r)t.type!==d.FIELD&&t.type!==d.RELATION||e.push(t),t.items&&e.push(...this.collectFields(t.items));return e}validate(){var r,e;const t={},i=this.collectFields(null!==(e=null===(r=this.layout)||void 0===r?void 0:r.items)&&void 0!==e?e:[]);for(const r of i)r.name&&r.required&&!a(this.formValues[r.name])&&(t[r.name]=l("required",this.locale));return this.errors=t,0===Object.keys(t).length}normalizeFieldValue(r){return""===r||null==r?null:r}normalizeRelationValue(r){return null==r||""===r?null:"string"==typeof r?r||null:Array.isArray(r)?r.map((r=>"object"==typeof r&&null!==r&&"id"in r?r.id:r+"")):"object"==typeof r&&"id"in r&&r.id||null}deepEqual(r,e){if(r===e)return!0;if(null==r&&null==e)return!0;if(null==r||null==e)return!1;if(Array.isArray(r)&&Array.isArray(e)){if(r.length!==e.length)return!1;const t=[...r].sort(),i=[...e].sort();return JSON.stringify(t)===JSON.stringify(i)}return JSON.stringify(r)===JSON.stringify(e)}buildSubmitPayload(){var r,e;const t={},i=this.collectFields(null!==(e=null===(r=this.layout)||void 0===r?void 0:r.items)&&void 0!==e?e:[]);for(const r of i){if(!r.name)continue;const e=r.name;if(r.type===d.FIELD){const r=this.formValues[e];if(r instanceof File)continue;const i=this.normalizeFieldValue(r),o=this.normalizeFieldValue(this.initialValues[e]);if(this.deepEqual(i,o))continue;t[e]=i}else if(r.type===d.RELATION){const r=this.normalizeRelationValue(this.formValues[e]),i=this.normalizeRelationValue(this.initialValues[e]);if(this.deepEqual(r,i))continue;t[e]=r}}return t}renderItems(r){return r.map((r=>{var e;if(r.type===d.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===d.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 t=null!==(e=r.name)&&void 0!==e?e:"";return i("div",{class:"mrd-form__field"},i("mrd-field",{item:r,locale:this.locale,value:this.formValues[t],onMrdChange:this.handleFieldChange,onMrdBlur:this.handleFieldChange,onMrdSearch:this.handleSearch,onMrdFetchAll:this.handleFetchAll,onMrdUpload:this.handleUpload}),this.errors[t]&&i("span",{class:"mrd-form__field-error"},this.errors[t]))}))}render(){if(!this.layout)return i(o,null);const r=this.locale.startsWith("ar")?"rtl":"ltr";return i(o,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"},l("submit",this.locale)),this.showCancel&&i("button",{type:"button",class:"mrd-form__cancel",onClick:()=>this.mrdCancel.emit()},l("cancel",this.locale)))))}static get watchers(){return{values:[{valuesChanged:0}],me:[{meChanged:0}]}}static get style(){return".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;gap:var(--mrd-space-3)}.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)}.mrd-form__cancel.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:transparent;color:var(--mrd-color-neutral-600);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);font-weight:var(--mrd-font-weight-medium);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);cursor:pointer;transition:background-color var(--mrd-transition), color var(--mrd-transition)}.mrd-form__cancel.sc-mrd-form:hover{background-color:var(--mrd-color-neutral-100);color:var(--mrd-color-neutral-800)}.mrd-form__cancel.sc-mrd-form:focus{outline:none;box-shadow:var(--mrd-shadow-focus)}.mrd-form__cancel.sc-mrd-form:active{background-color:var(--mrd-color-neutral-200)}"}},[2,"mrd-form",{layout:[16],locale:[1],values:[16],referenceHref:[1,"reference-href"],referenceClass:[1,"reference-class"],showCancel:[4,"show-cancel"],me:[16],formValues:[32],errors:[32],submitted:[32],setFieldValue:[64]},void 0,{values:[{valuesChanged:0}],me:[{meChanged:0}]}]),z=C,S=function(){"undefined"!=typeof customElements&&["mrd-form","mrd-boolean-field","mrd-currency-field","mrd-date-field","mrd-datetime-field","mrd-email-field","mrd-field","mrd-file-field","mrd-hyperlink-field","mrd-image-field","mrd-list-field","mrd-longtext-field","mrd-number-field","mrd-relation-field","mrd-secret-field","mrd-text-field","mrd-textarea-field","mrd-time-field"].forEach((r=>{switch(r){case"mrd-form":customElements.get(s(r))||customElements.define(s(r),C);break;case"mrd-boolean-field":customElements.get(s(r))||n();break;case"mrd-currency-field":customElements.get(s(r))||c();break;case"mrd-date-field":customElements.get(s(r))||f();break;case"mrd-datetime-field":customElements.get(s(r))||u();break;case"mrd-email-field":customElements.get(s(r))||h();break;case"mrd-field":customElements.get(s(r))||v();break;case"mrd-file-field":customElements.get(s(r))||p();break;case"mrd-hyperlink-field":customElements.get(s(r))||b();break;case"mrd-image-field":customElements.get(s(r))||g();break;case"mrd-list-field":customElements.get(s(r))||_();break;case"mrd-longtext-field":customElements.get(s(r))||y();break;case"mrd-number-field":customElements.get(s(r))||j();break;case"mrd-relation-field":customElements.get(s(r))||k();break;case"mrd-secret-field":customElements.get(s(r))||x();break;case"mrd-text-field":customElements.get(s(r))||w();break;case"mrd-textarea-field":customElements.get(s(r))||O();break;case"mrd-time-field":customElements.get(s(r))||E()}}))};export{z as MrdForm,S as defineCustomElement}
@@ -1 +1 @@
1
- import{proxyCustomElement as r,HTMLElement as i,createEvent as e,h as l,Host as d,transformTag as t}from"@stencil/core/internal/client";import{t as n}from"./i18n.js";import{v as s,b as o}from"./validation.js";const a=r(class extends i{constructor(r){super(),!1!==r&&this.__registerHost(),this.mrdChange=e(this,"mrdChange",7),this.mrdBlur=e(this,"mrdBlur",7),this.name="",this.label="",this.value="",this.placeholder="",this.required=!1,this.disabled=!1,this.locale=navigator.language,this.internalHref="",this.internalName="",this.error="",this.handleHrefInput=r=>{this.internalHref=r.target.value,this.mrdChange.emit({name:this.name,value:this.buildValue()})},this.handleNameInput=r=>{this.internalName=r.target.value,this.mrdChange.emit({name:this.name,value:this.buildValue()})},this.handleBlur=()=>{this.error=this.required&&!s(this.internalHref)?n("required",this.locale):this.internalHref&&!o(this.internalHref)?n("invalid_url",this.locale):"",this.mrdBlur.emit({name:this.name,value:this.buildValue()})}}componentWillLoad(){this.parseValue(this.value)}valueChanged(r){this.parseValue(r)}parseValue(r){var i,e,l;null!=r&&"object"==typeof r&&"href"in r?(this.internalHref=null!==(i=r.href)&&void 0!==i?i:"",this.internalName=null!==(e=r.name)&&void 0!==e?e:""):(this.internalHref=null!==(l=r)&&void 0!==l?l:"",this.internalName="")}buildValue(){return this.internalName.trim()?{href:this.internalHref,name:this.internalName}:{href:this.internalHref}}render(){const r=!!this.error;return l(d,null,this.disabled?l("div",{class:"mrd-hyperlink-field"},this.label&&l("span",{class:"mrd-hyperlink-field__label"},this.label),this.internalHref?l("a",{class:"mrd-hyperlink-field__link",href:this.internalHref,target:"_blank",rel:"noopener noreferrer"},this.internalName||this.internalHref):l("span",{class:"mrd-hyperlink-field__empty"},"—")):l("div",{class:"mrd-hyperlink-field"},this.label&&l("label",{class:"mrd-hyperlink-field__label"+(this.required?" mrd-hyperlink-field__label--required":"")},this.label),l("input",{class:"mrd-hyperlink-field__input"+(r?" mrd-hyperlink-field__input--error":""),type:"url",name:this.name,value:this.internalHref,placeholder:this.placeholder||"https://",required:this.required,onInput:this.handleHrefInput,onBlur:this.handleBlur}),l("input",{class:"mrd-hyperlink-field__input mrd-hyperlink-field__input--name",type:"text",value:this.internalName,placeholder:n("hyperlink_name",this.locale),onInput:this.handleNameInput,onBlur:this.handleBlur}),r&&l("span",{class:"mrd-hyperlink-field__error"},this.error)))}static get watchers(){return{value:[{valueChanged:0}]}}static get style(){return".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__input--name.sc-mrd-hyperlink-field{margin-top:var(--mrd-space-1)}.mrd-hyperlink-field__link.sc-mrd-hyperlink-field{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-color-primary);text-decoration:underline;word-break:break-all}.mrd-hyperlink-field__link.sc-mrd-hyperlink-field:hover{opacity:0.8}.mrd-hyperlink-field__empty.sc-mrd-hyperlink-field{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-color-neutral-400)}.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)}"}},[2,"mrd-hyperlink-field",{name:[1],label:[1],value:[1],placeholder:[1],required:[4],disabled:[4],locale:[1],internalHref:[32],internalName:[32],error:[32]},void 0,{value:[{valueChanged:0}]}]);function h(){"undefined"!=typeof customElements&&["mrd-hyperlink-field"].forEach((r=>{"mrd-hyperlink-field"===r&&(customElements.get(t(r))||customElements.define(t(r),a))}))}export{a as M,h as d}
1
+ import{proxyCustomElement as r,HTMLElement as i,createEvent as e,h as l,Host as d,transformTag as t}from"@stencil/core/internal/client";import{t as n}from"./i18n.js";import{r as s,b as o,F as a,c as h,a as m}from"./field-helpers.js";const p=r(class extends i{constructor(r){super(),!1!==r&&this.__registerHost(),this.mrdChange=e(this,"mrdChange",7),this.mrdBlur=e(this,"mrdBlur",7),this.name="",this.label="",this.value="",this.placeholder="",this.required=!1,this.disabled=!1,this.locale=navigator.language,this.internalHref="",this.internalName="",this.error="",this.handleHrefInput=r=>{this.internalHref=r.target.value,this.mrdChange.emit({name:this.name,value:this.buildValue()})},this.handleNameInput=r=>{this.internalName=r.target.value,this.mrdChange.emit({name:this.name,value:this.buildValue()})},this.handleBlur=()=>{this.error=s(this.internalHref,this.required,this.locale)||(this.internalHref&&!o(this.internalHref)?n("invalid_url",this.locale):""),this.mrdBlur.emit({name:this.name,value:this.buildValue()})}}componentWillLoad(){this.parseValue(this.value)}valueChanged(r){this.parseValue(r)}parseValue(r){var i,e,l;null!=r&&"object"==typeof r&&"href"in r?(this.internalHref=null!==(i=r.href)&&void 0!==i?i:"",this.internalName=null!==(e=r.name)&&void 0!==e?e:""):(this.internalHref=null!==(l=r)&&void 0!==l?l:"",this.internalName="")}buildValue(){return this.internalName.trim()?{href:this.internalHref,name:this.internalName}:{href:this.internalHref}}render(){const r=!!this.error;return l(d,null,this.disabled?l("div",{class:"mrd-hyperlink-field"},this.label&&l("span",{class:"mrd-hyperlink-field__label"},this.label),this.internalHref?l("a",{class:"mrd-hyperlink-field__link",href:this.internalHref,target:"_blank",rel:"noopener noreferrer"},this.internalName||this.internalHref):l("span",{class:"mrd-hyperlink-field__empty"},"—")):l("div",{class:"mrd-hyperlink-field"},l(a,{base:"mrd-hyperlink-field",label:this.label,required:this.required}),l("input",{class:h("mrd-hyperlink-field",r),type:"url",name:this.name,value:this.internalHref,placeholder:this.placeholder||"https://",required:this.required,onInput:this.handleHrefInput,onBlur:this.handleBlur}),l("input",{class:"mrd-hyperlink-field__input mrd-hyperlink-field__input--name",type:"text",value:this.internalName,placeholder:n("hyperlink_name",this.locale),onInput:this.handleNameInput,onBlur:this.handleBlur}),l(m,{base:"mrd-hyperlink-field",error:this.error})))}static get watchers(){return{value:[{valueChanged:0}]}}static get style(){return'.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)}.mrd-hyperlink-field__input--name.sc-mrd-hyperlink-field{margin-top:var(--mrd-space-1)}.mrd-hyperlink-field__link.sc-mrd-hyperlink-field{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-color-primary);text-decoration:underline;word-break:break-all}.mrd-hyperlink-field__link.sc-mrd-hyperlink-field:hover{opacity:0.8}.mrd-hyperlink-field__empty.sc-mrd-hyperlink-field{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-color-neutral-400)}'}},[2,"mrd-hyperlink-field",{name:[1],label:[1],value:[1],placeholder:[1],required:[4],disabled:[4],locale:[1],internalHref:[32],internalName:[32],error:[32]},void 0,{value:[{valueChanged:0}]}]);function f(){"undefined"!=typeof customElements&&["mrd-hyperlink-field"].forEach((r=>{"mrd-hyperlink-field"===r&&(customElements.get(t(r))||customElements.define(t(r),p))}))}export{p as M,f as d}
@@ -1 +1 @@
1
- import{proxyCustomElement as r,HTMLElement as i,createEvent as e,h as d,Host as a,transformTag as o}from"@stencil/core/internal/client";import{t as l}from"./i18n.js";const t=r(class extends i{constructor(r){super(),!1!==r&&this.__registerHost(),this.mrdChange=e(this,"mrdChange",7),this.mrdBlur=e(this,"mrdBlur",7),this.mrdUpload=e(this,"mrdUpload",7),this.name="",this.label="",this.value=null,this.required=!1,this.disabled=!1,this.locale=navigator.language,this.accept="image/*",this.maxSize=0,this.previewUrl="",this.fileName="",this.isDragging=!1,this.uploading=!1,this.error="",this.handleInputChange=r=>{var i;const e=r.target.files;this.handleFile(null!==(i=null==e?void 0:e[0])&&void 0!==i?i:null)},this.handleDragOver=r=>{r.preventDefault(),this.isDragging=!0},this.handleDragLeave=()=>{this.isDragging=!1},this.handleDrop=r=>{var i,e,d;r.preventDefault(),this.isDragging=!1;const a=null!==(d=null===(e=null===(i=r.dataTransfer)||void 0===i?void 0:i.files)||void 0===e?void 0:e[0])&&void 0!==d?d:null;this.handleFile(a)},this.handleZoneClick=()=>{var r;this.disabled||this.uploading||null===(r=this.fileInputRef)||void 0===r||r.click()},this.handleClear=r=>{r.stopPropagation(),this.previewUrl="",this.fileName="",this.error="",this.uploading=!1,this.fileInputRef&&(this.fileInputRef.value=""),this.mrdChange.emit({name:this.name,value:null})}}valueChanged(r){"string"==typeof r&&r?this.uploading=!1:r||(this.uploading=!1,this.previewUrl="",this.fileName="")}handleFile(r){if(!r)return this.previewUrl="",this.fileName="",this.uploading=!1,void this.mrdChange.emit({name:this.name,value:null});if(this.maxSize>0&&r.size>this.maxSize)return void(this.error=l("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,this.uploading=!0;const i=new FileReader;i.onload=r=>{var i;this.previewUrl=null===(i=r.target)||void 0===i?void 0:i.result},i.readAsDataURL(r),this.mrdChange.emit({name:this.name,value:r}),this.mrdUpload.emit({name:this.name,file:r})}render(){const r=!!this.error,i=["mrd-image-field__zone",this.isDragging?"mrd-image-field__zone--dragging":"",r?"mrd-image-field__zone--error":"",this.disabled||this.uploading?"mrd-image-field__zone--disabled":""].filter(Boolean).join(" ");return d(a,{key:"97db2df72839f36b7a46e153a5dd1c208c52b522"},d("div",{key:"c8f2d3d858f90d322d26082aaf5adb57acfc78f4",class:"mrd-image-field"},this.label&&d("label",{key:"6625e5031ff0b7c06f76c1ea0387f1bd5c1858a4",class:"mrd-image-field__label"+(this.required?" mrd-image-field__label--required":"")},this.label),d("div",{key:"364216e6a96e845e21c42e821fdff02bd2612ff8",class:i,onClick:this.handleZoneClick,onDragOver:this.handleDragOver,onDragLeave:this.handleDragLeave,onDrop:this.handleDrop},d("input",{key:"0487706ddd9f48cda1cb0c2a178809d90674486b",ref:r=>this.fileInputRef=r,class:"mrd-image-field__input",type:"file",name:this.name,accept:this.accept,disabled:this.disabled||this.uploading,required:this.required&&!this.previewUrl,onChange:this.handleInputChange}),this.previewUrl?d("div",{class:"mrd-image-field__preview-container"},d("div",{class:"mrd-image-field__preview-thumb"},d("img",{class:"mrd-image-field__preview",src:this.previewUrl,alt:this.fileName}),this.uploading&&d("div",{class:"mrd-image-field__preview-overlay"},d("span",{class:"mrd-image-field__spinner"}))),d("div",{class:"mrd-image-field__preview-info"},d("span",{class:"mrd-image-field__preview-name"},this.fileName),this.uploading&&d("span",{class:"mrd-image-field__upload-status"},l("loading",this.locale))),!this.uploading&&d("button",{class:"mrd-image-field__clear",type:"button",onClick:this.handleClear,"aria-label":l("clear",this.locale)},l("remove",this.locale))):d("div",{class:"mrd-image-field__prompt"},d("svg",{class:"mrd-image-field__upload-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},d("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),d("circle",{cx:"8.5",cy:"8.5",r:"1.5"}),d("polyline",{points:"21 15 16 10 5 21"})),d("span",null,l("drop_file_here",this.locale)," ",d("span",{class:"mrd-image-field__browse"},l("browse",this.locale))))),r&&d("span",{key:"bd505ef4f4b67c4e9138d8825c6e600f583f4cab",class:"mrd-image-field__error"},this.error)))}static get watchers(){return{value:[{valueChanged:0}]}}static get style(){return".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__preview-overlay.sc-mrd-image-field{position:absolute;inset:0;background:rgb(255 255 255 / 0.7);display:flex;align-items:center;justify-content:center;border-radius:var(--mrd-border-radius)}.mrd-image-field__spinner.sc-mrd-image-field{display:inline-block;width:24px;height:24px;border:2px solid var(--mrd-color-neutral-300);border-top-color:var(--mrd-color-primary);border-radius:50%;animation:mrd-image-spin 0.6s linear infinite}@keyframes mrd-image-spin{to{transform:rotate(360deg)}}.mrd-image-field__upload-status.sc-mrd-image-field{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-xs);color:var(--mrd-color-neutral-500)}.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)}"}},[2,"mrd-image-field",{name:[1],label:[1],value:[16],required:[4],disabled:[4],locale:[1],accept:[1],maxSize:[2,"max-size"],previewUrl:[32],fileName:[32],isDragging:[32],uploading:[32],error:[32]},void 0,{value:[{valueChanged:0}]}]);function s(){"undefined"!=typeof customElements&&["mrd-image-field"].forEach((r=>{"mrd-image-field"===r&&(customElements.get(o(r))||customElements.define(o(r),t))}))}export{t as M,s as d}
1
+ import{proxyCustomElement as r,HTMLElement as e,createEvent as i,h as a,Host as d,transformTag as o}from"@stencil/core/internal/client";import{t as l}from"./i18n.js";import{F as t,a as s}from"./field-helpers.js";import{m,v as n,u as c}from"./file-upload-common.js";const f=r(class extends e{constructor(r){super(),!1!==r&&this.__registerHost(),this.mrdChange=i(this,"mrdChange",7),this.mrdBlur=i(this,"mrdBlur",7),this.mrdUpload=i(this,"mrdUpload",7),this.name="",this.label="",this.value=null,this.required=!1,this.disabled=!1,this.locale=navigator.language,this.accept="image/*",this.maxSize=0,this.previewUrl="",this.fileName="",this.isDragging=!1,this.uploading=!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.drag=m((r=>this.isDragging=r),(r=>this.handleFile(r))),this.handleZoneClick=()=>{var r;this.disabled||this.uploading||null===(r=this.fileInputRef)||void 0===r||r.click()},this.handleClear=r=>{r.stopPropagation(),this.previewUrl="",this.fileName="",this.error="",this.uploading=!1,this.fileInputRef&&(this.fileInputRef.value=""),this.mrdChange.emit({name:this.name,value:null})}}valueChanged(r){"string"==typeof r&&r?this.uploading=!1:r||(this.uploading=!1,this.previewUrl="",this.fileName="")}handleFile(r){if(!r)return this.previewUrl="",this.fileName="",this.uploading=!1,void this.mrdChange.emit({name:this.name,value:null});const e=n(r,this.maxSize,this.locale,!0);if(e)return void(this.error=e);this.error="",this.fileName=r.name,this.uploading=!0;const i=new FileReader;i.onload=r=>{var e;this.previewUrl=null===(e=r.target)||void 0===e?void 0:e.result},i.readAsDataURL(r),this.mrdChange.emit({name:this.name,value:r}),this.mrdUpload.emit({name:this.name,file:r})}render(){const r=c("mrd-image-field",{dragging:this.isDragging,error:!!this.error,disabled:this.disabled||this.uploading});return a(d,{key:"ab78d93ab6c810363a8993bea4545f7406680e58"},a("div",{key:"727ae5d9c1cce22d90d26229a9ea5d677abb4b07",class:"mrd-image-field"},a(t,{key:"aab0e9fcc0204e8ea617453b5ca458f683194125",base:"mrd-image-field",label:this.label,required:this.required}),a("div",{key:"1241faff26c47a303fd0431201f490c6b8725987",class:r,onClick:this.handleZoneClick,onDragOver:this.drag.onDragOver,onDragLeave:this.drag.onDragLeave,onDrop:this.drag.onDrop},a("input",{key:"70e3b8f869927ad525465ace96ed3ea24f5b7555",ref:r=>this.fileInputRef=r,class:"mrd-image-field__input",type:"file",name:this.name,accept:this.accept,disabled:this.disabled||this.uploading,required:this.required&&!this.previewUrl,onChange:this.handleInputChange}),this.previewUrl?a("div",{class:"mrd-image-field__preview-container"},a("div",{class:"mrd-image-field__preview-thumb"},a("img",{class:"mrd-image-field__preview",src:this.previewUrl,alt:this.fileName}),this.uploading&&a("div",{class:"mrd-image-field__preview-overlay"},a("span",{class:"mrd-image-field__spinner"}))),a("div",{class:"mrd-image-field__preview-info"},a("span",{class:"mrd-image-field__preview-name"},this.fileName),this.uploading&&a("span",{class:"mrd-image-field__upload-status"},l("loading",this.locale))),!this.uploading&&a("button",{class:"mrd-image-field__clear",type:"button",onClick:this.handleClear,"aria-label":l("clear",this.locale)},l("remove",this.locale))):a("div",{class:"mrd-image-field__prompt"},a("svg",{class:"mrd-image-field__upload-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},a("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),a("circle",{cx:"8.5",cy:"8.5",r:"1.5"}),a("polyline",{points:"21 15 16 10 5 21"})),a("span",null,l("drop_file_here",this.locale)," ",a("span",{class:"mrd-image-field__browse"},l("browse",this.locale))))),a(s,{key:"01552a994c1e5a9f25129586a95562c32a377046",base:"mrd-image-field",error:this.error})))}static get watchers(){return{value:[{valueChanged:0}]}}static get style(){return'.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__error.sc-mrd-image-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}.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,.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__preview-overlay.sc-mrd-image-field{position:absolute;inset:0;background:rgba(255, 255, 255, 0.7);display:flex;align-items:center;justify-content:center;border-radius:var(--mrd-border-radius)}.mrd-image-field__spinner.sc-mrd-image-field{display:inline-block;width:24px;height:24px;border:2px solid var(--mrd-color-neutral-300);border-top-color:var(--mrd-color-primary);border-radius:50%;animation:mrd-spin 0.6s linear infinite}@keyframes mrd-spin{to{transform:rotate(360deg)}}.mrd-image-field__upload-status.sc-mrd-image-field{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-xs);color:var(--mrd-color-neutral-500)}.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)}'}},[2,"mrd-image-field",{name:[1],label:[1],value:[16],required:[4],disabled:[4],locale:[1],accept:[1],maxSize:[2,"max-size"],previewUrl:[32],fileName:[32],isDragging:[32],uploading:[32],error:[32]},void 0,{value:[{valueChanged:0}]}]);function h(){"undefined"!=typeof customElements&&["mrd-image-field"].forEach((r=>{"mrd-image-field"===r&&(customElements.get(o(r))||customElements.define(o(r),f))}))}export{f as M,h as d}
@@ -1 +1 @@
1
- import{proxyCustomElement as r,HTMLElement as t,createEvent as o,h as e,Host as a,transformTag as i}from"@stencil/core/internal/client";import{a as s,b as n,r as l,A as d}from"./client-layout.js";import{C as c,d as m}from"./mrd-table2.js";import{t as u}from"./i18n.js";import{f as h}from"./format.js";import{d as v}from"./mrd-document-container2.js";import{d as y}from"./mrd-document-list2.js";import{d as p}from"./mrd-document-view2.js";const f=r(class extends t{constructor(r){super(),!1!==r&&this.__registerHost(),this.mrdNavigate=o(this,"mrdNavigate",7),this.mrdSearch=o(this,"mrdSearch",7),this.mrdDownload=o(this,"mrdDownload",7),this.mrdLoadViewPage=o(this,"mrdLoadViewPage",7),this.mrdLoadImage=o(this,"mrdLoadImage",7),this.mrdViewAction=o(this,"mrdViewAction",7),this.mrdLoadViewAggregations=o(this,"mrdLoadViewAggregations",7),this.mrdLoadViewDistinct=o(this,"mrdLoadViewDistinct",7),this.mrdUpdateObject=o(this,"mrdUpdateObject",7),this.mrdViewUpload=o(this,"mrdViewUpload",7),this.mrdCreateObject=o(this,"mrdCreateObject",7),this.items=[],this.data={},this.views={},this.links={},this.locale=navigator.language,this.archetypes=[],this.searchQueryMap={},this.searchResultsMap={},this.imagePreviewUrl=null,this.imagePreviews={},this.openHistoryField=null,this.historyClickOutside=null,this.searchTimers={},this.handleViewLoadPage=(r,t)=>{r.stopPropagation(),this.mrdLoadViewPage.emit({name:t,page:r.detail.page,sort:r.detail.sort,path:r.detail.path,qs:r.detail.qs})},this.handleSearchInput=(r,t)=>{this.searchQueryMap=Object.assign(Object.assign({},this.searchQueryMap),{[r]:t}),this.searchTimers[r]&&clearTimeout(this.searchTimers[r]),t.length<2?this.searchResultsMap=Object.assign(Object.assign({},this.searchResultsMap),{[r]:[]}):this.searchTimers[r]=setTimeout((()=>{this.mrdSearch.emit({query:t,dataClass:r})}),300)}}componentDidLoad(){setTimeout((()=>{this.initEmbeddedTables(),this.emitLoadImages()}),0),this.historyClickOutside=r=>{this.el.contains(r.target)||(this.openHistoryField=null)},document.addEventListener("mousedown",this.historyClickOutside)}disconnectedCallback(){this.historyClickOutside&&(document.removeEventListener("mousedown",this.historyClickOutside),this.historyClickOutside=null)}dataChanged(r){r&&Object.keys(r).length>0&&setTimeout((()=>this.initEmbeddedTables()),0)}async initEmbeddedTables(){const r=this.el.querySelectorAll("mrd-table[data-view]");for(const t of Array.from(r))"function"==typeof t.init&&await t.init()}viewKeyFor(r){var t,o,e,a;return r.type===s.RELATED_VIEW?null!==(o=null!==(t=r.relatedClass)&&void 0!==t?t:r.name)&&void 0!==o?o:"":null!==(a=null!==(e=r.dataClass)&&void 0!==e?e:r.name)&&void 0!==a?a:""}emitLoadImages(){for(const r of this.flattenItems(this.items))if(r.type===s.FIELD&&r.dataType===n.IMAGE){const t=r.name,o=this.data[t],e=null==o?void 0:o.href;e&&this.mrdLoadImage.emit({fieldName:t,href:e})}}flattenItems(r){const t=[];for(const o of r)t.push(o),o.items&&t.push(...this.flattenItems(o.items));return t}async setSearchResults(r,t){const o=null!=t?t:this.resolveSearchKey();o&&(this.searchResultsMap=Object.assign(Object.assign({},this.searchResultsMap),{[o]:r}))}async setViewPage(r,t,o,e,a,i){if(i){const t=this.el.querySelector(`mrd-document-list[data-doclist="${r}"]`);return void((null==t?void 0:t.setDocuments)&&await t.setDocuments(i,o))}const s=this.el.querySelector(`mrd-table[data-view="${r}"]`);s&&(void 0!==e&&(s.totalElements=e),await s.setPage(t,o,a))}async setViewAggregations(r,t){const o=this.el.querySelector(`mrd-table[data-view="${r}"]`);o&&await o.setAggregations(t)}async setViewDistinct(r,t,o){const e=this.el.querySelector(`mrd-document-list[data-doclist="${r}"]`);(null==e?void 0:e.setDistinct)&&await e.setDistinct(t,o)}async setViewFileReference(r,t){const o=this.el.querySelector(`mrd-document-list[data-doclist="${r}"]`);(null==o?void 0:o.setFileReference)&&await o.setFileReference(t)}async setViewCreatedObject(r,t){const o=this.el.querySelector(`mrd-document-list[data-doclist="${r}"]`);(null==o?void 0:o.setCreatedHref)&&await o.setCreatedHref(t)}async setImagePreview(r,t){this.imagePreviews=Object.assign(Object.assign({},this.imagePreviews),{[r]:t})}async openImagePreview(r){this.imagePreviewUrl=r}resolveSearchKey(){var r;const t=this.flattenItems(this.items).filter((r=>r.type===s.SEARCH));return 1===t.length&&null!==(r=t[0].dataClass)&&void 0!==r?r:null}renderSingleFieldValue(r,t){var o,a,i,s,l,d,m,h,v,y,p;const f=r.dataType;switch(f){case n.HYPERLINK:{const r=null!==(o=null==t?void 0:t.href)&&void 0!==o?o:t+"",n=null!==(s=null!==(i=null!==(a=null==t?void 0:t.name)&&void 0!==a?a:null==t?void 0:t.text)&&void 0!==i?i:null==t?void 0:t.label)&&void 0!==s?s:r;return e("a",{class:"mrd-layout-section__link",href:r,target:"_blank",rel:"noopener noreferrer"},n)}case n.TEXTBLOCK:return e("div",{class:"mrd-layout-section__prose",innerHTML:t+""});case n.LONGTEXT:return e("pre",{class:"mrd-layout-section__pre"},t+"");case n.JSON:return e("pre",{class:"mrd-layout-section__pre",innerHTML:c.formatJson(t)});case n.FILE:{const r=null!==(l=null==t?void 0:t.fileName)&&void 0!==l?l:t+"",o=null!==(d=null==t?void 0:t.href)&&void 0!==d?d:"";return e("button",{class:"mrd-layout-section__download-link",onClick:()=>o&&this.mrdDownload.emit({href:o,fileName:r})},e("svg",{class:"mrd-layout-section__file-icon",viewBox:"0 0 24 24","aria-hidden":"true"},e("path",{fill:"currentColor",d:"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm-1 7V3.5L18.5 9H13zm-3 8l-3-3 1.41-1.41L10 14.17l4.59-4.58L16 11l-6 6z"})),u("download",this.locale))}case n.IMAGE:{const o=null!==(m=null==t?void 0:t.href)&&void 0!==m?m:"",a=null!==(h=null==t?void 0:t.fileName)&&void 0!==h?h:"",i=this.imagePreviews[r.name];return i?e("button",{class:"mrd-layout-section__image-thumb-btn",onClick:()=>{this.imagePreviewUrl=i},title:a||void 0},e("img",{class:"mrd-layout-section__image-thumb",src:i,alt:a})):e("button",{class:"mrd-layout-section__download-link",onClick:()=>o&&this.mrdDownload.emit({href:o,fileName:a})},e("svg",{class:"mrd-layout-section__file-icon",viewBox:"0 0 24 24","aria-hidden":"true"},e("path",{fill:"currentColor",d:"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm-1 7V3.5L18.5 9H13zm-3 8l-3-3 1.41-1.41L10 14.17l4.59-4.58L16 11l-6 6z"})),a||o)}case n.BOOLEAN:return e("span",{class:"mrd-layout-section__boolean mrd-layout-section__boolean--"+(t?"true":"false")},u(t?"yes":"no",this.locale));case n.LIST:{const o=(null!==(v=r.listItems)&&void 0!==v?v:[]).find((r=>r.key===t+"")),a=null!==(y=null==o?void 0:o.label)&&void 0!==y?y:t+"",i=null==o?void 0:o.color,s=null==o?void 0:o.backgroundColor;return i&&s?e("span",{class:"mrd-layout-section__badge",style:{color:i,backgroundColor:s}},a):i?e("span",{class:"mrd-layout-section__badge-dot-row"},e("span",{class:"mrd-layout-section__badge-dot",style:{backgroundColor:i}}),a):a}case n.SECRET:return t?e("span",{class:"mrd-layout-section__secret-masked"},"••••••••"):null;default:return c.renderValue(f,t,null!==(p=r.listItems)&&void 0!==p?p:[],this.locale)||null}}renderFieldValue(r,t){if(null==t||""===t)return null;if(r.multiple&&Array.isArray(t)){const o=t.map((t=>this.renderSingleFieldValue(r,t)));return o.every((r=>"string"==typeof r||null==r))?o.filter(Boolean).join(", ")||null:e("span",null,o.map(((r,t)=>e("span",{key:t+""},r,t<o.length-1?", ":""))))}return this.renderSingleFieldValue(r,t)}renderHistoryBadge(r,t){var o,a,i;if(!(null!==(o=r.historyEnabled)&&void 0!==o?o:null===(a=r.field)||void 0===a?void 0:a.historyEnabled)||!r.name)return null;const s=null!==(i=null==t?void 0:t.history)&&void 0!==i?i:[];if(!s.length)return null;const n=[...s].sort(((r,t)=>t.until.localeCompare(r.until))),l=this.openHistoryField===r.name,{locale:d}=this;return e("span",{class:"mrd-layout-section__history-wrap"},e("button",{type:"button",class:"mrd-layout-section__history-btn",title:u("history_badge_tooltip",d),"aria-label":u("history_badge_tooltip",d),onClick:t=>{t.stopPropagation(),this.openHistoryField=l?null:r.name}},e("svg",{class:"mrd-layout-section__history-icon",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true"},e("path",{"fill-rule":"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm.75-13a.75.75 0 00-1.5 0v5c0 .207.085.394.22.53l2.5 2.5a.75.75 0 101.06-1.06L10.75 9.69V5z","clip-rule":"evenodd"}))),l&&e("div",{class:"mrd-layout-section__history-popover",role:"listbox"},n.map(((r,t)=>e("div",{key:t+"",class:"mrd-layout-section__history-entry"},r.value," (",u("history_until",d)," ",h(r.until,d),")")))))}renderField(r){var t,o;if(!r.name)return null;const a=this.data[r.name],i=(null!==(t=r.historyEnabled)&&void 0!==t?t:null===(o=r.field)||void 0===o?void 0:o.historyEnabled)&&null!==a&&"object"==typeof a&&"current"in a?a.current:a,s=this.renderFieldValue(r,i);return r.header?e("h1",{class:"mrd-layout-section__field-header",key:r.name},"string"==typeof s?s:null!=i?i+"":r.label):null==s?null:e("div",{class:"mrd-layout-section__field"+(r.dataType===n.TEXTBLOCK||r.dataType===n.LONGTEXT||r.dataType===n.JSON?" mrd-layout-section__field--block":""),key:r.name},e("span",{class:"mrd-layout-section__field-label"},r.label),e("span",{class:"mrd-layout-section__field-value"},s,this.renderHistoryBadge(r,a)))}renderRelation(r){var t,o,a;if(!r.name)return null;const i=(null!==(o=null===(t=this.data)||void 0===t?void 0:t._links)&&void 0!==o?o:{})[r.name];if(!i)return null;const s=(r,t)=>e("button",{key:r,class:"mrd-layout-section__relation-link",onClick:()=>this.mrdNavigate.emit({href:r,label:t})},t);let n;return(null===(a=i.values)||void 0===a?void 0:a.length)?n=i.values.map((r=>s(r.href,r.name))):i.name&&(n=s(i.href,i.name)),n?e("div",{class:"mrd-layout-section__field",key:r.name},e("span",{class:"mrd-layout-section__field-label"},r.label),e("span",{class:"mrd-layout-section__field-value"},n)):null}renderSearch(r){var t,o,a;if(!r.dataClass)return null;const i=r.dataClass,s=null!==(t=this.searchQueryMap[i])&&void 0!==t?t:"",n=null!==(o=this.searchResultsMap[i])&&void 0!==o?o:[];return e("div",{class:"mrd-layout-section__search",key:"search-"+i},e("div",{class:"mrd-layout-section__search-wrap"},e("svg",{class:"mrd-layout-section__search-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true"},e("path",{"fill-rule":"evenodd",d:"M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z","clip-rule":"evenodd"})),e("input",{class:"mrd-layout-section__search-input",type:"text",value:s,placeholder:null!==(a=r.label)&&void 0!==a?a:"",onInput:r=>this.handleSearchInput(i,r.target.value)})),n.length>0&&e("ul",{class:"mrd-layout-section__search-results"},n.map((r=>e("li",{key:r.id,class:"mrd-layout-section__search-result"},e("button",{class:"mrd-layout-section__search-result-btn",onClick:()=>this.mrdNavigate.emit({href:r.id,label:r.label})},e("span",{class:"mrd-layout-section__search-result-label"},r.label),r.description&&e("span",{class:"mrd-layout-section__search-result-desc"},r.description)))))))}renderRelatedView(r){var t,o,a,i,s,n,c,m;const u=this.viewKeyFor(r);if(!u)return null;if(!r.view)return null;const h=null!==(t=r.showTitle)&&void 0!==t&&t,v=null!==(n=(null!==(s=null===(i=null===(a=null===(o=this.data)||void 0===o?void 0:o._links)||void 0===a?void 0:a.self)||void 0===i?void 0:i.href)&&void 0!==s?s:"").split("/").filter(Boolean).pop())&&void 0!==n?n:"",y=l(null!==(c=r.archetypes)&&void 0!==c?c:null===(m=r.view)||void 0===m?void 0:m.archetypes,d);return e("div",{class:"mrd-layout-section__related-view",key:"view-"+u},h&&r.label&&e("h3",{class:"mrd-layout-section__related-view-title"},r.label),y?this.renderDocumentContainer(r,u,v,y):this.renderTable(r,u,v))}renderDocumentContainer(r,t,o,a){return e("mrd-document-container",{item:r,archetype:a,parentId:o,viewKey:t,locale:this.locale,onMrdLoadDistinct:r=>{r.stopPropagation(),this.mrdLoadViewDistinct.emit(Object.assign({name:t},r.detail))},onMrdLoadPage:r=>{r.stopPropagation(),this.mrdLoadViewPage.emit(Object.assign({name:t},r.detail))},onMrdLoadAggregations:o=>{var e;o.stopPropagation(),this.mrdLoadViewAggregations.emit(Object.assign({name:t,dataClass:null!==(e=r.dataClass)&&void 0!==e?e:t},o.detail))},onMrdNavigate:r=>{r.stopPropagation(),this.mrdNavigate.emit(r.detail)},onMrdAction:o=>{var e;o.stopPropagation(),this.mrdViewAction.emit(Object.assign({name:t,dataClass:null!==(e=r.dataClass)&&void 0!==e?e:t},o.detail))},onMrdUpdateObject:r=>{r.stopPropagation(),this.mrdUpdateObject.emit(r.detail)},onMrdUpload:r=>{r.stopPropagation(),this.mrdViewUpload.emit(Object.assign({name:t},r.detail))},onMrdCreateObject:r=>{r.stopPropagation(),this.mrdCreateObject.emit(Object.assign({name:t},r.detail))}})}renderTable(r,t,o){return e("mrd-table",{"data-view":t,item:r,parentId:o,locale:this.locale,onMrdLoadPage:r=>this.handleViewLoadPage(r,t),onMrdLoadAggregations:o=>{var e;o.stopPropagation(),this.mrdLoadViewAggregations.emit(Object.assign({name:t,dataClass:null!==(e=r.dataClass)&&void 0!==e?e:t},o.detail))},onMrdRowClick:r=>{var t,o,e;r.stopPropagation();const a=r.detail;this.mrdNavigate.emit({href:null===(o=null===(t=null==a?void 0:a._links)||void 0===t?void 0:t.self)||void 0===o?void 0:o.href,label:null!==(e=null==a?void 0:a.name)&&void 0!==e?e:""})},onMrdAction:o=>{var e;o.stopPropagation(),this.mrdViewAction.emit({name:t,action:o.detail.action,dataClass:null!==(e=r.dataClass)&&void 0!==e?e:t,path:o.detail.path,qs:o.detail.qs,parentPath:o.detail.parentPath,basicType:o.detail.basicType})}})}renderItem(r){var t,o;switch(r.type){case s.FIELD:return this.renderField(r);case s.RELATION:return this.renderRelation(r);case s.HEADER:return e("h2",{class:"mrd-layout-section__header",key:"header-"+r.label},r.label);case s.TEXT:return e("div",{class:"mrd-layout-section__text",key:"text-"+r.label,innerHTML:null!==(t=r.label)&&void 0!==t?t:""});case s.NAVIGATE:return e("button",{class:"mrd-layout-section__navigate",key:"nav-"+r.label,onClick:()=>{var t,o,e;return this.mrdNavigate.emit({label:null!==(t=r.label)&&void 0!==t?t:"",navigate:null!==(o=r.navigate)&&void 0!==o?o:{dataClass:null!==(e=r.dataClass)&&void 0!==e?e:"",icon:r.icon,navigationType:r.navigationType}})}},r.label);case s.SEARCH:return this.renderSearch(r);case s.SECTION:case s.GROUP:return e("div",{class:"mrd-layout-section__group",key:"group-"+r.label},r.label&&e("h3",{class:"mrd-layout-section__group-title"},r.label),(null!==(o=r.items)&&void 0!==o?o:[]).map((r=>this.renderItem(r))));case s.RELATED_VIEW:case s.VIEW:return this.renderRelatedView(r);default:return null}}renderImageModal(){return this.imagePreviewUrl?e("div",{class:"mrd-layout-section__modal-backdrop",onClick:()=>{this.imagePreviewUrl=null}},e("div",{class:"mrd-layout-section__modal",onClick:r=>r.stopPropagation()},e("button",{class:"mrd-layout-section__modal-close",onClick:()=>{this.imagePreviewUrl=null}},"✕"),e("img",{class:"mrd-layout-section__modal-image",src:this.imagePreviewUrl,alt:""}))):null}renderDocumentObject(r){const t=this.items.filter((r=>r.type===s.VIEW||r.type===s.RELATED_VIEW||r.type===s.SEARCH));return[e("mrd-document-view",{archetype:r,data:this.data,locale:this.locale,onMrdNavigate:r=>{r.stopPropagation(),this.mrdNavigate.emit(r.detail)},onMrdDownload:r=>{r.stopPropagation(),this.mrdDownload.emit(r.detail)}}),...t.map((r=>this.renderItem(r)))]}render(){const r=l(this.archetypes,d);return e(a,{key:"6e737354daec0137b6ebe304efcce9990f02739f"},e("div",{key:"31a73a8a78999793f5dacee5f2da41df5f23156e",class:"mrd-layout-section"},r?this.renderDocumentObject(r):this.items.map((r=>this.renderItem(r)))),this.renderImageModal())}get el(){return this}static get watchers(){return{data:[{dataChanged:0}]}}static get style(){return".mrd-layout-section.sc-mrd-layout-section{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-color-neutral-800)}.mrd-layout-section__field.sc-mrd-layout-section{display:grid;grid-template-columns:200px 1fr;align-items:baseline;gap:0 var(--mrd-space-2);padding:var(--mrd-space-1) 0}.mrd-layout-section__field-label.sc-mrd-layout-section{font-size:var(--mrd-font-size-xs);font-weight:var(--mrd-font-weight-normal);color:var(--mrd-color-neutral-500);padding-top:1px}.mrd-layout-section__field-value.sc-mrd-layout-section{font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-medium);color:var(--mrd-color-neutral-800);word-break:break-word;display:inline-flex;align-items:center;gap:var(--mrd-space-1)}.mrd-layout-section__history-wrap.sc-mrd-layout-section{position:relative;display:inline-flex;align-items:center}.mrd-layout-section__history-btn.sc-mrd-layout-section{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;padding:0;background:transparent;border:none;border-radius:var(--mrd-border-radius-sm);color:var(--mrd-color-neutral-400);cursor:pointer;flex-shrink:0;transition:color var(--mrd-transition-fast), background-color var(--mrd-transition-fast)}.mrd-layout-section__history-btn.sc-mrd-layout-section:hover{color:var(--mrd-color-neutral-700);background-color:var(--mrd-color-neutral-100)}.mrd-layout-section__history-btn.sc-mrd-layout-section:focus{outline:none;box-shadow:var(--mrd-shadow-focus)}.mrd-layout-section__history-icon.sc-mrd-layout-section{width:0.875rem;height:0.875rem}.mrd-layout-section__history-popover.sc-mrd-layout-section{position:absolute;top:calc(100% + 0.25rem);left:0;min-width:24rem;max-width:24rem;background-color:var(--mrd-color-white);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius-md);box-shadow:var(--mrd-shadow-md);padding:var(--mrd-space-1) 0;z-index:var(--mrd-z-dropdown)}.mrd-layout-section__history-entry.sc-mrd-layout-section{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-normal);color:var(--mrd-color-neutral-700);padding:var(--mrd-space-2) var(--mrd-space-3);line-height:var(--mrd-line-height-normal)}.mrd-layout-section__history-entry.sc-mrd-layout-section:not(:last-child){border-bottom:var(--mrd-border-width) solid var(--mrd-color-neutral-100)}.mrd-layout-section__field-header.sc-mrd-layout-section{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-4) 0;padding:0}.mrd-layout-section__header.sc-mrd-layout-section{font-size:var(--mrd-font-size-xl);font-weight:var(--mrd-font-weight-semibold);color:var(--mrd-color-neutral-800);margin:var(--mrd-space-4) 0 var(--mrd-space-2) 0;padding:0}.mrd-layout-section__text.sc-mrd-layout-section{font-size:var(--mrd-font-size-base);color:var(--mrd-color-neutral-700);line-height:var(--mrd-line-height-relaxed);margin:var(--mrd-space-2) 0}.mrd-layout-section__navigate.sc-mrd-layout-section{display:inline-flex;align-items:center;gap:var(--mrd-space-2);padding:var(--mrd-space-2) var(--mrd-space-3);background:none;border:1px solid var(--mrd-color-neutral-300);border-radius:var(--mrd-border-radius);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);color:var(--mrd-color-primary);cursor:pointer;margin:var(--mrd-space-2) 0}.mrd-layout-section__navigate.sc-mrd-layout-section:hover{background-color:var(--mrd-color-primary-light);border-color:var(--mrd-color-primary)}.mrd-layout-section__link.sc-mrd-layout-section{color:var(--mrd-color-primary);text-decoration:none}.mrd-layout-section__link.sc-mrd-layout-section:hover{text-decoration:underline}.mrd-layout-section__relation-link.sc-mrd-layout-section{background:none;border:none;padding:0;font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-semibold);color:var(--mrd-color-primary);cursor:pointer;text-align:left}.mrd-layout-section__relation-link.sc-mrd-layout-section:hover{text-decoration:underline}.mrd-layout-section__download-link.sc-mrd-layout-section{display:inline-flex;align-items:center;gap:var(--mrd-space-1);background:none;border:none;padding:0;font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);color:var(--mrd-color-primary);cursor:pointer;text-align:left}.mrd-layout-section__download-link.sc-mrd-layout-section:hover{text-decoration:underline;color:var(--mrd-color-primary-dark)}.mrd-layout-section__file-icon.sc-mrd-layout-section{flex-shrink:0;width:1rem;height:1rem}.mrd-layout-section__boolean--true.sc-mrd-layout-section{color:var(--mrd-color-success);font-weight:var(--mrd-font-weight-semibold)}.mrd-layout-section__boolean--false.sc-mrd-layout-section{color:var(--mrd-color-neutral-400)}.mrd-layout-section__field--block.sc-mrd-layout-section{grid-template-columns:1fr}.mrd-layout-section__badge.sc-mrd-layout-section{display:inline-block;font-size:var(--mrd-font-size-xs);font-weight:var(--mrd-font-weight-medium);padding:2px var(--mrd-space-3);border-radius:10px}.mrd-layout-section__badge-dot-row.sc-mrd-layout-section{display:inline-flex;align-items:center;gap:var(--mrd-space-2)}.mrd-layout-section__badge-dot.sc-mrd-layout-section{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.mrd-layout-section__secret-masked.sc-mrd-layout-section{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-label-color);letter-spacing:0.15em;user-select:none;pointer-events:none}.mrd-layout-section__pre.sc-mrd-layout-section{font-family:var(--mrd-font-family-mono);font-size:var(--mrd-font-size-xs);background-color:var(--mrd-color-neutral-50);border:1px solid var(--mrd-color-neutral-200);border-radius:var(--mrd-border-radius);padding:var(--mrd-space-3);margin:0;max-height:calc(10 * 1.5 * var(--mrd-font-size-xs));overflow-x:auto;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.mrd-layout-section__group.sc-mrd-layout-section{margin:var(--mrd-space-4) 0}.mrd-layout-section__group-title.sc-mrd-layout-section{font-size:var(--mrd-font-size-xs);font-weight:var(--mrd-font-weight-semibold);color:var(--mrd-color-neutral-500);margin:0 0 var(--mrd-space-2) 0;padding-bottom:0;letter-spacing:0.01em}.mrd-layout-section__related-view.sc-mrd-layout-section{margin:var(--mrd-space-4) 0}.mrd-layout-section__related-view-title.sc-mrd-layout-section{font-size:var(--mrd-font-size-lg);font-weight:var(--mrd-font-weight-semibold);color:var(--mrd-color-neutral-800);margin:0 0 var(--mrd-space-3) 0}.mrd-layout-section__search.sc-mrd-layout-section{position:relative;margin:var(--mrd-space-2) 0}.mrd-layout-section__search-wrap.sc-mrd-layout-section{position:relative}.mrd-layout-section__search-icon.sc-mrd-layout-section{position:absolute;left:var(--mrd-input-padding-x);top:50%;transform:translateY(-50%);width:1rem;height:1rem;color:var(--mrd-color-neutral-400);pointer-events:none}.mrd-layout-section__search-input.sc-mrd-layout-section{display:block;width:100%;height:var(--mrd-input-height);padding:var(--mrd-input-padding-y) var(--mrd-input-padding-x) var(--mrd-input-padding-y) calc(var(--mrd-input-padding-x) + 1rem + var(--mrd-space-2));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-layout-section__search-input.sc-mrd-layout-section:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-layout-section__search-input.sc-mrd-layout-section::placeholder{color:var(--mrd-input-placeholder-color)}.mrd-layout-section__search-results.sc-mrd-layout-section{position:absolute;top:100%;left:0;right:0;background-color:var(--mrd-color-white);border:1px solid var(--mrd-color-neutral-300);border-top:none;border-radius:0 0 var(--mrd-border-radius) var(--mrd-border-radius);box-shadow:var(--mrd-shadow-sm);z-index:100;max-height:300px;overflow-y:auto;list-style:none;margin:0;padding:var(--mrd-space-1) 0}.mrd-layout-section__search-result.sc-mrd-layout-section{margin:0;padding:0}.mrd-layout-section__search-result-btn.sc-mrd-layout-section{display:flex;flex-direction:column;width:100%;padding:var(--mrd-space-2) var(--mrd-space-3);background:none;border:none;text-align:left;cursor:pointer;font-family:var(--mrd-font-family)}.mrd-layout-section__search-result-btn.sc-mrd-layout-section:hover{background-color:var(--mrd-color-primary-light)}.mrd-layout-section__search-result-label.sc-mrd-layout-section{font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-medium);color:var(--mrd-color-neutral-800)}.mrd-layout-section__search-result-desc.sc-mrd-layout-section{font-size:var(--mrd-font-size-xs);color:var(--mrd-color-neutral-500);margin-top:var(--mrd-space-1)}.mrd-layout-section__image-thumb-btn.sc-mrd-layout-section{background:none;border:none;padding:0;cursor:pointer;display:inline-block;border-radius:var(--mrd-border-radius);overflow:hidden;line-height:0}.mrd-layout-section__image-thumb-btn.sc-mrd-layout-section:hover .mrd-layout-section__image-thumb.sc-mrd-layout-section{opacity:0.85}.mrd-layout-section__image-thumb.sc-mrd-layout-section{display:block;max-width:160px;max-height:100px;border-radius:var(--mrd-border-radius);object-fit:cover;transition:opacity 0.15s}.mrd-layout-section__modal-backdrop.sc-mrd-layout-section{position:fixed;inset:0;background:rgba(0, 0, 0, 0.6);z-index:300;display:flex;align-items:center;justify-content:center}.mrd-layout-section__modal.sc-mrd-layout-section{position:relative;background:#fff;border-radius:var(--mrd-border-radius);padding:var(--mrd-space-3);max-width:min(90vw, 900px);max-height:90vh;display:flex;align-items:center;justify-content:center;box-shadow:var(--mrd-shadow-lg)}.mrd-layout-section__modal-close.sc-mrd-layout-section{position:absolute;top:var(--mrd-space-2);right:var(--mrd-space-2);background:rgba(0, 0, 0, 0.5);border:none;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;font-size:var(--mrd-font-size-sm);line-height:1;z-index:1}.mrd-layout-section__modal-close.sc-mrd-layout-section:hover{background:rgba(0, 0, 0, 0.8)}.mrd-layout-section__modal-image.sc-mrd-layout-section{display:block;max-width:100%;max-height:calc(90vh - 2rem);border-radius:var(--mrd-border-radius);object-fit:contain}"}},[2,"mrd-layout-section",{items:[16],data:[16],views:[16],links:[16],locale:[1],archetypes:[16],searchQueryMap:[32],searchResultsMap:[32],imagePreviewUrl:[32],imagePreviews:[32],openHistoryField:[32],setSearchResults:[64],setViewPage:[64],setViewAggregations:[64],setViewDistinct:[64],setViewFileReference:[64],setViewCreatedObject:[64],setImagePreview:[64],openImagePreview:[64]},void 0,{data:[{dataChanged:0}]}]),_=f,g=function(){"undefined"!=typeof customElements&&["mrd-layout-section","mrd-document-container","mrd-document-list","mrd-document-view","mrd-table"].forEach((r=>{switch(r){case"mrd-layout-section":customElements.get(i(r))||customElements.define(i(r),f);break;case"mrd-document-container":customElements.get(i(r))||v();break;case"mrd-document-list":customElements.get(i(r))||y();break;case"mrd-document-view":customElements.get(i(r))||p();break;case"mrd-table":customElements.get(i(r))||m()}}))};export{_ as MrdLayoutSection,g as defineCustomElement}
1
+ import{h as r,proxyCustomElement as t,HTMLElement as o,createEvent as e,Host as a,transformTag as i}from"@stencil/core/internal/client";import{a as n,b as s,r as l,A as d}from"./client-layout.js";import{C as c,d as m}from"./mrd-table2.js";import{t as u}from"./i18n.js";import{f as h}from"./format.js";import{d as v}from"./mrd-document-container2.js";import{d as y}from"./mrd-document-list2.js";import{d as p}from"./mrd-document-view2.js";function f(r){const t=[];for(const o of r)t.push(o),o.items&&t.push(...f(o.items));return t}function _(t,o,e,a){return r("button",{class:"mrd-layout-section__download-link",onClick:()=>o&&t.on.download({href:o,fileName:e})},r("svg",{class:"mrd-layout-section__file-icon",viewBox:"0 0 24 24","aria-hidden":"true"},r("path",{fill:"currentColor",d:"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm-1 7V3.5L18.5 9H13zm-3 8l-3-3 1.41-1.41L10 14.17l4.59-4.58L16 11l-6 6z"})),a)}function g(t,o,e){var a,i,n,l,d,m,h,v,y,p,f;const g=o.dataType;switch(g){case s.HYPERLINK:{const t=null!==(a=null==e?void 0:e.href)&&void 0!==a?a:e+"",o=null!==(l=null!==(n=null!==(i=null==e?void 0:e.name)&&void 0!==i?i:null==e?void 0:e.text)&&void 0!==n?n:null==e?void 0:e.label)&&void 0!==l?l:t;return r("a",{class:"mrd-layout-section__link",href:t,target:"_blank",rel:"noopener noreferrer"},o)}case s.TEXTBLOCK:return r("div",{class:"mrd-layout-section__prose",innerHTML:e+""});case s.LONGTEXT:return r("pre",{class:"mrd-layout-section__pre"},e+"");case s.JSON:return r("pre",{class:"mrd-layout-section__pre",innerHTML:c.formatJson(e)});case s.FILE:{const r=null!==(d=null==e?void 0:e.fileName)&&void 0!==d?d:e+"",o=null!==(m=null==e?void 0:e.href)&&void 0!==m?m:"";return _(t,o,r,u("download",t.locale))}case s.IMAGE:{const a=null!==(h=null==e?void 0:e.href)&&void 0!==h?h:"",i=null!==(v=null==e?void 0:e.fileName)&&void 0!==v?v:"",n=t.imagePreviews[o.name];return n?r("button",{class:"mrd-layout-section__image-thumb-btn",onClick:()=>t.on.openImage(n),title:i||void 0},r("img",{class:"mrd-layout-section__image-thumb",src:n,alt:i})):_(t,a,i,i||a)}case s.BOOLEAN:return r("span",{class:"mrd-layout-section__boolean mrd-layout-section__boolean--"+(e?"true":"false")},u(e?"yes":"no",t.locale));case s.LIST:{const t=(null!==(y=o.listItems)&&void 0!==y?y:[]).find((r=>r.key===e+"")),a=null!==(p=null==t?void 0:t.label)&&void 0!==p?p:e+"",i=null==t?void 0:t.color,n=null==t?void 0:t.backgroundColor;return i&&n?r("span",{class:"mrd-layout-section__badge",style:{color:i,backgroundColor:n}},a):i?r("span",{class:"mrd-layout-section__badge-dot-row"},r("span",{class:"mrd-layout-section__badge-dot",style:{backgroundColor:i}}),a):a}case s.SECRET:return e?r("span",{class:"mrd-layout-section__secret-masked"},"••••••••"):null;default:return c.renderValue(g,e,null!==(f=o.listItems)&&void 0!==f?f:[],t.locale)||null}}const b=t(class extends o{constructor(r){super(),!1!==r&&this.__registerHost(),this.mrdNavigate=e(this,"mrdNavigate",7),this.mrdSearch=e(this,"mrdSearch",7),this.mrdDownload=e(this,"mrdDownload",7),this.mrdLoadViewPage=e(this,"mrdLoadViewPage",7),this.mrdLoadImage=e(this,"mrdLoadImage",7),this.mrdViewAction=e(this,"mrdViewAction",7),this.mrdLoadViewAggregations=e(this,"mrdLoadViewAggregations",7),this.mrdLoadViewDistinct=e(this,"mrdLoadViewDistinct",7),this.mrdUpdateObject=e(this,"mrdUpdateObject",7),this.mrdViewUpload=e(this,"mrdViewUpload",7),this.mrdCreateObject=e(this,"mrdCreateObject",7),this.items=[],this.data={},this.views={},this.links={},this.locale=navigator.language,this.archetypes=[],this.searchQueryMap={},this.searchResultsMap={},this.imagePreviewUrl=null,this.imagePreviews={},this.openHistoryField=null,this.historyClickOutside=null,this.searchTimers={},this.handleViewLoadPage=(r,t)=>{r.stopPropagation(),this.mrdLoadViewPage.emit({name:t,page:r.detail.page,sort:r.detail.sort,path:r.detail.path,qs:r.detail.qs})},this.handleSearchInput=(r,t)=>{this.searchQueryMap=Object.assign(Object.assign({},this.searchQueryMap),{[r]:t}),this.searchTimers[r]&&clearTimeout(this.searchTimers[r]),t.length<2?this.searchResultsMap=Object.assign(Object.assign({},this.searchResultsMap),{[r]:[]}):this.searchTimers[r]=setTimeout((()=>{this.mrdSearch.emit({query:t,dataClass:r})}),300)}}componentDidLoad(){setTimeout((()=>{this.initEmbeddedTables(),this.emitLoadImages()}),0),this.historyClickOutside=r=>{this.el.contains(r.target)||(this.openHistoryField=null)},document.addEventListener("mousedown",this.historyClickOutside)}disconnectedCallback(){this.historyClickOutside&&(document.removeEventListener("mousedown",this.historyClickOutside),this.historyClickOutside=null)}dataChanged(r){r&&Object.keys(r).length>0&&setTimeout((()=>this.initEmbeddedTables()),0)}async initEmbeddedTables(){const r=this.el.querySelectorAll("mrd-table[data-view]");for(const t of Array.from(r))"function"==typeof t.init&&await t.init()}emitLoadImages(){for(const r of f(this.items))if(r.type===n.FIELD&&r.dataType===s.IMAGE){const t=r.name,o=this.data[t],e=null==o?void 0:o.href;e&&this.mrdLoadImage.emit({fieldName:t,href:e})}}async setSearchResults(r,t){const o=null!=t?t:this.resolveSearchKey();o&&(this.searchResultsMap=Object.assign(Object.assign({},this.searchResultsMap),{[o]:r}))}async setViewPage(r,t,o,e,a,i){if(i){const t=this.el.querySelector(`mrd-document-list[data-doclist="${r}"]`);return void((null==t?void 0:t.setDocuments)&&await t.setDocuments(i,o))}const n=this.el.querySelector(`mrd-table[data-view="${r}"]`);n&&(void 0!==e&&(n.totalElements=e),await n.setPage(t,o,a))}async setViewAggregations(r,t){const o=this.el.querySelector(`mrd-table[data-view="${r}"]`);o&&await o.setAggregations(t)}async setViewDistinct(r,t,o){const e=this.el.querySelector(`mrd-document-list[data-doclist="${r}"]`);(null==e?void 0:e.setDistinct)&&await e.setDistinct(t,o)}async setViewFileReference(r,t){const o=this.el.querySelector(`mrd-document-list[data-doclist="${r}"]`);(null==o?void 0:o.setFileReference)&&await o.setFileReference(t)}async setViewCreatedObject(r,t){const o=this.el.querySelector(`mrd-document-list[data-doclist="${r}"]`);(null==o?void 0:o.setCreatedHref)&&await o.setCreatedHref(t)}async setImagePreview(r,t){this.imagePreviews=Object.assign(Object.assign({},this.imagePreviews),{[r]:t})}async openImagePreview(r){this.imagePreviewUrl=r}resolveSearchKey(){var r;const t=f(this.items).filter((r=>r.type===n.SEARCH));return 1===t.length&&null!==(r=t[0].dataClass)&&void 0!==r?r:null}fieldCtx(){return{locale:this.locale,data:this.data,imagePreviews:this.imagePreviews,openHistoryField:this.openHistoryField,on:{download:r=>this.mrdDownload.emit(r),openImage:r=>{this.imagePreviewUrl=r},toggleHistory:r=>{this.openHistoryField=r}}}}renderField(t){return function(t,o){var e,a;if(!o.name)return null;const i=t.data[o.name],n=(null!==(e=o.historyEnabled)&&void 0!==e?e:null===(a=o.field)||void 0===a?void 0:a.historyEnabled)&&null!==i&&"object"==typeof i&&"current"in i?i.current:i,l=function(t,o,e){if(null==e||""===e)return null;if(o.multiple&&Array.isArray(e)){const a=e.map((r=>g(t,o,r)));return a.every((r=>"string"==typeof r||null==r))?a.filter(Boolean).join(", ")||null:r("span",null,a.map(((t,o)=>r("span",{key:o+""},t,o<a.length-1?", ":""))))}return g(t,o,e)}(t,o,n);return o.header?r("h1",{class:"mrd-layout-section__field-header",key:o.name},"string"==typeof l?l:null!=n?n+"":o.label):null==l?null:r("div",{class:"mrd-layout-section__field"+(o.dataType===s.TEXTBLOCK||o.dataType===s.LONGTEXT||o.dataType===s.JSON?" mrd-layout-section__field--block":""),key:o.name},r("span",{class:"mrd-layout-section__field-label"},o.label),r("span",{class:"mrd-layout-section__field-value"},l,function(t,o,e){var a,i,n;if(!(null!==(a=o.historyEnabled)&&void 0!==a?a:null===(i=o.field)||void 0===i?void 0:i.historyEnabled)||!o.name)return null;const s=null!==(n=null==e?void 0:e.history)&&void 0!==n?n:[];if(!s.length)return null;const l=[...s].sort(((r,t)=>t.until.localeCompare(r.until))),d=t.openHistoryField===o.name;return r("span",{class:"mrd-layout-section__history-wrap"},r("button",{type:"button",class:"mrd-layout-section__history-btn",title:u("history_badge_tooltip",t.locale),"aria-label":u("history_badge_tooltip",t.locale),onClick:r=>{r.stopPropagation(),t.on.toggleHistory(d?null:o.name)}},r("svg",{class:"mrd-layout-section__history-icon",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true"},r("path",{"fill-rule":"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm.75-13a.75.75 0 00-1.5 0v5c0 .207.085.394.22.53l2.5 2.5a.75.75 0 101.06-1.06L10.75 9.69V5z","clip-rule":"evenodd"}))),d&&r("div",{class:"mrd-layout-section__history-popover",role:"listbox"},l.map(((o,e)=>r("div",{key:e+"",class:"mrd-layout-section__history-entry"},o.value," (",u("history_until",t.locale)," ",h(o.until,t.locale),")")))))}(t,o,i)))}(this.fieldCtx(),t)}renderRelation(t){var o,e,a;if(!t.name)return null;const i=(null!==(e=null===(o=this.data)||void 0===o?void 0:o._links)&&void 0!==e?e:{})[t.name];if(!i)return null;const n=(t,o)=>r("button",{key:t,class:"mrd-layout-section__relation-link",onClick:()=>this.mrdNavigate.emit({href:t,label:o})},o);let s;return(null===(a=i.values)||void 0===a?void 0:a.length)?s=i.values.map((r=>n(r.href,r.name))):i.name&&(s=n(i.href,i.name)),s?r("div",{class:"mrd-layout-section__field",key:t.name},r("span",{class:"mrd-layout-section__field-label"},t.label),r("span",{class:"mrd-layout-section__field-value"},s)):null}renderSearch(t){var o,e,a;if(!t.dataClass)return null;const i=t.dataClass,n=null!==(o=this.searchQueryMap[i])&&void 0!==o?o:"",s=null!==(e=this.searchResultsMap[i])&&void 0!==e?e:[];return r("div",{class:"mrd-layout-section__search",key:"search-"+i},r("div",{class:"mrd-layout-section__search-wrap"},r("svg",{class:"mrd-layout-section__search-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true"},r("path",{"fill-rule":"evenodd",d:"M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z","clip-rule":"evenodd"})),r("input",{class:"mrd-layout-section__search-input",type:"text",value:n,placeholder:null!==(a=t.label)&&void 0!==a?a:"",onInput:r=>this.handleSearchInput(i,r.target.value)})),s.length>0&&r("ul",{class:"mrd-layout-section__search-results"},s.map((t=>r("li",{key:t.id,class:"mrd-layout-section__search-result"},r("button",{class:"mrd-layout-section__search-result-btn",onClick:()=>this.mrdNavigate.emit({href:t.id,label:t.label})},r("span",{class:"mrd-layout-section__search-result-label"},t.label),t.description&&r("span",{class:"mrd-layout-section__search-result-desc"},t.description)))))))}renderRelatedView(t){var o,e,a,i,s,c,m,u;const h=function(r){var t,o,e,a;return r.type===n.RELATED_VIEW?null!==(o=null!==(t=r.relatedClass)&&void 0!==t?t:r.name)&&void 0!==o?o:"":null!==(a=null!==(e=r.dataClass)&&void 0!==e?e:r.name)&&void 0!==a?a:""}(t);if(!h)return null;if(!t.view)return null;const v=null!==(o=t.showTitle)&&void 0!==o&&o,y=null!==(s=null===(i=null===(a=null===(e=this.data)||void 0===e?void 0:e._links)||void 0===a?void 0:a.self)||void 0===i?void 0:i.href)&&void 0!==s?s:"",p=null!==(c=y.split("/").filter(Boolean).pop())&&void 0!==c?c:"",f=l(null!==(m=t.archetypes)&&void 0!==m?m:null===(u=t.view)||void 0===u?void 0:u.archetypes,d),_=function(r,t,o){if(r.type!==n.RELATED_VIEW||!r.fromClass||!o)return"";const e=t.split("/").filter(Boolean);if(e.length<2)return"";const[a,i]=e;return`/${a}/${i}/${r.fromClass}/${o}`}(t,y,p);return r("div",{class:"mrd-layout-section__related-view",key:"view-"+h},v&&t.label&&r("h3",{class:"mrd-layout-section__related-view-title"},t.label),f?this.renderDocumentContainer(t,h,p,f,_):this.renderTable(t,h,p))}renderDocumentContainer(t,o,e,a,i){return r("mrd-document-container",{item:t,archetype:a,parentId:e,containerHref:i,viewKey:o,locale:this.locale,onMrdLoadDistinct:r=>{r.stopPropagation(),this.mrdLoadViewDistinct.emit(Object.assign({name:o},r.detail))},onMrdLoadPage:r=>{r.stopPropagation(),this.mrdLoadViewPage.emit(Object.assign({name:o},r.detail))},onMrdLoadAggregations:r=>{var e;r.stopPropagation(),this.mrdLoadViewAggregations.emit(Object.assign({name:o,dataClass:null!==(e=t.dataClass)&&void 0!==e?e:o},r.detail))},onMrdNavigate:r=>{r.stopPropagation(),this.mrdNavigate.emit(r.detail)},onMrdAction:r=>{var e;r.stopPropagation(),this.mrdViewAction.emit(Object.assign({name:o,dataClass:null!==(e=t.dataClass)&&void 0!==e?e:o},r.detail))},onMrdUpdateObject:r=>{r.stopPropagation(),this.mrdUpdateObject.emit(r.detail)},onMrdUpload:r=>{r.stopPropagation(),this.mrdViewUpload.emit(Object.assign({name:o},r.detail))},onMrdCreateObject:r=>{r.stopPropagation(),this.mrdCreateObject.emit(Object.assign({name:o},r.detail))}})}renderTable(t,o,e){return r("mrd-table",{"data-view":o,item:t,parentId:e,locale:this.locale,onMrdLoadPage:r=>this.handleViewLoadPage(r,o),onMrdLoadAggregations:r=>{var e;r.stopPropagation(),this.mrdLoadViewAggregations.emit(Object.assign({name:o,dataClass:null!==(e=t.dataClass)&&void 0!==e?e:o},r.detail))},onMrdRowClick:r=>{var t,o,e;r.stopPropagation();const a=r.detail;this.mrdNavigate.emit({href:null===(o=null===(t=null==a?void 0:a._links)||void 0===t?void 0:t.self)||void 0===o?void 0:o.href,label:null!==(e=null==a?void 0:a.name)&&void 0!==e?e:""})},onMrdAction:r=>{var e;r.stopPropagation(),this.mrdViewAction.emit({name:o,action:r.detail.action,dataClass:null!==(e=t.dataClass)&&void 0!==e?e:o,path:r.detail.path,qs:r.detail.qs,parentPath:r.detail.parentPath,basicType:r.detail.basicType})}})}renderItem(t){var o,e;switch(t.type){case n.FIELD:return this.renderField(t);case n.RELATION:return this.renderRelation(t);case n.HEADER:return r("h2",{class:"mrd-layout-section__header",key:"header-"+t.label},t.label);case n.TEXT:return r("div",{class:"mrd-layout-section__text",key:"text-"+t.label,innerHTML:null!==(o=t.label)&&void 0!==o?o:""});case n.NAVIGATE:return r("button",{class:"mrd-layout-section__navigate",key:"nav-"+t.label,onClick:()=>{var r,o,e;return this.mrdNavigate.emit({label:null!==(r=t.label)&&void 0!==r?r:"",navigate:null!==(o=t.navigate)&&void 0!==o?o:{dataClass:null!==(e=t.dataClass)&&void 0!==e?e:"",icon:t.icon,navigationType:t.navigationType}})}},t.label);case n.SEARCH:return this.renderSearch(t);case n.SECTION:case n.GROUP:return r("div",{class:"mrd-layout-section__group",key:"group-"+t.label},t.label&&r("h3",{class:"mrd-layout-section__group-title"},t.label),(null!==(e=t.items)&&void 0!==e?e:[]).map((r=>this.renderItem(r))));case n.RELATED_VIEW:case n.VIEW:return this.renderRelatedView(t);default:return null}}renderImageModal(){return this.imagePreviewUrl?r("div",{class:"mrd-layout-section__modal-backdrop",onClick:()=>{this.imagePreviewUrl=null}},r("div",{class:"mrd-layout-section__modal",onClick:r=>r.stopPropagation()},r("button",{class:"mrd-layout-section__modal-close",onClick:()=>{this.imagePreviewUrl=null}},"✕"),r("img",{class:"mrd-layout-section__modal-image",src:this.imagePreviewUrl,alt:""}))):null}renderDocumentObject(t){const o=this.items.filter((r=>r.type===n.VIEW||r.type===n.RELATED_VIEW||r.type===n.SEARCH));return[r("mrd-document-view",{archetype:t,data:this.data,locale:this.locale,onMrdNavigate:r=>{r.stopPropagation(),this.mrdNavigate.emit(r.detail)},onMrdDownload:r=>{r.stopPropagation(),this.mrdDownload.emit(r.detail)}}),...o.map((r=>this.renderItem(r)))]}render(){const t=l(this.archetypes,d);return r(a,{key:"5d778188356a25ea13d45745dc5ed573ab2b2ef0"},r("div",{key:"0b673a4bcf8b36cd21662bb8a3506cc3f30edb04",class:"mrd-layout-section"},t?this.renderDocumentObject(t):this.items.map((r=>this.renderItem(r)))),this.renderImageModal())}get el(){return this}static get watchers(){return{data:[{dataChanged:0}]}}static get style(){return".mrd-layout-section.sc-mrd-layout-section{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-color-neutral-800)}.mrd-layout-section__field.sc-mrd-layout-section{display:grid;grid-template-columns:200px 1fr;align-items:baseline;gap:0 var(--mrd-space-2);padding:var(--mrd-space-1) 0}.mrd-layout-section__field-label.sc-mrd-layout-section{font-size:var(--mrd-font-size-xs);font-weight:var(--mrd-font-weight-normal);color:var(--mrd-color-neutral-500);padding-top:1px}.mrd-layout-section__field-value.sc-mrd-layout-section{font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-medium);color:var(--mrd-color-neutral-800);word-break:break-word;display:inline-flex;align-items:center;gap:var(--mrd-space-1)}.mrd-layout-section__history-wrap.sc-mrd-layout-section{position:relative;display:inline-flex;align-items:center}.mrd-layout-section__history-btn.sc-mrd-layout-section{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;padding:0;background:transparent;border:none;border-radius:var(--mrd-border-radius-sm);color:var(--mrd-color-neutral-400);cursor:pointer;flex-shrink:0;transition:color var(--mrd-transition-fast), background-color var(--mrd-transition-fast)}.mrd-layout-section__history-btn.sc-mrd-layout-section:hover{color:var(--mrd-color-neutral-700);background-color:var(--mrd-color-neutral-100)}.mrd-layout-section__history-btn.sc-mrd-layout-section:focus{outline:none;box-shadow:var(--mrd-shadow-focus)}.mrd-layout-section__history-icon.sc-mrd-layout-section{width:0.875rem;height:0.875rem}.mrd-layout-section__history-popover.sc-mrd-layout-section{position:absolute;top:calc(100% + 0.25rem);left:0;min-width:24rem;max-width:24rem;background-color:var(--mrd-color-white);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius-md);box-shadow:var(--mrd-shadow-md);padding:var(--mrd-space-1) 0;z-index:var(--mrd-z-dropdown)}.mrd-layout-section__history-entry.sc-mrd-layout-section{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-normal);color:var(--mrd-color-neutral-700);padding:var(--mrd-space-2) var(--mrd-space-3);line-height:var(--mrd-line-height-normal)}.mrd-layout-section__history-entry.sc-mrd-layout-section:not(:last-child){border-bottom:var(--mrd-border-width) solid var(--mrd-color-neutral-100)}.mrd-layout-section__field-header.sc-mrd-layout-section{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-4) 0;padding:0}.mrd-layout-section__header.sc-mrd-layout-section{font-size:var(--mrd-font-size-xl);font-weight:var(--mrd-font-weight-semibold);color:var(--mrd-color-neutral-800);margin:var(--mrd-space-4) 0 var(--mrd-space-2) 0;padding:0}.mrd-layout-section__text.sc-mrd-layout-section{font-size:var(--mrd-font-size-base);color:var(--mrd-color-neutral-700);line-height:var(--mrd-line-height-relaxed);margin:var(--mrd-space-2) 0}.mrd-layout-section__navigate.sc-mrd-layout-section{display:inline-flex;align-items:center;gap:var(--mrd-space-2);padding:var(--mrd-space-2) var(--mrd-space-3);background:none;border:1px solid var(--mrd-color-neutral-300);border-radius:var(--mrd-border-radius);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);color:var(--mrd-color-primary);cursor:pointer;margin:var(--mrd-space-2) 0}.mrd-layout-section__navigate.sc-mrd-layout-section:hover{background-color:var(--mrd-color-primary-light);border-color:var(--mrd-color-primary)}.mrd-layout-section__link.sc-mrd-layout-section{color:var(--mrd-color-primary);text-decoration:none}.mrd-layout-section__link.sc-mrd-layout-section:hover{text-decoration:underline}.mrd-layout-section__relation-link.sc-mrd-layout-section{background:none;border:none;padding:0;font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-semibold);color:var(--mrd-color-primary);cursor:pointer;text-align:left}.mrd-layout-section__relation-link.sc-mrd-layout-section:hover{text-decoration:underline}.mrd-layout-section__download-link.sc-mrd-layout-section{display:inline-flex;align-items:center;gap:var(--mrd-space-1);background:none;border:none;padding:0;font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);color:var(--mrd-color-primary);cursor:pointer;text-align:left}.mrd-layout-section__download-link.sc-mrd-layout-section:hover{text-decoration:underline;color:var(--mrd-color-primary-dark)}.mrd-layout-section__file-icon.sc-mrd-layout-section{flex-shrink:0;width:1rem;height:1rem}.mrd-layout-section__boolean--true.sc-mrd-layout-section{color:var(--mrd-color-success);font-weight:var(--mrd-font-weight-semibold)}.mrd-layout-section__boolean--false.sc-mrd-layout-section{color:var(--mrd-color-neutral-400)}.mrd-layout-section__field--block.sc-mrd-layout-section{grid-template-columns:1fr}.mrd-layout-section__badge.sc-mrd-layout-section{display:inline-block;font-size:var(--mrd-font-size-xs);font-weight:var(--mrd-font-weight-medium);padding:2px var(--mrd-space-3);border-radius:10px}.mrd-layout-section__badge-dot-row.sc-mrd-layout-section{display:inline-flex;align-items:center;gap:var(--mrd-space-2)}.mrd-layout-section__badge-dot.sc-mrd-layout-section{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.mrd-layout-section__secret-masked.sc-mrd-layout-section{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-label-color);letter-spacing:0.15em;user-select:none;pointer-events:none}.mrd-layout-section__pre.sc-mrd-layout-section{font-family:var(--mrd-font-family-mono);font-size:var(--mrd-font-size-xs);background-color:var(--mrd-color-neutral-50);border:1px solid var(--mrd-color-neutral-200);border-radius:var(--mrd-border-radius);padding:var(--mrd-space-3);margin:0;max-height:calc(15 * var(--mrd-font-size-xs));overflow-x:auto;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.mrd-layout-section__group.sc-mrd-layout-section{margin:var(--mrd-space-4) 0}.mrd-layout-section__group-title.sc-mrd-layout-section{font-size:var(--mrd-font-size-xs);font-weight:var(--mrd-font-weight-semibold);color:var(--mrd-color-neutral-500);margin:0 0 var(--mrd-space-2) 0;padding-bottom:0;letter-spacing:0.01em}.mrd-layout-section__related-view.sc-mrd-layout-section{margin:var(--mrd-space-4) 0}.mrd-layout-section__related-view-title.sc-mrd-layout-section{font-size:var(--mrd-font-size-lg);font-weight:var(--mrd-font-weight-semibold);color:var(--mrd-color-neutral-800);margin:0 0 var(--mrd-space-3) 0}.mrd-layout-section__search.sc-mrd-layout-section{position:relative;margin:var(--mrd-space-2) 0}.mrd-layout-section__search-wrap.sc-mrd-layout-section{position:relative}.mrd-layout-section__search-icon.sc-mrd-layout-section{position:absolute;left:var(--mrd-input-padding-x);top:50%;transform:translateY(-50%);width:1rem;height:1rem;color:var(--mrd-color-neutral-400);pointer-events:none}.mrd-layout-section__search-input.sc-mrd-layout-section{display:block;width:100%;height:var(--mrd-input-height);padding:var(--mrd-input-padding-y) var(--mrd-input-padding-x) var(--mrd-input-padding-y) calc(var(--mrd-input-padding-x) + 1rem + var(--mrd-space-2));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-layout-section__search-input.sc-mrd-layout-section:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-layout-section__search-input.sc-mrd-layout-section::placeholder{color:var(--mrd-input-placeholder-color)}.mrd-layout-section__search-results.sc-mrd-layout-section{position:absolute;top:100%;left:0;right:0;background-color:var(--mrd-color-white);border:1px solid var(--mrd-color-neutral-300);border-top:none;border-radius:0 0 var(--mrd-border-radius) var(--mrd-border-radius);box-shadow:var(--mrd-shadow-sm);z-index:100;max-height:300px;overflow-y:auto;list-style:none;margin:0;padding:var(--mrd-space-1) 0}.mrd-layout-section__search-result.sc-mrd-layout-section{margin:0;padding:0}.mrd-layout-section__search-result-btn.sc-mrd-layout-section{display:flex;flex-direction:column;width:100%;padding:var(--mrd-space-2) var(--mrd-space-3);background:none;border:none;text-align:left;cursor:pointer;font-family:var(--mrd-font-family)}.mrd-layout-section__search-result-btn.sc-mrd-layout-section:hover{background-color:var(--mrd-color-primary-light)}.mrd-layout-section__search-result-label.sc-mrd-layout-section{font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-medium);color:var(--mrd-color-neutral-800)}.mrd-layout-section__search-result-desc.sc-mrd-layout-section{font-size:var(--mrd-font-size-xs);color:var(--mrd-color-neutral-500);margin-top:var(--mrd-space-1)}.mrd-layout-section__image-thumb-btn.sc-mrd-layout-section{background:none;border:none;padding:0;cursor:pointer;display:inline-block;border-radius:var(--mrd-border-radius);overflow:hidden;line-height:0}.mrd-layout-section__image-thumb-btn.sc-mrd-layout-section:hover .mrd-layout-section__image-thumb.sc-mrd-layout-section{opacity:0.85}.mrd-layout-section__image-thumb.sc-mrd-layout-section{display:block;max-width:160px;max-height:100px;border-radius:var(--mrd-border-radius);object-fit:cover;transition:opacity 0.15s}.mrd-layout-section__modal-backdrop.sc-mrd-layout-section{position:fixed;inset:0;background:rgba(0, 0, 0, 0.6);z-index:300;display:flex;align-items:center;justify-content:center}.mrd-layout-section__modal.sc-mrd-layout-section{position:relative;background:var(--mrd-color-white);border-radius:var(--mrd-border-radius);padding:var(--mrd-space-3);max-width:min(90vw, 900px);max-height:90vh;display:flex;align-items:center;justify-content:center;box-shadow:var(--mrd-shadow-lg)}.mrd-layout-section__modal-close.sc-mrd-layout-section{position:absolute;top:var(--mrd-space-2);right:var(--mrd-space-2);background:rgba(0, 0, 0, 0.5);border:none;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--mrd-color-white);cursor:pointer;font-size:var(--mrd-font-size-sm);line-height:1;z-index:1}.mrd-layout-section__modal-close.sc-mrd-layout-section:hover{background:rgba(0, 0, 0, 0.8)}.mrd-layout-section__modal-image.sc-mrd-layout-section{display:block;max-width:100%;max-height:calc(90vh - 2rem);border-radius:var(--mrd-border-radius);object-fit:contain}"}},[2,"mrd-layout-section",{items:[16],data:[16],views:[16],links:[16],locale:[1],archetypes:[16],searchQueryMap:[32],searchResultsMap:[32],imagePreviewUrl:[32],imagePreviews:[32],openHistoryField:[32],setSearchResults:[64],setViewPage:[64],setViewAggregations:[64],setViewDistinct:[64],setViewFileReference:[64],setViewCreatedObject:[64],setImagePreview:[64],openImagePreview:[64]},void 0,{data:[{dataChanged:0}]}]),w=b,x=function(){"undefined"!=typeof customElements&&["mrd-layout-section","mrd-document-container","mrd-document-list","mrd-document-view","mrd-table"].forEach((r=>{switch(r){case"mrd-layout-section":customElements.get(i(r))||customElements.define(i(r),b);break;case"mrd-document-container":customElements.get(i(r))||v();break;case"mrd-document-list":customElements.get(i(r))||y();break;case"mrd-document-view":customElements.get(i(r))||p();break;case"mrd-table":customElements.get(i(r))||m()}}))};export{w as MrdLayoutSection,x as defineCustomElement}
@@ -1 +1 @@
1
- import{proxyCustomElement as r,HTMLElement as i,createEvent as e,h as t,Host as s,transformTag as l}from"@stencil/core/internal/client";import{t as d}from"./i18n.js";import{v as o}from"./validation.js";const a=r(class extends i{constructor(r){super(),!1!==r&&this.__registerHost(),this.mrdChange=e(this,"mrdChange",7),this.mrdBlur=e(this,"mrdBlur",7),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 i=r.target;if(this.multiple){const r=Array.from(i.selectedOptions).map((r=>r.value));this.selected=r,this.error=this.required&&!o(r)?d("required",this.locale):"",this.mrdChange.emit({name:this.name,value:r})}else{const r=i.value;this.error=this.required&&!o(r)?d("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((i=>i!==r)):[...this.selected,r],this.error=this.required&&!o(this.selected)?d("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 i=r.replace("#","");return(.299*parseInt(i.substr(0,2),16)+.587*parseInt(i.substr(2,2),16)+.114*parseInt(i.substr(4,2),16))/255>.5?"#000000":"#ffffff"}render(){var r,i;const e=!!this.error,l=Array.isArray(this.value)?null!==(r=this.value[0])&&void 0!==r?r:"":null!==(i=this.value)&&void 0!==i?i:"";return t(s,null,t("div",{class:"mrd-list-field"},this.label&&t("label",{class:"mrd-list-field__label"+(this.required?" mrd-list-field__label--required":"")},this.label),this.multiple?t("div",{class:"mrd-list-field__checkbox-list"+(e?" mrd-list-field__checkbox-list--error":"")},this.listItems.map((r=>{var i,e;return t("label",{key:r.key,class:"mrd-list-field__checkbox-item"},t("input",{type:"checkbox",checked:this.selected.includes(r.key),disabled:this.disabled,onChange:()=>this.toggleCheckbox(r.key)}),(r.color||r.backgroundColor)&&t("span",{class:"mrd-list-field__color-dot",style:{backgroundColor:null!==(e=null!==(i=r.backgroundColor)&&void 0!==i?i:r.color)&&void 0!==e?e:""}}),t("span",null,r.label))}))):t("select",{class:"mrd-list-field__select"+(e?" mrd-list-field__select--error":""),name:this.name,required:this.required,disabled:this.disabled,onChange:this.handleSelectChange,onBlur:this.handleBlur},t("option",{value:""},d("select_placeholder",this.locale)),this.listItems.map((r=>{var i,e;const s=null!==(e=null!==(i=r.backgroundColor)&&void 0!==i?i:r.color)&&void 0!==e?e:null,d=s?{backgroundColor:s,color:this.getContrastColor(s)}:{};return t("option",{key:r.key,value:r.key,selected:r.key===l,style:d},r.label)}))),e&&t("span",{class:"mrd-list-field__error"},this.error)))}static get style(){return".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)}"}},[2,"mrd-list-field",{name:[1],label:[1],value:[1],required:[4],disabled:[4],multiple:[4],locale:[1],listItems:[16],error:[32],selected:[32]}]);function c(){"undefined"!=typeof customElements&&["mrd-list-field"].forEach((r=>{"mrd-list-field"===r&&(customElements.get(l(r))||customElements.define(l(r),a))}))}export{a as M,c as d}
1
+ import{proxyCustomElement as r,HTMLElement as i,createEvent as e,h as t,Host as s,transformTag as l}from"@stencil/core/internal/client";import{t as d}from"./i18n.js";import{r as o,F as a,c,a as n}from"./field-helpers.js";const m=r(class extends i{constructor(r){super(),!1!==r&&this.__registerHost(),this.mrdChange=e(this,"mrdChange",7),this.mrdBlur=e(this,"mrdBlur",7),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 i=r.target;if(this.multiple){const r=Array.from(i.selectedOptions).map((r=>r.value));this.selected=r,this.error=o(r,this.required,this.locale),this.mrdChange.emit({name:this.name,value:r})}else{const r=i.value;this.error=o(r,this.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((i=>i!==r)):[...this.selected,r],this.error=o(this.selected,this.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 i=r.replace("#","");return(.299*parseInt(i.substr(0,2),16)+.587*parseInt(i.substr(2,2),16)+.114*parseInt(i.substr(4,2),16))/255>.5?"#000000":"#ffffff"}render(){var r,i;const e=!!this.error,l=Array.isArray(this.value)?null!==(r=this.value[0])&&void 0!==r?r:"":null!==(i=this.value)&&void 0!==i?i:"";return t(s,null,t("div",{class:"mrd-list-field"},t(a,{base:"mrd-list-field",label:this.label,required:this.required}),this.multiple?t("div",{class:c("mrd-list-field",e,"checkbox-list")},this.listItems.map((r=>{var i,e;return t("label",{key:r.key,class:"mrd-list-field__checkbox-item"},t("input",{type:"checkbox",checked:this.selected.includes(r.key),disabled:this.disabled,onChange:()=>this.toggleCheckbox(r.key)}),(r.color||r.backgroundColor)&&t("span",{class:"mrd-list-field__color-dot",style:{backgroundColor:null!==(e=null!==(i=r.backgroundColor)&&void 0!==i?i:r.color)&&void 0!==e?e:""}}),t("span",null,r.label))}))):t("select",{class:c("mrd-list-field",e,"select"),name:this.name,required:this.required,disabled:this.disabled,onChange:this.handleSelectChange,onBlur:this.handleBlur},t("option",{value:""},d("select_placeholder",this.locale)),this.listItems.map((r=>{var i,e;const s=null!==(e=null!==(i=r.backgroundColor)&&void 0!==i?i:r.color)&&void 0!==e?e:null,d=s?{backgroundColor:s,color:this.getContrastColor(s)}:{};return t("option",{key:r.key,value:r.key,selected:r.key===l,style:d},r.label)}))),t(n,{base:"mrd-list-field",error:this.error})))}static get style(){return".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);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-list-field__select.sc-mrd-list-field::placeholder{color:var(--mrd-input-placeholder-color)}.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__select.sc-mrd-list-field{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;padding-right:calc(var(--mrd-input-padding-x) + 1.5rem);cursor:pointer}.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)}.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}"}},[2,"mrd-list-field",{name:[1],label:[1],value:[1],required:[4],disabled:[4],multiple:[4],locale:[1],listItems:[16],error:[32],selected:[32]}]);function h(){"undefined"!=typeof customElements&&["mrd-list-field"].forEach((r=>{"mrd-list-field"===r&&(customElements.get(l(r))||customElements.define(l(r),m))}))}export{m as M,h as d}
@@ -1 +1 @@
1
- import{proxyCustomElement as r,HTMLElement as e,createEvent as t,h as d,Host as o,transformTag as i}from"@stencil/core/internal/client";import{t as l}from"./i18n.js";import{v as a}from"./validation.js";const n=r(class extends e{constructor(r){super(),!1!==r&&this.__registerHost(),this.mrdChange=t(this,"mrdChange",7),this.mrdBlur=t(this,"mrdBlur",7),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&&!a(e)?l("required",this.locale):"",this.mrdBlur.emit({name:this.name,value:e})}}render(){const r=!!this.error;return d(o,{key:"f00f81944748f8f09e22d44befe5e288456b7cc8"},d("div",{key:"7b0ae9cf5b6b684cddb648fe4db6005494322535",class:"mrd-longtext-field"},this.label&&d("label",{key:"3fc6a8710d0e98fe685c45d214a88ae1b0947973",class:"mrd-longtext-field__label"+(this.required?" mrd-longtext-field__label--required":"")},this.label),this.disabled?d("pre",{class:"mrd-longtext-field__content"},this.value):d("textarea",{class:"mrd-longtext-field__input"+(r?" mrd-longtext-field__input--error":""),name:this.name,placeholder:this.placeholder,required:this.required,rows:10,onInput:this.handleInput,onBlur:this.handleBlur},this.value),r&&d("span",{key:"e96f1dbc6c00a1602f4ce3c97d514a229aeb7cb7",class:"mrd-longtext-field__error"},this.error)))}static get style(){return".sc-mrd-longtext-field-h{display:block}.mrd-longtext-field.sc-mrd-longtext-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%}.mrd-longtext-field__label.sc-mrd-longtext-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-longtext-field__label--required.sc-mrd-longtext-field::after{content:' *';color:var(--mrd-color-danger)}.mrd-longtext-field__input.sc-mrd-longtext-field{display:block;width:100%;min-height:calc(var(--mrd-input-height) * 5);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;resize:vertical;box-sizing:border-box;line-height:1.5}.mrd-longtext-field__input.sc-mrd-longtext-field::placeholder{color:var(--mrd-input-placeholder-color)}.mrd-longtext-field__input.sc-mrd-longtext-field:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-longtext-field__input--error.sc-mrd-longtext-field{border-color:var(--mrd-border-color-error)}.mrd-longtext-field__input--error.sc-mrd-longtext-field:focus{box-shadow:var(--mrd-shadow-focus-error)}.mrd-longtext-field__content.sc-mrd-longtext-field{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-input-color);white-space:pre-wrap;word-break:break-word;margin:0;padding:var(--mrd-input-padding-y) var(--mrd-input-padding-x);background-color:var(--mrd-input-bg-disabled);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);line-height:1.5}.mrd-longtext-field__error.sc-mrd-longtext-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}"}},[2,"mrd-longtext-field",{name:[1],label:[1],value:[1],placeholder:[1],required:[4],disabled:[4],locale:[1],error:[32]}]);function s(){"undefined"!=typeof customElements&&["mrd-longtext-field"].forEach((r=>{"mrd-longtext-field"===r&&(customElements.get(i(r))||customElements.define(i(r),n))}))}export{n as M,s as d}
1
+ import{proxyCustomElement as r,HTMLElement as e,createEvent as t,h as d,Host as o,transformTag as i}from"@stencil/core/internal/client";import{r as l,F as a,c as n,a as s}from"./field-helpers.js";const m=r(class extends e{constructor(r){super(),!1!==r&&this.__registerHost(),this.mrdChange=t(this,"mrdChange",7),this.mrdBlur=t(this,"mrdBlur",7),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=l(e,this.required,this.locale),this.mrdBlur.emit({name:this.name,value:e})}}render(){return d(o,{key:"1d23db1324fa0fc97a07fdae65f2d84e43419a72"},d("div",{key:"0ad2b262088aa3745f088a44af26649593805840",class:"mrd-longtext-field"},d(a,{key:"5a78739d6ced4e2df77589b64c66401819c4b5c7",base:"mrd-longtext-field",label:this.label,required:this.required}),this.disabled?d("pre",{class:"mrd-longtext-field__content"},this.value):d("textarea",{class:n("mrd-longtext-field",!!this.error),name:this.name,placeholder:this.placeholder,required:this.required,rows:10,onInput:this.handleInput,onBlur:this.handleBlur},this.value),d(s,{key:"5b870a75b518e2808518b83c9abebf8589a86108",base:"mrd-longtext-field",error:this.error})))}static get style(){return'.sc-mrd-longtext-field-h{display:block}.mrd-longtext-field.sc-mrd-longtext-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%}.mrd-longtext-field__label.sc-mrd-longtext-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-longtext-field__label--required.sc-mrd-longtext-field::after{content:" *";color:var(--mrd-color-danger)}.mrd-longtext-field__input.sc-mrd-longtext-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-longtext-field__input.sc-mrd-longtext-field::placeholder{color:var(--mrd-input-placeholder-color)}.mrd-longtext-field__input.sc-mrd-longtext-field:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-longtext-field__input.sc-mrd-longtext-field:disabled{background-color:var(--mrd-input-bg-disabled);cursor:not-allowed;opacity:0.7}.mrd-longtext-field__input--error.sc-mrd-longtext-field{border-color:var(--mrd-border-color-error)}.mrd-longtext-field__input--error.sc-mrd-longtext-field:focus{box-shadow:var(--mrd-shadow-focus-error)}.mrd-longtext-field__error.sc-mrd-longtext-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}.mrd-longtext-field__input.sc-mrd-longtext-field{height:auto;min-height:calc(var(--mrd-input-height) * 5);resize:vertical;line-height:1.5}.mrd-longtext-field__content.sc-mrd-longtext-field{font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-input-color);white-space:pre-wrap;word-break:break-word;margin:0;padding:var(--mrd-input-padding-y) var(--mrd-input-padding-x);background-color:var(--mrd-input-bg-disabled);border:var(--mrd-border-width) solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);line-height:1.5}'}},[2,"mrd-longtext-field",{name:[1],label:[1],value:[1],placeholder:[1],required:[4],disabled:[4],locale:[1],error:[32]}]);function c(){"undefined"!=typeof customElements&&["mrd-longtext-field"].forEach((r=>{"mrd-longtext-field"===r&&(customElements.get(i(r))||customElements.define(i(r),m))}))}export{m as M,c as d}
@@ -1 +1 @@
1
- import{proxyCustomElement as r,HTMLElement as i,createEvent as e,h as d,Host as t,transformTag as s}from"@stencil/core/internal/client";import{t as o}from"./i18n.js";import{c as a,v as l}from"./validation.js";import{p as n,a as m}from"./format.js";import{b as c}from"./client-layout.js";const u=r(class extends i{constructor(r){super(),!1!==r&&this.__registerHost(),this.mrdChange=e(this,"mrdChange",7),this.mrdBlur=e(this,"mrdBlur",7),this.name="",this.label="",this.value=null,this.placeholder="",this.required=!1,this.disabled=!1,this.locale=navigator.language,this.dataType=c.INTEGER,this.decimalPrecision=2,this.displayValue="",this.error="",this.handleInput=r=>{this.displayValue=r.target.value},this.handleBlur=r=>{const i=r.target.value,e=n(i,this.locale);this.error=!this.required||null!==e&&""!==i?""===i||a(e,this.dataType)?"":o("invalid_number",this.locale):o("required",this.locale),null!==e&&l(i)&&(this.displayValue=this.formatForDisplay(e)),this.mrdChange.emit({name:this.name,value:e}),this.mrdBlur.emit({name:this.name,value:e})},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===c.PERCENTAGE?m(r,this.locale,{minimumFractionDigits:0,maximumFractionDigits:this.decimalPrecision})+"%":m(r,this.locale,this.dataType===c.DECIMAL?{minimumFractionDigits:this.decimalPrecision,maximumFractionDigits:this.decimalPrecision}:{maximumFractionDigits:0})}render(){const r=!!this.error,i=this.dataType===c.PERCENTAGE?"%":"";return d(t,{key:"b034a3cc8d841641c0ec167e138904586b044121"},d("div",{key:"7379bfadb8bd0c4e0a945a37013053a4e22477ab",class:"mrd-number-field"},this.label&&d("label",{key:"5518d40b7158e17704633c2b95ac7e3efc0c5568",class:"mrd-number-field__label"+(this.required?" mrd-number-field__label--required":"")},this.label),d("div",{key:"38ad9f3c945d66c23bd77c743306e916eaefed7f",class:"mrd-number-field__input-wrapper"},d("input",{key:"ac8b4bc1ea4431cc9306664522ebfda21760ae83",class:"mrd-number-field__input"+(r?" mrd-number-field__input--error":""),type:"text",inputMode:"decimal",name:this.name,value:this.displayValue,placeholder:this.placeholder||(i?`0${i}`:"0"),required:this.required,disabled:this.disabled,onInput:this.handleInput,onBlur:this.handleBlur,onFocus:this.handleFocus})),r&&d("span",{key:"09f5a58b769c81acdf4bdd48f9325934c4bb875d",class:"mrd-number-field__error"},this.error)))}static get style(){return".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)}"}},[2,"mrd-number-field",{name:[1],label:[1],value:[2],placeholder:[1],required:[4],disabled:[4],locale:[1],dataType:[1,"data-type"],decimalPrecision:[2,"decimal-precision"],displayValue:[32],error:[32]}]);function b(){"undefined"!=typeof customElements&&["mrd-number-field"].forEach((r=>{"mrd-number-field"===r&&(customElements.get(s(r))||customElements.define(s(r),u))}))}export{u as M,b as d}
1
+ import{proxyCustomElement as r,HTMLElement as e,createEvent as i,h as d,Host as t,transformTag as s}from"@stencil/core/internal/client";import{t as o}from"./i18n.js";import{d as a,e as l,F as m,c as n,a as c}from"./field-helpers.js";import{p as u,a as f}from"./format.js";import{b}from"./client-layout.js";const h=r(class extends e{constructor(r){super(),!1!==r&&this.__registerHost(),this.mrdChange=i(this,"mrdChange",7),this.mrdBlur=i(this,"mrdBlur",7),this.name="",this.label="",this.value=null,this.placeholder="",this.required=!1,this.disabled=!1,this.locale=navigator.language,this.dataType=b.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=u(e,this.locale);this.error=!this.required||null!==i&&""!==e?""===e||a(i,this.dataType)?"":o("invalid_number",this.locale):o("required",this.locale),null!==i&&l(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===b.PERCENTAGE?f(r,this.locale,{minimumFractionDigits:0,maximumFractionDigits:this.decimalPrecision})+"%":f(r,this.locale,this.dataType===b.DECIMAL?{minimumFractionDigits:this.decimalPrecision,maximumFractionDigits:this.decimalPrecision}:{maximumFractionDigits:0})}render(){const r=!!this.error,e=this.dataType===b.PERCENTAGE?"%":"";return d(t,{key:"fd7220e0a7f574ab0c61094a9ba7fd764e1adafd"},d("div",{key:"ef6118a339c9766f187cd2b1fa3fcc85ef8cb69f",class:"mrd-number-field"},d(m,{key:"015207ae65df07f7ee7bbc24ccab45524176dbf7",base:"mrd-number-field",label:this.label,required:this.required}),d("div",{key:"954b99cbcf4002b0336810e354f1a46d39cb8076",class:"mrd-number-field__input-wrapper"},d("input",{key:"dddc08e090b200736d186960db1436e44f42703c",class:n("mrd-number-field",r),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})),d(c,{key:"87e12bd737aed0a845470cef66d7a6d61d11de0b",base:"mrd-number-field",error:this.error})))}static get style(){return'.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}.mrd-number-field__input.sc-mrd-number-field::placeholder{color:var(--mrd-input-placeholder-color)}.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__input.sc-mrd-number-field{text-align:right}.mrd-number-field__input.sc-mrd-number-field::placeholder{text-align:left}.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)}'}},[2,"mrd-number-field",{name:[1],label:[1],value:[2],placeholder:[1],required:[4],disabled:[4],locale:[1],dataType:[1,"data-type"],decimalPrecision:[2,"decimal-precision"],displayValue:[32],error:[32]}]);function p(){"undefined"!=typeof customElements&&["mrd-number-field"].forEach((r=>{"mrd-number-field"===r&&(customElements.get(s(r))||customElements.define(s(r),h))}))}export{h as M,p as d}
@@ -1 +1 @@
1
- import{proxyCustomElement as r,HTMLElement as e,createEvent as i,h as t,Host as l,transformTag as o}from"@stencil/core/internal/client";import{t as a}from"./i18n.js";import{v as s}from"./validation.js";import{c as d,d as n}from"./client-layout.js";const m=r(class extends e{constructor(r){super(),!1!==r&&this.__registerHost(),this.mrdChange=i(this,"mrdChange",7),this.mrdBlur=i(this,"mrdBlur",7),this.mrdSearch=i(this,"mrdSearch",7),this.mrdFetchAll=i(this,"mrdFetchAll",7),this.name="",this.label="",this.required=!1,this.disabled=!1,this.locale=navigator.language,this.relatedClass="",this.mostSignificantClass="",this.displayType=d.SEARCH,this.multiple=!1,this.dropdownValues=[],this.value=null,this.searchQuery="",this.searchResults=[],this.allRecords=[],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({name:this.name,query:e,relatedClass:this.mostSignificantClass})}),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&&!s(this.selectedItems)?a("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&&!s(e)?a("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 setAllRecords(r){this.allRecords=r}getValueHref(){var r,e,i;const t=Array.isArray(this.value)?null!==(r=this.value[0])&&void 0!==r?r:"":null!==(e=this.value)&&void 0!==e?e:"";return t?"object"==typeof t?null!==(i=t.id)&&void 0!==i?i:"":t:""}allRecordsChanged(){if(this.editBehavior!==n.DROPDOWN)return;const r=this.getValueHref();r&&setTimeout((()=>{var e;const i=null===(e=this.el)||void 0===e?void 0:e.querySelector("select");i&&(i.value=r)}),0)}async setSearchResults(r){this.searchResults=r,this.isLoading=!1,this.showResults=!0,this.highlightedIndex=-1}async setLoading(r){this.isLoading=r}toSearchResult(r){var e,i,t,l;return{id:null!==(i=null!==(e=r.id)&&void 0!==e?e:r.href)&&void 0!==i?i:"",label:null!==(l=null!==(t=r.label)&&void 0!==t?t:r.name)&&void 0!==l?l:"",description:r.description}}applyValuePrefill(r){if(r)if(Array.isArray(r))r.length>0&&"object"==typeof r[0]&&(this.selectedItems=r.map((r=>this.toSearchResult(r))),this.searchQuery="");else if("object"==typeof r){const e=r;if(Array.isArray(e.values))this.selectedItems=e.values.map((r=>this.toSearchResult(r))),this.searchQuery="";else if(!this.multiple&&(e.id||e.name||e.label)){const r=this.toSearchResult(e);this.selectedItems=[r],this.searchQuery=r.label}}}componentWillLoad(){this.applyValuePrefill(this.value)}valueChanged(r){this.applyValuePrefill(r)}componentDidLoad(){this.editBehavior!==n.DROPDOWN||this.commonRelation||setTimeout((()=>{this.mrdFetchAll.emit({name:this.name,relatedClass:this.relatedClass,mostSignificantClass:this.mostSignificantClass||void 0})}),0)}render(){var r,e;const i=!!this.error;if(this.editBehavior===n.DROPDOWN){const r=this.getValueHref();return t(l,null,t("div",{class:"mrd-relation-field"},this.label&&t("label",{class:"mrd-relation-field__label"+(this.required?" mrd-relation-field__label--required":"")},this.label),t("select",{class:"mrd-relation-field__select"+(i?" mrd-relation-field__select--error":""),name:this.name,required:this.required,disabled:this.disabled,onChange:this.handleDropdownChange},t("option",{value:""},a("select_placeholder",this.locale)),this.allRecords.map((e=>t("option",{key:e.id,value:e.id,selected:e.id===r},e.label)))),i&&t("span",{class:"mrd-relation-field__error"},this.error)))}if(this.displayType===d.DROPDOWN){const o=Array.isArray(this.value)?null!==(r=this.value[0])&&void 0!==r?r:"":null!==(e=this.value)&&void 0!==e?e:"";return t(l,null,t("div",{class:"mrd-relation-field"},this.label&&t("label",{class:"mrd-relation-field__label"+(this.required?" mrd-relation-field__label--required":"")},this.label),t("select",{class:"mrd-relation-field__select"+(i?" mrd-relation-field__select--error":""),name:this.name,required:this.required,disabled:this.disabled,onChange:this.handleDropdownChange},t("option",{value:""},a("select_placeholder",this.locale)),this.dropdownValues.map((r=>t("option",{key:r.key,value:r.key,selected:r.key===o},r.label)))),i&&t("span",{class:"mrd-relation-field__error"},this.error)))}const o=this.label&&t("label",{class:"mrd-relation-field__label"+(this.required?" mrd-relation-field__label--required":"")},this.label);return t(l,null,!this.multiple&&this.selectedItems.length>0?t("div",{class:"mrd-relation-field"},o,t("div",{class:"mrd-relation-field__selected-value"+(i?" mrd-relation-field__selected-value--error":"")},t("span",{class:"mrd-relation-field__selected-name"},this.selectedItems[0].label),t("button",{type:"button",class:"mrd-relation-field__selected-clear",onClick:this.clearSelection,"aria-label":a("remove",this.locale)},"✕")),i&&t("span",{class:"mrd-relation-field__error"},this.error)):t("div",{class:"mrd-relation-field"},o,this.multiple&&this.selectedItems.length>0&&t("div",{class:"mrd-relation-field__tags"},this.selectedItems.map((r=>t("span",{key:r.id,class:"mrd-relation-field__tag"},r.label,t("button",{type:"button",class:"mrd-relation-field__tag-remove",onClick:()=>this.handleRemoveSelected(r.id),"aria-label":a("remove",this.locale)},"✕"))))),t("div",{class:"mrd-relation-field__search-wrapper"},t("input",{class:"mrd-relation-field__search"+(i?" mrd-relation-field__search--error":""),type:"text",value:this.searchQuery,placeholder:a("search_placeholder",this.locale),disabled:this.disabled,onInput:this.handleSearchInput,onKeyDown:this.handleKeyDown,onBlur:this.handleBlur}),this.isLoading&&t("span",{class:"mrd-relation-field__spinner","aria-label":a("loading",this.locale)})),this.showResults&&t("div",{class:"mrd-relation-field__results"},0!==this.searchResults.length||this.isLoading?this.searchResults.map(((r,e)=>t("div",{key:r.id,class:"mrd-relation-field__result-item"+(e===this.highlightedIndex?" mrd-relation-field__result-item--highlighted":""),onMouseDown:()=>this.handleResultSelect(r)},t("span",{class:"mrd-relation-field__result-label"},r.label),r.description&&t("span",{class:"mrd-relation-field__result-desc"},r.description)))):t("div",{class:"mrd-relation-field__no-results"},a("no_results",this.locale))),i&&t("span",{class:"mrd-relation-field__error"},this.error)))}get el(){return this}static get watchers(){return{allRecords:[{allRecordsChanged:0}],value:[{valueChanged:0}]}}static get style(){return".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)}"}},[2,"mrd-relation-field",{name:[1],label:[1],required:[4],disabled:[4],locale:[1],relatedClass:[1,"related-class"],mostSignificantClass:[1,"most-significant-class"],displayType:[1,"display-type"],editBehavior:[1,"edit-behavior"],commonRelation:[1,"common-relation"],multiple:[4],dropdownValues:[16],value:[1],searchQuery:[32],searchResults:[32],allRecords:[32],isLoading:[32],selectedItems:[32],showResults:[32],error:[32],highlightedIndex:[32],setAllRecords:[64],setSearchResults:[64],setLoading:[64]},void 0,{allRecords:[{allRecordsChanged:0}],value:[{valueChanged:0}]}]);function h(){"undefined"!=typeof customElements&&["mrd-relation-field"].forEach((r=>{"mrd-relation-field"===r&&(customElements.get(o(r))||customElements.define(o(r),m))}))}export{m as M,h as d}
1
+ import{proxyCustomElement as r,HTMLElement as e,createEvent as i,h as t,Host as o,transformTag as l}from"@stencil/core/internal/client";import{t as a}from"./i18n.js";import{c as d,d as s}from"./client-layout.js";import{r as n,F as m,c as h,a as c}from"./field-helpers.js";const f=r(class extends e{constructor(r){super(),!1!==r&&this.__registerHost(),this.mrdChange=i(this,"mrdChange",7),this.mrdBlur=i(this,"mrdBlur",7),this.mrdSearch=i(this,"mrdSearch",7),this.mrdFetchAll=i(this,"mrdFetchAll",7),this.name="",this.label="",this.required=!1,this.disabled=!1,this.locale=navigator.language,this.relatedClass="",this.mostSignificantClass="",this.displayType=d.SEARCH,this.multiple=!1,this.dropdownValues=[],this.value=null,this.searchQuery="",this.searchResults=[],this.allRecords=[],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({name:this.name,query:e,relatedClass:this.mostSignificantClass})}),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=n(this.selectedItems,this.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=n(e,this.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 setAllRecords(r){this.allRecords=r}getValueHref(){var r,e,i;const t=Array.isArray(this.value)?null!==(r=this.value[0])&&void 0!==r?r:"":null!==(e=this.value)&&void 0!==e?e:"";return t?"object"==typeof t?null!==(i=t.id)&&void 0!==i?i:"":t:""}allRecordsChanged(){if(this.editBehavior!==s.DROPDOWN)return;const r=this.getValueHref();r&&setTimeout((()=>{var e;const i=null===(e=this.el)||void 0===e?void 0:e.querySelector("select");i&&(i.value=r)}),0)}async setSearchResults(r){this.searchResults=r,this.isLoading=!1,this.showResults=!0,this.highlightedIndex=-1}async setLoading(r){this.isLoading=r}toSearchResult(r){var e,i,t,o;return{id:null!==(i=null!==(e=r.id)&&void 0!==e?e:r.href)&&void 0!==i?i:"",label:null!==(o=null!==(t=r.label)&&void 0!==t?t:r.name)&&void 0!==o?o:"",description:r.description}}applyValuePrefill(r){if(r)if(Array.isArray(r))r.length>0&&"object"==typeof r[0]&&(this.selectedItems=r.map((r=>this.toSearchResult(r))),this.searchQuery="");else if("object"==typeof r){const e=r;if(Array.isArray(e.values))this.selectedItems=e.values.map((r=>this.toSearchResult(r))),this.searchQuery="";else if(!this.multiple&&(e.id||e.name||e.label)){const r=this.toSearchResult(e);this.selectedItems=[r],this.searchQuery=r.label}}}componentWillLoad(){this.applyValuePrefill(this.value)}valueChanged(r){this.applyValuePrefill(r)}componentDidLoad(){this.editBehavior!==s.DROPDOWN||this.commonRelation||setTimeout((()=>{this.mrdFetchAll.emit({name:this.name,relatedClass:this.relatedClass,mostSignificantClass:this.mostSignificantClass||void 0})}),0)}render(){var r,e;const i=!!this.error;if(this.editBehavior===s.DROPDOWN){const r=this.getValueHref();return t(o,null,t("div",{class:"mrd-relation-field"},t(m,{base:"mrd-relation-field",label:this.label,required:this.required}),t("select",{class:h("mrd-relation-field",i,"select"),name:this.name,required:this.required,disabled:this.disabled,onChange:this.handleDropdownChange},t("option",{value:""},a("select_placeholder",this.locale)),this.allRecords.map((e=>t("option",{key:e.id,value:e.id,selected:e.id===r},e.label)))),t(c,{base:"mrd-relation-field",error:this.error})))}if(this.displayType===d.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 t(o,null,t("div",{class:"mrd-relation-field"},t(m,{base:"mrd-relation-field",label:this.label,required:this.required}),t("select",{class:h("mrd-relation-field",i,"select"),name:this.name,required:this.required,disabled:this.disabled,onChange:this.handleDropdownChange},t("option",{value:""},a("select_placeholder",this.locale)),this.dropdownValues.map((r=>t("option",{key:r.key,value:r.key,selected:r.key===l},r.label)))),t(c,{base:"mrd-relation-field",error:this.error})))}const l=t(m,{base:"mrd-relation-field",label:this.label,required:this.required});return t(o,null,!this.multiple&&this.selectedItems.length>0?t("div",{class:"mrd-relation-field"},l,t("div",{class:"mrd-relation-field__selected-value"+(i?" mrd-relation-field__selected-value--error":"")},t("span",{class:"mrd-relation-field__selected-name"},this.selectedItems[0].label),t("button",{type:"button",class:"mrd-relation-field__selected-clear",onClick:this.clearSelection,"aria-label":a("remove",this.locale)},"✕")),t(c,{base:"mrd-relation-field",error:this.error})):t("div",{class:"mrd-relation-field"},l,this.multiple&&this.selectedItems.length>0&&t("div",{class:"mrd-relation-field__tags"},this.selectedItems.map((r=>t("span",{key:r.id,class:"mrd-relation-field__tag"},r.label,t("button",{type:"button",class:"mrd-relation-field__tag-remove",onClick:()=>this.handleRemoveSelected(r.id),"aria-label":a("remove",this.locale)},"✕"))))),t("div",{class:"mrd-relation-field__search-wrapper"},t("input",{class:"mrd-relation-field__search"+(i?" mrd-relation-field__search--error":""),type:"text",value:this.searchQuery,placeholder:a("search_placeholder",this.locale),disabled:this.disabled,onInput:this.handleSearchInput,onKeyDown:this.handleKeyDown,onBlur:this.handleBlur}),this.isLoading&&t("span",{class:"mrd-relation-field__spinner","aria-label":a("loading",this.locale)})),this.showResults&&t("div",{class:"mrd-relation-field__results"},0!==this.searchResults.length||this.isLoading?this.searchResults.map(((r,e)=>t("div",{key:r.id,class:"mrd-relation-field__result-item"+(e===this.highlightedIndex?" mrd-relation-field__result-item--highlighted":""),onMouseDown:()=>this.handleResultSelect(r)},t("span",{class:"mrd-relation-field__result-label"},r.label),r.description&&t("span",{class:"mrd-relation-field__result-desc"},r.description)))):t("div",{class:"mrd-relation-field__no-results"},a("no_results",this.locale))),t(c,{base:"mrd-relation-field",error:this.error})))}get el(){return this}static get watchers(){return{allRecords:[{allRecordsChanged:0}],value:[{valueChanged:0}]}}static get style(){return".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);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-relation-field__select.sc-mrd-relation-field::placeholder{color:var(--mrd-input-placeholder-color)}.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__select.sc-mrd-relation-field{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;padding-right:calc(var(--mrd-input-padding-x) + 1.5rem);cursor:pointer}.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);transition:border-color var(--mrd-transition), box-shadow var(--mrd-transition);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__error.sc-mrd-relation-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}.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__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}"}},[2,"mrd-relation-field",{name:[1],label:[1],required:[4],disabled:[4],locale:[1],relatedClass:[1,"related-class"],mostSignificantClass:[1,"most-significant-class"],displayType:[1,"display-type"],editBehavior:[1,"edit-behavior"],commonRelation:[1,"common-relation"],multiple:[4],dropdownValues:[16],value:[1],searchQuery:[32],searchResults:[32],allRecords:[32],isLoading:[32],selectedItems:[32],showResults:[32],error:[32],highlightedIndex:[32],setAllRecords:[64],setSearchResults:[64],setLoading:[64]},void 0,{allRecords:[{allRecordsChanged:0}],value:[{valueChanged:0}]}]);function u(){"undefined"!=typeof customElements&&["mrd-relation-field"].forEach((r=>{"mrd-relation-field"===r&&(customElements.get(l(r))||customElements.define(l(r),f))}))}export{f as M,u as d}
@@ -1 +1 @@
1
- import{proxyCustomElement as r,HTMLElement as e,createEvent as d,h as s,Host as t,transformTag as i}from"@stencil/core/internal/client";import{t as o}from"./i18n.js";import{v as a}from"./validation.js";const l=r(class extends e{constructor(r){super(),!1!==r&&this.__registerHost(),this.mrdChange=d(this,"mrdChange",7),this.mrdBlur=d(this,"mrdBlur",7),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&&!a(e)?o("required",this.locale):"",this.mrdBlur.emit({name:this.name,value:e})}}render(){const r=!!this.error;return s(t,{key:"c850ec5bc5967ca0aefca7d7cb65ecae121a9dc1"},s("div",{key:"3249ffbc441422af054a20806dd8dfce954a8ffc",class:"mrd-secret-field"},this.label&&s("label",{key:"0b4a86da9cafad32f153af1bc5487a4e9b941e2f",class:"mrd-secret-field__label"+(this.required?" mrd-secret-field__label--required":"")},this.label),this.disabled?s("span",{class:"mrd-secret-field__masked","aria-label":this.label},this.value?"••••••••":""):s("input",{class:"mrd-secret-field__input"+(r?" mrd-secret-field__input--error":""),type:"password",name:this.name,value:this.value,placeholder:this.placeholder,required:this.required,autocomplete:"new-password",onInput:this.handleInput,onBlur:this.handleBlur}),r&&s("span",{key:"b0d0105f3d43d2e214f070b24e745dbce0e33977",class:"mrd-secret-field__error"},this.error)))}static get style(){return".sc-mrd-secret-field-h{display:block}.mrd-secret-field.sc-mrd-secret-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%}.mrd-secret-field__label.sc-mrd-secret-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-secret-field__label--required.sc-mrd-secret-field::after{content:' *';color:var(--mrd-color-danger)}.mrd-secret-field__input.sc-mrd-secret-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-secret-field__input.sc-mrd-secret-field::placeholder{color:var(--mrd-input-placeholder-color)}.mrd-secret-field__input.sc-mrd-secret-field:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-secret-field__input--error.sc-mrd-secret-field{border-color:var(--mrd-border-color-error)}.mrd-secret-field__input--error.sc-mrd-secret-field:focus{box-shadow:var(--mrd-shadow-focus-error)}.mrd-secret-field__error.sc-mrd-secret-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}.mrd-secret-field__masked.sc-mrd-secret-field{display:block;font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-label-color);letter-spacing:0.15em;user-select:none;pointer-events:none}"}},[2,"mrd-secret-field",{name:[1],label:[1],value:[1],placeholder:[1],required:[4],disabled:[4],locale:[1],error:[32]}]);function c(){"undefined"!=typeof customElements&&["mrd-secret-field"].forEach((r=>{"mrd-secret-field"===r&&(customElements.get(i(r))||customElements.define(i(r),l))}))}export{l as M,c as d}
1
+ import{proxyCustomElement as r,HTMLElement as e,createEvent as d,h as s,Host as t,transformTag as i}from"@stencil/core/internal/client";import{r as o,F as a,c as l,a as c}from"./field-helpers.js";const n=r(class extends e{constructor(r){super(),!1!==r&&this.__registerHost(),this.mrdChange=d(this,"mrdChange",7),this.mrdBlur=d(this,"mrdBlur",7),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=o(e,this.required,this.locale),this.mrdBlur.emit({name:this.name,value:e})}}render(){return s(t,{key:"acb865b235652feba713aedda7a7fccbdc01ad20"},s("div",{key:"e7471ade9c683cac9469ec89778c967badb046f9",class:"mrd-secret-field"},s(a,{key:"2f9b864779ead352fda53af8597ddcd31377249d",base:"mrd-secret-field",label:this.label,required:this.required}),this.disabled?s("span",{class:"mrd-secret-field__masked","aria-label":this.label},this.value?"••••••••":""):s("input",{class:l("mrd-secret-field",!!this.error),type:"password",name:this.name,value:this.value,placeholder:this.placeholder,required:this.required,autocomplete:"new-password",onInput:this.handleInput,onBlur:this.handleBlur}),s(c,{key:"438418e2cf0f53a6c247d5f332aae8e8978b94ea",base:"mrd-secret-field",error:this.error})))}static get style(){return'.sc-mrd-secret-field-h{display:block}.mrd-secret-field.sc-mrd-secret-field{display:flex;flex-direction:column;gap:var(--mrd-space-1);width:100%}.mrd-secret-field__label.sc-mrd-secret-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-secret-field__label--required.sc-mrd-secret-field::after{content:" *";color:var(--mrd-color-danger)}.mrd-secret-field__input.sc-mrd-secret-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-secret-field__input.sc-mrd-secret-field::placeholder{color:var(--mrd-input-placeholder-color)}.mrd-secret-field__input.sc-mrd-secret-field:focus{border-color:var(--mrd-border-color-focus);box-shadow:var(--mrd-shadow-focus)}.mrd-secret-field__input.sc-mrd-secret-field:disabled{background-color:var(--mrd-input-bg-disabled);cursor:not-allowed;opacity:0.7}.mrd-secret-field__input--error.sc-mrd-secret-field{border-color:var(--mrd-border-color-error)}.mrd-secret-field__input--error.sc-mrd-secret-field:focus{box-shadow:var(--mrd-shadow-focus-error)}.mrd-secret-field__error.sc-mrd-secret-field{font-family:var(--mrd-font-family);font-size:var(--mrd-error-font-size);color:var(--mrd-error-color)}.mrd-secret-field__masked.sc-mrd-secret-field{display:block;font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-base);color:var(--mrd-label-color);letter-spacing:0.15em;user-select:none;pointer-events:none}'}},[2,"mrd-secret-field",{name:[1],label:[1],value:[1],placeholder:[1],required:[4],disabled:[4],locale:[1],error:[32]}]);function m(){"undefined"!=typeof customElements&&["mrd-secret-field"].forEach((r=>{"mrd-secret-field"===r&&(customElements.get(i(r))||customElements.define(i(r),n))}))}export{n as M,m as d}