vgapp 1.3.0 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/README.md +133 -133
  2. package/app/langs/en/buttons.json +17 -17
  3. package/app/langs/en/messages.json +36 -36
  4. package/app/langs/ru/buttons.json +17 -17
  5. package/app/langs/ru/messages.json +36 -36
  6. package/app/modules/base-module.js +111 -111
  7. package/app/modules/vgalert/js/vgalert.js +52 -29
  8. package/app/modules/vgalert/readme.md +105 -105
  9. package/app/modules/vgdynamictable/index.js +5 -5
  10. package/app/modules/vgdynamictable/js/editable.js +19 -19
  11. package/app/modules/vgdynamictable/js/filters.js +21 -21
  12. package/app/modules/vgdynamictable/js/fixed.js +179 -179
  13. package/app/modules/vgdynamictable/js/pagination.js +1 -1
  14. package/app/modules/vgdynamictable/js/search.js +12 -12
  15. package/app/modules/vgdynamictable/js/sortable.js +71 -71
  16. package/app/modules/vgdynamictable/js/summary-footer.js +28 -28
  17. package/app/modules/vgdynamictable/js/table-remote.js +79 -79
  18. package/app/modules/vgdynamictable/js/table-url-state.js +31 -31
  19. package/app/modules/vgdynamictable/js/utils/common.js +48 -48
  20. package/app/modules/vgdynamictable/js/vgdynamictable.js +268 -268
  21. package/app/modules/vgdynamictable/readme.md +250 -250
  22. package/app/modules/vgdynamictable/scss/_skeleton.scss +6 -6
  23. package/app/modules/vgdynamictable/scss/_sortable.scss +24 -24
  24. package/app/modules/vgdynamictable/scss/_table.scss +4 -4
  25. package/app/modules/vgdynamictable/scss/_variables.scss +79 -79
  26. package/app/modules/vgdynamictable/scss/vgdynamictable.scss +27 -27
  27. package/app/modules/vgfilepreview/js/i18n.js +56 -56
  28. package/app/modules/vgfilepreview/js/renderers/image-modal.js +145 -145
  29. package/app/modules/vgfilepreview/js/renderers/image.js +92 -92
  30. package/app/modules/vgfilepreview/js/renderers/index.js +19 -19
  31. package/app/modules/vgfilepreview/js/renderers/office-modal.js +168 -168
  32. package/app/modules/vgfilepreview/js/renderers/office.js +79 -79
  33. package/app/modules/vgfilepreview/js/renderers/pdf-modal.js +260 -260
  34. package/app/modules/vgfilepreview/js/renderers/pdf.js +76 -76
  35. package/app/modules/vgfilepreview/js/renderers/playlist.js +71 -71
  36. package/app/modules/vgfilepreview/js/renderers/text-modal.js +343 -343
  37. package/app/modules/vgfilepreview/js/renderers/text.js +83 -83
  38. package/app/modules/vgfilepreview/js/renderers/video-modal.js +272 -272
  39. package/app/modules/vgfilepreview/js/renderers/video.js +80 -80
  40. package/app/modules/vgfilepreview/js/renderers/zip-modal.js +522 -522
  41. package/app/modules/vgfilepreview/js/renderers/zip.js +89 -89
  42. package/app/modules/vgfilepreview/js/vgfilepreview.js +7 -7
  43. package/app/modules/vgfilepreview/readme.md +68 -68
  44. package/app/modules/vgfilepreview/scss/_variables.scss +113 -113
  45. package/app/modules/vgfilepreview/scss/vgfilepreview.scss +464 -464
  46. package/app/modules/vgfiles/js/base.js +26 -26
  47. package/app/modules/vgfiles/js/droppable.js +260 -260
  48. package/app/modules/vgfiles/js/render.js +153 -153
  49. package/app/modules/vgfiles/js/vgfiles.js +104 -104
  50. package/app/modules/vgfiles/readme.md +123 -123
  51. package/app/modules/vgfiles/scss/_variables.scss +18 -18
  52. package/app/modules/vgfiles/scss/vgfiles.scss +148 -148
  53. package/app/modules/vgformsender/js/hideshowpass.js +16 -16
  54. package/app/modules/vgformsender/scss/vgformsender.scss +34 -34
  55. package/app/modules/vgmodal/js/vgmodal.drag.js +332 -332
  56. package/app/modules/vgmodal/js/vgmodal.js +188 -188
  57. package/app/modules/vgmodal/js/vgmodal.resize.js +27 -27
  58. package/app/modules/vgmodal/scss/vgmodal.scss +14 -14
  59. package/app/modules/vgnav/js/vgnav.js +135 -135
  60. package/app/modules/vgnav/readme.md +67 -67
  61. package/app/modules/vgnestable/README.md +307 -307
  62. package/app/modules/vgnestable/scss/_variables.scss +60 -60
  63. package/app/modules/vgnestable/scss/vgnestable.scss +163 -163
  64. package/app/modules/vgrangeslider/js/skins.js +222 -222
  65. package/app/modules/vgrangeslider/js/vgrangeslider.js +704 -704
  66. package/app/modules/vgrangeslider/readme.md +523 -523
  67. package/app/modules/vgrangeslider/scss/_variables.scss +53 -53
  68. package/app/modules/vgrangeslider/scss/vgrangeslider.scss +240 -240
  69. package/app/modules/vgselect/js/vgselect.js +39 -39
  70. package/app/modules/vgselect/scss/vgselect.scss +22 -22
  71. package/app/modules/vgspy/readme.md +28 -28
  72. package/app/modules/vgtoast/readme.md +18 -18
  73. package/app/modules/vgtoast/scss/vgtoast.scss +48 -48
  74. package/app/modules/vgtooltip/js/vgtooltip.js +89 -89
  75. package/app/modules/vgtooltip/readme.md +181 -181
  76. package/app/utils/js/components/ajax.js +117 -117
  77. package/app/utils/js/components/audio-metadata.js +240 -240
  78. package/app/utils/js/components/backdrop.js +17 -17
  79. package/app/utils/js/components/file-icon.js +109 -109
  80. package/app/utils/js/components/file-preview.js +304 -304
  81. package/app/utils/js/components/sanitize.js +150 -150
  82. package/app/utils/js/components/video-metadata.js +140 -140
  83. package/app/vgapp.js +130 -107
  84. package/build/vgapp.css +1 -1
  85. package/build/vgapp.css.map +1 -1
  86. package/build/vgapp.js +1 -1
  87. package/build/vgapp.js.map +1 -1
  88. package/index.js +14 -14
  89. package/package.json +1 -1
package/build/vgapp.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /*! For license information please see vgapp.js.LICENSE.txt */
2
- !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.vgapp=e():t.vgapp=e()}(this,(()=>(()=>{"use strict";var t={571:(t,e,i)=>{i.d(e,{A:()=>_});var s=i(381),r=i(829),n=i(911),a=i(667),o=i(647),l=i(810);class d{static get DEFAULTS(){return{enable:!1,in:"animate__fadeIn",out:"animate__fadeOut",duration:500}}constructor(t,e,i={}){this._element=t,this._nameKey=e,this._params=(0,s._v)(d.DEFAULTS,i),this._params.enable&&(0,s.vq)(t)&&(this._classes={animated:"animate__animated",duration:"animate__fast"},this._init())}_init(){const{classList:t}=this._element;t.add(this._classes.animated,this._classes.duration),t.contains("fade")&&t.remove("fade"),this._setupEventListeners()}_setupEventListeners(){o.A.on(this._element,`${this._nameKey}.show`,this._handleShow.bind(this),null),o.A.on(this._element,`${this._nameKey}.shown`,this._handleShown.bind(this),null),o.A.on(this._element,`${this._nameKey}.hide`,this._handleHide.bind(this),null),o.A.on(this._element,`${this._nameKey}.hidden`,this._handleHidden.bind(this),null)}_handleShow(){const{classList:t}=this._element,{in:e,out:i}=this._params;t.contains(i)&&t.remove(i),t.add(e)}_handleShown(){this._element.classList.add(this._classes.animated)}_handleHide(){const{classList:t}=this._element,{in:e,out:i}=this._params;t.contains(e)&&t.remove(e),t.add(i)}_handleHidden(){const{classList:t}=this._element,{in:e,out:i}=this._params;[...t].filter((t=>t.startsWith("animate__"))).forEach((e=>t.remove(e))),t.add(this._classes.animated,this._classes.duration)}dispose(){o.A.off(this._element,`${this._nameKey}.show`,null,null),o.A.off(this._element,`${this._nameKey}.shown`,null,null),o.A.off(this._element,`${this._nameKey}.hide`,null,null),o.A.off(this._element,`${this._nameKey}.hidden`,null,null),[...this._element.classList].filter((t=>t.startsWith("animate__"))).forEach((t=>this._element.classList.remove(t))),this._element=null}}const h=d;var c=i(11),u=i(601);const _=class{constructor(t){if(t){if(this._element=r.A.find(t),!this._element)throw new Error("Товарищ! Первый параметр не должен быть пустым!");this._params={},this._isLoaded=!1,n.A.set(this._element,this.constructor.NAME_KEY,this)}}_getParams(t,e){return new a.A(e,t).get()}dispose(){n.A.remove(this._element,this.constructor.NAME_KEY),o.A.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_route(t){if("function"!=typeof t)return this._requestRoute(t);let e=null,i=this._params.ajax.timeout||0;if(this._isLoaded)return;const n=t=>{"string"==typeof t?e&&(e.innerHTML=t):(0,s.Gv)(t)&&!(0,s.ze)(t)&&Object.values(t).forEach((t=>{"string"==typeof t&&e&&(e.innerHTML=t)}))};if(!this._params.hasOwnProperty("ajax"))return;if(!this._params.ajax.route)return;!1 in this._params.ajax&&(this._params.ajax.method="get"),"target"in this._params.ajax&&this._params.ajax.target&&(e=r.A.find(this._params.ajax.target)),"loader"in this._params.ajax&&this._params.ajax.loader&&"output"in this._params.ajax&&this._params.ajax.output&&n((0,u.A)("string").div({class:"vg-loader"}));let a=(i,r)=>{"loader"in this._params.ajax&&this._params.ajax.loader&&n(""),"once"in this._params.ajax&&this._params.ajax.once&&(this._isLoaded=!0),"output"in this._params.ajax&&this._params.ajax.output&&n("response"in i?(0,s.OM)(i.response):i),(0,s.g7)(t,[r,i,e])};const o=new c.A;let l={onSuccess:t=>{a(t,"success")},onError:t=>{a(t,"error")}};setTimeout((()=>{"get"===this._params.ajax.method.toLowerCase()&&o.get(this._params.ajax.route,l),"post"===this._params.ajax.method.toLowerCase()&&o.post(this._params.ajax.route,this._params.ajax.data,l),"delete"===this._params.ajax.method.toLowerCase()&&o.delete(this._params.ajax.route,l)}),i)}_requestRoute(t={}){const e=this._normalizeRouteRequestOptions(t);return c.A.requestRoute(e)}_buildRouteUrl(t={},e="",i={}){const s=this._normalizeRouteRequestOptions(Object.assign({},i,{params:t,route:e||i.route||""}));return c.A.buildRouteUrl(s.route,{params:s.params,baseParams:s.baseParams})}_normalizeRouteRequestOptions(t={}){const e=this._params&&(0,s.Gv)(this._params.request)?this._params.request:{},i=this._params&&(0,s.Gv)(this._params.ajax)?this._params.ajax:{},r=(0,s.Gv)(t)?t:{};return{route:String(r.route||r.endpoint||e.route||i.route||"").trim(),method:String(r.method||e.method||i.method||"GET").toUpperCase().trim()||"GET",credentials:String(r.credentials||e.credentials||"same-origin").trim()||"same-origin",headers:(0,s._v)({Accept:"application/json","X-Requested-With":"XMLHttpRequest"},(0,s.Gv)(e.headers)?e.headers:{},(0,s.Gv)(r.headers)?r.headers:{}),baseParams:(0,s._v)({},(0,s.Gv)(e.params)?e.params:{},(0,s.Gv)(r.baseParams)?r.baseParams:{},(0,s.Gv)(r.paramsBase)?r.paramsBase:{}),params:(0,s.Gv)(r.params)?r.params:{},body:void 0!==r.body?r.body:void 0!==r.data?r.data:null,signal:r.signal||null,responseType:String(r.responseType||r.parse||"auto").toLowerCase().trim()||"auto"}}_dismissElement(){let t=(0,l.z)("cross"),e=this._element.querySelector(".vg-btn-close");e&&(e.querySelector("svg")||e.insertAdjacentHTML("beforeend",t))}_queueCallback(t,e,i=!0,r){(0,s.dO)(t,e,i,r)}_animation(t,e,i={}){new h(t,e,i)}static getInstance(t){return n.A.get(r.A.find(t),this.NAME_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,(0,s.ze)(e)?{}:e)}static boot(t={}){if("function"==typeof this.initAll)return this.initAll(t);if("function"!=typeof this.init)return null;if(t&&Object.prototype.hasOwnProperty.call(t,"element")){const{element:e,...i}=t;return this.init(e,i)}return null}static get DATA_KEY(){return`vg.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}}},810:(t,e,i)=>{i.d(e,{P:()=>d,z:()=>l});var s=i(647),r=i(381),n=i(829);const a={pdf:"file-pdf",doc:"file-word",docx:"file-word",odt:"file-word",rtf:"file-word",xls:"file-exel",xlsx:"file-exel",xlsm:"file-exel",ods:"file-exel",csv:"file-exel",zip:"file-zip",rar:"file-zip","7z":"file-zip",tar:"file-zip",gz:"file-zip",tgz:"file-zip",txt:"file-text",md:"file-text",log:"file-text",json:"file-text",xml:"file-text",yml:"file-text",yaml:"file-text",php:"file-php",png:"file-image",jpg:"file-image",jpeg:"file-image",gif:"file-image",webp:"file-image",svg:"file-image",bmp:"file-image",tif:"file-image",tiff:"file-image",heic:"file-image",heif:"file-image",avif:"file-image",mp3:"file-audio",wav:"file-audio",ogg:"file-audio",flac:"file-audio",aac:"file-audio",m4a:"file-audio",mp4:"file-video",webm:"file-video",mov:"file-video",mkv:"file-video",avi:"file-video"},o=t=>{if(!t)return"";const e=String(t).toLowerCase().split("#")[0].split("?")[0].split("/").pop()||"";return e.includes(".")&&e.split(".").pop()||""},l=t=>((t,e={})=>{const i=e[t];if(i)return i;const s=e[(t=>{const{type:e,ext:i}=(t=>{if(!t)return{type:"",ext:""};if("object"==typeof t){const e=String(t.type||"").toLowerCase(),i=String(t.name||t.path||t.url||"").toLowerCase();return{type:e,ext:o(i)}}return{type:"",ext:o(t)}})(t);return"application/pdf"===e?"file-pdf":e.includes("word")?"file-word":e.includes("excel")||e.includes("spreadsheet")?"file-exel":e.includes("zip")||e.includes("compressed")?"file-zip":e.startsWith("text/")?"file-text":e.startsWith("image/")?"file-image":e.startsWith("audio/")?"file-audio":e.startsWith("video/")?"file-video":a[i]||"file-generic"})(t)];return s||e["file-generic"]||""})(t,{minus:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-dash" viewBox="0 0 16 16"><path d="M4 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7A.5.5 0 0 1 4 8"/></svg>',plus:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-plus" viewBox="0 0 16 16"><path d="M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4"/></svg>',"dots-six-vertical":'<svg viewBox="64 64 896 896" focusable="false" data-icon="holder" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M300 276.5a56 56 0 1056-97 56 56 0 00-56 97zm0 284a56 56 0 1056-97 56 56 0 00-56 97zM640 228a56 56 0 10112 0 56 56 0 00-112 0zm0 284a56 56 0 10112 0 56 56 0 00-112 0zM300 844.5a56 56 0 1056-97 56 56 0 00-56 97zM640 796a56 56 0 10112 0 56 56 0 00-112 0z"></path></svg>',chevron:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 12.392L8.74146 9.13354L7.0918 10.7832L11.1751 14.8665C11.3939 15.0853 11.6906 15.2081 12 15.2081C12.3093 15.2081 12.606 15.0853 12.8248 14.8665L16.9081 10.7832L15.2585 9.13354L12 12.392Z" fill="black"/></svg>',danger:'<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M36 4.5C53.3953 4.5 67.5 18.6047 67.5 36C67.5 53.3953 53.3953 67.5 36 67.5C18.6047 67.5 4.5 53.3953 4.5 36C4.5 18.6047 18.6047 4.5 36 4.5ZM44.9961 23.8237C44.9944 23.8242 44.9931 23.825 44.9902 23.8279L36 32.818L27.0098 23.8279C27.0069 23.825 27.0056 23.8242 27.0039 23.8237C27.0023 23.8232 27.0006 23.8232 26.999 23.8237C26.9975 23.8242 26.9961 23.825 26.9932 23.8279L23.8278 26.9932C23.825 26.9961 23.8243 26.9975 23.8237 26.9991C23.8232 27.0007 23.8232 27.0024 23.8237 27.004L23.8244 27.0056C23.8253 27.0071 23.8265 27.0085 23.8279 27.0098L32.818 36L23.8279 44.9903C23.825 44.9931 23.8242 44.9945 23.8237 44.9961C23.8232 44.9977 23.8232 44.9995 23.8237 45.0011C23.8242 45.0026 23.825 45.0039 23.8279 45.0068L26.9932 48.1723C26.9961 48.1751 26.9975 48.1758 26.9991 48.1764C27.0007 48.1769 27.0024 48.1769 27.004 48.1764C27.0056 48.1759 27.0069 48.1751 27.0098 48.1722L36 39.1819L44.9903 48.1721C44.9931 48.175 44.9945 48.1758 44.9961 48.1763C44.9977 48.1768 44.9995 48.1768 45.0011 48.1763C45.0026 48.1758 45.0039 48.175 45.0068 48.1721L48.1723 45.0068C48.1751 45.0039 48.1758 45.0025 48.1764 45.0009C48.1769 44.9993 48.1769 44.9976 48.1764 44.996L48.1757 44.9944C48.1747 44.9929 48.1736 44.9915 48.1722 44.9902L39.1819 36L48.1721 27.0098C48.175 27.0069 48.1758 27.0056 48.1763 27.0039C48.1768 27.0023 48.1768 27.0006 48.1763 26.999C48.1758 26.9975 48.175 26.9961 48.1721 26.9932L45.0068 23.8278C45.0039 23.825 45.0025 23.8243 45.0009 23.8237C44.9993 23.8232 44.9977 23.8232 44.9961 23.8237Z" fill="#000000"/></svg>',success:'<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M36 4.5C18.6047 4.5 4.5 18.6047 4.5 36C4.5 53.3953 18.6047 67.5 36 67.5C53.3953 67.5 67.5 53.3953 67.5 36C67.5 18.6047 53.3953 4.5 36 4.5ZM49.6055 25.7133L34.7977 46.2445C34.5907 46.5334 34.3179 46.7688 34.0018 46.9312C33.6857 47.0935 33.3354 47.1782 32.9801 47.1782C32.6247 47.1782 32.2745 47.0935 31.9584 46.9312C31.6423 46.7688 31.3695 46.5334 31.1625 46.2445L22.3945 34.0945C22.1273 33.7219 22.3945 33.2016 22.8516 33.2016H26.1492C26.8664 33.2016 27.5484 33.5461 27.9703 34.1367L32.9766 41.0836L44.0297 25.7555C44.4516 25.1719 45.1266 24.8203 45.8508 24.8203H49.1484C49.6055 24.8203 49.8727 25.3406 49.6055 25.7133Z" fill="#000000"/></svg>',waiting:'<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M51 10.02C55.5248 12.6326 59.2888 16.3816 61.9194 20.8959C64.5501 25.4103 65.9561 30.5334 65.9983 35.7581C66.0405 40.9828 64.7174 46.1279 62.1601 50.6841C59.6027 55.2404 55.8997 59.0497 51.4177 61.735C46.9357 64.4203 41.8301 65.8885 36.6063 65.9942C31.3825 66.1 26.2216 64.8395 21.6347 62.3378C17.0477 59.836 13.1936 56.1796 10.454 51.7306C7.71439 47.2816 6.18423 42.1942 6.015 36.972L6 36L6.015 35.028C6.18301 29.847 7.69064 24.7979 10.3909 20.373C13.0912 15.9481 16.892 12.2984 21.4227 9.77969C25.9534 7.26098 31.0594 5.95923 36.243 6.00136C41.4266 6.04348 46.5108 7.42804 51 10.02ZM36 18C35.2652 18.0001 34.556 18.2699 34.0069 18.7582C33.4578 19.2465 33.107 19.9193 33.021 20.649L33 21V36L33.027 36.393C33.0954 36.9135 33.2992 37.407 33.618 37.824L33.879 38.124L42.879 47.124L43.161 47.37C43.6871 47.7782 44.3341 47.9998 45 47.9998C45.6659 47.9998 46.3129 47.7782 46.839 47.37L47.121 47.121L47.37 46.839C47.7782 46.3129 47.9998 45.6659 47.9998 45C47.9998 44.3341 47.7782 43.6872 47.37 43.161L47.121 42.879L39 34.755V21L38.979 20.649C38.893 19.9193 38.5422 19.2465 37.9931 18.7582C37.444 18.2699 36.7348 18.0001 36 18Z" fill="black"/></svg>',warning:'<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M36.5 5C44.8543 5 52.8665 8.31874 58.7739 14.2261C64.6813 20.1335 68 28.1457 68 36.5C68 44.8543 64.6813 52.8665 58.7739 58.7739C52.8665 64.6813 44.8543 68 36.5 68C28.1457 68 20.1335 64.6813 14.2261 58.7739C8.31874 52.8665 5 44.8543 5 36.5C5 28.1457 8.31874 20.1335 14.2261 14.2261C20.1335 8.31874 28.1457 5 36.5 5ZM36.5 18.5C35.9287 18.4995 35.3635 18.6181 34.8406 18.8484C34.3178 19.0786 33.8487 19.4154 33.4633 19.8372C33.0779 20.259 32.7848 20.7565 32.6025 21.298C32.4203 21.8395 32.353 22.413 32.405 22.982L34.0475 41.009C34.1112 41.6151 34.397 42.1761 34.8499 42.5839C35.3028 42.9917 35.8906 43.2173 36.5 43.2173C37.1094 43.2173 37.6972 42.9917 38.1501 42.5839C38.603 42.1761 38.8888 41.6151 38.9525 41.009L40.5905 22.982C40.6424 22.4134 40.5753 21.8403 40.3933 21.2991C40.2114 20.7579 39.9186 20.2606 39.5337 19.8389C39.1488 19.4171 38.6803 19.0803 38.1579 18.8498C37.6356 18.6192 37.0709 18.5001 36.5 18.5ZM36.5 54.5C37.4548 54.5 38.3705 54.1207 39.0456 53.4456C39.7207 52.7705 40.1 51.8548 40.1 50.9C40.1 49.9452 39.7207 49.0295 39.0456 48.3544C38.3705 47.6793 37.4548 47.3 36.5 47.3C35.5452 47.3 34.6295 47.6793 33.9544 48.3544C33.2793 49.0295 32.9 49.9452 32.9 50.9C32.9 51.8548 33.2793 52.7705 33.9544 53.4456C34.6295 54.1207 35.5452 54.5 36.5 54.5Z" fill="#000000"/></svg>',info:'<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M36 4.5C18.6047 4.5 4.5 18.6047 4.5 36C4.5 53.3953 18.6047 67.5 36 67.5C53.3953 67.5 67.5 53.3953 67.5 36C67.5 18.6047 53.3953 4.5 36 4.5ZM33.75 20.8125C33.75 20.5031 34.0031 20.25 34.3125 20.25H37.6875C37.9969 20.25 38.25 20.5031 38.25 20.8125V39.9375C38.25 40.2469 37.9969 40.5 37.6875 40.5H34.3125C34.0031 40.5 33.75 40.2469 33.75 39.9375V20.8125ZM36 51.75C35.1168 51.732 34.2759 51.3685 33.6577 50.7375C33.0395 50.1065 32.6932 49.2584 32.6932 48.375C32.6932 47.4916 33.0395 46.6435 33.6577 46.0125C34.2759 45.3815 35.1168 45.018 36 45C36.8832 45.018 37.7241 45.3815 38.3423 46.0125C38.9605 46.6435 39.3068 47.4916 39.3068 48.375C39.3068 49.2584 38.9605 50.1065 38.3423 50.7375C37.7241 51.3685 36.8832 51.732 36 51.75Z" fill="#000000"/></svg>',dots:'<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M10 17C11.1046 17 12 16.1046 12 15C12 13.8954 11.1046 13 10 13C8.89543 13 8 13.8954 8 15C8 16.1046 8.89543 17 10 17Z" fill="black"/><path d="M10 12C11.1046 12 12 11.1046 12 10C12 8.89543 11.1046 8 10 8C8.89543 8 8 8.89543 8 10C8 11.1046 8.89543 12 10 12Z" fill="black"/><path d="M10 7C11.1046 7 12 6.10457 12 5C12 3.89543 11.1046 3 10 3C8.89543 3 8 3.89543 8 5C8 6.10457 8.89543 7 10 7Z" fill="black"/></svg>',cross:'<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M15.3149 0.340332C15.4478 0.20752 15.6027 0.118978 15.7798 0.074707C15.9569 0.0249023 16.134 0.0249023 16.311 0.074707C16.4881 0.118978 16.6431 0.20752 16.7759 0.340332C16.9142 0.473145 17.0055 0.630859 17.0498 0.813477C17.0941 0.99056 17.0941 1.16764 17.0498 1.34473C17.0055 1.52181 16.917 1.67676 16.7842 1.80957L1.80127 16.8008C1.67399 16.9281 1.52181 17.0111 1.34473 17.0498C1.16764 17.0941 0.987793 17.0941 0.805176 17.0498C0.628092 17.0111 0.470378 16.9253 0.332031 16.7925C0.199219 16.6597 0.110677 16.502 0.0664062 16.3193C0.0221354 16.1423 0.0221354 15.9652 0.0664062 15.7881C0.110677 15.611 0.196452 15.4588 0.32373 15.3315L15.3149 0.340332ZM16.7842 15.3232C16.917 15.4561 17.0028 15.6082 17.0415 15.7798C17.0858 15.9569 17.0858 16.134 17.0415 16.311C17.0028 16.4937 16.9142 16.6541 16.7759 16.7925C16.6431 16.9253 16.4881 17.0138 16.311 17.0581C16.134 17.1024 15.9569 17.1024 15.7798 17.0581C15.6027 17.0138 15.4478 16.9253 15.3149 16.7925L0.32373 1.80127C0.201986 1.67952 0.116211 1.53011 0.0664062 1.35303C0.0221354 1.17594 0.0221354 0.996094 0.0664062 0.813477C0.116211 0.630859 0.204753 0.473145 0.332031 0.340332C0.464844 0.20752 0.622559 0.118978 0.805176 0.074707C0.987793 0.0304362 1.16488 0.0304362 1.33643 0.074707C1.51351 0.118978 1.66846 0.204753 1.80127 0.332031L16.7842 15.3232Z" fill="#000"/></svg>',"eye-open":'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z"/></svg>',"eye-hide":'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zm151 118.3C226 97.7 269.5 80 320 80c65.2 0 118.8 29.6 159.9 67.7C518.4 183.5 545 226 558.6 256c-12.6 28-36.6 66.8-70.9 100.9l-53.8-42.2c9.1-17.6 14.2-37.5 14.2-58.7c0-70.7-57.3-128-128-128c-32.2 0-61.7 11.9-84.2 31.5l-46.1-36.1zM394.9 284.2l-81.5-63.9c4.2-8.5 6.6-18.2 6.6-28.3c0-5.5-.7-10.9-2-16c.7 0 1.3 0 2 0c44.2 0 80 35.8 80 80c0 9.9-1.8 19.4-5.1 28.2zm9.4 130.3C378.8 425.4 350.7 432 320 432c-65.2 0-118.8-29.6-159.9-67.7C121.6 328.5 95 286 81.4 256c8.3-18.4 21.5-41.5 39.4-64.8L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5l-41.9-33zM192 256c0 70.7 57.3 128 128 128c13.3 0 26.1-2 38.2-5.8L302 334c-23.5-5.4-43.1-21.2-53.7-42.3l-56.1-44.2c-.2 2.8-.3 5.6-.3 8.5z"/></svg>',trash:'<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.5013 3.33332H14.918C14.5193 1.39465 12.8139 0.0025 10.8346 0H9.16793C7.18867 0.0025 5.48328 1.39465 5.08461 3.33332H2.50129C2.04105 3.33332 1.66797 3.70641 1.66797 4.16664C1.66797 4.62687 2.04105 5 2.50129 5H3.33461V15.8333C3.33738 18.1334 5.20125 19.9973 7.50129 20H12.5013C14.8013 19.9973 16.6652 18.1334 16.668 15.8333V5H17.5013C17.9615 5 18.3346 4.62691 18.3346 4.16668C18.3346 3.70645 17.9615 3.33332 17.5013 3.33332ZM9.16797 14.1667C9.16797 14.6269 8.79488 15 8.33465 15C7.87437 15 7.50129 14.6269 7.50129 14.1667V9.16668C7.50129 8.70645 7.87437 8.33336 8.33461 8.33336C8.79484 8.33336 9.16793 8.70645 9.16793 9.16668V14.1667H9.16797ZM12.5013 14.1667C12.5013 14.6269 12.1282 15 11.668 15C11.2077 15 10.8346 14.6269 10.8346 14.1667V9.16668C10.8346 8.70645 11.2077 8.33336 11.668 8.33336C12.1282 8.33336 12.5013 8.70645 12.5013 9.16668V14.1667ZM6.81047 3.33332C7.16492 2.33523 8.10883 1.66793 9.16797 1.66664H10.8346C11.8938 1.66793 12.8377 2.33523 13.1921 3.33332H6.81047Z" fill="black" fill-opacity="0.5"/></svg>',spinner:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_290_5000)"><path d="M14.6414 8.58333C14.5128 10.1032 13.8685 11.5335 12.8153 12.6368C11.7621 13.7401 10.3634 14.4502 8.85109 14.6493C7.33883 14.8483 5.80396 14.5244 4.50113 13.7311C3.19831 12.9379 2.20584 11.7231 1.68838 10.2882C1.17092 8.85338 1.15958 7.28474 1.65623 5.84255C2.15289 4.40037 3.12769 3.17133 4.41891 2.35934C5.71013 1.54735 7.24015 1.20123 8.75514 1.37839C10.2701 1.55555 11.679 2.24534 12.748 3.33333H10.6667C10.4899 3.33333 10.3203 3.40357 10.1953 3.5286C10.0703 3.65362 10 3.82319 10 4C10 4.17681 10.0703 4.34638 10.1953 4.47141C10.3203 4.59643 10.4899 4.66667 10.6667 4.66667H13.4287C13.757 4.66649 14.0718 4.536 14.3039 4.30387C14.5361 4.07174 14.6665 3.75695 14.6667 3.42867V0.666667C14.6667 0.489856 14.5965 0.320286 14.4715 0.195262C14.3464 0.0702379 14.1769 0 14 0C13.8232 0 13.6537 0.0702379 13.5286 0.195262C13.4036 0.320286 13.3334 0.489856 13.3334 0.666667V2.052C11.9925 0.853819 10.2866 0.142989 8.4917 0.0344742C6.69675 -0.0740408 4.91768 0.426105 3.44222 1.45402C1.96675 2.48194 0.881175 3.97752 0.361055 5.69888C-0.159065 7.42024 -0.0833125 9.26672 0.57606 10.9397C1.23543 12.6127 2.43987 14.0143 3.99457 14.9179C5.54928 15.8215 7.36334 16.1742 9.14336 15.9191C10.9234 15.6639 12.5653 14.8157 13.8035 13.5117C15.0417 12.2077 15.8039 10.5242 15.9667 8.73333C15.9753 8.6405 15.9645 8.54688 15.9349 8.45846C15.9054 8.37003 15.8577 8.28873 15.795 8.21974C15.7323 8.15075 15.6559 8.09559 15.5707 8.05775C15.4854 8.01992 15.3933 8.00025 15.3 8C15.1374 7.99804 14.9799 8.05669 14.8581 8.16452C14.7364 8.27236 14.6591 8.42165 14.6414 8.58333Z" fill="black" fill-opacity="0.35"/></g><defs><clipPath id="clip0_290_5000"><rect width="16" height="16" fill="white"/></clipPath></defs></svg>',check:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.29448 19L3 12.8378L4.57362 11.2973L9.29448 15.9189L19.4264 6L21 7.54054L9.29448 19Z" fill="black"/></svg>',"cloud-dot":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14.1401 13.925C14.2399 13.9266 14.3378 13.8983 14.4213 13.8438C14.5049 13.7893 14.5702 13.711 14.6089 13.6191C14.6476 13.5272 14.6579 13.4258 14.6385 13.3279C14.6192 13.2301 14.5709 13.1402 14.5001 13.07L12.0001 10.57L9.50011 13.07C9.4182 13.1657 9.3754 13.2887 9.38026 13.4145C9.38512 13.5404 9.43728 13.6597 9.52633 13.7488C9.61538 13.8378 9.73475 13.89 9.86058 13.8949C9.98642 13.8997 10.1095 13.8569 10.2051 13.775L11.5001 12.5V18.625C11.5001 18.7576 11.5528 18.8848 11.6466 18.9786C11.7403 19.0723 11.8675 19.125 12.0001 19.125C12.1327 19.125 12.2599 19.0723 12.3537 18.9786C12.4474 18.8848 12.5001 18.7576 12.5001 18.625V12.5L13.7851 13.785C13.8803 13.8768 14.0079 13.9271 14.1401 13.925Z" fill="black"/><path d="M18.46 9.71996C18.0211 9.77884 17.5751 9.7551 17.145 9.64996V9.76496L17.105 10.125L17.43 10.275C18.0502 10.5605 18.5545 11.0491 18.8595 11.6601C19.1645 12.271 19.2519 12.9677 19.1074 13.6351C18.9628 14.3024 18.5949 14.9005 18.0645 15.3305C17.5341 15.7605 16.8728 15.9966 16.19 16H13.5V17H16.19C17.0395 16.9958 17.8657 16.7214 18.5488 16.2163C19.2319 15.7112 19.7364 15.0017 19.9893 14.1907C20.2422 13.3797 20.2303 12.5092 19.9553 11.7054C19.6804 10.9016 19.1566 10.2062 18.46 9.71996Z" fill="black"/><path d="M4.80029 12.19C4.80848 11.2 5.19728 10.251 5.88612 9.53986C6.57495 8.82869 7.51101 8.40981 8.50029 8.37003H8.83529L8.95029 8.05503C9.2604 7.2496 9.81028 6.55878 10.5256 6.07591C11.241 5.59305 12.0873 5.34142 12.9503 5.35503C13.4051 5.35535 13.8572 5.42619 14.2903 5.56503C14.3299 5.23197 14.414 4.90573 14.5403 4.59503C14.0252 4.43613 13.4893 4.35523 12.9503 4.35503C11.9414 4.3468 10.9516 4.63029 10.1 5.1714C9.24844 5.7125 8.57138 6.48816 8.15029 7.40503C6.96363 7.53241 5.86506 8.09111 5.06315 8.97505C4.26125 9.85898 3.81186 11.0066 3.80029 12.2C3.8016 12.8321 3.92748 13.4577 4.17073 14.0411C4.41398 14.6245 4.76984 15.1543 5.21794 15.6001C5.66605 16.0459 6.19763 16.3989 6.78229 16.6392C7.36695 16.8794 7.99321 17.002 8.62529 17H10.5003V16H8.62529C7.61384 15.9987 6.64396 15.5974 5.92735 14.8836C5.21074 14.1698 4.80557 13.2015 4.80029 12.19Z" fill="black"/><path class="dot" d="M18 8.5C19.3807 8.5 20.5 7.38071 20.5 6C20.5 4.61929 19.3807 3.5 18 3.5C16.6193 3.5 15.5 4.61929 15.5 6C15.5 7.38071 16.6193 8.5 18 8.5Z" fill="black"/></svg>',"file-generic":'<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111Z" fill="black"/></svg>',"file-exel":'<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111ZM64.2625 72.5125L56.5375 59.7125C56.2625 59.2625 55.775 58.9875 55.25 58.9875H50.45C50.1625 58.9875 49.8875 59.0625 49.65 59.225C48.95 59.6625 48.7375 60.5875 49.1875 61.3L59.475 77.6L49.05 94.2C48.9084 94.4277 48.8301 94.6891 48.8234 94.9571C48.8166 95.2252 48.8816 95.4902 49.0116 95.7247C49.1416 95.9592 49.3319 96.1547 49.5628 96.291C49.7937 96.4273 50.0569 96.4995 50.325 96.5H54.6375C55.1625 96.5 55.6375 96.225 55.9125 95.7875L63.75 83.1L71.5375 95.775C71.8125 96.225 72.3 96.4875 72.8125 96.4875H77.5C77.7875 96.4875 78.0625 96.4 78.3125 96.25C79.0125 95.8 79.2125 94.875 78.7625 94.175L68.2625 77.875L78.925 61.3125C79.0693 61.0855 79.1502 60.824 79.1591 60.5551C79.1681 60.2863 79.1048 60.0199 78.9759 59.7838C78.847 59.5477 78.6572 59.3505 78.4262 59.2126C78.1952 59.0748 77.9315 59.0013 77.6625 59H73.2C72.675 59 72.1875 59.275 71.9125 59.725L64.2625 72.5125Z" fill="black"/></svg>',"file-word":'<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111ZM66.0125 59H61.9875C61.3 59 60.7 59.4625 60.5375 60.1375L54.325 85L48.5625 60.1625C48.4 59.4875 47.8 59 47.1 59H42.675C42.4451 59.0004 42.2183 59.0535 42.0121 59.1553C41.806 59.2571 41.6259 59.4048 41.4858 59.5872C41.3458 59.7695 41.2494 59.9816 41.2042 60.207C41.159 60.4324 41.1661 60.6652 41.225 60.8875L50.5 95.3875C50.675 96.0375 51.275 96.5 51.95 96.5H55.95C56.625 96.5 57.225 96.05 57.4 95.3875L64 70.7625L70.6 95.3875C70.775 96.0375 71.375 96.5 72.05 96.5H76.025C76.7 96.5 77.3 96.05 77.475 95.3875L86.775 60.8875C86.8334 60.6653 86.8401 60.4326 86.7947 60.2074C86.7493 59.9822 86.6529 59.7703 86.5129 59.5881C86.3729 59.4059 86.1931 59.2582 85.9872 59.1562C85.7813 59.0543 85.5548 59.0009 85.325 59H80.875C80.175 59 79.575 59.4875 79.4125 60.1625L73.6875 85.05L67.4625 60.1375C67.3 59.4625 66.7 59 66.0125 59Z" fill="black"/></svg>',"file-pdf":'<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M66.4125 71.8L66.45 71.625C67.175 68.6375 68.0875 64.9125 67.375 61.5375C66.9 58.875 64.9375 57.8375 63.2625 57.7625C61.2875 57.675 59.525 58.8 59.0875 60.4375C58.2625 63.4375 59 67.5375 60.35 72.7625C58.65 76.8125 55.9375 82.7 53.95 86.2C50.25 88.1125 45.2875 91.0625 44.55 94.7875C44.4 95.475 44.575 96.35 44.9875 97.1375C45.45 98.0125 46.1875 98.6875 47.05 99.0125C47.425 99.15 47.875 99.2625 48.4 99.2625C50.6 99.2625 54.1625 97.4875 58.9125 89.3375C59.6375 89.1 60.3875 88.85 61.1125 88.6C64.5125 87.45 68.0375 86.25 71.225 85.7125C74.75 87.6 78.7625 88.8125 81.4875 88.8125C84.1875 88.8125 85.25 87.2125 85.65 86.25C86.35 84.5625 86.0125 82.4375 84.875 81.3C83.225 79.675 79.2125 79.25 72.9625 80.025C69.8875 78.15 67.875 75.6 66.4125 71.8ZM52.7 90.7875C50.9625 93.3125 49.65 94.575 48.9375 95.125C49.775 93.5875 51.4125 91.9625 52.7 90.7875ZM63.65 61.35C64.3 62.4625 64.2125 65.825 63.7125 67.525C63.1 65.0375 63.0125 61.5125 63.375 61.1C63.475 61.1125 63.5625 61.1875 63.65 61.35ZM63.45 76.4125C64.7875 78.725 66.475 80.7125 68.3375 82.1875C65.6375 82.8 63.175 83.8125 60.975 84.7125C60.45 84.925 59.9375 85.1375 59.4375 85.3375C61.1 82.325 62.4875 78.9125 63.45 76.4125ZM82.9 84.6C82.9125 84.625 82.925 84.6625 82.85 84.7125H82.825L82.8 84.75C82.7 84.8125 81.675 85.4125 77.2625 83.675C82.3375 83.4375 82.8875 84.5875 82.9 84.6ZM106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111Z" fill="black"/></svg>',"file-zip":'<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M37 49H45V57H37V49ZM37 72.75V92.75H53V72.75H45V65H37V72.75ZM47 78.75V86.75H43V78.75H47ZM45 41H53V49H45V41ZM37 33H45V41H37V33ZM45 57H53V65H45V57ZM45 25H53V33H45V25ZM106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H37V25H45V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111Z" fill="black"/></svg>',"file-text":'<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111ZM63 77.25H40C39.45 77.25 39 77.7 39 78.25V84.25C39 84.8 39.45 85.25 40 85.25H63C63.55 85.25 64 84.8 64 84.25V78.25C64 77.7 63.55 77.25 63 77.25ZM39 61.25V67.25C39 67.8 39.45 68.25 40 68.25H88C88.55 68.25 89 67.8 89 67.25V61.25C89 60.7 88.55 60.25 88 60.25H40C39.45 60.25 39 60.7 39 61.25Z" fill="black"/></svg>',"file-image":'<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M69.1375 63.6375L59.4125 76.0375L54.275 69.4875C54.1815 69.368 54.0619 69.2713 53.9255 69.2048C53.7891 69.1384 53.6393 69.1038 53.4875 69.1038C53.3357 69.1038 53.1859 69.1384 53.0495 69.2048C52.9131 69.2713 52.7935 69.368 52.7 69.4875L40.225 85.3875C40.1096 85.5349 40.038 85.7118 40.0183 85.8979C39.9987 86.0841 40.0319 86.272 40.114 86.4402C40.1962 86.6084 40.324 86.7501 40.4829 86.8491C40.6418 86.9481 40.8253 87.0004 41.0125 87H87C87.8375 87 88.3 86.0375 87.7875 85.3875L70.725 63.6375C70.6302 63.5178 70.5096 63.4211 70.3721 63.3546C70.2347 63.2881 70.0839 63.2536 69.9313 63.2536C69.7786 63.2536 69.6278 63.2881 69.4904 63.3546C69.3529 63.4211 69.2323 63.5178 69.1375 63.6375ZM45 55.25C45 56.5761 45.5268 57.8479 46.4645 58.7855C47.4021 59.7232 48.6739 60.25 50 60.25C51.3261 60.25 52.5979 59.7232 53.5355 58.7855C54.4732 57.8479 55 56.5761 55 55.25C55 53.9239 54.4732 52.6521 53.5355 51.7145C52.5979 50.7768 51.3261 50.25 50 50.25C48.6739 50.25 47.4021 50.7768 46.4645 51.7145C45.5268 52.6521 45 53.9239 45 55.25ZM106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111Z" fill="black"/></svg>',"file-audio":'<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111Z" fill="black"/><path d="M64.6781 93.0344C62.701 95.0114 60.2677 96 57.3781 96C54.4885 96 52.0552 95.0114 50.0781 93.0344C48.1011 91.0573 47.1125 88.624 47.1125 85.7344C47.1125 82.8448 48.1011 80.4115 50.0781 78.4344C52.0552 76.4573 54.4885 75.4688 57.3781 75.4688C58.4458 75.4657 59.4541 75.598 60.4031 75.8657C61.3521 76.1333 62.2448 76.5714 63.0813 77.1797V64.0625C63.0843 62.7728 63.5223 61.69 64.3953 60.814C65.2682 59.938 66.351 59.5 67.6438 59.5H76.7688C78.0615 59.5 79.1443 59.938 80.0172 60.814C80.8902 61.69 81.3282 62.7728 81.3313 64.0625C81.3343 65.3522 80.8978 66.435 80.0218 67.311C79.1458 68.187 78.0615 68.625 76.7688 68.625H67.6438V85.7344C67.6438 88.624 66.6552 91.0573 64.6781 93.0344Z" fill="black"/></svg>',"file-video":'<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111Z" fill="black"/><path d="M44.2566 71.7109C44.2566 70.0637 44.911 68.4839 46.0758 67.3191C47.2405 66.1544 48.8203 65.5 50.4676 65.5H64.5457C66.1929 65.5 67.7727 66.1544 68.9375 67.3191C70.1023 68.4839 70.7566 70.0637 70.7566 71.7109V85.7891C70.7566 87.4363 70.1023 89.0161 68.9375 90.1809C67.7727 91.3456 66.1929 92 64.5457 92H50.4676C48.8203 92 47.2405 91.3456 46.0758 90.1809C44.911 89.0161 44.2566 87.4363 44.2566 85.7891V71.7109ZM79.4552 89.8187L72.4129 84.956V72.5391L79.4552 67.6763C81.3765 66.348 84 67.726 84 70.0613V87.4354C84 89.7707 81.3782 91.1454 79.4552 89.8187Z" fill="black"/></svg>',download:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5"/><path d="M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708z"/></svg>',play:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M10.804 8 5 4.633v6.734zm.792-.696a.802.802 0 0 1 0 1.392l-6.363 3.692C4.713 12.69 4 12.345 4 11.692V4.308c0-.653.713-.998 1.233-.696z"/></svg>',pause:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M6.25 5C5.56 5 5 5.56 5 6.25v3.5a1.25 1.25 0 1 0 2.5 0v-3.5C7.5 5.56 6.94 5 6.25 5m3.5 0c-.69 0-1.25.56-1.25 1.25v3.5a1.25 1.25 0 1 0 2.5 0v-3.5C11 5.56 10.44 5 9.75 5"/></svg>'}),d=(t,e="hide")=>{const i=`click.dismiss.${t.EVENT_KEY}`,a=t.NAME;s.A.on(document,i,`[data-vg-dismiss="${a}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),(0,r.d6)(this))return;const s=n.A.getSelectorFromElement(this)||this.closest(`.vg-${a}`);t.getOrCreateInstance(s)[e]()}))}},355:(t,e,i)=>{i.r(e),i.d(e,{default:()=>o});var s=i(829),r=i(381),n=i(11),a=i(483);const o=class{constructor(t,e={}){this._vg=t,this._params={handle:".file",itemSelector:"li.file",route:null,method:"POST",toast:!0,...e},!e.itemSelector&&e.handle&&(this._params.itemSelector=`li${e.handle}`),this._params.route||console.warn("VGFilesSortable: Не указан маршрут `route` для сохранения порядка."),this._params.lists?.length?this._list=this._params.lists.map((t=>s.A.find("."+t,this._vg._element))).find((t=>t)):this._list=this._vg._nodes.list,(0,r.vq)(this._list)?(this._draggedItem=null,this._boundOnDragStart=this._onDragStart.bind(this),this._boundOnDragEnd=this._onDragEnd.bind(this),this._boundOnDragOver=this._onDragOver.bind(this),this._boundOnDrop=this._onDrop.bind(this),this._init()):console.error("VGFilesSortable: Не найден контейнер списка файлов")}_init(){this._enableDraggableItems(),this._setupEvents(),this._vg._triggerCallback("onSortableInit")}_enableDraggableItems(){this._list.querySelectorAll(this._params.itemSelector).forEach((t=>{t.setAttribute("draggable","true");const e=t.querySelector("img");e&&e.setAttribute("draggable","false")}))}_setupEvents(){this._list.addEventListener("dragstart",this._boundOnDragStart),this._list.addEventListener("dragend",this._boundOnDragEnd),this._list.addEventListener("dragover",this._boundOnDragOver),this._list.addEventListener("drop",this._boundOnDrop)}_onDragStart(t){if(!t.target.closest(this._params.handle))return;const e=t.target.closest(this._params.itemSelector)||t.target.closest("li");e&&(this._draggedItem=e,t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain","vgsortable"),e.classList.add("dragging"),requestAnimationFrame((()=>e.classList.add("dragging-transparent"))))}_onDragEnd(t){this._draggedItem&&(this._draggedItem.classList.remove("dragging","dragging-transparent"),this._draggedItem=null,this._saveOrder())}_onDragOver(t){if(!this._draggedItem)return;t.preventDefault(),t.dataTransfer.dropEffect="move";const e=t.target.closest(this._params.itemSelector)||t.target.closest("li");if(!e||e===this._draggedItem)return;const i=e.getBoundingClientRect(),s=i.height/2;t.clientY-i.top<s?this._list.insertBefore(this._draggedItem,e):this._list.insertBefore(this._draggedItem,e.nextSibling)}_onDrop(t){if(this._draggedItem)return t.preventDefault(),t.stopPropagation(),!1}_saveOrder(){const t=[...new Set(this._getUploadedIds())];t.length&&this._params.route&&(new n.A).post(this._params.route,{ids:t},{onSuccess:t=>a.A.run(t.response.message)})}_getUploadedIds(){return Array.from(this._list.querySelectorAll("[data-id]")).map((t=>(0,r.OM)(t.getAttribute("data-id"))||null)).filter((t=>null!==t))}destroy(){this._list.removeEventListener("dragstart",this._boundOnDragStart),this._list.removeEventListener("dragend",this._boundOnDragEnd),this._list.removeEventListener("dragover",this._boundOnDragOver),this._list.removeEventListener("drop",this._boundOnDrop),this._draggedItem=null}}},483:(t,e,i)=>{i.d(e,{A:()=>s});const s=i(614).A},614:(t,e,i)=>{i.d(e,{A:()=>k});var s=i(571),r=i(647),n=i(810),a=i(546),o=i(381),l=i(829);const d={enable:!1,selector:".vg-toast-wrapper",threshold:4,resizeEdgeSize:8,debug:!1},h=class{constructor(t,e,i={}){this._modalElement=t,this._dialogElement=e,this._options=this._normalizeOptions(i),this._pointerId=null,this._dragTarget=null,this._isDragging=!1,this._startX=0,this._startY=0,this._currentX=0,this._currentY=0,this._dialogStartLeft=0,this._dialogStartTop=0,this._dialogWidth=0,this._dialogHeight=0,this._isEnabled=!1,this._previousUserSelect="",this._previousTransition="",this._previousWillChange="",this._initialRect=null,this._lockedIframes=[],this._debugElement=null,this._onPointerMove=this._onPointerMove.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onPointerDown=this._onPointerDown.bind(this),this._onNativeDragStart=this._onNativeDragStart.bind(this)}setOptions(t={}){this._options=this._normalizeOptions(t,this._options),this._updateDebugOverlay()}enable(){this._dialogElement&&!this._isEnabled&&(this._updateDebugOverlay(),this._dialogElement.addEventListener("pointerdown",this._onPointerDown),this._isEnabled=!0)}disable(){this._dialogElement&&this._isEnabled&&(this._dialogElement.removeEventListener("pointerdown",this._onPointerDown),document.removeEventListener("pointermove",this._onPointerMove),document.removeEventListener("pointerup",this._onPointerUp),document.removeEventListener("pointercancel",this._onPointerUp),document.removeEventListener("dragstart",this._onNativeDragStart,!0),this._dialogElement.style.touchAction="",document.body.style.userSelect=this._previousUserSelect,this._pointerId=null,this._dragTarget=null,this._isDragging=!1,this._initialRect=null,this._unlockEmbeddedFrames(),this._restoreDragStyles(),delete this._modalElement.dataset.vgToastDragging,this._setDebugVisibility(!1),this._isEnabled=!1)}syncPosition(){if(!this._isEnabled)return;if(!this._isPreparedForInteraction())return;const t=this._dialogElement.getBoundingClientRect(),e=this._dialogElement.offsetWidth||t.width,i=this._dialogElement.offsetHeight||t.height,s=Number.parseFloat(this._dialogElement.style.left),r=Number.parseFloat(this._dialogElement.style.top),n=Number.isFinite(s)?s:t.left,a=Number.isFinite(r)?r:t.top,o=Math.max(0,window.innerWidth-e),l=Math.max(0,window.innerHeight-i),d=Math.min(o,Math.max(0,n)),h=Math.min(l,Math.max(0,a));this._dialogElement.style.left=`${d}px`,this._dialogElement.style.top=`${h}px`,this._updateDebugValues("synced")}_onPointerDown(t){if(0!==t.button)return;const e=this._resolveDragArea(t.target);e&&this._dialogElement.contains(e)&&(this._isPointerOnResizeEdge(t)||t.target.closest('input, textarea, select, button, a, [contenteditable="true"]')||e&&e.closest('[data-vg-dismiss="toast"]')||(this._pointerId=t.pointerId,this._dragTarget=t.target,this._isDragging=!1,t.preventDefault(),this._previousUserSelect=document.body.style.userSelect,document.body.style.userSelect="none",this._initialRect=this._dialogElement.getBoundingClientRect(),this._dialogStartLeft=this._initialRect.left,this._dialogStartTop=this._initialRect.top,this._dialogWidth=this._initialRect.width,this._dialogHeight=this._initialRect.height,this._startX=t.clientX,this._startY=t.clientY,this._currentX=t.clientX,this._currentY=t.clientY,this._lockEmbeddedFrames(),this._modalElement.dataset.vgToastDragging="true",this._setDebugVisibility(!0),this._updateDebugValues("armed"),document.addEventListener("dragstart",this._onNativeDragStart,!0),this._dialogElement&&this._dialogElement.setPointerCapture&&this._dialogElement.setPointerCapture(t.pointerId),document.addEventListener("pointermove",this._onPointerMove),document.addEventListener("pointerup",this._onPointerUp),document.addEventListener("pointercancel",this._onPointerUp)))}_onPointerMove(t){if(t.pointerId===this._pointerId){if(this._currentX=t.clientX,this._currentY=t.clientY,!this._isDragging){const e=this._currentX-this._startX,i=this._currentY-this._startY;if(Math.hypot(e,i)<this._options.threshold)return;this._isDragging=!0,this._dialogElement.style.touchAction="none",this._applyDragStyles(),this._preparePosition(this._initialRect),t.preventDefault(),this._updateDebugValues("dragging")}this._applyDragPosition()}}_onPointerUp(t){t.pointerId===this._pointerId&&(document.removeEventListener("pointermove",this._onPointerMove),document.removeEventListener("pointerup",this._onPointerUp),document.removeEventListener("pointercancel",this._onPointerUp),document.removeEventListener("dragstart",this._onNativeDragStart,!0),this._isDragging&&this._applyDragPosition(),this._dialogElement.style.touchAction="",document.body.style.userSelect=this._previousUserSelect,this._dialogElement&&this._dialogElement.releasePointerCapture&&this._dialogElement.releasePointerCapture(t.pointerId),this._pointerId=null,this._dragTarget=null,this._isDragging=!1,this._initialRect=null,this._unlockEmbeddedFrames(),this._restoreDragStyles(),delete this._modalElement.dataset.vgToastDragging,this._setDebugVisibility(this._options.debug),this._updateDebugValues("idle"))}_preparePosition(t=null){if(!this._dialogElement)return;const e=t||this._dialogElement.getBoundingClientRect();this._dialogElement.style.position="fixed",this._dialogElement.style.margin="0",this._dialogElement.style.left=`${e.left}px`,this._dialogElement.style.top=`${e.top}px`,this._dialogElement.style.width=`${e.width}px`,this._dialogElement.style.height=`${e.height}px`,this._dialogElement.style.transform="none",this._dialogElement.style.translate="none"}_isPreparedForInteraction(){return"fixed"===this._dialogElement.style.position&&"none"===this._dialogElement.style.transform}_isPointerOnResizeEdge(t){const e=this._dialogElement.getBoundingClientRect(),i=t.clientX-e.left,s=t.clientY-e.top,r=this._options.resizeEdgeSize,n=s>=0&&s<=r,a=s<=e.height&&s>=e.height-r,o=i>=0&&i<=r,l=i<=e.width&&i>=e.width-r;return n||a||o||l}_applyDragPosition(){if(null===this._pointerId||!this._isDragging)return;const t=this._currentX-this._startX,e=this._currentY-this._startY,i=Math.max(0,window.innerWidth-this._dialogWidth),s=Math.max(0,window.innerHeight-this._dialogHeight),r=Math.min(i,Math.max(0,this._dialogStartLeft+t)),n=Math.min(s,Math.max(0,this._dialogStartTop+e));this._dialogElement.style.left=`${r}px`,this._dialogElement.style.top=`${n}px`,this._updateDebugValues("dragging")}_onNativeDragStart(t){null!==this._pointerId&&t.preventDefault()}_applyDragStyles(){this._previousTransition=this._dialogElement.style.transition,this._previousWillChange=this._dialogElement.style.willChange,this._dialogElement.style.transition="none",this._dialogElement.style.willChange="left, top"}_restoreDragStyles(){this._dialogElement.style.transition=this._previousTransition,this._dialogElement.style.willChange=this._previousWillChange}_lockEmbeddedFrames(){if(!this._dialogElement||this._lockedIframes.length)return;const t=this._dialogElement.querySelectorAll("iframe");for(const e of t)this._lockedIframes.push({element:e,pointerEvents:e.style.pointerEvents}),e.style.pointerEvents="none"}_unlockEmbeddedFrames(){if(this._lockedIframes.length){for(const t of this._lockedIframes)t.element.style.pointerEvents=t.pointerEvents;this._lockedIframes=[]}}_normalizeOptions(t,e=d){const i={...e,...t},s=Number(i.threshold),r=Number(i.resizeEdgeSize),n="string"==typeof i.selector&&i.selector.trim()?i.selector:d.selector;return{...i,selector:n,threshold:Number.isFinite(s)&&s>=0?s:d.threshold,resizeEdgeSize:Number.isFinite(r)&&r>0?r:d.resizeEdgeSize,debug:Boolean(i.debug)}}_resolveDragArea(t){try{return t.closest(this._options.selector)}catch(e){return t.closest(d.selector)}}_updateDebugOverlay(){this._options.debug?(this._debugElement||(this._debugElement=document.createElement("div"),this._debugElement.style.position="absolute",this._debugElement.style.left="170px",this._debugElement.style.bottom="8px",this._debugElement.style.zIndex="7",this._debugElement.style.padding="4px 6px",this._debugElement.style.borderRadius="4px",this._debugElement.style.background="rgba(0, 0, 0, 0.72)",this._debugElement.style.color="#fff",this._debugElement.style.fontSize="11px",this._debugElement.style.lineHeight="1.3",this._debugElement.style.pointerEvents="none",this._dialogElement.append(this._debugElement)),this._setDebugVisibility(!0),this._updateDebugValues(this._isDragging?"dragging":"idle")):this._setDebugVisibility(!1)}_setDebugVisibility(t){this._debugElement&&(this._debugElement.style.display=t?"block":"none")}_updateDebugValues(t="idle"){if(!this._debugElement||!this._options.debug)return;const e=this._dialogElement.getBoundingClientRect();this._debugElement.textContent=`drag:${t} x:${Math.round(e.left)} y:${Math.round(e.top)} w:${Math.round(e.width)} h:${Math.round(e.height)}`}},c={enable:!1,minWidth:300,minHeight:160,edgeSize:8,debug:!1},u={n:"ns-resize",s:"ns-resize",e:"ew-resize",w:"ew-resize",ne:"nesw-resize",sw:"nesw-resize",nw:"nwse-resize",se:"nwse-resize"},_=class{constructor(t,e,i={}){this._modalElement=t,this._dialogElement=e,this._contentElement=this._dialogElement?this._dialogElement.querySelector(".vg-toast-wrapper"):null,this._options=this._normalizeOptions(i),this._pointerId=null,this._direction="",this._startX=0,this._startY=0,this._currentX=0,this._currentY=0,this._startWidth=0,this._startHeight=0,this._startLeft=0,this._startTop=0,this._startRight=0,this._startBottom=0,this._isEnabled=!1,this._observer=null,this._syncFrameId=null,this._resizeFrameId=null,this._lockedIframes=[],this._debugElement=null,this._previousMaxWidth="",this._previousMaxHeight="",this._previousPointerEvents="",this._previousMinHeight="",this._previousOverflow="",this._previousTransition="",this._previousWillChange="",this._previousContentHeight="",this._previousContentMaxHeight="",this._previousContentOverflow="",this._onPointerDown=this._onPointerDown.bind(this),this._onPointerMove=this._onPointerMove.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onPointerLeave=this._onPointerLeave.bind(this),this._applyResizePosition=this._applyResizePosition.bind(this)}setOptions(t={}){this._options=this._normalizeOptions(t,this._options),this._updateDebugOverlay()}enable(){this._dialogElement&&!this._isEnabled&&(this._updateDebugOverlay(),this._modalElement.addEventListener("pointermove",this._onPointerMove),this._modalElement.addEventListener("pointerdown",this._onPointerDown),this._modalElement.addEventListener("pointerleave",this._onPointerLeave),this._startObserveSizeChanges(),this._isEnabled=!0)}disable(){this._isEnabled&&(this._modalElement.removeEventListener("pointermove",this._onPointerMove),this._modalElement.removeEventListener("pointerdown",this._onPointerDown),this._modalElement.removeEventListener("pointerleave",this._onPointerLeave),document.removeEventListener("pointermove",this._onPointerMove),document.removeEventListener("pointerup",this._onPointerUp),document.removeEventListener("pointercancel",this._onPointerUp),this._cancelResizeFrame(),this._stopObserveSizeChanges(),this._pointerId=null,this._direction="",this._dialogElement.style.cursor="",delete this._modalElement.dataset.vgToastResizing,this._unlockEmbeddedFrames(),this._restoreResizeStyles(),this._setDebugVisibility(!1),this._isEnabled=!1)}syncToViewport(){if(this._modalElement&&"true"===this._modalElement.dataset.vgToastDragging)return;if(!this._isPreparedForInteraction())return;const t=this._dialogElement.getBoundingClientRect(),e=this._dialogElement.offsetWidth||t.width,i=this._dialogElement.offsetHeight||t.height,s=Number.parseFloat(this._dialogElement.style.left),r=Number.parseFloat(this._dialogElement.style.top),n=Number.isFinite(s)?s:t.left,a=Number.isFinite(r)?r:t.top,o=window.innerWidth,l=window.innerHeight,d=Math.max(this._options.minWidth,Math.min(e,o)),h=Math.max(this._options.minHeight,Math.min(i,l)),c=Math.max(0,window.innerWidth-d),u=Math.max(0,window.innerHeight-h),_=Math.min(c,Math.max(0,n)),m=Math.min(u,Math.max(0,a));Math.abs(e-d)>.5&&(this._dialogElement.style.width=`${d}px`),Math.abs(i-h)>.5&&(this._dialogElement.style.height=`${h}px`),this._dialogElement.style.left=`${_}px`,this._dialogElement.style.top=`${m}px`,this._updateDebugValues()}_onPointerDown(t){if(0!==t.button)return;if(t.defaultPrevented)return;const e=this._getDirectionFromPointer(t);if(!e)return;t.preventDefault(),this._pointerId=t.pointerId,this._direction=e;const i=this._dialogElement.getBoundingClientRect();this._applyResizeStyles(),this._preparePosition(i),this._startX=t.clientX,this._startY=t.clientY,this._currentX=t.clientX,this._currentY=t.clientY,this._startWidth=i.width,this._startHeight=i.height,this._startLeft=i.left,this._startTop=i.top,this._startRight=i.right,this._startBottom=i.bottom,this._lockEmbeddedFrames(),this._modalElement.dataset.vgToastResizing="true",this._setDebugVisibility(!0),this._updateDebugValues(),document.addEventListener("pointermove",this._onPointerMove),document.addEventListener("pointerup",this._onPointerUp),document.addEventListener("pointercancel",this._onPointerUp)}_onPointerMove(t){if(null!==this._pointerId)t.pointerId===this._pointerId&&(this._currentX=t.clientX,this._currentY=t.clientY,null===this._resizeFrameId&&(this._resizeFrameId=window.requestAnimationFrame(this._applyResizePosition)));else{const e=this._getDirectionFromPointer(t);this._dialogElement.style.cursor=e?u[e]:""}}_applyResizePosition(){if(this._resizeFrameId=null,null===this._pointerId)return;const t=this._currentX-this._startX,e=this._currentY-this._startY;let i=this._startWidth,s=this._startHeight,r=this._startLeft,n=this._startTop;if(this._direction.includes("e")){const e=Math.max(this._options.minWidth,window.innerWidth-this._startLeft);i=Math.min(e,Math.max(this._options.minWidth,this._startWidth+t))}if(this._direction.includes("s")){const t=Math.max(this._options.minHeight,window.innerHeight-this._startTop);s=Math.min(t,Math.max(this._options.minHeight,this._startHeight+e))}if(this._direction.includes("w")){const e=this._startRight-this._options.minWidth;r=Math.min(e,Math.max(0,this._startLeft+t)),i=this._startRight-r}if(this._direction.includes("n")){const t=this._startBottom-this._options.minHeight;n=Math.min(t,Math.max(0,this._startTop+e)),s=this._startBottom-n}this._dialogElement.style.left=`${r}px`,this._dialogElement.style.top=`${n}px`,this._dialogElement.style.width=`${i}px`,this._dialogElement.style.height=`${s}px`,this._updateDebugValues()}_onPointerUp(t){t.pointerId===this._pointerId&&(document.removeEventListener("pointermove",this._onPointerMove),document.removeEventListener("pointerup",this._onPointerUp),document.removeEventListener("pointercancel",this._onPointerUp),this._cancelResizeFrame(),this._applyResizePosition(),this._pointerId=null,this._direction="",delete this._modalElement.dataset.vgToastResizing,this._unlockEmbeddedFrames(),this._setDebugVisibility(this._options.debug),this._updateDebugValues())}_onPointerLeave(){null===this._pointerId&&(this._dialogElement.style.cursor="")}_getDirectionFromPointer(t){const e=this._dialogElement.getBoundingClientRect(),i=t.clientX-e.left,s=t.clientY-e.top,r=this._options.edgeSize;if(!(i>=0&&i<=e.width&&s>=0&&s<=e.height))return"";const n=s>=0&&s<=r,a=s<=e.height&&s>=e.height-r,o=i>=0&&i<=r,l=i<=e.width&&i>=e.width-r;return n&&o?"nw":n&&l?"ne":a&&o?"sw":a&&l?"se":n?"n":a?"s":o?"w":l?"e":""}_preparePosition(t){this._dialogElement.style.position="fixed",this._dialogElement.style.margin="0",this._dialogElement.style.left=`${t.left}px`,this._dialogElement.style.top=`${t.top}px`,this._dialogElement.style.width=`${t.width}px`,this._dialogElement.style.height=`${t.height}px`,this._dialogElement.style.transform="none",this._dialogElement.style.translate="none"}_isPreparedForInteraction(){return"fixed"===this._dialogElement.style.position&&"none"===this._dialogElement.style.transform}_startObserveSizeChanges(){"undefined"==typeof ResizeObserver||this._observer||(this._observer=new ResizeObserver((()=>{null===this._pointerId&&(this._modalElement&&"true"===this._modalElement.dataset.vgToastDragging||null===this._syncFrameId&&(this._syncFrameId=window.requestAnimationFrame((()=>{this._syncFrameId=null,this.syncToViewport()}))))})),this._observer.observe(this._dialogElement))}_stopObserveSizeChanges(){this._observer&&(this._observer.disconnect(),this._observer=null),null!==this._syncFrameId&&(window.cancelAnimationFrame(this._syncFrameId),this._syncFrameId=null)}_applyResizeStyles(){this._previousMaxWidth=this._dialogElement.style.maxWidth,this._previousMaxHeight=this._dialogElement.style.maxHeight,this._previousPointerEvents=this._dialogElement.style.pointerEvents,this._previousMinHeight=this._dialogElement.style.minHeight,this._previousOverflow=this._dialogElement.style.overflow,this._previousTransition=this._dialogElement.style.transition,this._previousWillChange=this._dialogElement.style.willChange,this._dialogElement.style.maxWidth="none",this._dialogElement.style.maxHeight="none",this._dialogElement.style.pointerEvents="auto",this._dialogElement.style.minHeight=`${this._options.minHeight}px`,this._dialogElement.style.overflow="hidden",this._dialogElement.style.transition="none",this._dialogElement.style.willChange="left, top, width, height",this._contentElement&&(this._previousContentHeight=this._contentElement.style.height,this._previousContentMaxHeight=this._contentElement.style.maxHeight,this._previousContentOverflow=this._contentElement.style.overflow,this._contentElement.style.height="100%",this._contentElement.style.maxHeight="100%",this._contentElement.style.overflow="auto")}_restoreResizeStyles(){this._dialogElement.style.maxWidth=this._previousMaxWidth,this._dialogElement.style.maxHeight=this._previousMaxHeight,this._dialogElement.style.pointerEvents=this._previousPointerEvents,this._dialogElement.style.minHeight=this._previousMinHeight,this._dialogElement.style.overflow=this._previousOverflow,this._dialogElement.style.transition=this._previousTransition,this._dialogElement.style.willChange=this._previousWillChange,this._contentElement&&(this._contentElement.style.height=this._previousContentHeight,this._contentElement.style.maxHeight=this._previousContentMaxHeight,this._contentElement.style.overflow=this._previousContentOverflow)}_normalizeOptions(t,e=c){const i={...e,...t},s=Number(i.minWidth),r=Number(i.minHeight),n=Number(i.edgeSize);return{...i,minWidth:Number.isFinite(s)&&s>0?s:c.minWidth,minHeight:Number.isFinite(r)&&r>0?r:c.minHeight,edgeSize:Number.isFinite(n)&&n>0?n:c.edgeSize,debug:Boolean(i.debug)}}_cancelResizeFrame(){null!==this._resizeFrameId&&(window.cancelAnimationFrame(this._resizeFrameId),this._resizeFrameId=null)}_lockEmbeddedFrames(){if(!this._dialogElement||this._lockedIframes.length)return;const t=this._dialogElement.querySelectorAll("iframe");for(const e of t)this._lockedIframes.push({element:e,pointerEvents:e.style.pointerEvents}),e.style.pointerEvents="none"}_unlockEmbeddedFrames(){if(this._lockedIframes.length){for(const t of this._lockedIframes)t.element.style.pointerEvents=t.pointerEvents;this._lockedIframes=[]}}_updateDebugOverlay(){this._options.debug?(this._debugElement||(this._debugElement=document.createElement("div"),this._debugElement.style.position="absolute",this._debugElement.style.left="8px",this._debugElement.style.bottom="8px",this._debugElement.style.zIndex="6",this._debugElement.style.padding="4px 6px",this._debugElement.style.borderRadius="4px",this._debugElement.style.background="rgba(0, 0, 0, 0.72)",this._debugElement.style.color="#fff",this._debugElement.style.fontSize="11px",this._debugElement.style.lineHeight="1.3",this._debugElement.style.pointerEvents="none",this._dialogElement.append(this._debugElement)),this._setDebugVisibility(!0),this._updateDebugValues()):this._setDebugVisibility(!1)}_setDebugVisibility(t){this._debugElement&&(this._debugElement.style.display=t?"block":"none")}_updateDebugValues(){if(!this._debugElement||!this._options.debug)return;const t=this._dialogElement.getBoundingClientRect();this._debugElement.textContent=`w:${Math.round(t.width)} h:${Math.round(t.height)} x:${Math.round(t.left)} y:${Math.round(t.top)}`}},m="vg.toast",p="vg-toast-open",g="show",f="shown",b="vg-toast-effect-",v={none:"",fade:`${b}fade`,zoom:`${b}zoom`,blur:`${b}blur`,"slide-up":`${b}slide-up`,"slide-down":`${b}slide-down`},y=`${m}.hide`,w=`${m}.hidden`,S=`${m}.show`,C=`${m}.shown`,A=`${m}.loaded`,E=`keydown.dismiss.${m}`,x=`click.${m}.data.api`,P=`pointerdown.interaction.${m}`,L=`pointerup.interaction.${m}`,I=`pointercancel.interaction.${m}`,M={success:"success",error:"danger",warning:"warning",info:"info"},D={static:!0,placement:"bottom center",autohide:!1,delay:3e3,enableClickToast:!0,enableButtonClose:!1,keyboard:!0,theme:"dark",type:null,stack:{enable:!0,max:5},drag:{enable:!1,selector:".vg-toast-wrapper",threshold:4,resizeEdgeSize:8,debug:!1},resize:{enable:!1,edgeSize:8,minWidth:220,minHeight:64,debug:!1},animation:{enable:!0,in:"animate__backInUp",out:"animate__backOutDown",delay:300,effect:"none"},ajax:{route:"",target:"",method:"get",loader:!1,once:!1,output:!0}};class T extends s.A{constructor(t,e={}){super(t,e),this._interactionDefaults={drag:{enable:!1,selector:".vg-toast-wrapper",threshold:4,resizeEdgeSize:8,debug:!1},resize:{enable:!1,edgeSize:8,minWidth:220,minHeight:64,debug:!1}},this._params=this._getParams(t,(0,o._v)(D,e)),this._dragHandler=new h(this._element,this._element),this._resizeHandler=new _(this._element,this._element),this._interactionConfig=this._resolveInteractionConfig(),this._dragHandler.setOptions(this._interactionConfig.drag),this._resizeHandler.setOptions(this._interactionConfig.resize),this._animation(this._element,T.NAME_KEY,this._params.animation),this._applyAnimationEffects(),this._dismissElement(),this._addEventListeners(),this._timeout=null,this._hideTimeout=null,this._isHiding=!1}static get NAME(){return"toast"}static get NAME_KEY(){return m}static run(t,e={},i){return T.build(t,e,i)}static build(t,e,i){const s=e&&"object"==typeof e?e:{},r=Object.prototype.hasOwnProperty.call(s,"autohide");(e=(0,o._v)(D,{static:!1,autohide:!0},s)).static&&!r&&(e.autohide=!1);const l="vg-toast-"+(0,o.PR)(),d=document.createElement("div");d.classList.add("vg-toast"),d.id=l,e.theme&&d.classList.add(`vg-toast-${e.theme}`),e.placement&&e.placement.split(" ").forEach((t=>d.classList.add(t)));const h=document.createElement("div");if(h.classList.add("vg-toast-wrapper"),e.type){const t=M[e.type],i=t?(0,n.z)(t):"";if(i){const t=document.createElement("div");t.classList.add("vg-toast-icon");const e=a.A.toSafeHtmlString(i),s=document.createRange().createContextualFragment(e).firstElementChild;s&&t.append(s),h.append(t)}}const c=document.createElement("div");c.classList.add("vg-toast-content");const u=document.createElement("div");if(u.classList.add("vg-toast-body"),"string"==typeof t)u.innerHTML=t,c.append(u);else if(Array.isArray(t)){if(t.length>1){const e=document.createElement("div");e.classList.add("vg-toast-header"),e.innerHTML=t[0],c.append(e)}u.innerHTML=t[1],c.append(u)}if(h.append(c),e.enableButtonClose){d.classList.add("vg-toast-has-button");const t=document.createElement("div");t.classList.add("vg-toast-button"),t.innerHTML='<button class="vg-btn-close" data-vg-dismiss="toast"></button>',h.append(t)}d.append(h),document.body.append(d);const _=T.getOrCreateInstance(d,e);return e.animation&&(_._animation(d,T.NAME_KEY,e.animation),_._applyAnimationEffects()),(0,o.g7)(i,[_]),_.show(),_}toggle(t){return this._isShown()?this.hide():this.show(t)}show(t){if((0,o.d6)(this._element))return;const e=this._element;this._clearTimeout(),this._clearHideTimeout(),this._isHiding=!1,this._disableInteractionHandlers(),this._params=this._getParams(t||{},this._params),this._route(((t,i)=>{this._element===e&&r.A.trigger(e,A,{stats:t,data:i})})),r.A.trigger(e,S,{relatedTarget:t}).defaultPrevented||(e.classList.remove(f),e.classList.add(g),document.body.classList.add(p),this._setPlacement(),this._queueCallback((()=>{this._element!==e||this._isHiding||(e.classList.add(f),this._toggleInteractionHandlers(),this._syncInteractiveBounds(),this._scheduleHide(),r.A.trigger(e,C,{relatedTarget:t}))}),e,!0,this._params.animation.delay))}hide(){if((0,o.d6)(this._element)||this._isHiding)return;const t=this._element;this._clearTimeout(),this._clearHideTimeout(),r.A.trigger(t,y).defaultPrevented||(this._isHiding=!0,t.classList.remove(f),this._disableInteractionHandlers(),this._hideTimeout=setTimeout((()=>{this._hideTimeout=null,this._element===t&&(t.classList.remove(g),this._params.stack.enable&&this._setPlacement(),this._queueCallback((()=>{if(this._element!==t)return;l.A.find(".vg-toast.show")||document.body.classList.remove(p);const e=!this._params.static;this._isHiding=!1,r.A.trigger(t,w),this._element===t&&e&&this.dispose()}),t,!1,this._params.animation.delay))}),this._params.animation.delay))}dispose(){this._element&&(this._clearTimeout(),this._clearHideTimeout(),this._disableInteractionHandlers(),this._params.static||this._element.remove(),super.dispose())}_scheduleHide(){this._clearTimeout(),this._params.autohide&&(this._timeout=setTimeout((()=>this.hide()),this._params.delay))}_isShown(){return!!this._element&&this._element.classList.contains(g)}_enableStack(){const t=this._params.placement.includes("top")?"top":"bottom",e=l.A.findAll(`.vg-toast.show.${t}`).filter((t=>{const e=T.getInstance(t);return e?._params.stack.enable}));if(!this._params.stack.enable)return e.filter((t=>t!==this._element)).forEach((t=>T.getInstance(t).hide())),[{el:this._element,top:0}];e.length>=this._params.stack.max&&e.slice(0,e.length-this._params.stack.max+1).forEach((t=>T.getInstance(t).hide()));const i=e.filter((t=>t!==this._element)).reduce(((t,e)=>t+e.clientHeight),0);return e.includes(this._element)?e.map(((t,i)=>({el:t,top:e.slice(0,i).reduce(((t,e)=>t+e.clientHeight),0)}))):[{el:this._element,top:i}]}_setPlacement(){const t=this._enableStack(),e=this._params.placement.includes("top"),i=e?"top":"bottom",s=l.A.findAll(`.vg-toast.show.${i}`).filter((t=>{const e=T.getInstance(t);return e?._params.stack.enable})),r=s.length?s:t.map((t=>t.el));let n=0;r.forEach((t=>{const i=T.getInstance(t),s=i?._params.placement||this._params.placement,r=s.includes("center"),a=s.includes("left"),o=s.includes("right"),l=t.style;l.left="",l.right="",l.top="",l.bottom="",l.transform="",l.translate="",r?(l.left="50%",l.translate="-50% 0"):a?l.left="0":o?l.right="0":(l.left="50%",l.translate="-50% 0"),e?l.top=n+"px":l.bottom=n+"px",n+=t.offsetHeight}))}_toggleInteractionHandlers(){this._interactionConfig=this._resolveInteractionConfig(),this._dragHandler.setOptions(this._interactionConfig.drag),this._resizeHandler.setOptions(this._interactionConfig.resize),this._interactionConfig.drag.enable?this._dragHandler.enable():this._dragHandler.disable(),this._interactionConfig.resize.enable?this._resizeHandler.enable():this._resizeHandler.disable()}_disableInteractionHandlers(){this._dragHandler.disable(),this._resizeHandler.disable()}_syncInteractiveBounds(){this._interactionConfig.resize.enable&&this._resizeHandler.syncToViewport(),this._interactionConfig.drag.enable&&this._dragHandler.syncPosition()}_resolveInteractionConfig(){return{drag:this._normalizeInteractionParams(this._params.drag,this._interactionDefaults.drag),resize:this._normalizeInteractionParams(this._params.resize,this._interactionDefaults.resize)}}_normalizeInteractionParams(t,e){if("boolean"==typeof t)return{...e,enable:t};if(t&&"object"==typeof t){const i=Object.prototype.hasOwnProperty.call(t,"enable");return{...e,...t,enable:!i||Boolean(t.enable)}}return{...e}}_applyAnimationEffects(){const t=this._element.classList;[...t].filter((t=>t.startsWith(b))).forEach((e=>t.remove(e))),this._resolveAnimationEffectClasses(this._params.animation?.effect).forEach((e=>t.add(e)))}_resolveAnimationEffectClasses(t){const e=(Array.isArray(t)?t:[t]).filter(Boolean).map((t=>this._resolveAnimationEffectClass(t))).filter(Boolean);return Array.from(new Set(e))}_resolveAnimationEffectClass(t){if("string"!=typeof t)return"";const e=t.trim().toLowerCase();return e?Object.prototype.hasOwnProperty.call(v,e)?v[e]:t.trim():""}_clearTimeout(){this._timeout&&(clearTimeout(this._timeout),this._timeout=null)}_clearHideTimeout(){this._hideTimeout&&(clearTimeout(this._hideTimeout),this._hideTimeout=null)}_addEventListeners(){this._params.keyboard&&r.A.on(document,E,(t=>{"Escape"===t.key&&this._isShown()&&this.hide()})),this._params.enableClickToast&&(this._element.classList.add("vg-toast-pointer"),r.A.on(document,x,`#${this._element.id}`,(()=>{this.hide()}))),r.A.on(this._element,P,(()=>{this._clearTimeout()}));const t=()=>{this._isShown()&&this._scheduleHide()};r.A.on(this._element,L,t),r.A.on(this._element,I,t)}}(0,n.P)(T),r.A.on(document,x,'[data-vg-toggle="toast"]',(function(t){const e=l.A.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),(0,o.d6)(this)||(this.setAttribute("aria-expanded","true"),r.A.one(e,w,(()=>{this.setAttribute("aria-expanded","false")})),T.getOrCreateInstance(e).toggle(this))}));const k=T},11:(t,e,i)=>{i.d(e,{A:()=>r});var s=i(381);const r=class{static _toRouteQueryParamValue(t){return Array.isArray(t)?t.map((t=>String(t||"").trim())).filter((t=>""!==t)).join(","):t}static buildRouteUrl(t,e={}){const i=String(t||"").trim();if(!i)throw new Error("Request endpoint is empty");const r=(0,s.Gv)(e.baseParams)?e.baseParams:{},n=(0,s.Gv)(e.params)?e.params:{},a=new URL(i,window.location.origin),o={...r,...n};return Object.keys(o).forEach((t=>{const e=this._toRouteQueryParamValue(o[t]);null!=e&&""!==e&&a.searchParams.set(t,String(e))})),a}static async requestRoute(t={}){const e=String(t.method||"GET").toUpperCase().trim()||"GET",i=(0,s.Gv)(t.headers)?{...t.headers}:{},r=String(t.credentials||"same-origin").trim()||"same-origin",n=(0,s.Gv)(t.baseParams)?t.baseParams:{},a=(0,s.Gv)(t.params)?t.params:{},o=void 0!==t.body&&null!==t.body,l="GET"===e||"HEAD"===e,d=String(t.route||t.endpoint||"").trim(),h=this.buildRouteUrl(d,{baseParams:n,params:l?a:{}}),c={method:e,credentials:r,headers:i,signal:t.signal||void 0};if(!l&&o){const e=t.body;"undefined"!=typeof FormData&&e instanceof FormData?(delete c.headers["Content-Type"],c.body=e):"string"==typeof e?(c.headers["Content-Type"]||(c.headers["Content-Type"]="application/json"),c.body=e):(c.headers["Content-Type"]||(c.headers["Content-Type"]="application/json"),c.body=JSON.stringify(e))}const u=await fetch(h.toString(),c),_=String(u.headers.get("content-type")||"").toLowerCase(),m="json"===t.responseType||"text"!==t.responseType&&_.includes("application/json"),p=await(async()=>{if(m)try{return await u.json()}catch(t){return await u.text()}return u.text()})();if(!u.ok){const t=p&&"object"==typeof p&&p.error&&"object"==typeof p.error?p.error:{},e="string"==typeof p&&p.trim()?p:u.statusText,i=String(t.message||e||"Request failed"),s=new Error(i);throw s.status=u.status,s.code=t.code||"REQUEST_FAILED",s.details=Array.isArray(t.details)?t.details:[],s.requestId=t.request_id||u.headers.get("X-Request-Id")||"",s.response=p,s}return p}constructor(t={}){this.baseUrl=t.baseUrl||"",this.defaultHeaders={"X-Requested-With":"XMLHttpRequest",...t.headers},this.withCredentials=t.withCredentials||!1,this.csrfToken=t._token||this._getCsrfToken()}_getCsrfToken(){const t=document.querySelector('meta[name="csrf-token"]');return t?t.getAttribute("content"):(console.warn('CSRF-токен не найден в <meta name="csrf-token">'),"")}request(t,{method:e="GET",body:i=null,headers:r={},signal:n=null,onProgress:a=null,onSuccess:o=s.lQ,onError:l=s.lQ,onUploadStart:d=s.lQ,onUploadEnd:h=s.lQ}={}){const c=this.baseUrl+t,u=i instanceof FormData,_={...this.defaultHeaders,...r},m="GET"===e.toUpperCase();return m&&(i=null),m||u||!this.csrfToken||(i||(i={}),"object"!=typeof i||Array.isArray(i)||(i._token=this.csrfToken)),u||"Content-Type"in r||(_["Content-Type"]="application/json"),u||a?this._makeXHR({method:e,url:c,body:i,headers:_,signal:n,onProgress:a,onSuccess:o,onError:l,onUploadStart:d,onUploadEnd:h}):this._makeFetch({url:c,method:e,body:m?void 0:this._serializeBody(i),headers:_,signal:n,withCredentials:this.withCredentials,onSuccess:o,onError:l})}_makeFetch({url:t,method:e,body:i,headers:r,signal:n,withCredentials:a,onSuccess:o,onError:l}){const d={method:e,headers:r,signal:n,credentials:a?"include":"same-origin",...void 0!==i&&{body:i}};fetch(t,d).then((t=>{const e=t.headers.get("content-type"),i=e&&e.includes("application/json");if(!t.ok)return Promise.reject((0,s.OM)({code:t.status,response:i?t.json().catch((()=>t.text())):t.text()}));let r={code:t.status};return r.response=i?t.json():t.text(),r})).then((t=>{t&&t.response instanceof Promise?t.response.then((e=>o({...t,response:e})),(()=>{})):o(t)})).catch((t=>{"AbortError"!==t.name&&(t&&t.response instanceof Promise?t.response.then((e=>{l({...t,response:e})}),(()=>{l({...t,response:"Request failed"})})):l(t))}))}_makeXHR({method:t,url:e,body:i,headers:r,signal:n,onProgress:a,onSuccess:o,onError:l,onUploadStart:d,onUploadEnd:h}){const c=new XMLHttpRequest;return c.open(t,e,!0),c.withCredentials=this.withCredentials,Object.keys(r).forEach((t=>{"content-type"===t.toLowerCase()&&i instanceof FormData||c.setRequestHeader(t,r[t])})),a&&c.upload.addEventListener("progress",(t=>{t.lengthComputable&&a(Math.round(t.loaded/t.total*100),t)})),c.onload=()=>{if(c.status>=200&&c.status<300){const t={code:c.status,response:(0,s.OM)(c.responseText)};o(t)}else{const t=(0,s.OM)({code:c.status,response:c.responseText||`HTTP ${c.status}`});l(t)}h()},c.onerror=()=>{l((0,s.OM)({code:0,response:"Network Error"})),h()},c.ontimeout=()=>{l((0,s.OM)({code:0,response:"Request Timeout"})),h()},n&&n.addEventListener("abort",(()=>{c.abort()})),d(),c.send(i),c}get(t,e={}){return this.request(t,{method:"GET",...e})}post(t,e,i={}){return this.request(t,{method:"POST",body:e,...i})}put(t,e,i={}){return this.request(t,{method:"PUT",body:e,...i})}delete(t,e={}){return this.request(t,{method:"DELETE",...e})}patch(t,e,i={}){return this.request(t,{method:"PATCH",body:e,...i})}_serializeBody(t){if(t&&!(t instanceof FormData))return JSON.stringify(t)}}},667:(t,e,i)=>{i.d(e,{A:()=>a});var s=i(381),r=i(23);class n{constructor(t,e=null){this._params=this.merge(t,e)}get(){return this._params}fromElement(t){return(0,s.vq)(t)?r.p.get(t):{}}static stringToNestedObject(t,e){return t.split("-").reduceRight(((t,e)=>({[e]:t})),e)}merge(t,e){let i=(0,s._v)(t,this.fromElement(e));return Object.keys(i).forEach((t=>{if("params"===t&&(i=(0,s._v)(i,i.params),delete i.params),t.includes("-")){const e=n.stringToNestedObject(t,i[t]);i=(0,s._v)(i,e),delete i[t]}})),i}}const a=n},546:(t,e,i)=>{i.d(e,{A:()=>l});const s=new Set(["svg","g","path","line","polyline","polygon","circle","ellipse","rect","defs","symbol","title","use"]),r=new Set(["xmlns","viewbox","width","height","fill","stroke","stroke-width","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-dasharray","stroke-dashoffset","opacity","transform","class","x","y","x1","y1","x2","y2","cx","cy","r","rx","ry","points","d","role","focusable","aria-hidden","href","xlink:href"]);function n(t){return String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function a(t,e=s,i=r){if(!t)return null;if(t.nodeType===Node.TEXT_NODE)return document.createTextNode(t.textContent||"");if(t.nodeType!==Node.ELEMENT_NODE)return null;const n=t.tagName.toLowerCase();if(!e.has(n))return null;const o=document.createElementNS("http://www.w3.org/2000/svg",n);return Array.from(t.attributes||[]).forEach((t=>{const e=t.name.toLowerCase(),s=t.value||"";i.has(e)&&!e.startsWith("on")&&("href"!==e&&"xlink:href"!==e||!s||s.startsWith("#"))&&o.setAttribute(e,s)})),Array.from(t.childNodes||[]).forEach((t=>{const s=a(t,e,i);s&&o.append(s)})),o}function o(t,{allowedSvgTags:e=s,allowedSvgAttrs:i=r}={}){if(null==t)return"";const o=String(t).trim();if(!o)return"";if(!o.includes("<"))return n(o);const l=document.createElement("template");return l.innerHTML=o,Array.from(l.content.childNodes).map((t=>a(t,e,i))).filter(Boolean).map((t=>t.nodeType===Node.TEXT_NODE?n(t.textContent||""):t.nodeType===Node.ELEMENT_NODE?t.outerHTML:"")).join("")||n(o)}const l=class{static toSafeHtmlString(t,e){return o(t,e)}}},601:(t,e,i)=>{i.d(e,{A:()=>n});var s=i(810);class r{constructor(t="string"){this.mode=t,this.document="undefined"!=typeof document?document:null,this.tags={selfClosing:["img","input","br","hr","meta","link","area","base","col","command","embed","keygen","param","source","track","wbr"]}}setMode(t){return this.mode=t,this}element(t,e={},i=null,s={}){return"dom"===this.mode&&this.document?this._createDomElement(t,e,i,s):this._createHtmlString(t,e,i,s)}_createDomElement(t,e,i,s={}){const r=this.document.createElement(t);return this._setDomAttributes(r,e),null===i||this.tags.selfClosing.includes(t)||(Array.isArray(i)?i.forEach((t=>{"string"==typeof t?r.appendChild(this.document.createTextNode(t)):t instanceof Node&&r.appendChild(t)})):i instanceof Node?r.appendChild(i):"isHTML"in s&&s.isHTML?r.innerHTML=i:r.textContent=i),r}_setDomAttributes(t,e){e&&Object.entries(e).forEach((([e,i])=>{null!=i&&!1!==i&&(!0===i?t.setAttribute(e,""):t.setAttribute(e,String(i)))}))}_createHtmlString(t,e,i,s=!1){const r=this._attributesToString(e);if(this.tags.selfClosing.includes(t))return`<${t}${r}>`;const n=null!==i?this._contentToString(i):"";return""===t?`${n}`:`<${t}${r}>${n}</${t}>`}_contentToString(t){return Array.isArray(t)?t.map((t=>t instanceof Node?this._nodeToString(t):String(t))).join(""):t instanceof Node?this._nodeToString(t):String(t)}_nodeToString(t){return t.outerHTML?t.outerHTML:String(t)}_attributesToString(t){if(!t||0===Object.keys(t).length)return"";const e=Object.entries(t).map((([t,e])=>null==e||!1===e?"":!0===e?t:`${t}="${String(e).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}"`)).filter((t=>""!==t));return e.length?" "+e.join(" "):""}div(t={},e="",i={}){return this.element("div",t,e,i)}span(t={},e="",i={}){return this.element("span",t,e,i)}i(t={},e="",i={}){return this.element("i",t,e,i)}p(t={},e="",i={}){return this.element("p",t,e,i)}a(t,e="",i={},s={}){return this.element("a",{href:t,...i},e,s)}img(t,e="",i={}){return this.element("img",{src:t,alt:e,...i})}input(t,e="text",i="",s={}){return this.element("input",{type:e,name:t,value:i,...s})}button(t="",e="button",i={},s={}){return this.element("button",{type:e,...i},t,s)}form(t="",e="post",i={},s="",r={}){return this.element("form",{action:t,method:e,...i},s,r)}label(t,e,i={},s={}){return this.element("label",{for:t,...i},e,s)}textarea(t,e="",i={}){return this.element("textarea",{name:t,...i},e)}ul(t=[],e={},i=!1){let s=[];return s=i?t:t.map((t=>this.element("li",{},t))),this.element("ul",e,s)}li(t={},e,i){return this.element("li",t,e,i)}ol(t=[],e={}){const i=t.map((t=>this.element("li",{},t)));return this.element("ol",e,i)}h4(t={},e="",i={}){return this.element("h4",t,e,i)}table(t=[],e=[],i={}){const s=t.map((t=>this.element("th",{},t))),r=this.element("tr",{},s),n=this.element("thead",{},r),a=e.map((t=>{const e=t.map((t=>this.element("td",{},t)));return this.element("tr",{},e)})),o=this.element("tbody",{},a);return this.element("table",i,[n,o])}csrfToken(t){return this.element("input",{type:"hidden",name:"_token",value:t})}method(t){return this.element("input",{type:"hidden",name:"_method",value:t})}withEvents(t,e={}){return t instanceof Node&&"dom"===this.mode&&Object.entries(e).forEach((([e,i])=>{t.addEventListener(e,i)})),t}addClass(t,e){if(t instanceof Node&&"dom"===this.mode)t.classList.add(e);else if("string"==typeof t){const i=t.match(/<(\w+)([^>]*)>/);if(i){const[s,r,n]=i,a=this._addClassToAttributes(n,e);return t.replace(s,`<${r}${a}>`)}}return t}_addClassToAttributes(t,e){const i=t.match(/class="([^"]*)"/);if(i){const s=i[1],r=s?`${s} ${e}`:e;return t.replace(/class="[^"]*"/,`class="${r}"`)}return`${t} class="${e}"`}component(t,e={},i={}){const r={eye:t=>{const e=t.type||"open",i=this.element("",{},(0,s.z)(`eye-${e}`));return this.span({"data-vg-toggle":"pass","data-bs-toggle":"tooltip",title:"Скрыть",class:t.class||""},[i])},alert:t=>{const e=t.type||"info";return this.div({class:`alert alert-${e}`,role:"alert"},t.content||"")},card:t=>{const e=t.header?this.div({class:"card-header"},t.header):"",i=this.div({class:"card-body"},t.body||""),s=t.footer?this.div({class:"card-footer"},t.footer):"";return this.div({class:"card"},[e,i,s])}};return r[t]?r[t](e):this.div({class:`component-${t}`},"")}}const n=function(t="string"){const e=new r(t);return new Proxy(e,{get:(t,e)=>e in t?t[e].bind(t):function(i={},s="",r={}){return t.element(e,i,s,r)}})}},911:(t,e,i)=>{i.d(e,{A:()=>n});const s=new Map;function r(t){return s.has(t)?s.get(t):null}const n={set(t,e,i){r(t)||function(t){const e=new Map;s.set(t,e)}(t);const n=r(t);if(n.size>0&&!n.has(e)){const t=Array.from(n.keys())[0];console.error(`VGApp не допускает более одного экземпляра для каждого элемента. Связанный экземпляр: ${t}.`)}else n.set(e,i)},get(t,e){const i=r(t);return i&&i.get(e)||null},remove(t,e){const i=r(t);i&&(i.delete(e),0===i.size&&s.delete(t))}}},647:(t,e,i)=>{i.d(e,{A:()=>v});const s=/[^.]*(?=\..*)\.|.*/,r=/\..*/,n=/::\d+$/,a={mouseenter:"mouseover",mouseleave:"mouseout"},o=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","submit","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","popstate","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]),l={};let d=1;const h=(t,e=null)=>(t.uidEvent||(t.uidEvent=e?`${e}::${d++}`:d++),t.uidEvent),c=t=>{const e=h(t);return l[e]=l[e]||{},l[e]},u=(t,e,i)=>{const s="string"==typeof e,n=s?i:e||i;let l=t.replace(r,"");return a[l]&&(l=a[l]),o.has(l)||(l=t),[s,n,l]},_=(t,e,i,r,n)=>{if("string"!=typeof e||!t)return;const[a,o,l]=u(e,i,r),d=c(t),_=d[l]||={},p=m(_,o,a?i:null);if(p)return void(p.oneOff=p.oneOff&&n);let g=a?((t,e,i,s)=>{const r=function(r){const n=Array.from(t.querySelectorAll(e));for(let a=r.target;a&&a!==t;a=a.parentNode)if(n.includes(a))return f(r,{delegateTarget:a}),s&&b.off(t,r.type,e,i),i.apply(a,[r])};return r.delegationSelector=e,r.callable=i,r.oneOff=s,r.uidEvent=null,r})(t,i,o,n):((t,e,i)=>{const s=function(s){return f(s,{delegateTarget:t}),i&&b.off(t,s.type,e),e.apply(t,[s])};return s.delegationSelector=null,s.callable=e,s.oneOff=i,s.uidEvent=null,s})(t,o,n);const v=h(g,e.replace(s,""));g.uidEvent=v,_[v]=g,t.addEventListener(l,g,a)},m=(t,e,i)=>Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i)),p=(t,e,i,s,r)=>{const n=m(e[i],s,r);n&&(t.removeEventListener(i,n,Boolean(r)),delete e[i][n.uidEvent])},g=(t,e,i,s)=>{const r=e[i]||{};for(const[n,a]of Object.entries(r))n.includes(s)&&p(t,e,i,a.callable,a.delegationSelector)},f=(t,e={})=>{for(const[i,s]of Object.entries(e))try{t[i]=s}catch{Object.defineProperty(t,i,{configurable:!0,get:()=>s})}return t},b={on(t,e,i,s){_(t,e,i,s,!1)},one(t,e,i,s){_(t,e,i,s,!0)},off(t,e,i,s){if("string"!=typeof e||!t)return;const[r,a,o]=u(e,i,s),l=c(t),d=e.startsWith("."),h=o!==e;if(d){for(const i of Object.keys(l))g(t,l,i,e.slice(1));return}const _=l[o]||{};if(void 0===a)for(const[i,s]of Object.entries(_)){const r=i.replace(n,"");h&&!e.includes(r)||p(t,l,o,s.callable,s.delegationSelector)}else p(t,l,o,a,r?i:null)},trigger(t,e,i){if("string"!=typeof e||!t)return null;const s=f(new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:i}),i);return t.dispatchEvent(s),s}},v=b},23:(t,e,i)=>{i.d(e,{p:()=>r,x:()=>n});var s=i(381);const r={get(t,e="data",i=!0){if(!(0,s.vq)(t))return{};if("all"===e)return Array.from(t.attributes).reduce(((t,e)=>(t[e.name]=e.value,t)),{});if("data"===e){const e=new Set(["data-vg-toggle","data-vg-target","data-vg-dismiss","data-vg-loaded"]),r={};return Array.from(t.attributes).filter((t=>t.name.startsWith("data-"))).forEach((t=>{if(!e.has(t.name)){const e=i?t.name.slice(5):t.name;r[e]=(0,s.OM)(t.value)}})),r}return t.getAttribute(e)},has:(t,e)=>(0,s.vq)(t)&&t.hasAttribute(e),set(t,e,i){(0,s.vq)(t)&&e&&t.setAttribute(e,i)},remove(t,e){(0,s.vq)(t)&&e&&t.removeAttribute(e)},hide(t){(0,s.vq)(t)&&(t.style.display="none")},show(t,e="block"){(0,s.vq)(t)&&(t.style.display=e)}},n={remove(t,e){if(!(0,s.vq)(t)||!e)return;const i=Array.isArray(e)?e:e.split(" ").filter(Boolean);t.classList.remove(...i)},add(t,e,i=!1){if(!e)return;const r=Array.isArray(e)?e:e.split(" ").filter(Boolean);if(i)return r.join(" ");(0,s.vq)(t)&&t.classList.add(...r)},toggle(t,e,i=!0){(0,s.vq)(t)&&e&&t.classList.toggle(e,!!i)},replace(t,e,i){(0,s.vq)(t)&&e&&i&&t.classList.replace(e,i)},has:(t,e)=>(0,s.vq)(t)&&t.classList.contains(e)}},829:(t,e,i)=>{i.d(e,{A:()=>n});var s=i(381);const r=t=>{const e=t.getAttribute("data-vg-target");if(e&&"#"!==e)return e.trim();const i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;const s=i.includes("#")&&!i.startsWith("#")?`#${i.split("#")[1]}`:i;return"#"!==s?s.trim():null},n={find(t,e=document.documentElement){if((0,s.vq)(t))return t;try{return e.querySelector(t)}catch(e){return console.warn("Invalid selector:",t,e),null}},findID(t,e=document){try{if("string"!=typeof t||""===t.trim())return null;const i=(e&&9===e.nodeType?e:e?.ownerDocument||document).getElementById(t);if(i)return e&&9!==e.nodeType?e.contains(i)?i:null:i;const s=e&&9===e.nodeType?e.documentElement:e;if(!s||"function"!=typeof s.querySelector)return null;const r=(t=>t&&window.CSS?.escape?CSS.escape(t):t.replace(/([:.#[]])/g,"\\$1"))(t);return s.querySelector(`#${r}`)}catch(e){return console.warn("Invalid ID in findID:",t,e),null}},findAll(t,e=document.documentElement){try{return Array.from(e.querySelectorAll(t))}catch(e){return console.warn("Invalid selector in findAll:",t,e),[]}},getSelectorFromElement(t){const e=r(t);return e&&this.find(e)?e:null},getElementFromSelector(t){const e=r(t);return e?this.find(e):null},getMultipleElementsFromSelector(t){const e=r(t);return e?this.findAll(e):[]},parents(t,e){const i=[];let s=t.parentElement?.closest(e);for(;s;)i.push(s),s=s.parentElement?.closest(e);return i},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]}}},381:(t,e,i)=>{i.d(e,{Ff:()=>v,Gv:()=>r,OM:()=>d,PR:()=>b,V6:()=>a,V8:()=>w,Xb:()=>S,_v:()=>h,d6:()=>o,dO:()=>_,g7:()=>c,iq:()=>y,lQ:()=>f,qm:()=>g,vq:()=>s,zN:()=>l,ze:()=>n});const s=t=>t?.nodeType===Node.ELEMENT_NODE,r=t=>t&&"object"==typeof t,n=t=>{if(!r(t))return!0;for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0},a=t=>{if(s(t))return t;if(t?.jquery)return t[0]||null;if("string"==typeof t&&""!==t.trim())try{return document.querySelector(t)}catch(e){return console.warn("Invalid selector:",t),null}return null},o=t=>!s(t)||!!t.classList.contains("disabled")||(void 0!==t.disabled?!!t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),l=t=>{if(!s(t)||0===t.getClientRects().length)return!1;if("hidden"===getComputedStyle(t).visibility)return!1;const e=t.closest("details:not([open])");if(!e)return!0;const i=t.closest("summary");return!(!i||i.parentNode!==e)},d=t=>{if("true"===t)return!0;if("false"===t)return!1;if("null"===t)return null;if(""===t)return null;if("number"==typeof t||t===Number(t))return Number(t);if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch{return t}},h=(...t)=>{const e=t=>t&&"object"==typeof t;return t.reduce(((t,i)=>e(i)?(Object.keys(i).forEach((s=>{const r=t[s],n=i[s];Array.isArray(r)&&Array.isArray(n)?t[s]=r.concat(n):e(r)&&e(n)?t[s]=h(r,n):t[s]=n})),t):t),{})},c=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,u="transitionend",_=(t,e,i=!0,s)=>{if(!e)return void c(t);if(!i)return void c(t);const r=s??m(e)+5;let n=!1;const a=i=>{i.target===e&&(n=!0,e.removeEventListener(u,a),c(t))};e.addEventListener(u,a),setTimeout((()=>{n||p(e)}),r)},m=t=>{if(!t)return 0;const{transitionDuration:e,transitionDelay:i}=getComputedStyle(t),s=e.split(", "),r=i.split(", ");return 1e3*((Number.parseFloat(s[0])||0)+(Number.parseFloat(r[0])||0))},p=t=>{t&&t.dispatchEvent(new Event(u))},g=t=>{t.offsetHeight},f=()=>{},b=(t=7)=>{let e="";for(let i=0;i<t;i++)e+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(Math.floor(62*Math.random()));return e},v=(t,e=!0)=>{const i="q w e r t y u i o p [ ] a s d f g h j k l ; ' z x c v b n m , .".split(" "),s="й ц у к е н г ш щ з х ъ ф ы в а п р о л д ж э я ч с м и т ь б ю".split(" "),r=e?i:s,n=e?s:i;let a=t;for(let t=0;t<r.length;t++){const e=r[t],i=n[t],s=r[t].toUpperCase(),o=n[t].toUpperCase();a=a.split(e).join(i).split(s).join(o)}return a},y=(t,e,i,s)=>{const r=t.length;let n=t.indexOf(e);return-1===n?i||!s?t[0]:t[r-1]:(n+=i?1:-1,s&&(n=(n%r+r)%r),t[Math.max(0,Math.min(n,r-1))])},w=()=>"rtl"===document.documentElement.dir;function S(){const t=navigator.userAgent,e=/Android|iPhone|iPad|iPod/i.test(t),i="ontouchstart"in window||navigator.maxTouchPoints>0,s=window.innerWidth<768,r=window.devicePixelRatio>=2;return e||i&&s&&r||function(){const t=navigator.userAgent,e=navigator.platform;if(!(/iPad/.test(t)||"MacIntel"===e&&navigator.maxTouchPoints>1))return{isiPadPro:!1};const i=window.screen.width*window.devicePixelRatio,s=window.screen.height*window.devicePixelRatio;return{isiPadPro:[{width:2048,height:2732},{width:1668,height:2388},{width:1668,height:2224}].some((t=>i===t.width&&s===t.height||i===t.height&&s===t.width)),screenWidth:i,screenHeight:s,userAgent:t,platform:e}}().isiPadPro}}},e={};function i(s){var r=e[s];if(void 0!==r)return r.exports;var n=e[s]={exports:{}};return t[s](n,n.exports,i),n.exports}i.d=(t,e)=>{for(var s in e)i.o(e,s)&&!i.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var s={};return(()=>{var t=i(571),e=i(23),s=i(829),r=i(381);const n=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",a=".sticky-top",o="padding-right",l="margin-right",d=class{constructor(){}get _element(){return document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}isOverflowing(){return this.getWidth()>0}hide(){if(this.isOverflowing()&&!(0,r.Xb)()){const t=this.getWidth();this._disableOverflow(),this._setStyle(n,o,t,(e=>e+t)),this._setStyle(a,l,t,(e=>e-t)),this._setStyle(this._element,o,t,(e=>e+t))}else(0,r.Xb)()&&this._disableOverflow()}reset(){this._resetStyle(this._element,"overflow"),this._resetStyle(this._element,o),this._resetStyle(n,o),this._resetStyle(a,l)}_disableOverflow(){this._saveInitialStyle(this._element,"overflow"),this._element.style.overflow="hidden"}_setStyle(t,e,i,s){this._applyToElements(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+i)return;this._saveInitialStyle(t,e);const r=getComputedStyle(t).getPropertyValue(e),n=Number.parseFloat(r)||0;t.style.setProperty(e,`${s(n)}px`)}))}_resetStyle(t,i){this._applyToElements(t,(t=>{const s=e.p.get(t,i);null!==s?(e.p.remove(t,i),t.style.setProperty(i,s)):t.style.removeProperty(i)}))}_saveInitialStyle(t,i){if(null!==e.p.get(t,i))return;const s=t.style.getPropertyValue(i);e.p.set(t,i,s)}_applyToElements(t,e){(0,r.vq)(t)?e(t):s.A.findAll(t,this._element).forEach(e)}};var h=i(601);const c="vg-backdrop",u="fade",_="show";class m{static get _rootEl(){return document.body}static _scrollbar=new d;static _backdrop=null;static show(t){this._backdrop||(this._backdrop=this._rootEl.querySelector(`.${c}`)),this._backdrop&&this._backdrop.remove(),this._append(),(0,r.g7)(t)}static hide(t){this._backdrop||(this._backdrop=this._rootEl.querySelector(`.${c}`)),this._backdrop&&this._destroy().then(r.g7.bind(null,t))}static _append(){const t=(0,h.A)("dom");this._backdrop=t.div({class:c}),this._rootEl.appendChild(this._backdrop),requestAnimationFrame((()=>{e.x.add(this._backdrop,_),setTimeout((()=>{e.x.add(this._backdrop,u)}),150)}))}static _destroy(){return new Promise((t=>{e.x.remove(this._backdrop,u),setTimeout((()=>{e.x.remove(this._backdrop,_),this._backdrop.remove(),this._backdrop=null,this._scrollbar.reset(),t()}),150)}))}}const p=m;var g=i(647),f=i(810);const b={enable:!1,selector:".vg-modal-content",threshold:4,resizeEdgeSize:8,debug:!1},v=class{constructor(t,e,i={}){this._modalElement=t,this._dialogElement=e,this._options=this._normalizeOptions(i),this._pointerId=null,this._dragTarget=null,this._isDragging=!1,this._startX=0,this._startY=0,this._currentX=0,this._currentY=0,this._dialogStartLeft=0,this._dialogStartTop=0,this._dialogWidth=0,this._dialogHeight=0,this._isEnabled=!1,this._previousUserSelect="",this._previousTransition="",this._previousWillChange="",this._initialRect=null,this._lockedIframes=[],this._debugElement=null,this._onPointerMove=this._onPointerMove.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onPointerDown=this._onPointerDown.bind(this),this._onNativeDragStart=this._onNativeDragStart.bind(this)}setOptions(t={}){this._options=this._normalizeOptions(t,this._options),this._updateDebugOverlay()}enable(){this._dialogElement&&!this._isEnabled&&(this._updateDebugOverlay(),this._dialogElement.addEventListener("pointerdown",this._onPointerDown),this._isEnabled=!0)}disable(){this._dialogElement&&this._isEnabled&&(this._dialogElement.removeEventListener("pointerdown",this._onPointerDown),document.removeEventListener("pointermove",this._onPointerMove),document.removeEventListener("pointerup",this._onPointerUp),document.removeEventListener("pointercancel",this._onPointerUp),document.removeEventListener("dragstart",this._onNativeDragStart,!0),this._dialogElement.style.touchAction="",document.body.style.userSelect=this._previousUserSelect,this._pointerId=null,this._dragTarget=null,this._isDragging=!1,this._initialRect=null,this._unlockEmbeddedFrames(),this._restoreDragStyles(),delete this._modalElement.dataset.vgModalDragging,this._setDebugVisibility(!1),this._isEnabled=!1)}syncPosition(){if(!this._isEnabled)return;if(!this._isPreparedForInteraction())return;const t=this._dialogElement.getBoundingClientRect(),e=this._dialogElement.offsetWidth||t.width,i=this._dialogElement.offsetHeight||t.height,s=Number.parseFloat(this._dialogElement.style.left),r=Number.parseFloat(this._dialogElement.style.top),n=Number.isFinite(s)?s:t.left,a=Number.isFinite(r)?r:t.top,o=Math.max(0,window.innerWidth-e),l=Math.max(0,window.innerHeight-i),d=Math.min(o,Math.max(0,n)),h=Math.min(l,Math.max(0,a));this._dialogElement.style.left=`${d}px`,this._dialogElement.style.top=`${h}px`,this._updateDebugValues("synced")}_onPointerDown(t){if(0!==t.button)return;const e=this._resolveDragArea(t.target);e&&this._dialogElement.contains(e)&&(this._isPointerOnResizeEdge(t)||t.target.closest('input, textarea, select, button, a, [contenteditable="true"]')||e&&e.closest('[data-vg-dismiss="modal"]')||(this._pointerId=t.pointerId,this._dragTarget=t.target,this._isDragging=!1,t.preventDefault(),this._previousUserSelect=document.body.style.userSelect,document.body.style.userSelect="none",this._initialRect=this._dialogElement.getBoundingClientRect(),this._dialogStartLeft=this._initialRect.left,this._dialogStartTop=this._initialRect.top,this._dialogWidth=this._initialRect.width,this._dialogHeight=this._initialRect.height,this._startX=t.clientX,this._startY=t.clientY,this._currentX=t.clientX,this._currentY=t.clientY,this._lockEmbeddedFrames(),this._modalElement.dataset.vgModalDragging="true",this._setDebugVisibility(!0),this._updateDebugValues("armed"),document.addEventListener("dragstart",this._onNativeDragStart,!0),this._dialogElement&&this._dialogElement.setPointerCapture&&this._dialogElement.setPointerCapture(t.pointerId),document.addEventListener("pointermove",this._onPointerMove),document.addEventListener("pointerup",this._onPointerUp),document.addEventListener("pointercancel",this._onPointerUp)))}_onPointerMove(t){if(t.pointerId===this._pointerId){if(this._currentX=t.clientX,this._currentY=t.clientY,!this._isDragging){const e=this._currentX-this._startX,i=this._currentY-this._startY;if(Math.hypot(e,i)<this._options.threshold)return;this._isDragging=!0,this._dialogElement.style.touchAction="none",this._applyDragStyles(),this._preparePosition(this._initialRect),t.preventDefault(),this._updateDebugValues("dragging")}this._applyDragPosition()}}_onPointerUp(t){t.pointerId===this._pointerId&&(document.removeEventListener("pointermove",this._onPointerMove),document.removeEventListener("pointerup",this._onPointerUp),document.removeEventListener("pointercancel",this._onPointerUp),document.removeEventListener("dragstart",this._onNativeDragStart,!0),this._isDragging&&this._applyDragPosition(),this._dialogElement.style.touchAction="",document.body.style.userSelect=this._previousUserSelect,this._dialogElement&&this._dialogElement.releasePointerCapture&&this._dialogElement.releasePointerCapture(t.pointerId),this._pointerId=null,this._dragTarget=null,this._isDragging=!1,this._initialRect=null,this._unlockEmbeddedFrames(),this._restoreDragStyles(),delete this._modalElement.dataset.vgModalDragging,this._setDebugVisibility(this._options.debug),this._updateDebugValues("idle"))}_preparePosition(t=null){if(!this._dialogElement)return;const e=t||this._dialogElement.getBoundingClientRect();this._dialogElement.style.position="fixed",this._dialogElement.style.margin="0",this._dialogElement.style.left=`${e.left}px`,this._dialogElement.style.top=`${e.top}px`,this._dialogElement.style.width=`${e.width}px`,this._dialogElement.style.height=`${e.height}px`,this._dialogElement.style.transform="none"}_isPreparedForInteraction(){return"fixed"===this._dialogElement.style.position&&"none"===this._dialogElement.style.transform}_isPointerOnResizeEdge(t){const e=this._dialogElement.getBoundingClientRect(),i=t.clientX-e.left,s=t.clientY-e.top,r=this._options.resizeEdgeSize,n=s>=0&&s<=r,a=s<=e.height&&s>=e.height-r,o=i>=0&&i<=r,l=i<=e.width&&i>=e.width-r;return n||a||o||l}_applyDragPosition(){if(null===this._pointerId||!this._isDragging)return;const t=this._currentX-this._startX,e=this._currentY-this._startY,i=Math.max(0,window.innerWidth-this._dialogWidth),s=Math.max(0,window.innerHeight-this._dialogHeight),r=Math.min(i,Math.max(0,this._dialogStartLeft+t)),n=Math.min(s,Math.max(0,this._dialogStartTop+e));this._dialogElement.style.left=`${r}px`,this._dialogElement.style.top=`${n}px`,this._updateDebugValues("dragging")}_onNativeDragStart(t){null!==this._pointerId&&t.preventDefault()}_applyDragStyles(){this._previousTransition=this._dialogElement.style.transition,this._previousWillChange=this._dialogElement.style.willChange,this._dialogElement.style.transition="none",this._dialogElement.style.willChange="left, top"}_restoreDragStyles(){this._dialogElement.style.transition=this._previousTransition,this._dialogElement.style.willChange=this._previousWillChange}_lockEmbeddedFrames(){if(!this._dialogElement||this._lockedIframes.length)return;const t=this._dialogElement.querySelectorAll("iframe");for(const e of t)this._lockedIframes.push({element:e,pointerEvents:e.style.pointerEvents}),e.style.pointerEvents="none"}_unlockEmbeddedFrames(){if(this._lockedIframes.length){for(const t of this._lockedIframes)t.element.style.pointerEvents=t.pointerEvents;this._lockedIframes=[]}}_normalizeOptions(t,e=b){const i={...e,...t},s=Number(i.threshold),r=Number(i.resizeEdgeSize),n="string"==typeof i.selector&&i.selector.trim()?i.selector:b.selector;return{...i,selector:n,threshold:Number.isFinite(s)&&s>=0?s:b.threshold,resizeEdgeSize:Number.isFinite(r)&&r>0?r:b.resizeEdgeSize,debug:Boolean(i.debug)}}_resolveDragArea(t){try{return t.closest(this._options.selector)}catch(e){return t.closest(b.selector)}}_updateDebugOverlay(){this._options.debug?(this._debugElement||(this._debugElement=document.createElement("div"),this._debugElement.style.position="absolute",this._debugElement.style.left="170px",this._debugElement.style.bottom="8px",this._debugElement.style.zIndex="7",this._debugElement.style.padding="4px 6px",this._debugElement.style.borderRadius="4px",this._debugElement.style.background="rgba(0, 0, 0, 0.72)",this._debugElement.style.color="#fff",this._debugElement.style.fontSize="11px",this._debugElement.style.lineHeight="1.3",this._debugElement.style.pointerEvents="none",this._dialogElement.append(this._debugElement)),this._setDebugVisibility(!0),this._updateDebugValues(this._isDragging?"dragging":"idle")):this._setDebugVisibility(!1)}_setDebugVisibility(t){this._debugElement&&(this._debugElement.style.display=t?"block":"none")}_updateDebugValues(t="idle"){if(!this._debugElement||!this._options.debug)return;const e=this._dialogElement.getBoundingClientRect();this._debugElement.textContent=`drag:${t} x:${Math.round(e.left)} y:${Math.round(e.top)} w:${Math.round(e.width)} h:${Math.round(e.height)}`}},y={enable:!1,minWidth:300,minHeight:160,edgeSize:8,debug:!1},w={n:"ns-resize",s:"ns-resize",e:"ew-resize",w:"ew-resize",ne:"nesw-resize",sw:"nesw-resize",nw:"nwse-resize",se:"nwse-resize"},S=class{constructor(t,e,i={}){this._modalElement=t,this._dialogElement=e,this._contentElement=this._dialogElement?this._dialogElement.querySelector(".vg-modal-content"):null,this._options=this._normalizeOptions(i),this._pointerId=null,this._direction="",this._startX=0,this._startY=0,this._currentX=0,this._currentY=0,this._startWidth=0,this._startHeight=0,this._startLeft=0,this._startTop=0,this._startRight=0,this._startBottom=0,this._isEnabled=!1,this._observer=null,this._syncFrameId=null,this._resizeFrameId=null,this._lockedIframes=[],this._debugElement=null,this._previousMaxWidth="",this._previousMaxHeight="",this._previousPointerEvents="",this._previousMinHeight="",this._previousOverflow="",this._previousTransition="",this._previousWillChange="",this._previousContentHeight="",this._previousContentMaxHeight="",this._previousContentOverflow="",this._onPointerDown=this._onPointerDown.bind(this),this._onPointerMove=this._onPointerMove.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onPointerLeave=this._onPointerLeave.bind(this),this._applyResizePosition=this._applyResizePosition.bind(this)}setOptions(t={}){this._options=this._normalizeOptions(t,this._options),this._updateDebugOverlay()}enable(){this._dialogElement&&!this._isEnabled&&(this._updateDebugOverlay(),this._modalElement.addEventListener("pointermove",this._onPointerMove),this._modalElement.addEventListener("pointerdown",this._onPointerDown),this._modalElement.addEventListener("pointerleave",this._onPointerLeave),this._startObserveSizeChanges(),this._isEnabled=!0)}disable(){this._isEnabled&&(this._modalElement.removeEventListener("pointermove",this._onPointerMove),this._modalElement.removeEventListener("pointerdown",this._onPointerDown),this._modalElement.removeEventListener("pointerleave",this._onPointerLeave),document.removeEventListener("pointermove",this._onPointerMove),document.removeEventListener("pointerup",this._onPointerUp),document.removeEventListener("pointercancel",this._onPointerUp),this._cancelResizeFrame(),this._stopObserveSizeChanges(),this._pointerId=null,this._direction="",this._dialogElement.style.cursor="",delete this._modalElement.dataset.vgModalResizing,this._unlockEmbeddedFrames(),this._restoreResizeStyles(),this._setDebugVisibility(!1),this._isEnabled=!1)}syncToViewport(){if(this._modalElement&&"true"===this._modalElement.dataset.vgModalDragging)return;if(!this._isPreparedForInteraction())return;const t=this._dialogElement.getBoundingClientRect(),e=this._dialogElement.offsetWidth||t.width,i=this._dialogElement.offsetHeight||t.height,s=Number.parseFloat(this._dialogElement.style.left),r=Number.parseFloat(this._dialogElement.style.top),n=Number.isFinite(s)?s:t.left,a=Number.isFinite(r)?r:t.top,o=window.innerWidth,l=window.innerHeight,d=Math.max(this._options.minWidth,Math.min(e,o)),h=Math.max(this._options.minHeight,Math.min(i,l)),c=Math.max(0,window.innerWidth-d),u=Math.max(0,window.innerHeight-h),_=Math.min(c,Math.max(0,n)),m=Math.min(u,Math.max(0,a));Math.abs(e-d)>.5&&(this._dialogElement.style.width=`${d}px`),Math.abs(i-h)>.5&&(this._dialogElement.style.height=`${h}px`),this._dialogElement.style.left=`${_}px`,this._dialogElement.style.top=`${m}px`,this._updateDebugValues()}_onPointerDown(t){if(0!==t.button)return;if(t.defaultPrevented)return;const e=this._getDirectionFromPointer(t);if(!e)return;t.preventDefault(),this._pointerId=t.pointerId,this._direction=e;const i=this._dialogElement.getBoundingClientRect();this._applyResizeStyles(),this._preparePosition(i),this._startX=t.clientX,this._startY=t.clientY,this._currentX=t.clientX,this._currentY=t.clientY,this._startWidth=i.width,this._startHeight=i.height,this._startLeft=i.left,this._startTop=i.top,this._startRight=i.right,this._startBottom=i.bottom,this._lockEmbeddedFrames(),this._modalElement.dataset.vgModalResizing="true",this._setDebugVisibility(!0),this._updateDebugValues(),document.addEventListener("pointermove",this._onPointerMove),document.addEventListener("pointerup",this._onPointerUp),document.addEventListener("pointercancel",this._onPointerUp)}_onPointerMove(t){if(null!==this._pointerId)t.pointerId===this._pointerId&&(this._currentX=t.clientX,this._currentY=t.clientY,null===this._resizeFrameId&&(this._resizeFrameId=window.requestAnimationFrame(this._applyResizePosition)));else{const e=this._getDirectionFromPointer(t);this._dialogElement.style.cursor=e?w[e]:""}}_applyResizePosition(){if(this._resizeFrameId=null,null===this._pointerId)return;const t=this._currentX-this._startX,e=this._currentY-this._startY;let i=this._startWidth,s=this._startHeight,r=this._startLeft,n=this._startTop;if(this._direction.includes("e")){const e=Math.max(this._options.minWidth,window.innerWidth-this._startLeft);i=Math.min(e,Math.max(this._options.minWidth,this._startWidth+t))}if(this._direction.includes("s")){const t=Math.max(this._options.minHeight,window.innerHeight-this._startTop);s=Math.min(t,Math.max(this._options.minHeight,this._startHeight+e))}if(this._direction.includes("w")){const e=this._startRight-this._options.minWidth;r=Math.min(e,Math.max(0,this._startLeft+t)),i=this._startRight-r}if(this._direction.includes("n")){const t=this._startBottom-this._options.minHeight;n=Math.min(t,Math.max(0,this._startTop+e)),s=this._startBottom-n}this._dialogElement.style.left=`${r}px`,this._dialogElement.style.top=`${n}px`,this._dialogElement.style.width=`${i}px`,this._dialogElement.style.height=`${s}px`,this._updateDebugValues()}_onPointerUp(t){t.pointerId===this._pointerId&&(document.removeEventListener("pointermove",this._onPointerMove),document.removeEventListener("pointerup",this._onPointerUp),document.removeEventListener("pointercancel",this._onPointerUp),this._cancelResizeFrame(),this._applyResizePosition(),this._pointerId=null,this._direction="",delete this._modalElement.dataset.vgModalResizing,this._unlockEmbeddedFrames(),this._setDebugVisibility(this._options.debug),this._updateDebugValues())}_onPointerLeave(){null===this._pointerId&&(this._dialogElement.style.cursor="")}_getDirectionFromPointer(t){const e=this._dialogElement.getBoundingClientRect(),i=t.clientX-e.left,s=t.clientY-e.top,r=this._options.edgeSize;if(!(i>=0&&i<=e.width&&s>=0&&s<=e.height))return"";const n=s>=0&&s<=r,a=s<=e.height&&s>=e.height-r,o=i>=0&&i<=r,l=i<=e.width&&i>=e.width-r;return n&&o?"nw":n&&l?"ne":a&&o?"sw":a&&l?"se":n?"n":a?"s":o?"w":l?"e":""}_preparePosition(t){this._dialogElement.style.position="fixed",this._dialogElement.style.margin="0",this._dialogElement.style.left=`${t.left}px`,this._dialogElement.style.top=`${t.top}px`,this._dialogElement.style.width=`${t.width}px`,this._dialogElement.style.height=`${t.height}px`,this._dialogElement.style.transform="none"}_isPreparedForInteraction(){return"fixed"===this._dialogElement.style.position&&"none"===this._dialogElement.style.transform}_startObserveSizeChanges(){"undefined"==typeof ResizeObserver||this._observer||(this._observer=new ResizeObserver((()=>{null===this._pointerId&&(this._modalElement&&"true"===this._modalElement.dataset.vgModalDragging||null===this._syncFrameId&&(this._syncFrameId=window.requestAnimationFrame((()=>{this._syncFrameId=null,this.syncToViewport()}))))})),this._observer.observe(this._dialogElement))}_stopObserveSizeChanges(){this._observer&&(this._observer.disconnect(),this._observer=null),null!==this._syncFrameId&&(window.cancelAnimationFrame(this._syncFrameId),this._syncFrameId=null)}_applyResizeStyles(){this._previousMaxWidth=this._dialogElement.style.maxWidth,this._previousMaxHeight=this._dialogElement.style.maxHeight,this._previousPointerEvents=this._dialogElement.style.pointerEvents,this._previousMinHeight=this._dialogElement.style.minHeight,this._previousOverflow=this._dialogElement.style.overflow,this._previousTransition=this._dialogElement.style.transition,this._previousWillChange=this._dialogElement.style.willChange,this._dialogElement.style.maxWidth="none",this._dialogElement.style.maxHeight="none",this._dialogElement.style.pointerEvents="auto",this._dialogElement.style.minHeight=`${this._options.minHeight}px`,this._dialogElement.style.overflow="hidden",this._dialogElement.style.transition="none",this._dialogElement.style.willChange="left, top, width, height",this._contentElement&&(this._previousContentHeight=this._contentElement.style.height,this._previousContentMaxHeight=this._contentElement.style.maxHeight,this._previousContentOverflow=this._contentElement.style.overflow,this._contentElement.style.height="100%",this._contentElement.style.maxHeight="100%",this._contentElement.style.overflow="auto")}_restoreResizeStyles(){this._dialogElement.style.maxWidth=this._previousMaxWidth,this._dialogElement.style.maxHeight=this._previousMaxHeight,this._dialogElement.style.pointerEvents=this._previousPointerEvents,this._dialogElement.style.minHeight=this._previousMinHeight,this._dialogElement.style.overflow=this._previousOverflow,this._dialogElement.style.transition=this._previousTransition,this._dialogElement.style.willChange=this._previousWillChange,this._contentElement&&(this._contentElement.style.height=this._previousContentHeight,this._contentElement.style.maxHeight=this._previousContentMaxHeight,this._contentElement.style.overflow=this._previousContentOverflow)}_normalizeOptions(t,e=y){const i={...e,...t},s=Number(i.minWidth),r=Number(i.minHeight),n=Number(i.edgeSize);return{...i,minWidth:Number.isFinite(s)&&s>0?s:y.minWidth,minHeight:Number.isFinite(r)&&r>0?r:y.minHeight,edgeSize:Number.isFinite(n)&&n>0?n:y.edgeSize,debug:Boolean(i.debug)}}_cancelResizeFrame(){null!==this._resizeFrameId&&(window.cancelAnimationFrame(this._resizeFrameId),this._resizeFrameId=null)}_lockEmbeddedFrames(){if(!this._dialogElement||this._lockedIframes.length)return;const t=this._dialogElement.querySelectorAll("iframe");for(const e of t)this._lockedIframes.push({element:e,pointerEvents:e.style.pointerEvents}),e.style.pointerEvents="none"}_unlockEmbeddedFrames(){if(this._lockedIframes.length){for(const t of this._lockedIframes)t.element.style.pointerEvents=t.pointerEvents;this._lockedIframes=[]}}_updateDebugOverlay(){this._options.debug?(this._debugElement||(this._debugElement=document.createElement("div"),this._debugElement.style.position="absolute",this._debugElement.style.left="8px",this._debugElement.style.bottom="8px",this._debugElement.style.zIndex="6",this._debugElement.style.padding="4px 6px",this._debugElement.style.borderRadius="4px",this._debugElement.style.background="rgba(0, 0, 0, 0.72)",this._debugElement.style.color="#fff",this._debugElement.style.fontSize="11px",this._debugElement.style.lineHeight="1.3",this._debugElement.style.pointerEvents="none",this._dialogElement.append(this._debugElement)),this._setDebugVisibility(!0),this._updateDebugValues()):this._setDebugVisibility(!1)}_setDebugVisibility(t){this._debugElement&&(this._debugElement.style.display=t?"block":"none")}_updateDebugValues(){if(!this._debugElement||!this._options.debug)return;const t=this._dialogElement.getBoundingClientRect();this._debugElement.textContent=`w:${Math.round(t.width)} h:${Math.round(t.height)} x:${Math.round(t.left)} y:${Math.round(t.top)}`}},C="vg.modal",A='.vg-modal.show:not([data-vg-persistent="true"])',E="vg-modal-open",x="show",P="vg-modal-static",L=`${C}.hide`,I=`${C}.hidden`,M=`${C}.show`,D=`${C}.shown`,T=`${C}.resize`,k=`${C}.loaded`,F=`keydown.dismiss.${C}`,R=`hidePrevented.${C}`,O=`click.${C}.data.api`,N=`mousedown.dismiss${C}`,z=`click.dismiss${C}`,H=`DOMContentLoaded.${C}.data.api`,$=`popstate.${C}.data.api`;class B extends t.A{constructor(t,e={}){super(t,e),this._interactionDefaults={drag:{enable:!1,selector:".vg-modal-content",threshold:4,resizeEdgeSize:8,debug:!1},resize:{enable:!1,edgeSize:8,minWidth:300,minHeight:160,debug:!1}},this._params=this._getParams(t,(0,r._v)({backdrop:!0,persistent:!1,focus:!0,keyboard:!0,fields:[],hash:!1,centered:!1,dismiss:!0,resize:{enable:!1,edgeSize:8,minWidth:300,minHeight:160,debug:!1},state:{enable:!0,key:""},drag:{enable:!1,selector:".vg-modal-content",threshold:4,resizeEdgeSize:8,debug:!1},sizes:{width:"",height:""},ajax:{route:"",target:"",method:"get",loader:!1,once:!1,output:!0},animation:{enable:!1,in:"animate__rollIn",out:"animate__rollOut",delay:100,duration:800},classes:{general:"vg-modal",dialog:"vg-modal-dialog",content:"vg-modal-content",header:"vg-modal-header",title:"vg-modal-title",body:"vg-modal-body",footer:"vg-modal-footer"}},e)),this._button=null,this._dialog=s.A.find(".vg-modal-dialog",this._element),this._content=s.A.find(".vg-modal-content",this._dialog),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new d,this._dragHandler=new v(this._element,this._dialog),this._resizeHandler=new S(this._element,this._dialog),this._interactionConfig=this._resolveInteractionConfig(),this._dragHandler.setOptions(this._interactionConfig.drag),this._resizeHandler.setOptions(this._interactionConfig.resize),this._addEventListeners(),this._dismissElement(),this._params.animation.delay=this._params.animation.enable?this._params.animation.delay:0,this._animation(this._element,B.NAME_KEY,this._params.animation),this._params.persistent?this._element.setAttribute("data-vg-persistent","true"):this._element.removeAttribute("data-vg-persistent")}static get NAME(){return"modal"}static get NAME_KEY(){return C}static init(t,e,i){B.build(t,e,i)}static build(t,i,s){if("string"!=typeof t)return;let n=document.createElement("div");n.classList.add("vg-modal"),n.classList.add("fade"),n.id=t;let a=document.createElement("div");a.classList.add("vg-modal-dialog"),"centered"in i&&i.centered&&a.classList.add("vg-modal-dialog-centered");let o=document.createElement("div");if(o.classList.add("vg-modal-content"),"dismiss"in i&&i.dismiss){let i=document.createElement("button");e.p.set(i,"type","button"),e.p.set(i,"data-vg-dismiss","modal"),e.p.set(i,"data-vg-target","#"+t),e.p.set(i,"aria-label","close"),i.classList.add("vg-btn-close"),o.append(i)}let l=document.createElement("div");l.classList.add("vg-modal-body"),o.append(l),a.append(o),n.append(a),document.body.append(n);const d=B.getOrCreateInstance(n,i);return"animation"in i&&d._animation(n,B.NAME_KEY,i.animation),"sizes"in d._params&&d._params.sizes.width&&n.style.setProperty("--vg-modal-width",d._params.sizes.width),"sizes"in d._params&&d._params.sizes.height&&(a.style.height=d._params.sizes.height),(0,r.g7)(s,[d]),d}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){if(!(0,r.d6)(this._element)){if(this._params.ajax.route&&this._params.ajax.target&&!this._params.ajax.once){const t=s.A.find(this._params.ajax.target,this._element);t&&(t.innerHTML="")}g.A.trigger(this._element,M,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._params.hash&&(window.history.pushState(null,"vg-sidebar-open","#"+this._element.id),g.A.on(window,$,(()=>{this.hide()}))),this._scrollBar.hide(),document.body.classList.add(E),this._addFieldsInModal(t),this._adjustDialog(),this._params.backdrop?p.show((()=>{const e=s.A.find(".vg-backdrop");e&&g.A.one(e,"mousedown.vg.backdrop",(()=>{this.hide()})),this._showElement(t)})):this._showElement(t))}}hide(t=[],e=!1){this._isShown&&!this._isTransitioning&&(g.A.trigger(this._element,L).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,setTimeout((()=>{this._element.classList.remove(x),this._queueCallback((()=>this._hideModal(t,e)),this._element,this._isAnimatedFade())}),this._params.animation.delay)))}_hideModal(t,e){if(!e){if(this._saveInteractionState(),this._disableInteractionHandlers(),this._element.style.display="none",this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,s.A.findAll(A).filter((t=>t!==this._element)).length||t.length)return void g.A.trigger(this._element,I);if(document.body.classList.remove(E),this._params.hash&&history.pushState("",document.title,window.location.pathname+window.location.search),!this._params.backdrop)return this._resetAdjustments(),this._scrollBar.reset(),void g.A.trigger(this._element,I);p.hide((()=>{this._resetAdjustments(),this._scrollBar.reset(),g.A.trigger(this._element,I)}))}}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=s.A.find(".vg-modal-body",this._dialog);e&&(e.scrollTop=0),(0,r.qm)(this._element),this._element.classList.add(x),this._toggleInteractionHandlers(),this._queueCallback((()=>{this._isTransitioning=!1,g.A.trigger(this._element,D,{relatedTarget:t}),this._syncInteractiveBounds(),this._params=this._getParams(t,this._params),this._restoreInteractionState(),this._syncInteractiveBounds(),this._route(((e,i)=>{g.A.trigger(this._element,k,{stats:e,data:i,relatedTarget:t}),this._syncInteractiveBounds()}))}),this._dialog,this._isAnimatedFade())}_bindInteractionHandlers(){this._dragHandler.setOptions(this._interactionConfig.drag),this._resizeHandler.setOptions(this._interactionConfig.resize)}_toggleInteractionHandlers(){this._interactionConfig=this._resolveInteractionConfig(),this._bindInteractionHandlers(),this._interactionConfig.drag.enable?this._dragHandler.enable():this._dragHandler.disable(),this._interactionConfig.resize.enable?this._resizeHandler.enable():this._resizeHandler.disable()}_disableInteractionHandlers(){this._dragHandler.disable(),this._resizeHandler.disable()}_syncInteractiveBounds(){this._interactionConfig.resize.enable&&this._resizeHandler.syncToViewport(),this._interactionConfig.drag.enable&&this._dragHandler.syncPosition()}_resolveInteractionConfig(){return{drag:this._normalizeInteractionParams(this._params.drag,this._interactionDefaults.drag),resize:this._normalizeInteractionParams(this._params.resize,this._interactionDefaults.resize)}}_normalizeInteractionParams(t,e){if("boolean"==typeof t)return{...e,enable:t};if(t&&"object"==typeof t){const i=Object.prototype.hasOwnProperty.call(t,"enable");return{...e,...t,enable:!i||Boolean(t.enable)}}return{...e}}_getStateConfig(){return this._normalizeStateParams(this._params.state)}_normalizeStateParams(t,e={enable:!0,key:""}){if("boolean"==typeof t)return{...e,enable:t};if(t&&"object"==typeof t){const i=Object.prototype.hasOwnProperty.call(t,"enable"),s="string"==typeof t.key?t.key.trim():"";return{...e,...t,key:s,enable:!i||Boolean(t.enable)}}return{...e}}_getStateStorageKey(t=this._getStateConfig()){return t.enable?"string"==typeof t.key&&t.key.trim()?t.key.trim():this._element&&this._element.id?`vg.modal.state:${window.location.pathname}:${this._element.id}`:"":""}_captureInteractionState(){const t=this._dialog?this._dialog.style:null,e=this._content||s.A.find(".vg-modal-content",this._dialog),i=e?e.style:null;return{dialog:t?{position:t.position,margin:t.margin,left:t.left,top:t.top,width:t.width,height:t.height,transform:t.transform,maxWidth:t.maxWidth,maxHeight:t.maxHeight,minHeight:t.minHeight,overflow:t.overflow,pointerEvents:t.pointerEvents,transition:t.transition,willChange:t.willChange}:{},content:i?{height:i.height,maxHeight:i.maxHeight,overflow:i.overflow}:{}}}_applyInteractionState(t){if(!t||"object"!=typeof t)return;const e=t.dialog&&"object"==typeof t.dialog?t.dialog:{},i=t.content&&"object"==typeof t.content?t.content:{};this._dialog&&Object.keys(e).forEach((t=>{this._dialog.style[t]=e[t]||""}));const r=this._content||s.A.find(".vg-modal-content",this._dialog);r&&Object.keys(i).forEach((t=>{r.style[t]=i[t]||""}))}_saveInteractionState(){const t=this._getStateConfig(),e=this._getStateStorageKey(t);if(t.enable&&e&&"undefined"!=typeof window&&window.localStorage)try{window.localStorage.setItem(e,JSON.stringify(this._captureInteractionState()))}catch(t){}}_restoreInteractionState(){const t=this._getStateConfig(),e=this._getStateStorageKey(t);if(!t.enable||!e||"undefined"==typeof window||!window.localStorage)return!1;try{const t=window.localStorage.getItem(e);if(!t)return!1;const i=JSON.parse(t);return this._applyInteractionState(i),!0}catch(t){return!1}}_isAnimatedFade(){return this._element.classList.contains("fade")}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=(0,r.V8)()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=(0,r.V8)()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}_addEventListeners(){g.A.on(document,F,(t=>{"Escape"===t.key&&(this._params.keyboard?this.hide():this._triggerBackdropTransition())})),g.A.on(window,T,(()=>{this._isShown&&!this._isTransitioning&&(this._adjustDialog(),this._syncInteractiveBounds())})),g.A.on(this._element,N,(t=>{g.A.one(this._element,z,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._params.backdrop?this._params.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_triggerBackdropTransition(){if(g.A.trigger(this._element,R).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(P)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(P),this._queueCallback((()=>{this._element.classList.remove(P),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog))}_addFieldsInModal(t){this._params=this._getParams(t,this._params),this._params.fields.length&&this._params.fields.forEach((t=>{if(!1 in t&&!1 in t)return;let i=s.A.findAll("[data-"+t.name+"]",this._element);if(i.length)for(const s of i)switch(s.tagName){case"INPUT":s.value=t.value;break;case"FORM":s.action=t.value;break;case"IMG":e.p.set(s,"src",t.value);break;default:s.innerHTML=t.value}}))}}(0,f.P)(B),g.A.on(document,O,'[data-vg-toggle="modal"]',(function(t){const e=s.A.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),g.A.one(e,M,(t=>{t.defaultPrevented}));const i=s.A.find(A);if(i){const t=B.getInstance(i);t&&!t._params.persistent&&t.hide([i])}B.getOrCreateInstance(e).toggle(this)})),g.A.on(document,H,(function(){let t=window.location.hash.slice(1);if(t){let e=s.A.find("#"+t);if(e&&e.classList.contains("vg-modal")){if((0,r.d6)(e))return;B.getOrCreateInstance(e).toggle()}}}));const j=B,V=j,q=JSON.parse('{"errors":{"400":"Неверный запрос","401":"Не авторизован","403":"Запрещено","404":"Не найдено","413":"Слишком большой запрос","419":"Проблемы с токеном CSRF","422":"Неверный запрос","500":"Внутренняя ошибка сервера","504":"Превышено время ожидания","went_wrong":"Что-то пошло не так, повторите позже"},"form-sender":{"bootstrap_not_found":"VGApp не удалось найти bootstrap, модалки не будут закрыты, попробуйте сделать это через коллбек afterSend."},"files":{"is-count":"Превышен лимит по количеству файлов","is-sizes":"Превышен размер файл","is-types":"Недопустимый тип файла","is-total-size":"Превышен максимально разрешённый размер для выбранных файлов","titles":"Удаление файлов","title":"Удаление файлa","descriptions":"Вы действительно хотите удалить все загруженные файлы с сервера?","description":"Вернуть будет невозможно","drop-active":"Отпустите, чтобы загрузить"},"filepreview":{"audio_title":"Аудио файл","image_title":"Просмотр изображения","image_thumbnail_alt":"Миниатюра изображения","text_title":"Просмотр текста","video_title":"Просмотр видео","pdf_title":"Просмотр PDF","office_title":"Просмотр документа","archive_title":"Просмотр архива","loading_text":"Загрузка...","loading_archive":"Загрузка архива...","loading_entry":"Загрузка файла из архива...","cannot_open_file":"Не удалось открыть файл","cannot_open_archive":"Не удалось открыть архив","cannot_preview_entry":"Не удалось открыть вложение","office_fallback":"Если встроенный превью не работает, скачайте файл.","invalid_zip":"Некорректный ZIP-файл","central_directory_not_found":"Центральный каталог не найден","archive_buffer_missing":"Буфер архива не доступен","entry_corrupted":"Файл в архиве поврежден","compression_not_supported":"Метод сжатия не поддерживается","deflate_not_supported":"Браузер не поддерживает распаковку Deflate","unknown_error":"Неизвестная ошибка","empty_file":"(пустой файл)","archive_empty_unsupported":"Архив пустой или не поддерживается.","archive_type_dir":"папка","archive_type_file":"файл","archive_table_name":"Имя","archive_table_type":"Тип","archive_table_packed":"Сжатый","archive_table_size":"Размер","archive_table_preview":"Превью","pdf_page":"Страница","pdf_zoom":"Масштаб"},"alert":{"title":"Заголовок по умолчанию","description":"Описание текущего действия","reason":"Алерт уже открыт"},"select":{"loading":"Загрузка"}}'),U=JSON.parse('{"errors":{"title":"Ошибка","titles":"Ошибки"},"select":{"search":"Поиск..."}}'),W=JSON.parse('{"alert":{"agree":"Да, согласен","cancel":"Отмена"},"files":{"agree":"Да","cancel":"Нет"},"filepreview":{"open_audio":"Открыть плеер","open_image":"Открыть изображение","open_text":"Открыть текст","open_video":"Открыть видео","open_archive":"Открыть архив","open_pdf":"Открыть PDF","open_office":"Открыть документ","download":"Скачать","preview":"Превью","prev":"Назад","next":"Вперед","zoom_in":"Увеличить","zoom_out":"Уменьшить"},"loadmore":{"send":"Загружаю...","show":"Показываю...","text-ajax":"Загрузить еще","text-more":"Показать еще"},"rollup":{"less":"Свернуть","show":"Показать","more":" еще "},"select":{"load-more":"Загрузить еще"}}'),K=JSON.parse('{"errors":{"400":"Bad Request","401":"Unauthorized","403":"Forbidden","404":"Not Found","413":"Payload Too Large","419":"Problems with the CSRF token","422":"Unprocessable Entity","500":"Internal Server Error","504":"Gateway Timeout","went_wrong":"Something went wrong, please repeat later"},"form-sender":{"bootstrap_not_found":"VGApp could not find bootstrap, the modals will not be closed, try to do this through the afterSend callback."},"files":{"is-count":"Exceeded the limit on the number of files","is-sizes":"File size exceeded","is-types":"Invalid file type","is-total-size":"The maximum allowed size for the selected files has been exceeded","titles":"Deleting files","title":"Deleting file","descriptions":"Do you really want to delete all uploaded files from the server?","description":"It will not be possible to return it","drop-active":"Release to upload"},"filepreview":{"audio_title":"Audio file","image_title":"Image preview","image_thumbnail_alt":"Image thumbnail","text_title":"Text preview","video_title":"Video preview","pdf_title":"PDF preview","office_title":"Office preview","archive_title":"Archive preview","loading_text":"Loading...","loading_archive":"Loading archive...","loading_entry":"Loading entry...","cannot_open_file":"Cannot open file","cannot_open_archive":"Cannot open archive","cannot_preview_entry":"Cannot preview entry","office_fallback":"If embedded preview is unavailable, download the file.","invalid_zip":"Invalid ZIP file","central_directory_not_found":"Central directory not found","archive_buffer_missing":"Archive buffer is missing","entry_corrupted":"Archive entry is corrupted","compression_not_supported":"Compression method is not supported","deflate_not_supported":"Deflate decompression is not supported by the browser","unknown_error":"Unknown error","empty_file":"(empty file)","archive_empty_unsupported":"Archive is empty or unsupported.","archive_type_dir":"dir","archive_type_file":"file","archive_table_name":"Name","archive_table_type":"Type","archive_table_packed":"Packed","archive_table_size":"Size","archive_table_preview":"Preview","pdf_page":"Page","pdf_zoom":"Zoom"},"alert":{"title":"Default header","description":"Description of the current action","reason":"Alert already open"},"select":{"loading":"Loading"}}'),Y=JSON.parse('{"errors":{"title":"Error","titles":"Errors"},"select":{"search":"Search..."}}'),G=JSON.parse('{"alert":{"agree":"Yeah, I agree","cancel":"Cancel"},"files":{"agree":"Yeah, I agree","cancel":"Cancel"},"filepreview":{"open_audio":"Open player","open_image":"Open image","open_text":"Open text","open_video":"Open video","open_archive":"Open archive","open_pdf":"Open PDF","open_office":"Open document","download":"Download","preview":"Preview","prev":"Prev","next":"Next","zoom_in":"Zoom +","zoom_out":"Zoom -"},"loadmore":{"send":"Uploading...","show":"I\'m showing you...","text-ajax":"Upload more","text-more":"Show more"},"rollup":{"less":"Roll up","show":"Show","more":" more "},"select":{"load-more":"Upload more"}}'),X={ru:(0,r.OM)({messages:q,titles:U,buttons:W}),en:(0,r.OM)({messages:K,titles:Y,buttons:G})};class Z{constructor(t="en"){this.lang=t}get(){return X[this.lang]||X.en}}function J(t="en",e,i){const s=new Z(t).get();return s[e]?.[i]||{}}function Q(t,e){return J(t,"titles",e)}function tt(t,e){return J(t,"messages",e)}function et(t,e){return J(t,"buttons",e)}var it=i(667);const st="vg-alert",rt="data-vg-alert-agree",nt="data-vg-alert-cancel",at="alert",ot="vg.alert";let lt=!1;class dt{constructor(t={},e="ru"){this.lang=e,this._defaultParams={render:{type:"modal",dismiss:!1},ajax:{route:"",target:"",method:"get",loader:!1,once:!1,output:!0},modal:{centered:!1,backdrop:!0,overflow:!0,keyboard:!0,dismiss:!0,animation:{enable:!1,in:"animate__rollIn",out:"animate__rollOut",delay:300,duration:700}},mode:"confirm",theme:"danger",buttons:{},message:{}},this._elementsDefault={buttons:{agree:{element:"",tag:"button",type:"button",attr:{},toggle:rt,class:["btn"],text:et(this.lang,at).agree},cancel:{element:"",tag:"button",type:"button",attr:{},toggle:nt,class:["btn"],text:et(this.lang,at).cancel}},message:{title:tt(this.lang,at).title,description:tt(this.lang,at).description},icons:{danger:(0,f.z)("danger"),warning:(0,f.z)("warning"),success:(0,f.z)("success"),info:(0,f.z)("info")}},this._params=this._setParams(t)}static call(t={},e="ru"){const i=new dt(t,e);if(lt)return Promise.reject({accepted:!1,reason:tt(i.lang,ot).reason});lt=!0;const{element:r,render:n,type:a}=(()=>{if("overlay"===i._params.render.type){const t=i._buildOverlay();return{element:t.element,render:t.render,type:"overlay"}}if("modal"===i._params.render.type){const t=i._buildModal();return{element:t._element,render:t,type:"modal"}}})();"modal"===a&&n.show();const o=s.A.find(`[${rt}]`,r),l=s.A.find(`[${nt}]`,r);return new Promise(((t,e)=>{const s=(t=!0)=>{"modal"!==a?"overlay"===a&&(r.remove(),i._params.render.dismiss&&t&&n.hide()):n.hide()},d=e=>{e.preventDefault(),u(),t({accepted:!0,timestamp:new Date}),s()},h=t=>{t.preventDefault(),u(),e({accepted:!1,timestamp:new Date}),s(!1)},c=t=>{"Enter"===t.key&&o&&(t.preventDefault(),d(t)),"Escape"===t.key&&(t.preventDefault(),h(t))},u=()=>{lt=!1,document.removeEventListener("keydown",c),o&&o.removeEventListener("click",d),l&&l.removeEventListener("click",h)};"confirm"===i._params.mode&&(o&&o.addEventListener("click",d),l&&l.addEventListener("click",h)),"info"===i._params.mode&&l&&l.addEventListener("click",h),document.addEventListener("keydown",c),"modal"===a&&r.addEventListener("vg.modal.hide",(()=>{u(),e({accepted:!1,timestamp:new Date})}),{once:!0}),r.focus()}))}static confirm(t,e={}){let i="ru";"lang"in e&&(i=e.lang||"ru",delete e.lang);const s=new dt(e,i);"confirm"===s._params.mode&&gt.getOrCreateInstance(t,s._params).run(dt)}_setParams(t){const e=(0,r._v)(this._defaultParams,t);return e.buttons=(0,r._v)(this._elementsDefault.buttons,e.buttons),e.message=(0,r._v)(this._elementsDefault.message,e.message),e.icon=this._elementsDefault.icons[e.theme],e}_buildModal(){const t=`${st}-${(0,r.PR)()}`;return V.build(t,this._params.modal,(t=>{t._element.classList.add(`${st}-modal`),s.A.find(".vg-modal-body",t._element).append(this._buildContent())}))}_buildContent(){const t=(0,h.A)("dom");let i=null;this._params.icon&&(i=t.div({class:`${st}-content--icon`},this._params.icon,{isHTML:!0}));const s=document.createElement("div");return e.x.add(s,"vg-alert-buttons"),"confirm"===this._params.mode&&(this._createButton(s,"cancel"),this._createButton(s,"agree")),"info"===this._params.mode&&this._createButton(s,"cancel"),t.div({class:`${st}-wrapper ${st}-${this._params.theme}`},[t.div({class:`${st}-content`},[i,t.div({class:`${st}-content--message`},[t.div({class:`${st}-content--title`},this._params.message.title),t.div({class:`${st}-content--description`},this._params.message.description)])]),s])}_buildOverlay(){const t=this._params.relatedTarget.closest([".vg-modal",".vg-sidebar"].join(", ")),e=V.getOrCreateInstance(t),i=s.A.find(".vg-modal-content",e._element)||t,r=document.createElement("div");return r.className=`${st}-overlay`,r.append(this._buildContent()),i.append(r),{element:r,render:e}}_createButton(t,e){const i=this._params.buttons[e];if(!i||i.element)return void t.insertAdjacentHTML("beforeend",i?.element||"");if(!i.tag)return;let s=null,n=[...new Set(i.class)].join(" "),a=(0,r._v)({class:n},i.attr);"button"===i.tag?s=(0,h.A)("dom").button(i.text,i.type,a):"a"===i.tag&&(s=(0,h.A)("dom").a("#",i.text,a)),s&&(s.setAttribute(i.toggle,"true"),t.appendChild(s))}}const ht=`[data-vg-toggle="${at}"]`,ct=`click.${ot}.data.api`,ut=`${ot}.loaded`,_t=`${ot}.accept`,mt=`${ot}.reject`,pt=`${ot}.finally`;class gt extends t.A{constructor(t,e={}){super(t),this._params=this._getParams(t,(0,r._v)({},e))}static get NAME(){return at}static get NAME_KEY(){return ot}run(t){"confirm"===this._params.mode&&(this._params.relatedTarget=this._element,t.call(this._params).then((t=>t.accepted?this._params.ajax.route?this._ajax():t:Promise.reject(t))).then((t=>{g.A.trigger(this._element,_t,{vgalert:t})})).catch((t=>{g.A.trigger(this._element,mt,{vgalert:t})})).finally((()=>{g.A.trigger(this._element,pt,{vgalert:"finally"})})))}_ajax(){return new Promise((t=>{this._route(((e,i)=>{g.A.trigger(this._element,ut,{stats:e,data:i}),t({status:e,data:i})}))}))}}g.A.on(document,ct,ht,(function(t){t.preventDefault();const e=t.target;(0,r.zN)(e)&&(0,r.vq)(e)&&dt.confirm(e,{buttons:{agree:{class:["btn-primary"]},cancel:{class:["btn-outline-primary"]}}})}));const ft=dt,bt="vg.collapse",vt="show",yt="vg-collapse",wt="vg-collapsing",St=`:scope .${yt} .${yt}`,Ct='[data-vg-toggle="collapse"]',At=`${bt}.hide`,Et=`${bt}.hidden`,xt=`${bt}.show`,Pt=`${bt}.shown`,Lt=`${bt}.loaded`,It=`click.${bt}.data.api`;class Mt extends t.A{constructor(t,e={}){super(t,e),this._params=this._getParams(t,(0,r._v)({toggle:!0,parent:null,ajax:{route:"",target:"",method:"get",loader:!1,once:!0,output:!0}},e)),this._params.parent=(0,r.V6)(this._params.parent)||null,this._isTransitioning=!1,this._triggerArray=[];const i=s.A.findAll(Ct);for(const t of i){const e=s.A.getSelectorFromElement(t),i=s.A.findAll(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._params.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._params.toggle&&this.toggle()}static get NAME(){return"collapse"}static get NAME_KEY(){return bt}toggle(t){return this._isShown()?this.hide():this.show(t)}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._params.parent&&(t=this._getFirstLevelChildren(".vg-collapse.show, .vg-collapse.vg-collapsing").filter((t=>t!==this._element)).map((t=>Mt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(g.A.trigger(this._element,xt).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(yt),this._element.classList.add(wt),this._element.style[e]="0",this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(wt),this._element.classList.add(yt,vt),this._element.style[e]="",this._route(((t,e)=>{g.A.trigger(this._element,Lt,{stats:t,data:e})})),g.A.trigger(this._element,Pt)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(g.A.trigger(this._element,At).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,(0,r.qm)(this._element),this._element.classList.add(wt),this._element.classList.remove(yt,vt);for(const t of this._triggerArray){const e=s.A.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(wt),this._element.classList.add(yt),g.A.trigger(this._element,Et)}),this._element,!0)}dispose(){super.dispose()}_isShown(t=this._element){return t.classList.contains(vt)}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)this._changeStateButton(i,e)}_initializeChildren(){if(!this._params.parent)return;const t=this._getFirstLevelChildren(Ct);for(const e of t){const t=s.A.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=s.A.findAll(St,this._params.parent);return s.A.findAll(t,this._params.parent).filter((t=>!e.includes(t)))}_changeStateButton(t,i){t.classList.toggle("vg-collapsed",!i),t.setAttribute("aria-expanded",i),t.innerHTML=e.p.get(t,`data-${i?"hide":"show"}-text`)||t.innerHTML}_getDimension(){return this._element.classList.contains("vg-collapse-horizontal")?"width":"height"}}g.A.on(document,It,Ct,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault(),s.A.getMultipleElementsFromSelector(this).forEach((function(t){Mt.getOrCreateInstance(t,{toggle:!1}).toggle()}))}));const Dt=Mt,Tt=Dt,kt=class{constructor(t){this.reference=t.reference,this.drop=t.drop,this.offset=t.offset||[0,0],this.boundary=t.boundary||"viewport",this.autoFlip=!1!==t.autoFlip,this.overflowProtection=!1!==t.overflowProtection,this.placement=t.placement||"bottom",this.fallbackPlacements=t.fallbackPlacements||[],this.clamp=!0===t.clamp,this.clampPadding=t.clampPadding??8,this.isMerge=!1!==t.isMerge}_getPlacementRect(t){return t.getBoundingClientRect()}_getViewportRect(){const t=document.documentElement;return{width:t.clientWidth,height:t.clientHeight,left:0,top:0,right:t.clientWidth,bottom:t.clientHeight}}_getOverflowConstraints(){const t=this._getPlacementRect(this.reference),e=this._getPlacementRect(this.drop),i=this._getViewportRect(),[s,r]=this.offset;let n=this.placement;if(this.overflowProtection){const a=[this.placement,...this.fallbackPlacements];let o=null;for(const n of a){const a=this._calculatePosition(n,t,e,s,r),l=this._calculateOverflow(a,e,i);if((!o||l<o.overflow)&&(o={placement:n,position:a,overflow:l},0===l))break}n=o.placement;const l=this.clamp?this._clampPosition(o.position,e,i):o.position;this._setStyles(l)}else{const a=this._calculatePosition(n,t,e,s,r),o=this.clamp?this._clampPosition(a,e,i):a;this._setStyles(o)}this.drop.setAttribute("data-vg-placement",n)}_calculatePosition(t,e,i,s=0,r=0){let n,a;switch(t){case"top":n=e.top-i.height-r,a=e.left+(e.width-i.width)/2;break;case"top-start":n=e.top-i.height-r,a=e.left+s;break;case"top-end":n=e.top-i.height-r,a=e.right-i.width-s;break;case"bottom":n=e.bottom+r,a=e.left+(e.width-i.width)/2;break;case"bottom-start":default:n=e.bottom+r,a=e.left+s;break;case"bottom-end":n=e.bottom+r,a=e.right-i.width-s;break;case"left":n=e.top+(e.height-i.height)/2,a=e.left-i.width-s;break;case"left-start":n=e.top+r,a=e.left-i.width-s;break;case"left-end":n=e.bottom-i.height-r,a=e.left-i.width-s;break;case"right":n=e.top+(e.height-i.height)/2,a=e.right+s;break;case"right-start":n=e.top+r,a=e.right+s;break;case"right-end":n=e.bottom-i.height-r,a=e.right+s}return{top:n,left:a}}_calculateOverflow(t,e,i){let s=0;return t.left<i.left&&(s+=i.left-t.left),t.top<i.top&&(s+=i.top-t.top),t.left+e.width>i.right&&(s+=t.left+e.width-i.right),t.top+e.height>i.bottom&&(s+=t.top+e.height-i.bottom),s}_clampPosition(t,e,i){const s=this.clampPadding,r=i.bottom-e.height-s,n=i.right-e.width-s;return{top:Math.min(Math.max(t.top,i.top+s),r),left:Math.min(Math.max(t.left,i.left+s),n)}}_setStyles(t){t&&this.drop&&(this.isMerge?(0,r._v)(this.drop.style,{position:"absolute",top:`${t.top+window.pageYOffset}px`,left:`${t.left+window.pageXOffset}px`,margin:"0"}):(this.drop.style.position="absolute",this.drop.style.top=`${t.top+window.pageYOffset}px`,this.drop.style.left=`${t.left+window.pageXOffset}px`,this.drop.style.margin="0"))}_setPlacement(){this._getOverflowConstraints()}},Ft="vg.dropdown",Rt="show",Ot="fade",Nt="open",zt="vg-dropdown-content",Ht='[data-vg-toggle="dropdown"]',$t=`${Ft}.hide`,Bt=`${Ft}.hidden`,jt=`${Ft}.show`,Vt=`${Ft}.shown`,qt=`${Ft}.loaded`,Ut=`keyup.${Ft}.data.api`,Wt=`keydown.${Ft}.data.api`,Kt=`click.${Ft}.data.api`,Yt=`mouseover.${Ft}.data.api`,Gt=`mouseout.${Ft}.data.api`;class Xt extends t.A{constructor(t,e){super(t,e),this._params=this._getParams(t,(0,r._v)({placement:"auto",hover:!1,ajax:{route:"",target:"",method:"get",loader:!1,once:!1,output:!0},animation:{fade:!0,enable:!1,in:"animate__flipInY",out:"animate__flipOutY",delay:300}},e));const i=s.A.getElementFromSelector(this._element);this._parent=this._element.parentNode,this._drop=i||s.A.find(`.${zt}`,this._parent),this._drop&&(this._isPlacement=!1,this.isFade=this._params.animation.fade,this.isAnimation=this._params.animation.enable,this._params.animation.delay=this.isAnimation?this._params.animation.delay:0,this._animation(this._drop,Xt.NAME_KEY,this._params.animation))}static get NAME(){return"dropdown"}static get NAME_KEY(){return Ft}toggle(){return this._isShown()?this.hide():this.show()}show(){if((0,r.d6)(this._element)||this._isShown())return;const t={relatedTarget:this._element};g.A.trigger(this._drop,jt,t).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>{g.A.on(t,"mouseover",r.lQ)})),this._element.setAttribute("aria-expanded","true"),this._element.classList.add(Rt),this._drop.classList.add(Rt),this._setPlacement(),this._queueCallback((()=>{this._route(((t,e)=>{g.A.trigger(this._element,qt,{stats:t,data:e})})),this.isFade?this._drop.classList.add(Ot):this.isAnimation||this._drop.classList.add(Nt),g.A.trigger(this._drop,Vt,t)}),this._drop,this.isAnimation||this.isFade,50))}hide(){!(0,r.d6)(this._element)&&this._isShown()&&this._completeHide({relatedTarget:this._element})}dispose(){super.dispose()}_isShown(){return this._element.classList.contains(Rt)}_completeHide(t){g.A.trigger(this._drop,$t,t).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>{g.A.off(t,"mouseover",r.lQ)})),this._element.classList.remove(Rt),this._element.setAttribute("aria-expanded","false"),this.isFade?this._drop.classList.remove(Ot):this.isAnimation||this._drop.classList.remove(Nt),setTimeout((()=>{this._queueCallback((()=>{this._drop.classList.remove(Rt),g.A.trigger(this._drop,Bt,t)}),this._drop,this.isAnimation||this.isFade)}),this._params.animation.delay))}_setPlacement(){if(this._drop){if(!this._isPlacement){let t="bottom-start",e=!1,i=!1;"auto"===this._params.placement?(e=!0,i=!0):t=this._params.placement,new kt({reference:this._element,drop:this._drop,placement:t,boundary:"clippingParents",autoFlip:e,overflowProtection:i,fallbackPlacements:["top-start","bottom-end","top-end"]})._setPlacement()}this._isPlacement=!0}}static init(t,e={}){const i=Xt.getOrCreateInstance(t,e);if(i._params.hover&&!(0,r.Xb)()){let t=null;g.A.on(i._parent,Yt,(e=>{if(t)return;Xt.hideOpenToggles(e);const s=e.target.closest(".vg-dropdown");s&&i._parent.contains(s)&&(t=s,i.show())})),g.A.on(i._parent,Gt,(e=>{if(!t)return;let s=e.relatedTarget;for(;s&&s!==t;)s=s.parentNode;s!==t&&(t=null,i._completeHide({relatedTarget:i._element}))}))}return g.A.on(document,Ut,Ht,Xt.keydownHandler),g.A.on(document,Wt,`.${zt}`,Xt.keydownHandler),g.A.on(document,Ut,Xt.clearDrops),g.A.on(document,Kt,Xt.clearDrops),g.A.on(t,Kt,(t=>{t.preventDefault(),i.toggle()})),i}static hideOpenToggles(t){const e=s.A.findAll(`${Ht}:not(.disabled):not(:disabled).${Rt}`);for(const i of e){const e=Xt.getInstance(i);if(!e)continue;if(t.target.closest(`.${zt}`)===e._drop)return;if((t.composedPath?.()||[]).includes(e._element))continue;const s={relatedTarget:e._element};"click"===t.type&&(s.clickEvent=t),e._completeHide(s)}}static keydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,r=["ArrowUp","ArrowDown"].includes(t.key);if(!r&&!i)return;if(e&&!i)return;t.preventDefault();const n=this.matches(Ht)?this:s.A.find(Ht,t.delegateTarget?.parentNode);if(!n)return;const a=Xt.getOrCreateInstance(n);r?(t.stopPropagation(),a.show()):a._isShown()&&(t.stopPropagation(),a.hide(),n.focus())}static clearDrops(t){2===t.button||"keyup"===t.type&&"Tab"!==t.key||Xt.hideOpenToggles(t)}}const Zt=Xt,Jt={_getFixedColumnsConfigRaw(){const t=(this._params&&this._params.fixed&&"object"==typeof this._params.fixed?this._params.fixed:{}).columns,e=this._element?this._element.getAttribute("data-fixed-columns"):null,i=null!=e&&""!==String(e).trim()?e:t;return String(i||"").trim()},_hasFixedColumnsConfig(){return""!==this._getFixedColumnsConfigRaw()||(this._element&&this._element.tHead?Array.from(this._element.tHead.querySelectorAll("th")):[]).some((t=>{const e=String(t.getAttribute("data-fixed")||"").toLowerCase().trim(),i=String(t.getAttribute("data-fixed-column")||"").toLowerCase().trim();return"left"===e||"right"===e||"left"===i||"right"===i}))},_buildFixedColumnsStateMap(t){const e=new Map,i=Array.isArray(t&&t.left)?t.left:[],s=Array.isArray(t&&t.right)?t.right:[];return i.forEach((t=>{Number.isInteger(t)&&t>=0&&e.set(t,"left")})),s.forEach((t=>{Number.isInteger(t)&&t>=0&&!e.has(t)&&e.set(t,"right")})),e},_collectFixedColumnsTransitions(t){const e=this._fixedColumnsLastStateMap instanceof Map?this._fixedColumnsLastStateMap:new Map,i=[];return t.forEach(((t,s)=>{e.get(s)!==t&&i.push({index:s,side:t})})),this._fixedColumnsLastStateMap=t,i},_applyFixedColumnsLayout(){if(!this._element)return;const t=Boolean(this._fixedColumnsSuppressed),e=this._element.tHead?Array.from(this._element.tHead.querySelectorAll("th")):[],i=this._getFixedColumnsByHeaders(e,{parseTableAttr:!0,fallbackByPosition:!0}),s=t?{left:[],right:[]}:this._applyMobileFixedColumnsGuard(this._element,i),r=s.left.length>0||s.right.length>0;this._element.classList.toggle("table-fixed-cols",r),this._parent&&this._parent.classList.toggle("table-fixed-cols",r);const n=this._collectFixedColumnsTransitions(this._buildFixedColumnsStateMap(s));this._applyFixedColumnsToTable(this._element,s,{includeBody:!0,emitAction:!0,transitionedColumns:n}),this._toggleFixedColumnsScrollBinding(r);const a=this._cloneStickyState&&this._cloneStickyState.table?this._cloneStickyState.table:null;if(a){const t=a.tHead?Array.from(a.tHead.querySelectorAll("th")):[],e=this._getFixedColumnsByHeaders(t,{parseTableAttr:!1,fallbackByPosition:!1}),i=r?this._applyMobileFixedColumnsGuard(a,e):{left:[],right:[]};this._applyFixedColumnsToTable(a,i,{includeBody:!1,emitAction:!1})}this._rebuildFixedColumnsCellsCache(),this._syncFixedColumnsScroll({immediate:!0})},_applyMobileFixedColumnsGuard(t,e){const i={left:Array.isArray(e&&e.left)?e.left.slice():[],right:Array.isArray(e&&e.right)?e.right.slice():[]};if(!this._isTouchDevice())return i;const s=this._getViewportWidthMetrics(),r=s?s.effectiveWidth:t?t.getBoundingClientRect().width:0;if(!(r>0&&r<=768))return i;const n=i.left.concat(i.right);if(n.length<=0)return i;if(n.length>1)return{left:[],right:[]};const a=t&&t.tHead?Array.from(t.tHead.querySelectorAll("th")):[],o=n[0],l=Number.isInteger(o)&&o>=0&&o<a.length?a[o]:null;return l&&(l.getBoundingClientRect().width||0)>.5*r?{left:[],right:[]}:i},_getFixedColumnsByHeaders(t,e={}){const i=Array.isArray(t)?t:[],s=!1!==e.parseTableAttr,r=!1!==e.fallbackByPosition,n=new Map,a=new Set,o=new Set,l=[];if(i.forEach(((t,e)=>{const i=String(t.getAttribute("data-field")||"").trim();""!==i&&n.set(i,e)})),i.forEach(((t,e)=>{const i=String(t.getAttribute("data-fixed")||"").toLowerCase().trim(),r=String(t.getAttribute("data-fixed-column")||"").toLowerCase().trim(),n="left"===i||"right"===i?i:"left"===r||"right"===r?r:"";if("left"===n)a.add(e);else if("right"===n)o.add(e);else if(!s){const i=String(t.getAttribute("data-fixed-side")||"").toLowerCase().trim();"left"===i?a.add(e):"right"===i&&o.add(e)}})),s&&this._element){const t=this._getFixedColumnsConfigRaw();""!==t&&t.split(";").map((t=>t.trim())).filter(Boolean).forEach((t=>{const e=t.match(/^(left|right)\s*:\s*(.+)$/i),s=e?e[1].toLowerCase():"";(e?e[2]:t).split(",").map((t=>t.trim())).filter(Boolean).forEach((t=>{const e=n.has(t)?n.get(t):Number.parseInt(t,10);!Number.isInteger(e)||e<0||e>=i.length||("left"===s?a.add(e):"right"===s?o.add(e):l.push(e))}))}))}l.forEach((t=>{a.has(t)||o.has(t)||(t<=Math.max(0,i.length-1-t)||!r?a.add(t):o.add(t))}));return{left:Array.from(a).sort(((t,e)=>t-e)),right:Array.from(o).filter((t=>!a.has(t))).sort(((t,e)=>t-e))}},_applyFixedColumnsToTable(t,e,i={}){if(!t)return;const s=!1!==i.includeBody,r=!1!==i.emitAction,n=Array.isArray(i.transitionedColumns)?i.transitionedColumns:[],a=[];t.tHead&&a.push(t.tHead),s&&t.tBodies&&t.tBodies.length&&a.push(...Array.from(t.tBodies)),s&&t.tFoot&&a.push(t.tFoot);const o=[];a.forEach((t=>{o.push(...Array.from(t.rows||[]))}));const l=e&&(e.left.length>0||e.right.length>0);if(o.forEach((t=>{Array.from(t.cells||[]).forEach((t=>{t.removeAttribute("data-fixed-side"),t.removeAttribute("data-fixed-edge"),t.removeAttribute("data-fixed-shift"),t.removeAttribute("data-fixed-shadow"),t.removeAttribute("data-fixed-overlap"),t.style.removeProperty("z-index"),t.style.removeProperty("transform")}))})),!l)return;const d=t.tHead?Array.from(t.tHead.querySelectorAll("th")):[],h=t.getBoundingClientRect(),c=this._getViewportWidthMetrics(),u=c?c.effectiveWidth:h.width,_={};d.forEach(((t,e)=>{const i=t.getBoundingClientRect();_[e]={width:Math.max(0,i.width),left:Math.max(0,i.left-h.left),height:Math.max(0,i.height),top:Math.max(0,i.top-h.top)}}));const m={};let p=0;e.left.forEach((t=>{const e=_[t]?_[t].width:0;m[t]=p,p+=e}));const g={};let f=0;e.right.slice().sort(((t,e)=>e-t)).forEach((t=>{const e=_[t]?_[t].width:0;g[t]=f,f+=e}));const b=e.left.length?e.left[e.left.length-1]:-1,v=e.right.length?e.right[0]:-1;o.forEach((t=>{const i=t.parentElement&&"THEAD"===t.parentElement.tagName?6:2;e.left.forEach((e=>{const s=t.cells&&t.cells[e]?t.cells[e]:null;if(!s)return;const r=_[e]||{left:0},n=m[e]-r.left;s.setAttribute("data-fixed-side","left"),s.setAttribute("data-fixed-shift",String(n)),s.style.zIndex=String(i),e===b&&s.setAttribute("data-fixed-edge","right")})),e.right.forEach((e=>{const s=t.cells&&t.cells[e]?t.cells[e]:null;if(!s)return;const r=_[e]||{left:0,width:0},n=u-g[e]-r.width-r.left;s.setAttribute("data-fixed-side","right"),s.setAttribute("data-fixed-shift",String(n)),s.style.zIndex=String(i),e===v&&s.setAttribute("data-fixed-edge","left")}))})),r&&"function"==typeof this._emitAction&&n.length&&n.forEach((t=>{const e=Number.isInteger(t&&t.index)?t.index:-1,i=!t||"left"!==t.side&&"right"!==t.side?"":t.side,s=e>=0&&e<d.length?d[e]:null;if(!s||!i)return;const r=_[e]||{left:0,width:0,top:0,height:0},n=r.width||0,a=r.height||0,o="left"===i?m[e]||0:Math.max(0,u-(g[e]||0)-n),l="right"===i?g[e]||0:Math.max(0,u-o-n),c=r.top||0,p=Math.max(0,h.height-c-a),f=String(s.getAttribute("data-field")||"").trim(),b=o-(r.left||0),v=Number.parseFloat(s.getAttribute("data-fixed-shift")||""),y=Number.isFinite(v)?v:b,w=this._tableViewport&&this._tableViewport.scrollLeft||0,S=Date.now();this._emitAction("columnfixed",{columnIndex:e,side:i,phase:"fixed",field:f,column:{index:e,side:i,field:f,width:n,height:a,element:s},offsets:{left:o,right:l,top:c,bottom:p},shift:{base:y,current:y+w,scrollLeft:w},fixedAt:{timestamp:S,iso:new Date(S).toISOString()}})}))},_toggleFixedColumnsScrollBinding(t){if(this._tableViewport){if(t&&!this._fixedColumnsScrollBound)return this._tableViewport.addEventListener("scroll",this._boundFixedColumnsScroll,{passive:!0}),void(this._fixedColumnsScrollBound=!0);!t&&this._fixedColumnsScrollBound&&(this._tableViewport.removeEventListener("scroll",this._boundFixedColumnsScroll),this._fixedColumnsScrollBound=!1),t||this._resetFixedColumnsScrollSyncState()}else this._resetFixedColumnsScrollSyncState()},_resetFixedColumnsScrollSyncState(){this._fixedColumnsSyncFrame&&"undefined"!=typeof window&&"function"==typeof window.cancelAnimationFrame&&window.cancelAnimationFrame(this._fixedColumnsSyncFrame),this._fixedColumnsSyncFrame=0,this._fixedColumnsLastScrollLeft=0,this._fixedColumnsLastAppliedScrollLeft=Number.NaN,this._fixedColumnsLastShadowStateKey="",this._fixedColumnsCellsCache=[],this._fixedColumnsShadowTargetsCache=[],this._fixedColumnsLastStateMap=new Map},_rebuildFixedColumnsCellsCache(){const t=[this._element];this._cloneStickyState&&this._cloneStickyState.table&&t.push(this._cloneStickyState.table);const e=t.filter(Boolean);this._fixedColumnsCellsCache=e.map((t=>Array.from(t.querySelectorAll("[data-fixed-side][data-fixed-shift]")).map((t=>{const e=Number.parseFloat(t.getAttribute("data-fixed-shift")||"0");return{cell:t,baseShift:Number.isFinite(e)?e:0}})))).filter((t=>t.length>0)),this._fixedColumnsShadowTargetsCache=e.map((t=>({table:t,edges:Array.from(t.querySelectorAll("[data-fixed-edge]")),fixedCells:Array.from(t.querySelectorAll("[data-fixed-side]"))}))).filter((t=>t.edges.length>0||t.fixedCells.length>0)),this._fixedColumnsLastAppliedScrollLeft=Number.NaN,this._fixedColumnsLastShadowStateKey=""},_syncFixedColumnsScroll(t={}){if(!this._tableViewport)return;const e=this._tableViewport.scrollLeft||0;this._fixedColumnsLastScrollLeft=e;const i=Boolean(t&&t.immediate);(i||this._fixedColumnsLastAppliedScrollLeft!==e)&&(i||"undefined"==typeof window||"function"!=typeof window.requestAnimationFrame?this._flushFixedColumnsScrollSync(e):this._fixedColumnsSyncFrame||(this._fixedColumnsSyncFrame=window.requestAnimationFrame((()=>{this._fixedColumnsSyncFrame=0,this._flushFixedColumnsScrollSync(this._fixedColumnsLastScrollLeft)}))))},_flushFixedColumnsScrollSync(t){this._fixedColumnsCellsCache.length||this._rebuildFixedColumnsCellsCache(),this._fixedColumnsCellsCache.forEach((e=>{e.forEach((({cell:e,baseShift:i})=>{if(!e||!e.isConnected)return;const s=i+t;e.style.transform=`translate3d(${s}px, 0px, 0px)`}))})),this._fixedColumnsLastAppliedScrollLeft=t,this._syncFixedColumnsShadows()},_syncFixedColumnsShadows(){Array.isArray(this._fixedColumnsShadowTargetsCache)&&this._fixedColumnsShadowTargetsCache.length||this._rebuildFixedColumnsCellsCache();const t=Array.isArray(this._fixedColumnsShadowTargetsCache)?this._fixedColumnsShadowTargetsCache:[];if(!t.length)return;const e=this._tableViewport,i=Boolean(e&&e.scrollWidth>e.clientWidth+1),s=e&&e.scrollLeft||0,r=e?Math.max(0,e.scrollWidth-e.clientWidth):0,n=i&&s>0,a=i&&s<r-1,o=`${n?1:0}:${a?1:0}`;this._fixedColumnsLastShadowStateKey!==o&&(this._fixedColumnsLastShadowStateKey=o,t.forEach((({edges:t,fixedCells:e})=>{t.forEach((t=>{const e=String(t.getAttribute("data-fixed-edge")||"").toLowerCase().trim();"right"===e&&n||"left"===e&&a?t.setAttribute("data-fixed-shadow","1"):t.removeAttribute("data-fixed-shadow")})),e.forEach((t=>{const e=String(t.getAttribute("data-fixed-side")||"").toLowerCase().trim();"left"===e&&n||"right"===e&&a?t.setAttribute("data-fixed-overlap","1"):t.removeAttribute("data-fixed-overlap")}))})))}},Qt=Jt,te={_ensureTableViewport(t=null){if(!this._parent||!this._element)return;let e=this._element.parentElement&&this._element.parentElement.classList.contains("vgdt-table-viewport")?this._element.parentElement:null;e||(e=Array.from(this._parent.children||[]).find((t=>t&&t.classList&&t.classList.contains("vgdt-table-viewport")))||null),e||(e=document.createElement("div"),e.className="vgdt-table-viewport",t===this._parent?this._parent.insertBefore(e,this._element):this._parent.appendChild(e)),this._element.parentElement!==e&&e.appendChild(this._element),this._tableViewport=e},_bindViewportPan(){const t=this._tableViewport;if(!t)return;if(this._panState&&this._panState.viewport===t)return;if(this._panState&&this._panState.viewport){const t=this._panState.viewport;t.removeEventListener("pointerdown",this._panState.onPointerDown),t.removeEventListener("pointermove",this._panState.onPointerMove),t.removeEventListener("pointerup",this._panState.onPointerUp),t.removeEventListener("pointercancel",this._panState.onPointerCancel),t.classList.remove("vgdt-pan-enabled","is-panning")}const e={viewport:t,active:!1,moved:!1,pointerId:null,startX:0,startY:0,startScrollLeft:0,startScrollTop:0,onPointerDown:null,onPointerMove:null,onPointerUp:null,onPointerCancel:null},i=()=>{e.active=!1,e.moved=!1,e.pointerId=null,t.classList.remove("is-panning")};e.onPointerDown=i=>{if(!i||!i.isPrimary)return;if("mouse"===i.pointerType&&0!==i.button)return;if(!i.shiftKey)return;const s=i.target;s&&s.closest('button, a, input, select, textarea, [role="button"], [data-sort-arrow]')||(e.active=!0,e.moved=!1,e.pointerId=i.pointerId,e.startX=i.clientX,e.startY=i.clientY,e.startScrollLeft=t.scrollLeft,e.startScrollTop=t.scrollTop,t.classList.add("is-panning"),"function"==typeof t.setPointerCapture&&t.setPointerCapture(i.pointerId))},e.onPointerMove=i=>{if(!e.active||i.pointerId!==e.pointerId)return;const s=i.clientX-e.startX,r=i.clientY-e.startY;!e.moved&&(Math.abs(s)>4||Math.abs(r)>4)&&(e.moved=!0),t.scrollLeft=e.startScrollLeft-s,t.scrollTop=e.startScrollTop-r,e.moved&&i.cancelable&&i.preventDefault()},e.onPointerUp=s=>{if(s.pointerId===e.pointerId){if("function"==typeof t.releasePointerCapture)try{t.releasePointerCapture(s.pointerId)}catch(t){}i()}},e.onPointerCancel=t=>{t.pointerId===e.pointerId&&i()},t.classList.add("vgdt-pan-enabled"),t.addEventListener("pointerdown",e.onPointerDown),t.addEventListener("pointermove",e.onPointerMove),t.addEventListener("pointerup",e.onPointerUp),t.addEventListener("pointercancel",e.onPointerCancel),this._panState=e,"undefined"!=typeof window&&(window.removeEventListener("resize",this._boundPanHintResize),window.addEventListener("resize",this._boundPanHintResize)),this._updatePanHintVisibility()},_ensurePanHintNode(){if(this._panHintNode||!this._parent)return;const t=document.createElement("div");t.className="vgdt-pan-hint";const e=this._getTableMessage("shiftDragHint","Hold Shift and drag to scroll the table."),i=this._getTableMessage("shiftDragHintClose","Close hint");t.innerHTML=`<span class="vgdt-pan-hint__text">${this._escapeHtml(e)}</span><button type="button" class="vgdt-pan-hint__close" data-pan-hint-dismiss aria-label="${this._escapeHtml(i)}">&times;</button>`,t.hidden=!0,t.addEventListener("click",this._boundPanHintDismiss);const s=this._tableViewport&&this._tableViewport.parentElement===this._parent?this._tableViewport:this._element;this._parent.insertBefore(t,s),this._panHintNode=t},_handlePanHintDismiss(t){const e=t?t.target:null,i=e instanceof Element?e:e&&e.parentElement?e.parentElement:null;i&&i.closest("[data-pan-hint-dismiss]")&&(t&&"function"==typeof t.preventDefault&&t.preventDefault(),this._storePanHintDismissedAt(Date.now()),this._panHintNode&&(this._panHintNode.hidden=!0))},_updatePanHintVisibility(){if(!this._panHintNode||!this._tableViewport)return;const t=this._tableViewport.scrollWidth||0,e=this._tableViewport.clientWidth||0;if(!(Math.max(0,t-e)>1))return void(this._panHintNode.hidden=!0);const i=!this._isTouchDevice()&&!this._isPanHintDismissed();this._panHintNode.hidden=!i},_getPanHintDismissDays(){const t=this._params&&this._params.panHint&&"object"==typeof this._params.panHint?this._params.panHint:{},e=this._element?this._element.getAttribute("data-pan-hint-dismiss-days"):null,i=null!==e?e:t.dismissDays,s=Number.parseInt(i,10);return Number.isFinite(s)&&s>0?s:60},_getPanHintDismissStorageKey(){if("function"==typeof this._getPerPageStorageKey)return`${this._getPerPageStorageKey()}:panHintDismissedAt`;const t=this._element&&this._element.id?String(this._element.id).trim():"";return t?`vgdt:panHint:${t}`:`vgdt:panHint:${window.location.pathname}`},_readPanHintDismissedAt(){if("undefined"==typeof window||!window.localStorage)return 0;try{const t=Number.parseInt(window.localStorage.getItem(this._getPanHintDismissStorageKey()),10);return Number.isFinite(t)&&t>0?t:0}catch(t){return 0}},_storePanHintDismissedAt(t){if("undefined"==typeof window||!window.localStorage)return;const e=Number.isFinite(t)&&t>0?Math.floor(t):Date.now();try{window.localStorage.setItem(this._getPanHintDismissStorageKey(),String(e))}catch(t){}},_clearPanHintDismissedAt(){if("undefined"!=typeof window&&window.localStorage)try{window.localStorage.removeItem(this._getPanHintDismissStorageKey())}catch(t){}},_isPanHintDismissed(){const t=this._readPanHintDismissedAt();if(!t)return!1;const e=24*this._getPanHintDismissDays()*60*60*1e3;if(!Number.isFinite(e)||e<=0)return!1;const i=t+e;return Date.now()<=i||(this._clearPanHintDismissedAt(),!1)},_isTouchDevice(){if("undefined"==typeof window||"undefined"==typeof navigator)return!1;const t=Number.isFinite(navigator.maxTouchPoints)&&navigator.maxTouchPoints>0,e="function"==typeof window.matchMedia&&(window.matchMedia("(pointer: coarse)").matches||window.matchMedia("(any-pointer: coarse)").matches),i="function"==typeof window.matchMedia&&(window.matchMedia("(hover: none)").matches||window.matchMedia("(any-hover: none)").matches),s="ontouchstart"in window;return t||e||i||s},_moveTableClassesToWrapper(t){if(!t||!this._element)return;const e=Array.from(this._element.classList||[]);e.length&&e.forEach((e=>{"vg-dynamic-table"!==e&&t.classList.add(e),this._element.classList.remove(e)}))}},ee=te;function ie(t,e=0){const i=Number.parseInt(t,10);return Number.isFinite(i)&&i>=0?i:e}function se(t,e=!1){if(null==t)return e;const i=String(t).toLowerCase().trim();return"true"===i||"1"===i||"false"!==i&&"0"!==i&&Boolean(t)}function re(t,e=!0){if(null==t)return e;const i=String(t).toLowerCase().trim();return"false"!==i&&"0"!==i}function ne(t,e=document){const i=String(t||"").trim();if(!i||!e||"function"!=typeof e.querySelector)return null;try{return e.querySelector(i)}catch(t){return null}}const ae={_renderSummary(t={}){if(!this._isSummaryEnabled()||!this._summaryNode||!this._isRemote)return;const e=Number.parseInt(t.total,10),i=Number.isFinite(e)&&e>=0?e:0,s=this._getI18nSection("summary"),r=`${s.foundLabel&&String(s.foundLabel).trim()||"Found"}: ${i}`,n=this._getActiveCriteria().map((t=>`<span class="vgdt-summary__chip"><b>${this._escapeHtml(t.label)}:</b> ${this._escapeHtml(t.value)}</span>`)).join("");this._summaryNode.innerHTML=`\n <div class="vgdt-summary__row">\n <span class="vgdt-summary__count">${this._escapeHtml(r)}</span>\n ${n?`<div class="vgdt-summary__chips">${n}</div>`:""}\n </div>\n `,this._summaryNode.hidden=!1},_isSummaryEnabled(){const t=this._params.summary||{};return void 0!==t.enable&&null!==t.enable?se(t.enable,!1):re(this._element.getAttribute("data-summary-enable"),!1)},_getActiveCriteria(){const t=[],e=this._getSearchParamName(),i=String(this._remoteParams[e]||"").trim();if(""!==i){const e=this._getI18nSection("summary"),s=e.searchLabel&&String(e.searchLabel).trim()||"Search";t.push({label:s,value:i})}return Object.keys(this._remoteParams||{}).forEach((i=>{if(i===e)return;const s=String(this._remoteParams[i]||"").trim();if(""===s)return;const r=this._getFilterLabelByParam(i)||i;t.push({label:r,value:s})})),t},_getFilterLabelByParam(t){const e=this._getFiltersFormSelector();if(!e)return"";(this._filtersFormCacheSelector!==e||!this._filtersFormCacheNode||!this._filtersFormCacheNode.isConnected)&&(this._filtersFormCacheSelector=e,this._filtersFormCacheNode=ne(e),this._filtersLabelCache={});const i=this._filtersFormCacheNode;if(!i)return"";const s=this._filtersLabelCache&&"object"==typeof this._filtersLabelCache?this._filtersLabelCache:{};if(this._filtersLabelCache=s,Object.prototype.hasOwnProperty.call(s,t))return s[t];const r=this._params.filters||{},n=String(r.fieldAttr||"data-filter-field").trim()||"data-filter-field",a=String(r.partAttr||"data-filter-part").trim()||"data-filter-part",o=String(t||"").trim(),l=/_op$/i.test(o),d=o.replace(/_op$/i,""),h=l?`[${n}="${d}"][${a}="operator"]`:`[${n}="${d}"]`,c=i.querySelector(h);if(!c)return s[t]="","";const u=c.closest(".field"),_=u?u.querySelector(".field__label"):null;if(_){const e=String(_.textContent||"").trim();return s[t]=e,e}return s[t]="",""},_getFooterCell(){if(!this._isFooterEnabled())return null;const t=this._element.tFoot||this._element.querySelector("tfoot");return t&&t.rows&&t.rows.length&&(t.querySelector("[data-vgdt-footer]")||t.rows[0].cells[0])||null},_clearFooter(){const t=this._getFooterCell();t&&(t.innerHTML="")},_renderFooterFromCurrentState(){if(!this._isFooterEnabled())return;if(this._isRemote)return;const t=this._getVisibleRows().map((t=>this._mapDomRowToRecord(t)));this._renderFooterStats(t,null)},_renderFooterFromRows(t,e){this._isFooterEnabled()&&this._isRemote&&this._renderFooterStats(Array.isArray(t)?t:[],e||null)},_getVisibleRows(){const t=this._getBody();return Array.from(t.rows||[]).filter((t=>!t.hidden))},_mapDomRowToRecord(t){const e={};return this._fields.forEach(((i,s)=>{const r=t&&t.cells&&t.cells[s]?t.cells[s]:null;e[i]=r?String(r.textContent||"").trim():""})),e},_renderFooterStats(t,e){if(!this._isFooterEnabled())return;const i=this._getFooterCell();if(!i)return;const s=Array.isArray(t)?t:[],r=s.length;let n=0,a=0,o=0,l=0;s.forEach((t=>{const e=this._extractNumber(t.price);Number.isFinite(e)&&(n+=e);const i=this._extractNumber(t.stock);Number.isFinite(i)&&(a+=i);const s=this._extractNumber(t.rating);Number.isFinite(s)&&(o+=s,l+=1)}));const d=l>0?o/l:0,h=this._getI18nSection("summary"),c=h.visibleRowsLabel&&String(h.visibleRowsLabel).trim()||"Rows on page",u=h.pagePriceSumLabel&&String(h.pagePriceSumLabel).trim()||"Price sum",_=h.pageStockSumLabel&&String(h.pageStockSumLabel).trim()||"Total stock",m=h.pageAvgRatingLabel&&String(h.pageAvgRatingLabel).trim()||"Average rating",p=h.foundLabel&&String(h.foundLabel).trim()||"Found",g=e&&Object.prototype.hasOwnProperty.call(e,"total")?Number.parseInt(e.total,10):NaN,f=Number.isFinite(g)&&g>=0?`<span class="vgdt-foot__item"><b>${this._escapeHtml(p)}:</b> ${g}</span>`:"",b=Number.isFinite(n)?n:0,v=Number.isFinite(a)?a:0,y=Number.isFinite(d)?d:0;i.innerHTML=`\n <div class="vgdt-foot">\n <span class="vgdt-foot__item"><b>${this._escapeHtml(c)}:</b> ${r}</span>\n ${f}\n <span class="vgdt-foot__item"><b>${this._escapeHtml(u)}:</b> ${b.toFixed(2)} RUB</span>\n <span class="vgdt-foot__item"><b>${this._escapeHtml(_)}:</b> ${Math.round(v)}</span>\n <span class="vgdt-foot__item"><b>${this._escapeHtml(m)}:</b> ${y.toFixed(2)}</span>\n </div>\n `},_isFooterEnabled(){const t=this._params.footer||{};return void 0!==t.enable&&null!==t.enable?se(t.enable,!1):re(this._element.getAttribute("data-footer-enable"),!1)},_applyFooterVisibility(){const t=this._element.tFoot||this._element.querySelector("tfoot");t&&(t.hidden=!this._isFooterEnabled())},_formatFieldValue(t,e){if("price"===t){const t=Number.parseFloat(e);return Number.isFinite(t)?`${t.toFixed(2)} RUB`:""}return"category"!==t||null!=e&&""!==e?null==e?"":String(e):"-"},_escapeHtml:t=>String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")},oe=ae,le={_renderLoadingSkeleton(){const t=this._getBody(),e=this._getRenderedColumnsCount(),i=this._getCurrentColumnWidthsPx(),s=this._getSkeletonRowsCount(),r=this._getSkeletonRowHeightPx(),n=Number.isFinite(r)&&r>0?`height:${r}px;--vgdt-skeleton-row-height:${r}px;`:"",a=Array.from({length:s}).map(((t,s)=>{const r=Array.from({length:e}).map(((t,e)=>{const s=Number.isFinite(i[e])?Math.round(i[e]):0;return`<td${s>0?` style="width:${s}px;min-width:${s}px;max-width:${s}px;"`:""}><div class="skeleton-cell"><div class="skeleton-line"></div></div></td>`})).join("");return`<tr class="skeleton-row" style="${n}--skeleton-delay:${(.08*s).toFixed(2)}s">${r}</tr>`})).join("");t.innerHTML=a,this._updatePanHintVisibility(),this._refreshStickyAndFixedLayout()},_getRenderedColumnsCount(){const t=this._getHeaderCells().length,e=this._fields.length,i=Math.max(t,e);return i>0?i:1},_getCurrentColumnWidthsPx(){const t=this._getHeaderCells().map((t=>{if(!t||"function"!=typeof t.getBoundingClientRect)return 0;const e=t.getBoundingClientRect();return e&&Number.isFinite(e.width)&&e.width>0?e.width:0}));if(t.some((t=>t>0)))return t;const e=this._getBody(),i=e&&e.rows&&e.rows.length?e.rows[0]:null;return i&&i.cells&&i.cells.length?Array.from(i.cells).map((t=>{if(!t||"function"!=typeof t.getBoundingClientRect)return 0;const e=t.getBoundingClientRect();return e&&Number.isFinite(e.width)&&e.width>0?e.width:0})):[]},_getSkeletonRowsCount(){const t=this._getPerPageControlValue();if(Number.isFinite(t)&&t>0)return t;const e=this._params.loading||{},i=Number.parseInt(e.skeleton,10);if(Number.isFinite(i)&&i>0)return i;const s=this._getRenderedDataRows();if(s.length>0)return s.length;const r=Number.parseInt(this._pageState&&this._pageState.perPage,10);if(Number.isFinite(r)&&r>0)return r;const n=this._params.pagination||{},a=Number.parseInt(n.perPage,10);return Number.isFinite(a)&&a>0?a:10},_getPerPageControlValue(){if(!this._parent)return NaN;const t=this._parent.querySelector("[data-per-page]");if(!t)return NaN;const e=Number.parseInt(t.value,10);return Number.isFinite(e)?this._clampPerPage(e,10):NaN},_getSkeletonRowHeightPx(){const t=this._getRenderedDataRows();if(!t.length)return null;const e=t[0].getBoundingClientRect();return!e||!Number.isFinite(e.height)||e.height<=0?null:Math.round(e.height)},_getRenderedDataRows(){const t=this._getBody();return Array.from(t.rows||[]).filter((t=>!(!t||t.classList.contains("skeleton-row")||t.querySelector("[data-table-state]"))))}},de={_getRemoteRouteRequestConfig(t=""){const e=this._params.request||{},i=this._element.getAttribute("data-request-method"),s=this._element.getAttribute("data-request-credentials"),r=this._element.getAttribute("data-request-params");let n={};if(null!==r&&""!==String(r).trim())try{const t=JSON.parse(r);t&&"object"==typeof t&&!Array.isArray(t)&&(n=t)}catch(t){n={}}return{route:t||this._getRemoteDataRoute(),method:null!==i?i:e.method,credentials:null!==s?s:e.credentials,headers:e.headers&&"object"==typeof e.headers?Object.assign({},e.headers):{Accept:"application/json"},baseParams:Object.assign({},e.params&&"object"==typeof e.params?e.params:{},n),responseType:"json"}},_isRemoteCacheEnabled(){const t=this._params.request||{},e=t.cache&&"object"==typeof t.cache?t.cache:{},i=this._element.getAttribute("data-request-cache-enable");if(null!==i)return this._isTruthy(i);const s=e.enable;return null==s||Boolean(s)},_getRemoteCacheTtlMs(){const t=this._params.request||{},e=t.cache&&"object"==typeof t.cache?t.cache:{},i=this._element.getAttribute("data-request-cache-ttl"),s=null!==i?i:e.ttl,r=Number.parseInt(s,10);return Number.isFinite(r)&&r>0?r:3e4},_getRemoteCacheMaxEntries(){const t=this._params.request||{},e=t.cache&&"object"==typeof t.cache?t.cache:{},i=this._element.getAttribute("data-request-cache-max"),s=null!==i?i:e.max,r=Number.parseInt(s,10);return Number.isFinite(r)&&r>0?r:30},_getRemoteCacheKey(t,e={}){const i=Object.keys(e||{}).sort().map((t=>{const i=e[t],s=Array.isArray(i)?i.join(","):String(null==i?"":i);return`${encodeURIComponent(t)}=${encodeURIComponent(s)}`})).join("&");return`${String(t||"").trim()}?${i}`},_readRemoteCache(t,e={}){if(!this._isRemoteCacheEnabled())return null;if(!this._remotePageCache||"function"!=typeof this._remotePageCache.get)return null;const i=this._getRemoteCacheKey(t,e),s=this._remotePageCache.get(i);if(!s||"object"!=typeof s)return null;const r=this._getRemoteCacheTtlMs(),n=Date.now()-Number(s.ts||0);return!Number.isFinite(n)||n<0||n>r?(this._remotePageCache.delete(i),null):(s.lastUsedAt=Date.now(),s.response)},_writeRemoteCache(t,e={},i){if(!this._isRemoteCacheEnabled())return;if(!this._remotePageCache||"function"!=typeof this._remotePageCache.set)return;const s=this._getRemoteCacheKey(t,e);this._remotePageCache.set(s,{ts:Date.now(),lastUsedAt:Date.now(),response:i});const r=this._getRemoteCacheMaxEntries();if(this._remotePageCache.size<=r)return;const n=Array.from(this._remotePageCache.entries());for(n.sort(((t,e)=>Number(t[1]&&t[1].lastUsedAt||0)-Number(e[1]&&e[1].lastUsedAt||0)));this._remotePageCache.size>r&&n.length;){const t=n.shift();t&&this._remotePageCache.delete(t[0])}},_applyRemoteResponse(t,e,i,s=null,r={}){const n=this._extractRemoteRows(t),a=this._extractRemoteMeta(t),o=Boolean(r.fromCache),l=r.requestContext&&"object"==typeof r.requestContext?r.requestContext:null,d=String(a&&(a.request_id||a.requestId)||l&&l.requestId||"").trim();this._lastRemoteMeta=a,this._renderSummary(a);const h=this._extractRemoteViewRowsHtml(t);this._renderRemoteViewIfConfigured(h,n)||this._renderRemoteRows(n),this._renderFooterFromRows(n,a),this._updatePanHintVisibility(),this._refreshStickyAndFixedLayout();const c=this._normalizePositiveInt(a.page,e),u=this._clampPerPage(a.per_page,i),_=this._normalizePositiveInt(a.pages,1);this._pageState={page:c,perPage:u},this._storePage(c),this._storePerPage(u);const m="string"==typeof a.sort?a.sort.trim():this._sortState.field,p=a&&"string"==typeof a.dir?a.dir:this._sortState.dir;if(m){const t=this._parseSortsFromStrings(m,p);this._sortState=Object.assign({},this._sortState,{field:t[0]?t[0].field:m,dir:t[0]?t[0].dir:this._normalizeSortDir(p),sorts:t}),this._sortable&&this._sortable.setState({sorts:this._sortState.sorts})}this._pagination&&this._pagination.setMeta({page:c,perPage:u,totalPages:_}),"function"==typeof s&&s({page:c,perPage:u,totalPages:_}),this._syncUrlState();const g={rows:Array.isArray(n)?n.slice():[],total:this._normalizePositiveInt(a&&a.total,Array.isArray(n)?n.length:0),serverMeta:Object.assign({},a||{}),raw:t},f=l&&l.sent?Object.assign({},l.sent):{},b=l&&"string"==typeof l.trigger?String(l.trigger).toLowerCase().trim():"",v=l&&l.filtersState&&"object"==typeof l.filtersState?this._normalizeFiltersEventState(l.filtersState):null;if("filterschange"===b&&this._isFiltersEmitFullContextEnabled()){const e=this._normalizeFiltersEventState({filters:f.filters||{},params:f.params||{}}),i=v||e,s=this._isSearchActiveFromParams(f.params||{});this._emitAction("filterschange",{filters:Object.assign({},i.filters||{}),params:Object.assign({},i.params||{}),fields:Array.isArray(i.fields)?i.fields.slice():[],meta:Object.assign({},i.meta||{}),phase:"response",isFiltered:this._isFilteredState(i)||s,isSearched:s,requestId:d,fromCache:o,sent:f,received:g,response:t,serverMeta:Object.assign({},g.serverMeta||{})})}this._emitAction("requestsuccess",{requestId:d,mode:"remote",responsemode:this._getRemoteResponseMode(),sent:f,received:g,fromCache:o}),this._emitAction("dataloaded",{requestId:d,page:c,perPage:u,totalPages:_,rows:n,view:h,meta:a,fromCache:o,sent:f,received:g}),this._emitAction("afterrender",{requestId:d,renderedCount:Array.isArray(n)?n.length:0,total:g.total,sent:f,received:g}),this._emitAction("statesync",{requestId:d,state:{page:c,perPage:u,sorts:this._getNormalizedSorts(this._sortState.sorts),filters:Object.assign({},this._activeFilters||{}),params:Object.assign({},this._remoteParams||{})},sent:f,received:g}),Array.isArray(n)&&0!==n.length||this._emitAction("emptyresult",{requestId:d,reason:"no_matches",sent:f,received:g})},_buildRemoteRequestParams(t,e){const i=this._params.sortable||{},s={page:t,per_page:e};if(Object.assign(s,this._remoteParams),"data"!==this._getRemoteResponseMode()){const t=this._getRemoteViewParamName(),e=this._getRemoteViewParamValue();t&&e&&!Object.prototype.hasOwnProperty.call(s,t)&&(s[t]=e);const i=this._getRemoteFieldsParamName();i&&this._fields.length&&!Object.prototype.hasOwnProperty.call(s,i)&&(s[i]=this._fields.join(","))}if(i.enable&&this._sortState.field){const t="sort",e="dir",i=this._getNormalizedSorts(this._sortState.sorts);i.length>0?(s[t]=i.map((t=>t.field)).join(","),s[e]=i.map((t=>t.dir)).join(",")):(s[t]=this._sortState.field,s[e]=this._sortState.dir)}return s},exportRemote(t="csv",e={}){if(!this._isRemote)return"";const i=this._params.request||{},s="xlsx"===String(t||"csv").toLowerCase().trim()?"xlsx":"csv",r=this._normalizePositiveInt(void 0!==e.page?e.page:this._pageState.page,1),n=this._clampPerPage(void 0!==e.perPage?e.perPage:this._pageState.perPage,this._getInitialPerPage()),a=this._buildRemoteRequestParams(r,n);a.format=s;const o=this._mapRemoteRequestParams(a),l=String(e.endpoint||i.export&&i.export.route||this._element.getAttribute("data-request-export-route")||this._getRemoteDataRoute()).trim()||this._getRemoteDataRoute(),d=this._buildRouteUrl(o,l,this._getRemoteRouteRequestConfig(l)).toString();return!1!==e.open&&"undefined"!=typeof window&&"function"==typeof window.open&&window.open(d,"_blank","noopener"),this._emitAction("export",{format:s,page:r,perPage:n,endpoint:l,url:d}),d},async _loadRemotePage(t,e,i=null,s=null){if(!this._isRemote)return;const r=this._normalizePositiveInt(t,1),n=this._clampPerPage(e,this._getInitialPerPage()),a=++this._requestToken,o=`req-${Date.now()}-${a}`,l=this._buildRemoteRequestParams(r,n),d=this._mapRemoteRequestParams(l),h=this._getRemoteDataRoute(),c=this._params.filters||{};!1!==(c.transport&&"object"==typeof c.transport?c.transport:{}).includeMeta&&(d.request_id=o,d.responsemode=this._getRemoteResponseMode());const u={filters:Object.assign({},this._activeFilters||{}),sort:this._getNormalizedSorts(this._sortState.sorts||[]),page:r,perPage:n,params:Object.assign({},this._remoteParams||{}),urlState:this._collectUrlState(),requestPayload:Object.assign({},d),endpoint:h},_=s&&"string"==typeof s.trigger?String(s.trigger).toLowerCase().trim():"",m=s&&s.filtersState&&"object"==typeof s.filtersState?this._normalizeFiltersEventState(s.filtersState):null,p={requestId:o,sent:u,trigger:_,filtersState:m};this._activeRemoteRequestId=o;const g=this._readRemoteCache(h,d);if("filterschange"===_&&this._isFiltersEmitFullContextEnabled()){const t=m||this._normalizeFiltersEventState({filters:u.filters||{},params:u.params||{}}),e=this._isSearchActiveFromParams(u.params||{});this._emitAction("filterschange",{filters:Object.assign({},t.filters||{}),params:Object.assign({},t.params||{}),fields:Array.isArray(t.fields)?t.fields.slice():[],meta:Object.assign({},t.meta||{}),phase:"request",isFiltered:this._isFilteredState(t)||e,isSearched:e,requestId:o,fromCache:Boolean(g),sent:u,table:null})}this._requestAbortController&&"function"==typeof this._requestAbortController.abort&&this._requestAbortController.abort();const f=g?null:"function"==typeof AbortController?new AbortController:null;this._requestAbortController=f;const b=Date.now();this._emitAction("beforeload",{requestId:o,page:r,perPage:n,params:Object.assign({},this._remoteParams),sent:u}),g||this._renderLoadingSkeleton();try{const t=g||await this._route(Object.assign({},this._getRemoteRouteRequestConfig(h),{route:h,method:"GET",params:d,signal:f?f.signal:void 0,responseType:"json"}));if(g||await this._waitMinLoadingDelay(b),a!==this._requestToken)return void this._emitAction("staleresponse",{requestId:o,activeRequestId:String(this._activeRemoteRequestId||""),sent:u});g||this._writeRemoteCache(h,d,t),this._applyRemoteResponse(t,r,n,i,{fromCache:Boolean(g),requestContext:p})}catch(t){if(t&&"AbortError"===t.name)return;if(await this._waitMinLoadingDelay(b),a!==this._requestToken)return void this._emitAction("staleresponse",{requestId:o,activeRequestId:String(this._activeRemoteRequestId||""),sent:u});this._renderSummary({total:0}),this._clearFooter();const e=this._getTableMessage("stateError","Failed to load data.");if("undefined"!=typeof console&&"function"==typeof console.error&&console.error("VGDynamicTable: remote data load failed",t),this._renderStateRow(e,"error"),this._refreshStickyAndFixedLayout(),this._emitAction("error",{requestId:o,page:r,perPage:n,error:t,message:e,sent:u}),this._emitAction("requesterror",{requestId:o,mode:"remote",responsemode:this._getRemoteResponseMode(),sent:u,error:{message:String(t&&t.message||e),code:String(t&&t.code||"REQUEST_FAILED"),status:t&&t.status?t.status:0,details:t&&Array.isArray(t.details)?t.details.slice():[]}}),p&&"filterschange"===String(p.trigger||"").toLowerCase().trim()&&this._isFiltersEmitFullContextEnabled()){const i=p.filtersState&&"object"==typeof p.filtersState?this._normalizeFiltersEventState(p.filtersState):this._normalizeFiltersEventState({filters:u.filters||{},params:u.params||{}}),s=this._isSearchActiveFromParams(u.params||{});this._emitAction("filterschange",{filters:Object.assign({},i.filters||{}),params:Object.assign({},i.params||{}),fields:Array.isArray(i.fields)?i.fields.slice():[],meta:Object.assign({},i.meta||{}),phase:"error",isFiltered:this._isFilteredState(i)||s,isSearched:s,requestId:o,sent:u,error:{message:String(t&&t.message||e),code:String(t&&t.code||"REQUEST_FAILED"),status:t&&t.status?t.status:0,details:t&&Array.isArray(t.details)?t.details.slice():[]}})}}finally{this._requestAbortController===f&&(this._requestAbortController=null)}},_getRemoteResponseMode(){const t=this._params.request||{},e=this._element.getAttribute("data-request-responsemode"),i=null!==e?e:t.responsemode,s=String(i||"data").toLowerCase().trim();return"view"===s||"auto"===s?s:"data"},_getRemoteViewParamName(){const t=this._params.request||{},e=this._element.getAttribute("data-request-viewparam"),i=null!==e?e:t.viewparam;return String(i||"").trim()||""},_getRemoteViewParamValue(){const t=this._params.request||{},e=this._element.getAttribute("data-request-viewvalue"),i=null!==e?e:t.viewvalue;return String(i||"").trim()||""},_getRemoteFieldsParamName(){const t=this._params.request||{},e=this._element.getAttribute("data-request-fieldsparam"),i=null!==e?e:t.fieldsparam;return String(i||"").trim()||""},_getRemoteDataRoute(){return this._getFiltersRoute()||this._getRoute()},_getRequestParamMap(){const t=(this._params.request||{}).parammap;if(t&&"object"==typeof t&&!Array.isArray(t))return t;const e=this._element.getAttribute("data-request-parammap")||"";if(!e)return{};try{const t=JSON.parse(e);if(t&&"object"==typeof t&&!Array.isArray(t))return t}catch(t){return{}}return{}},_mapRemoteRequestParams(t={}){const e=Object.assign({},this._getAutoFilterRequestParamMap(t),this._getRequestParamMap()),i={};return Object.keys(t||{}).forEach((s=>{const r=Object.prototype.hasOwnProperty.call(e,s)?String(e[s]||"").trim():s;i[r||s]=t[s]})),i},_getAutoFilterRequestParamMap(t={}){const e=t&&"object"==typeof t?t:{},i="function"==typeof this._getFilterFieldKeys?this._getFilterFieldKeys():[];if(!Array.isArray(i)||!i.length)return{};const s="function"==typeof this._getFiltersUrlPrefix?String(this._getFiltersUrlPrefix()||"").trim():"";if(!s)return{};const r={};return i.forEach((t=>{const i=String(t||"").trim();if(!i)return;const n="function"==typeof this._prefixFilterParamKey?this._prefixFilterParamKey(i,s):i.startsWith(s)?i:`${s}${i}`;Object.prototype.hasOwnProperty.call(e,i)&&(r[i]=n);const a=`${i}_op`,o="function"==typeof this._prefixFilterParamKey?this._prefixFilterParamKey(a,s):a.startsWith(s)?a:`${s}${a}`;Object.prototype.hasOwnProperty.call(e,a)&&(r[a]=o)})),r},_getRequestPath(t){const e=this._params.request||{};if("data"===t){const t=this._element.getAttribute("data-request-datapath"),i=null!==t?t:e.datapath;return String(i||"").trim()}if("meta"===t){const t=this._element.getAttribute("data-request-metapath"),i=null!==t?t:e.metapath;return String(i||"").trim()}if("view"===t){const t=this._element.getAttribute("data-request-viewpath"),i=null!==t?t:e.viewpath;return String(i||"").trim()}return""},_readPath(t,e){if(!t||"object"!=typeof t)return;const i=String(e||"").trim();if(!i)return;const s=i.split(".").map((t=>String(t||"").trim())).filter(Boolean);if(!s.length)return;let r=t;for(let t=0;t<s.length;t+=1){if(!r||"object"!=typeof r||!Object.prototype.hasOwnProperty.call(r,s[t]))return;r=r[s[t]]}return r},_extractRemoteRows(t){const e=this._readPath(t,this._getRequestPath("data"));return Array.isArray(e)?e:Array.isArray(t&&t.data)?t.data:[]},_extractRemoteMeta(t){const e=this._readPath(t,this._getRequestPath("meta"));return e&&"object"==typeof e&&!Array.isArray(e)?e:t&&"object"==typeof t&&t.meta&&"object"==typeof t.meta?t.meta:{}},_extractRemoteViewRowsHtml(t){if(!t||"object"!=typeof t)return"";const e=this._readPath(t,this._getRequestPath("view"));if("string"==typeof e)return e;if("string"==typeof t.view)return t.view;const i=t.view&&"object"==typeof t.view?t.view:null;return i&&"string"==typeof i.tbody?i.tbody:i&&"string"==typeof i.rows?i.rows:"string"==typeof t.tbody?t.tbody:""},_renderRemoteViewIfConfigured(t,e){const i=this._getRemoteResponseMode(),s="string"==typeof t&&""!==t.trim();if(!("view"===i||"auto"===i&&s))return!1;if(!s){if(Array.isArray(e)&&e.length)return!1;const t=this._getTableMessage("stateEmpty","Ничего нет");return this._renderStateRow(t,"empty"),!0}const r=this._getBody();return r.innerHTML=t,this._hasRenderableRowsInBody(r)?(this._setFixedColumnsSuppressed(!1),this._clearStateMode(),!0):(this._renderStateRow(this._getTableMessage("stateEmpty","Ничего нет"),"empty"),!0)},async _waitMinLoadingDelay(t){const e=this._params.loading||{},i=Math.max(0,Number.parseInt(e.minDelay,10)||0);if(i<=0)return;const s=i-(Date.now()-t);s<=0||await new Promise((t=>setTimeout(t,s)))}},he=de,ce={_syncUrlState(){if(!this._isFiltersUrlStateEnabled()||!this._isFiltersUrlStateWriteOnChange())return;if("undefined"==typeof window||!window.history||!window.location)return;let t;try{t=new URL(window.location.href)}catch(t){return void this._emitAction("urlstateerror",{source:"write",error:t})}const e=this._collectUrlState();this._getManagedUrlStateKeys().forEach((e=>{t.searchParams.delete(e)})),Object.keys(e).forEach((i=>{const s=function(t){return Array.isArray(t)?t.map((t=>String(t||"").trim())).filter((t=>""!==t)).join(","):t}(e[i]);null!=s&&""!==s&&t.searchParams.set(i,String(s))}));const i=`${t.pathname}${t.search}${t.hash}`;if(i===`${window.location.pathname}${window.location.search}${window.location.hash}`)return;const s=this._getUrlStateMode();"push"===s?window.history.pushState({},"",i):window.history.replaceState({},"",i),this._emitAction("urlstatewrite",{mode:s,state:Object.assign({},e),url:i})},_collectUrlState(){const t={},e=this._getFiltersUrlStateConfig(),i=this._getFiltersUrlPrefix(),s=this._getSearchParamName();if(s&&Object.prototype.hasOwnProperty.call(this._remoteParams||{},s)&&(t[s]=this._remoteParams[s]),this._getFilterFieldKeys().forEach((e=>{const s=e,r=`${e}_op`,n=this._prefixFilterParamKey(s,i),a=this._prefixFilterParamKey(r,i);Object.prototype.hasOwnProperty.call(this._remoteParams||{},s)&&(t[n]=this._remoteParams[s]),Object.prototype.hasOwnProperty.call(this._remoteParams||{},r)&&(t[a]=this._remoteParams[r])})),this._isPaginationEnabled()){const i=this._normalizePositiveInt(this._pageState.page,1),s=this._normalizePositiveInt(this._params.pagination.perPage,10),r=this._normalizePositiveInt(this._pageState.perPage,s);t[String(e.pageKey||"page")]=i,t[String(e.perPageKey||"perPage")]=r}if(this._params.sortable&&this._params.sortable.enable){const i=this._getNormalizedSorts(this._sortState.sorts||[]).filter((t=>""!==String(t.field||"").trim())).map((t=>`${t.field}:${this._normalizeSortDir(t.dir)}`));i.length>0&&(t[String(e.sortKey||"sort")]=i.join(","))}return t},_getManagedUrlStateKeys(){const t=new Set,e=this._getFiltersUrlStateConfig(),i=this._getFiltersUrlPrefix();return t.add(this._getSearchParamName()),this._getFilterFieldKeys().forEach((e=>{t.add(this._prefixFilterParamKey(e,i)),t.add(this._prefixFilterParamKey(`${e}_op`,i))})),this._isPaginationEnabled()&&(t.add(String(e.pageKey||"page")),t.add(String(e.perPageKey||"perPage"))),this._params.sortable&&this._params.sortable.enable&&t.add(String(e.sortKey||"sort")),Array.from(t).filter(Boolean)},_isUrlStateEnabled(){return this._isFiltersUrlStateEnabled()},_getUrlStateMode(){const t=this._getFiltersUrlStateConfig(),e=this._element.getAttribute("data-filters-urlstate-history-mode");return"push"===String(null!==e?e:t.historyMode||"replace").toLowerCase().trim()?"push":"replace"},_isUrlStateIncludePagination(){return this._isPaginationEnabled()},_isUrlStateIncludeSort(){return Boolean(this._params.sortable&&this._params.sortable.enable)},_bindPopState(){this._isRemote&&this._isFiltersUrlStateEnabled()&&"undefined"!=typeof window&&window.addEventListener&&this._isUrlStatePopStateEnabled()&&(window.removeEventListener("popstate",this._boundPopState),window.addEventListener("popstate",this._boundPopState))},async _handlePopState(){if(!this._isRemote)return;this._remoteParams=this._getInitialRemoteParams(),this._sortState=this._getInitialSortState(),this._sortable&&this._sortable.setState({sorts:this._sortState.sorts}),this._syncControlsFromState();const t=this._getInitialPage(),e=this._getInitialPerPage();this._pageState={page:t,perPage:e},this._pagination&&this._pagination.setMeta({page:t,perPage:e});const i=this._getFiltersRequestMetaIfActive();await this._loadRemotePage(t,e,null,i)},_syncControlsFromState(){const t=this._getSearchParamName(),e=this._getSearchInputSelector();if(e){const i=this._getSearchInputNode(e);i&&(i.value=String(this._remoteParams[t]||""))}this._filters&&"function"==typeof this._filters.setValues&&this._filters.setValues(this._getInitialFilterValues(),{emit:!1})},_isUrlStatePopStateEnabled(){return re(this._element.getAttribute("data-filters-urlstate-listen-popstate"),!0)},_getInitialRemoteParams(){const t=(this._params.request||{}).params||{},e={},i=new Set(["page","per_page","sort","dir"]);if(Object.keys(t).forEach((s=>{if(i.has(s))return;const r=t[s];null!=r&&""!==r&&(e[s]=r)})),!this._isFiltersUrlStateEnabled()||!this._isFiltersUrlStateReadOnInit())return e;const s=this._getFiltersUrlStateConfig(),r=this._getFiltersUrlPrefix(),n=this._getUrlParams(),a=this._getSearchParamName(),o=this._getFilterFieldKeys();if(a&&n.has(a)){const t=String(n.get(a)||"").trim();t?e[a]=t:delete e[a]}o.forEach((t=>{const i=this._prefixFilterParamKey(t,r),s=this._prefixFilterParamKey(`${t}_op`,r);if(n.has(i)){const s=String(n.get(i)||"").trim();s?e[t]=s.includes(",")?s.split(",").map((t=>String(t||"").trim())).filter(Boolean):s:delete e[t]}if(n.has(s)){const i=String(n.get(s)||"").trim();i?e[`${t}_op`]=i:delete e[`${t}_op`]}}));const l=String(s.sortKey||"sort");if(n.has(l)){const t=String(n.get(l)||"").trim();if(t){const i=t.split(",").map((t=>String(t||"").trim())).filter(Boolean),s=[],r=[];i.forEach((t=>{const e=t.split(":").map((t=>String(t||"").trim())).filter(Boolean);e.length&&(s.push(e[0]),r.push("desc"===e[1]?"desc":"asc"))})),s.length&&(e.sort=s.join(","),e.dir=r.join(","))}}return this._emitAction("urlstateread",{state:Object.assign({},e)}),e},_prefixFilterParamKey(t,e){const i=String(t||"").trim();if(!i)return"";const s=String(e||"").trim();return!s||i.startsWith(s)?i:`${s}${i}`},_getUrlParams(){try{return new URLSearchParams(window.location.search||"")}catch(t){return this._emitAction("urlstateerror",{source:"read",error:t}),new URLSearchParams}},_getSearchParamName(){const t=this._params.search||{},e=this._element.getAttribute("data-search-param")||"";return String(t.param||e||"q").trim()||"q"},_getFilterFieldKeys(){const t=this._getFiltersFormNode();if(!t)return[];if(Array.isArray(this._filterParamKeysCache))return this._filterParamKeysCache.slice();const e=this._params.filters||{},i=String(e.fieldAttr||"data-filter-field").trim()||"data-filter-field",s=new Set;return Array.from(t.querySelectorAll(`[${i}]`)).forEach((t=>{const e=String(t.getAttribute(i)||"").trim();e&&s.add(e)})),this._filterParamKeysCache=Array.from(s),this._filterParamKeysCache.slice()},_getInitialFilterValues(){const t=this._getFilterFieldKeys();if(!t.length)return{};const e={};return t.forEach((t=>{Object.prototype.hasOwnProperty.call(this._remoteParams,t)&&(e[t]=this._remoteParams[t]),Object.prototype.hasOwnProperty.call(this._remoteParams,`${t}_op`)&&(e[`${t}_op`]=this._remoteParams[`${t}_op`])})),e},_getFiltersFormSelector(){const t=this._params.filters||{};if("string"==typeof t.form)return String(t.form).trim();const e=this._element.getAttribute("data-filters-form")||"";return String(e).trim()},_getFiltersFormNode(){const t=(this._params.filters||{}).form;if(t&&1===t.nodeType)return(this._filtersFormCacheNode!==t||""!==this._filtersFormCacheSelector)&&(this._filtersFormCacheSelector="",this._filtersFormCacheNode=t,this._filterParamKeysCache=null),t.isConnected?this._filtersFormCacheNode:null;const e=this._getFiltersFormSelector();return e?((this._filtersFormCacheSelector!==e||!this._filtersFormCacheNode||!this._filtersFormCacheNode.isConnected)&&(this._filtersFormCacheSelector=e,this._filtersFormCacheNode=ne(e),this._filterParamKeysCache=null),this._filtersFormCacheNode):(this._filtersFormCacheSelector="",this._filtersFormCacheNode=null,this._filterParamKeysCache=null,null)},_getFiltersUrlStateConfig(){const t=this._params.filters||{};return t.urlState&&"object"==typeof t.urlState?t.urlState:{}},_getFiltersUrlPrefix(){const t=this._getFiltersUrlStateConfig(),e=this._element.getAttribute("data-filters-urlstate-prefix"),i=null!==e?e:t.paramPrefix;return String(i||"f.").trim()||"f."},_isFiltersUrlStateEnabled(){const t=this._getFiltersUrlStateConfig(),e=this._element.getAttribute("data-filters-urlstate-enable");return se(null!==e?e:t.enable,!1)},_isFiltersUrlStateReadOnInit(){const t=this._getFiltersUrlStateConfig(),e=this._element.getAttribute("data-filters-urlstate-read-on-init");return re(null!==e?e:t.readOnInit,!0)},_isFiltersUrlStateWriteOnChange(){const t=this._getFiltersUrlStateConfig(),e=this._element.getAttribute("data-filters-urlstate-write-on-change");return re(null!==e?e:t.writeOnChange,!0)}},ue=ce,_e={_renderRemoteRows(t){const e=this._getBody();if(t.length)this._setFixedColumnsSuppressed(!1),this._clearStateMode(),e.innerHTML=t.map((t=>`<tr>${this._fields.map((e=>{const i=t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]:"",s=this._formatFieldValue(e,i);return`<td>${this._escapeHtml(s)}</td>`})).join("")}</tr>`)).join(""),this._updatePanHintVisibility();else{const t=this._getTableMessage("stateEmpty","Ничего нет");this._renderStateRow(t,"empty")}},_renderStateRow(t,e){const i=this._getBody(),s=this._getRenderedColumnsCount(),r="error"===e?`<div class="vgdt-state-actions"><button type="button" class="vgdt-state-reset" data-state-retry>${this._escapeHtml(this._getTableMessage("retry","Retry"))}</button></div>`:"",n=this._buildStateIllustrationMarkup(e);i.innerHTML=`<tr><td colspan="${s}" data-table-state="${e}"><div class="vgdt-state">${n}<div class="vgdt-state-text">${this._escapeHtml(t)}</div>${r}</div></td></tr>`;const a=i.querySelector("[data-table-state]");this._setFixedColumnsSuppressed(!0),this._setStateMode(e),this._ensureStateRowVisible(a),this._announce(t),this._clearFooter(),this._updatePanHintVisibility(),this._refreshStickyAndFixedLayout()},_hasRenderableRowsInBody:t=>!!(t&&t.rows&&t.rows.length)&&Array.from(t.rows).some((t=>{const e=Array.from(t.cells||[]);return!!e.length&&e.some((t=>!!t&&(""!==String(t.textContent||"").trim()||t.children.length>0)))})),_setFixedColumnsSuppressed(t){this._fixedColumnsSuppressed=Boolean(t)},_setStateMode(t){this._parent&&this._parent.setAttribute("data-state-mode",String(t||""))},_clearStateMode(){this._parent&&this._parent.removeAttribute("data-state-mode")},_buildStateIllustrationMarkup(t){const e="error"===t?"data-state-error-illustration":"data-state-empty-illustration",i=(this._params.state&&"object"==typeof this._params.state?this._params.state:{})["error"===t?"errorIllustration":"emptyIllustration"]||"",s=this._element?this._element.getAttribute(e):"",r=String(i||s||"").trim();if(!r)return'<div class="vgdt-state-illustration" aria-hidden="true"></div>';const n=this._extractInlineSvgMarkup(r);if(n)return`<div class="vgdt-state-illustration" aria-hidden="true">${n}</div>`;const a="error"===t?"Error":"Empty";return`<div class="vgdt-state-illustration"><img src="${this._escapeHtml(r)}" alt="${a}" loading="lazy"></div>`},_extractInlineSvgMarkup(t){const e=String(t||"").trim();if(!e)return"";if(/^<svg[\s>]/i.test(e))return e;const i=this._decodeHtmlEntities(e);return/^<svg[\s>]/i.test(i)?i:""},_decodeHtmlEntities:t=>String(t||"").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/&amp;/g,"&"),_ensureStateRowVisible(t){if(!t)return;const e=this._getStateBlockMinHeight();if(t.style.minHeight=`${e}px`,this._tableViewport&&(this._tableViewport.scrollTop=0,this._tableViewport.scrollLeft=0),"undefined"==typeof window)return;const i=t.getBoundingClientRect(),s=window.innerHeight||0;(i.top<0||s>0&&i.bottom>s)&&t.scrollIntoView({block:"center",inline:"nearest"})},_getStateBlockMinHeight(){if("undefined"==typeof window)return 180;const t=window.innerHeight||0,e=(window.innerWidth||0)<=768?.52:.34,i=t>0?Math.round(t*e):0;return Math.max(160,i)},_bindTableStateActions(){this._element.addEventListener("click",(t=>{if(t.target.closest("[data-state-reset]"))return t.preventDefault(),void this._resetFiltersAndSearch();t.target.closest("[data-state-retry]")&&(t.preventDefault(),this._reloadCurrentPage())}))},_resetFiltersAndSearch(){if(!this._isRemote)return;this._remoteParams={},this._activeFilters={},this._sortState=Object.assign({},this._sortState,{field:"",dir:"asc",columnIndex:-1,sorts:[]}),this._sortable&&this._sortable.setState({sorts:[]});const t=this._getSearchInputSelector();if(t){const e=this._getSearchInputNode(t);e&&(e.value="")}this._filters&&"function"==typeof this._filters.setValues&&this._filters.setValues({},{emit:!1});const e=this._pageState.perPage||this._normalizePositiveInt(this._params.pagination.perPage,10);this._pageState={page:1,perPage:e},this._emitAction("reset",{page:1,perPage:e}),this._loadRemotePage(1,e)},_reloadCurrentPage(){if(!this._isRemote)return;const t=this._pageState.page||1,e=this._pageState.perPage||this._normalizePositiveInt(this._params.pagination.perPage,10);this._loadRemotePage(t,e)},_hasActiveRemoteFilters(){return!!this._isRemote&&Object.keys(this._remoteParams||{}).length>0},_ensureLiveRegion(){if(this._liveRegion||!this._parent)return;const t=document.createElement("div");t.className="vgdt-live-region",t.setAttribute("aria-live","polite"),t.setAttribute("aria-atomic","true"),this._parent.appendChild(t),this._liveRegion=t},_announce(t){this._liveRegion&&(this._liveRegion.textContent=String(t||""))}},me={theme:"auto",locale:"ru",i18n:{ru:{pagination:{perPageLabel:"Строк на странице",perPageOptionSuffix:"на страницу",prevLabel:"Назад",nextLabel:"Вперед",quickJumpButtonLabel:"Перейти"},table:{loading:"Загрузка данных...",empty:"Нет данных.",error:"Не удалось загрузить данные.",retry:"Повторить",shiftDragHint:"Зажмите Shift и тяните мышью для прокрутки таблицы."},sortable:{ascLabel:"Сортировка по возрастанию",descLabel:"Сортировка по убыванию"},summary:{foundLabel:"Найдено",searchLabel:"Поиск",visibleRowsLabel:"Строк на странице",pagePriceSumLabel:"Сумма цен",pageStockSumLabel:"Суммарный остаток",pageAvgRatingLabel:"Средний рейтинг"}},en:{pagination:{perPageLabel:"Rows per page",perPageOptionSuffix:"page",prevLabel:"Prev",nextLabel:"Next",quickJumpButtonLabel:"Go"},table:{loading:"Loading data...",empty:"No data available.",error:"Failed to load data.",retry:"Retry",shiftDragHint:"Hold Shift and drag to scroll the table."},sortable:{ascLabel:"Sort ascending",descLabel:"Sort descending"},summary:{foundLabel:"Found",searchLabel:"Search",visibleRowsLabel:"Rows on page",pagePriceSumLabel:"Price sum",pageStockSumLabel:"Total stock",pageAvgRatingLabel:"Average rating"}}},data:[],fixed:{columns:""},views:{storage:{key:""}},request:{route:"",method:"GET",credentials:"same-origin",headers:{Accept:"application/json"},params:{},parammap:{},responsemode:"data",datapath:"data",metapath:"meta",viewpath:"view.tbody",viewparam:"view",viewvalue:"rows",fieldsparam:"fields",cache:{enable:!0,ttl:3e4,max:30},export:{route:""}},pagination:{enable:!1,page:1,perPage:10,per:10,maxPerPage:100,max:100,persistPage:!0,persistPerPage:!0,persist:{page:!0,per:!0},storageKey:"",pageStorageKey:"",storage:{key:""},pageStorage:{storage:{key:""}},totalPages:null,position:"bottom",align:"left",renderMode:"auto",ellipsis:!0,ellipsisAfter:5,maxVisiblePages:5,showPerPage:!0,showPerPageLabel:!1,scrollToTop:!0,scrollToWindowTop:!1,quickJump:!1,quickJumpButtonLabel:"Перейти",perPageOptions:[10,25,50,100],onChange:null,onPerPageChange:null},sortable:{enable:!0,initialField:"",initialDir:"asc",multi:!1,multiWithShift:!0,fields:[],hideUnsortedArrows:!0,isColumnSortable:()=>!0},columnReorder:{enable:!1,persist:!1,storageKey:""},columnResize:{enable:!1,minWidth:80,maxWidth:600},virtual:{enable:!1,rowHeight:44,overscan:8,threshold:500},expandable:{enable:!1,idAttr:"data-expand-id",parentAttr:"data-expand-parent-id",toggleSelector:"[data-expand-toggle]",collapsed:!0},loading:{minDelay:500,skeleton:10},summary:{enable:!1},footer:{enable:!1},state:{errorIllustration:'<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="36" stroke="currentColor" stroke-opacity="0.32" stroke-width="4"/><path d="M50 30V56" stroke="currentColor" stroke-opacity="0.7" stroke-width="6" stroke-linecap="round"/><circle cx="50" cy="68" r="4" fill="currentColor" fill-opacity="0.7"/></svg>',emptyIllustration:'<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="18" y="24" width="64" height="52" rx="8" stroke="currentColor" stroke-opacity="0.32" stroke-width="4"/><path d="M30 40H70M30 50H62M30 60H54" stroke="currentColor" stroke-opacity="0.55" stroke-width="4" stroke-linecap="round"/><circle cx="72" cy="68" r="10" stroke="currentColor" stroke-opacity="0.6" stroke-width="4"/><path d="M79 75L86 82" stroke="currentColor" stroke-opacity="0.6" stroke-width="4" stroke-linecap="round"/></svg>'},panHint:{dismiss:60,dismissDays:60},stickyHeader:{enable:!1,top:0,max:0},search:{enable:!1,debounce:300,param:"q",input:""},filters:{enable:!1,form:"",debounce:300,apply:"auto",button:{apply:"[data-filter-apply]",reset:"[data-filter-reset]"},route:"",fieldAttr:"data-filter-field",partAttr:"data-filter-part",typeAttr:"data-filter-type",valueAttr:"data-filter-value",operatorAttr:"data-filter-operator",defaultOperator:"eq",resetPageOnChange:!0,skipEmpty:!0,trimValues:!0,emitFullContext:!0,urlState:{enable:!1,readOnInit:!0,writeOnChange:!0,historyMode:"replace",paramPrefix:"f.",pageKey:"page",perPageKey:"perPage",sortKey:"sort"},transport:{payloadKey:"filters",includeMeta:!0,includeUrlState:!0},response:{rowsPath:"data.rows",totalPath:"data.total",metaPath:"meta",appliedFiltersPath:"meta.appliedFilters"}},urlState:{enable:!1,mode:"replace",include:{pagination:!1,sort:!1},listen:{popstate:!1}},editable:{enable:!1,rowReorder:!0,rowReorderMode:"row",rowReorderHandleSelector:"[data-row-reorder-handle]"},callbacks:{onInit:null,onBeforeLoad:null,onDataLoaded:null,onError:null,onRequestSuccess:null,onRequestError:null,onStaleResponse:null,onUrlStateRead:null,onUrlStateWrite:null,onUrlStateError:null,onEmptyResult:null,onAfterRender:null,onStateSync:null,onSortChange:null,onPageChange:null,onPerPageChange:null,onSearch:null,onFiltersChange:null,onReset:null,onRowCheck:null,onCheckAll:null,onRowReorder:null,onExport:null,onViewChange:null,onRowExpand:null,onRowCollapse:null,onRowToggle:null,onColumnReorder:null,onColumnResize:null,onColumnFixed:null},events:{enable:!0,prefix:"vgdt",bubbles:!0},persistence:{enable:!1,storageKey:"",theme:!1,locale:!1,filtersApply:!1}},pe=class{constructor(t,e={}){if(!(t&&t instanceof Element))throw new Error("Pagination requires a valid root element");this._root=t,this._params=Object.assign({},{markupSelector:"[data-vgdt-pagination], .vgdt-pagination",perPageOptionSuffix:"page",showPerPageLabel:!1,perPageLabel:"Строк на странице",prevLabel:"Назад",nextLabel:"Вперед",quickJumpButtonLabel:"Перейти",container:null,maxPerPage:100},e),this._maxPerPage=this._resolveMaxPerPage(),this._state={page:this._normalizeInt(this._params.page,1),perPage:this._normalizePerPage(this._params.perPage,10),totalPages:this._normalizeInt(this._params.totalPages,1)},this._containers=[],this._lastMarkupByContainer=new WeakMap,this._boundContainerClick=this._handleContainerClick.bind(this),this._boundContainerChange=this._handleContainerChange.bind(this),this._boundContainerKeyDown=this._handleContainerKeyDown.bind(this),this._boundContainerFocusIn=this._handleContainerFocusIn.bind(this),this._boundContainerBlur=this._handleContainerBlur.bind(this),this._dropdownInstances=new WeakMap}init(){this._containers=this._resolveContainers(),this._containers.length&&(this._render(),this._bindEvents())}setMeta(t={}){let e=!1;if(void 0!==t.page){const i=this._normalizeInt(t.page,this._state.page);i!==this._state.page&&(this._state.page=i,e=!0)}if(void 0!==t.perPage){const i=this._normalizePerPage(t.perPage,this._state.perPage);i!==this._state.perPage&&(this._state.perPage=i,e=!0)}if(void 0!==t.totalPages){const i=this._normalizeInt(t.totalPages,this._state.totalPages);i!==this._state.totalPages&&(this._state.totalPages=i,e=!0)}const i=this._clampPage(this._state.page);i!==this._state.page&&(this._state.page=i,e=!0),e&&this._render()}_resolveContainers(){const t=this._resolveRenderMode(),e=this._findMarkupContainers();return"markup"===t||"auto"===t&&e.length?e:this._createClassContainers()}_resolveRenderMode(){const t=(this._params.renderMode||this._params.render||"auto").toString().toLowerCase();return"class"===t?"class":"markup"===t?"markup":"auto"}_findMarkupContainers(){if(this._params.container instanceof Element)return[this._params.container];if("string"==typeof this._params.container&&this._params.container.trim()){const t=this._root.querySelector(this._params.container);if(t)return[t]}const t=Array.from(this._root.querySelectorAll(this._params.markupSelector||".vgdt-pagination"));if(!t.length)return[];const e=(this._params.position||"bottom").toString().toLowerCase();if("both"===e)return t;const i=t.find((t=>t.dataset.position===e));return i?[i]:[t[0]]}_createClassContainers(){const t=(this._params.position||"bottom").toString().toLowerCase(),e=this._root.querySelector("table"),i=e?e.closest(".vgdt-table-viewport")||e:null,s=[],r=t=>{const e=`vgdt-pagination vgdt-pagination--${t}`;let r=this._root.querySelector(`.vgdt-pagination--${t}[data-pagination-generated="1"]`);r||(r=document.createElement("div"),r.className=e,r.dataset.position=t,r.dataset.paginationGenerated="1",i&&i.parentElement===this._root?"top"===t?this._root.insertBefore(r,i):i.nextSibling?this._root.insertBefore(r,i.nextSibling):this._root.appendChild(r):this._root.appendChild(r)),s.push(r)};return"top"!==t&&"both"!==t||r("top"),"bottom"!==t&&"both"!==t||r("bottom"),s}_bindEvents(){this._containers.forEach((t=>{t.removeEventListener("click",this._boundContainerClick),t.removeEventListener("change",this._boundContainerChange),t.removeEventListener("keydown",this._boundContainerKeyDown),t.removeEventListener("focusin",this._boundContainerFocusIn),t.removeEventListener("focusout",this._boundContainerBlur),t.addEventListener("click",this._boundContainerClick),t.addEventListener("change",this._boundContainerChange),t.addEventListener("keydown",this._boundContainerKeyDown),t.addEventListener("focusin",this._boundContainerFocusIn),t.addEventListener("focusout",this._boundContainerBlur)}))}_handleContainerClick(t){const e=t.target.closest("[data-per-page-option]");if(e){t.preventDefault();const i=this._findPerPageInputFromNode(e),s=e.getAttribute("data-per-page-option")||"";return i&&(i.value=this._formatPerPageDisplay(s)),this._applyPerPage(s),void this._hidePerPageDropdownFromNode(e)}const i=t.target.closest("[data-per-page]");if(i){t.preventDefault(),t.stopPropagation();const e=this._findPerPageToggleFromNode(i),s=this._getOrCreatePerPageDropdown(e);return void(s&&"function"==typeof s.toggle?s.toggle():s&&"function"==typeof s.show&&s.show())}const s=t.target.closest("[data-page-jump]");if(s){const t=s.closest(".vgdt-pagination__jump"),e=t?t.querySelector("[data-page-jump-input]"):null;return void this._jumpToPage(e?e.value:"")}const r=t.target.closest("[data-page]");if(!r)return;const n=r.dataset.page;"prev"!==n?"next"!==n?"ellipsis-prev"!==n?"ellipsis-next"!==n?this._setPage(this._normalizeInt(n,this._state.page),"page"):this._setPage(this._getEllipsisTargetPage("next"),"ellipsis"):this._setPage(this._getEllipsisTargetPage("prev"),"ellipsis"):this._setPage(this._state.page+1,"next"):this._setPage(this._state.page-1,"prev")}_handleContainerKeyDown(t){if("Escape"===t.key){const e=t.target.closest("[data-per-page]");if(e)return this._hidePerPageDropdownFromNode(e),void e.blur()}if("Enter"!==t.key)return;const e=t.target.closest("[data-per-page]");if(e)return t.preventDefault(),this._applyPerPage(e.value),void(e.value=this._formatPerPageDisplay(this._state.perPage));const i=t.target.closest("[data-page-jump-input]");i&&(t.preventDefault(),this._jumpToPage(i.value))}_handleContainerChange(t){const e=t.target.closest("[data-per-page]");e&&(this._applyPerPage(e.value),e.value=this._formatPerPageDisplay(this._state.perPage))}_handleContainerFocusIn(t){const e=t.target.closest("[data-per-page]");e&&(e.value=String(this._normalizePerPage(e.value,this._state.perPage)))}_handleContainerBlur(t){const e=t.target.closest("[data-per-page]");if(!e)return;const i=t.relatedTarget instanceof Element?t.relatedTarget:null,s=e.closest(".vgdt-pagination__per-page-control");s&&i&&s.contains(i)||(this._applyPerPage(e.value),e.value=this._formatPerPageDisplay(this._state.perPage))}_applyPerPage(t){const e=this._normalizePerPage(t,this._state.perPage),i=e!==this._state.perPage,s=1!==this._state.page;(i||s)&&(this._state.perPage=e,this._state.page=1,this._render(),this._emitChange(i,"per-page"))}_setPage(t,e="page"){const i=this._clampPage(t);i!==this._state.page&&(this._state.page=i,this._render(),this._emitChange(!1,e))}_emitChange(t,e="page"){const i={page:this._state.page,perPage:this._state.perPage,totalPages:this._state.totalPages,perPageChanged:Boolean(t),source:e},s=this._params.onChange;"function"==typeof s&&s(i);const r=this._params.onPerPageChange;t&&"function"==typeof r&&r(i),this._root.dispatchEvent(new CustomEvent("vgdt:pagination:change",{bubbles:!0,detail:i}))}_render(){const t=this._buildPages(),e=this._buildMarkup(t);this._containers.forEach((t=>{(this._lastMarkupByContainer.get(t)||"")!==e&&(t.innerHTML=e,this._lastMarkupByContainer.set(t,e),this._initPerPageDropdown(t))}))}_buildMarkup(t){const e=this._resolveAlign(),i=this._resolveAlignStyle(e),s=this._state.page<=1?"disabled":"",r=this._state.page>=this._state.totalPages?"disabled":"",n=this._params.showPerPage?this._buildPerPageMarkup():"",a=this._shouldShowQuickJump()?this._buildQuickJumpMarkup():"";return`\n\t\t\t<div class="vgdt-pagination__inner vgdt-pagination__inner--${e}" style="display:flex;align-items:center;justify-content:${i};gap:12px;flex-wrap:wrap;">\n\t\t\t\t${n}\n\t\t\t\t<nav class="vgdt-pagination__pages" aria-label="Pagination">\n\t\t\t\t\t<button type="button" class="vgdt-page vgdt-page--prev" data-page="prev" ${s}>${this._params.prevLabel}</button>\n\t\t\t\t\t${t.map((t=>this._buildPageItem(t))).join("")}\n\t\t\t\t\t<button type="button" class="vgdt-page vgdt-page--next" data-page="next" ${r}>${this._params.nextLabel}</button>\n\t\t\t\t</nav>\n\t\t\t\t${a}\n\t\t\t</div>\n\t\t`}_buildPerPageMarkup(){const t=this._normalizePerPageOptions();return`\n\t\t\t<label class="vgdt-pagination__per-page">\n\t\t\t\t${this._isPerPageLabelVisible()?`<span>${this._params.perPageLabel}</span>`:""}\n\t\t\t\t<div class="vgdt-pagination__per-page-control vg-dropdown">\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype="text"\n\t\t\t\t\t\tmin="1"\n\t\t\t\t\t\tmax="${this._maxPerPage}"\n\t\t\t\t\t\tstep="1"\n\t\t\t\t\t\tinputmode="numeric"\n\t\t\t\t\t\tdata-per-page\n\t\t\t\t\t\tdata-toggle="dropdown"\n\t\t\t\t\t\tvalue="${this._formatPerPageDisplay(this._state.perPage)}"\n\t\t\t\t\t\taria-label="${this._params.perPageLabel}"\n\t\t\t\t\t\taria-haspopup="true"\n\t\t\t\t\t>\n\t\t\t\t\t<span class="vgdt-pagination__per-page-chevron" aria-hidden="true">\n\t\t\t\t\t\t<svg viewBox="0 0 20 20" focusable="false" aria-hidden="true">\n\t\t\t\t\t\t\t<path d="M5 7.5L10 12.5L15 7.5" />\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</span>\n\t\t\t\t\t<div class="vg-dropdown-content vgdt-pagination__per-page-dropdown">\n\t\t\t\t\t\t<div class="vg-dropdown-container">\n\t\t\t\t\t\t\t${t.map((t=>`<button type="button" class="vgdt-pagination__per-page-option" data-per-page-option="${t}">${this._formatPerPageDisplay(t)}</button>`)).join("")}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</label>\n\t\t`}_isPerPageLabelVisible(){const t=this._root?this._root.querySelector("table"):null,e=t?t.getAttribute("data-pagination-show-per-page-label"):null;if(null!==e){const t=String(e).toLowerCase().trim();return"false"!==t&&"0"!==t}return Boolean(this._params.showPerPageLabel)}_buildPageItem(t){if(t&&"object"==typeof t&&"ellipsis"===t.type){const e="prev"===t.direction,i=e?"ellipsis-prev":"ellipsis-next",s=e?"&laquo;":"&raquo;",r=this._getEllipsisTargetPage(t.direction),n=Math.abs(r-this._state.page);return`<button type="button" class="vgdt-page vgdt-page--ellipsis" data-page="${i}" aria-label="${e?`Go back ${n} page${n>1?"s":""}`:`Go forward ${n} page${n>1?"s":""}`}"><span class="vgdt-ellipsis-dots" aria-hidden="true">...</span><span class="vgdt-ellipsis-chevron" aria-hidden="true">${s}</span></button>`}const e=t===this._state.page?"is-active":"";return`<button type="button" class="vgdt-page ${e}" data-page="${t}" aria-current="${e?"page":"false"}">${t}</button>`}_buildQuickJumpMarkup(){return`\n\t\t\t<div class="vgdt-pagination__jump">\n\t\t\t\t<input\n\t\t\t\t\ttype="number"\n\t\t\t\t\tmin="1"\n\t\t\t\t\tmax="${this._state.totalPages}"\n\t\t\t\t\tstep="1"\n\t\t\t\t\tinputmode="numeric"\n\t\t\t\t\tdata-page-jump-input\n\t\t\t\t\tvalue="${this._state.page}"\n\t\t\t\t>\n\t\t\t\t<button type="button" class="vgdt-page vgdt-page--jump" data-page-jump>${this._params.quickJumpButtonLabel||"Go"}</button>\n\t\t\t</div>\n\t\t`}_buildPages(){const t=this._state.totalPages,e=this._clampPage(this._state.page),i=Math.max(1,this._normalizeInt(this._params.maxVisiblePages,5));if(!(Boolean(this._params.ellipsis)&&t>this._normalizeInt(this._params.ellipsisAfter,5))||t<=i+2)return this._range(1,t);const s=i;let r=Math.max(2,e-Math.floor(s/2)),n=Math.min(t-1,r+s-1);r=Math.max(2,n-s+1);const a=[1];r>2&&a.push({type:"ellipsis",direction:"prev"});for(let t=r;t<=n;t+=1)a.push(t);return n<t-1&&a.push({type:"ellipsis",direction:"next"}),a.push(t),a}_findPerPageInputFromNode(t){const e=t?t.closest(".vgdt-pagination__per-page-control"):null;return e?e.querySelector("[data-per-page]"):null}_findPerPageToggleFromNode(t){const e=t?t.closest(".vgdt-pagination__per-page-control"):null;return e?e.querySelector('[data-per-page][data-toggle="dropdown"]'):null}_getOrCreatePerPageDropdown(t){if(!t)return null;let e=this._dropdownInstances.get(t);return e||(e=Zt.getOrCreateInstance(t,{placement:"auto",hover:!1,animation:{fade:!0,enable:!1,delay:120}}),this._dropdownInstances.set(t,e),e)}_initPerPageDropdown(t){const e=t.querySelector('.vgdt-pagination__per-page-control [data-toggle="dropdown"]');e&&this._getOrCreatePerPageDropdown(e)}_hidePerPageDropdownFromNode(t){const e=this._findPerPageToggleFromNode(t);if(!e)return;const i=this._dropdownInstances.get(e);i&&"function"==typeof i.hide&&i.hide()}_shouldShowQuickJump(){if(this._state.totalPages<=1)return!1;const t=this._params.quickJump;if(!0===t||"true"===t)return!0;if(!1===t||"false"===t)return!1;const e=this._normalizeInt(this._params.ellipsisAfter,5);return this._state.totalPages>e}_resolveAlign(){const t=(this._params.align||"left").toString().toLowerCase();return"center"===t||"right"===t||"between"===t?t:"left"}_resolveAlignStyle(t){return"center"===t?"center":"right"===t?"flex-end":"between"===t?"space-between":"flex-start"}_normalizePerPageOptions(){const t=this._params.perPageOptions,e=(Array.isArray(t)?t:[10,25,50,100]).map((t=>this._normalizeInt(t,0))).filter((t=>t>0&&t<=this._maxPerPage));return e.length?(e.includes(this._state.perPage)||e.push(this._state.perPage),Array.from(new Set(e)).sort(((t,e)=>t-e))):[this._state.perPage]}_resolveMaxPerPage(){const t=this._params.maxPerPage;return this._normalizeInt(t,100)}_normalizePerPage(t,e){const i=this._normalizeInt(t,e);return Math.min(i,this._maxPerPage)}_getPerPageOptionSuffix(){const t=this._params.perPageOptionSuffix,e=String(t||"").trim();if(e)return e;const i=String(this._params.perPageLabel||"").toLowerCase();return/[а-яё]/i.test(i)?"на страницу":"page"}_formatPerPageDisplay(t){return`${this._normalizeInt(t,this._state.perPage)} / ${this._getPerPageOptionSuffix()}`}_clampPage(t){const e=this._normalizeInt(t,1);return Math.max(1,Math.min(e,this._state.totalPages))}_normalizeInt(t,e){const i=Number.parseInt(t,10);return Number.isFinite(i)&&i>0?i:e}_jumpToPage(t){const e=this._normalizeInt(t,this._state.page);this._setPage(e,"jump")}_getEllipsisTargetPage(t){const e=this._buildPages().filter((t=>Number.isInteger(t)&&t>1&&t<this._state.totalPages));if(!e.length)return"prev"===t?1:this._state.totalPages;const i=e[0],s=e[e.length-1];return"prev"===t?this._clampPage(i-1):this._clampPage(s+1)}_range(t,e){const i=[];for(let s=t;s<=e;s+=1)i.push(s);return i}},ge=class{constructor(t,e={}){this._table=t,this._options=Object.assign({initialField:"",initialDir:"asc",directions:["asc","desc"],ascLabel:"Сортировка по возрастанию",descLabel:"Сортировка по убыванию",isColumnSortable:null,onChange:null,multiSort:!1,multiSortWithShift:!0,hideUnsortedArrows:!1},e),this._headers=[],this._sorts=[],this._headerControls=new WeakMap,this._boundClick=this._handleClick.bind(this),this._boundKeyDown=this._handleKeyDown.bind(this)}init(){this._headers=this._getHeaders(),this._headers.length&&(this._syncControlsVisibilityMode(),this._headers.forEach(((t,e)=>{this._isSortable(t,e)?(t.dataset.sortable="1",t.tabIndex=0,t.setAttribute("role","button"),t.setAttribute("aria-sort","none"),this._decorateHeader(t)):t.setAttribute("aria-sort","none")})),this._table.addEventListener("click",this._boundClick),this._table.addEventListener("keydown",this._boundKeyDown),this._applyInitialState())}setState(t={}){if(Array.isArray(t.sorts)){const e=this._normalizeSorts(t.sorts);return void this._setSorts(e,!1)}const e=this._resolveIndex(t);e<0?this._setSorts([],!1):this._isSortable(this._headers[e],e)&&this._setSorts([{index:e,dir:this._normalizeDir(t.dir)}],!1)}refresh(t={}){this._headers=this._getHeaders(),this._headers.length&&(this._syncControlsVisibilityMode(),this._headers.forEach(((t,e)=>{if(!this._isSortable(t,e))return t.removeAttribute("data-sortable"),t.removeAttribute("data-sort-direction"),t.removeAttribute("data-sort-priority"),void t.setAttribute("aria-sort","none");t.dataset.sortable="1",t.tabIndex=0,t.setAttribute("role","button"),t.hasAttribute("aria-sort")||t.setAttribute("aria-sort","none"),this._decorateHeader(t)})),Array.isArray(t.sorts)?this._setSorts(this._normalizeSorts(t.sorts),!1):this._setSorts(this._normalizeSorts(this._sorts),!1))}_applyInitialState(){const t=this._resolveIndex({field:this._options.initialField,columnIndex:-1});t<0||!this._isSortable(this._headers[t],t)?this._setSorts([],!1):this._setSorts([{index:t,dir:this._normalizeDir(this._options.initialDir)}],!1)}_getHeaders(){const t=this._table.tHead||this._table.querySelector("thead");return t&&t.rows.length?Array.from(t.rows[0].cells):[]}_isSortable(t,e){return"function"!=typeof this._options.isColumnSortable||Boolean(this._options.isColumnSortable(t,e))}_handleClick(t){const e=t.target.closest("th");if(!e||!this._table.contains(e))return;const i=this._headers.indexOf(e);if(i<0||!this._isSortable(e,i))return;const s=t.target.closest("[data-sort-arrow]"),r=this._isMultiMode(t);if(s&&e.contains(s)){const t=this._normalizeDir(s.getAttribute("data-sort-arrow"));this._applyColumnDirection(i,t,r,!0)}else this._cycleColumn(i,r)}_handleKeyDown(t){if("Enter"!==t.key&&" "!==t.key)return;const e=t.target.closest("th");if(!e||!this._table.contains(e))return;const i=this._headers.indexOf(e);i<0||!this._isSortable(e,i)||(t.preventDefault(),this._cycleColumn(i,this._isMultiMode(t)))}_isMultiMode(t){return!!this._options.multiSort&&(!this._options.multiSortWithShift||Boolean(t&&t.shiftKey))}_cycleColumn(t,e){const i=this._sorts.find((e=>e.index===t))||null,s=this._getDirections(),r=s[0],n=s[1]||r;i?i.dir!==r?this._removeColumnDirection(t,e,!0):this._applyColumnDirection(t,n,e,!0):this._applyColumnDirection(t,r,e,!0)}_applyColumnDirection(t,e,i,s){let r=this._sorts.slice();r=r.filter((e=>e.index!==t)),i||(r=[]),r.push({index:t,dir:this._normalizeDir(e)}),this._setSorts(r,s)}_removeColumnDirection(t,e,i){let s=this._sorts.slice();s=s.filter((e=>e.index!==t)),e||(s=[]),this._setSorts(s,i)}_setSorts(t,e){this._sorts=this._normalizeSorts(t);const i=new Map;if(this._sorts.forEach(((t,e)=>{i.set(t.index,{dir:t.dir,priority:e+1})})),this._headers.forEach(((t,e)=>{const s=i.has(e)?i.get(e):null;if(!this._isSortable(t,e))return t.removeAttribute("data-sort-direction"),t.removeAttribute("data-sort-priority"),void t.setAttribute("aria-sort","none");const r=this._getHeaderControls(t),n=r.controlsNode,a=r.ascButton,o=r.descButton,l=Boolean(this._options.hideUnsortedArrows&&!s);n&&(n.hidden=l),s?(t.dataset.sortDirection=s.dir,t.dataset.sortPriority=String(s.priority),t.setAttribute("aria-sort","asc"===s.dir?"ascending":"descending"),a&&a.setAttribute("aria-pressed","asc"===s.dir?"true":"false"),o&&o.setAttribute("aria-pressed","desc"===s.dir?"true":"false")):(t.removeAttribute("data-sort-direction"),t.removeAttribute("data-sort-priority"),t.setAttribute("aria-sort","none"),a&&a.setAttribute("aria-pressed","false"),o&&o.setAttribute("aria-pressed","false"))})),this._syncSortedColumnsHighlight(),!e||"function"!=typeof this._options.onChange)return;const s=this._sorts[0]||null;this._options.onChange({field:s?this._getFieldByIndex(s.index):"",dir:s?s.dir:this._normalizeDir(this._options.initialDir),columnIndex:s?s.index:-1,sorts:this._sorts.map((t=>({field:this._getFieldByIndex(t.index),dir:t.dir,columnIndex:t.index})))})}_normalizeSorts(t){const e=[],i=new Set;return(Array.isArray(t)?t:[]).forEach((t=>{const s=Number.parseInt(t.index??t.columnIndex,10);!Number.isInteger(s)||s<0||s>=this._headers.length||this._isSortable(this._headers[s],s)&&(i.has(s)||(i.add(s),e.push({index:s,dir:this._normalizeDir(t.dir)})))})),e}_syncSortedColumnsHighlight(){const t=this._getAllRows();t.length&&(t.forEach((t=>{Array.from(t.cells||[]).forEach((t=>{t.removeAttribute("data-sorted-column"),t.removeAttribute("data-sorted-priority")}))})),this._sorts.forEach(((e,i)=>{t.forEach((t=>{const s=t.cells&&t.cells[e.index]?t.cells[e.index]:null;s&&(s.setAttribute("data-sorted-column","1"),s.setAttribute("data-sorted-priority",String(i+1)))}))})))}_getAllRows(){const t=[];return["tHead","tBodies","tFoot"].forEach((e=>{const i=this._table[e];i&&("tBodies"!==e?t.push(...Array.from(i.rows||[])):Array.from(i).forEach((e=>{t.push(...Array.from(e.rows||[]))})))})),t}_decorateHeader(t){if(t.querySelector(".vgdt-sort-controls"))return void this._headerControls.delete(t);const e=document.createElement("span");for(e.className="vgdt-sort-label";t.firstChild;)e.appendChild(t.firstChild);const i=document.createElement("span");i.className="vgdt-sort-controls",i.innerHTML=`\n <button type="button" class="vgdt-sort-arrow vgdt-sort-arrow--asc" data-sort-arrow="asc" aria-label="${this._escapeAttr(this._options.ascLabel)}" aria-pressed="false">&#9650;</button>\n <button type="button" class="vgdt-sort-arrow vgdt-sort-arrow--desc" data-sort-arrow="desc" aria-label="${this._escapeAttr(this._options.descLabel)}" aria-pressed="false">&#9660;</button>\n `,e.appendChild(i),t.appendChild(e),this._headerControls.delete(t)}_getHeaderControls(t){if(this._headerControls.has(t))return this._headerControls.get(t);const e={controlsNode:t.querySelector(".vgdt-sort-controls"),ascButton:t.querySelector('[data-sort-arrow="asc"]'),descButton:t.querySelector('[data-sort-arrow="desc"]')};return this._headerControls.set(t,e),e}_getFieldByIndex(t){const e=this._headers[t];return e?(e.getAttribute("data-field")||"").trim():""}_resolveIndex(t={}){const e=(t.field||"").toString().trim();if(e){const t=this._headers.findIndex((t=>(t.getAttribute("data-field")||"").trim()===e));if(t>=0)return t}const i=Number.parseInt(t.columnIndex,10);return Number.isInteger(i)&&i>=0&&i<this._headers.length?i:-1}_normalizeDir(t){const e=String(t).toLowerCase(),i=this._getDirections();return i.includes(e)?e:i[0]}_getDirections(){const t=(Array.isArray(this._options.directions)?this._options.directions:["asc","desc"]).map((t=>String(t).toLowerCase().trim())).filter((t=>"asc"===t||"desc"===t));return t.length?Array.from(new Set(t)):["asc","desc"]}_syncControlsVisibilityMode(){this._options.hideUnsortedArrows?this._table.setAttribute("data-sort-hide-unsorted-arrows","1"):this._table.removeAttribute("data-sort-hide-unsorted-arrows")}_escapeAttr(t){return String(t).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}},fe=class{constructor(t,e={}){this._table=t,this._params=e&&"object"==typeof e?e:{},this._collapsed=new Set,this._boundClick=this._handleClick.bind(this),this._initialized=!1}init(){this._isEnabled()&&!this._initialized&&(this._table.addEventListener("click",this._boundClick),this._initialized=!0,this.refresh())}destroy(){this._initialized&&(this._table.removeEventListener("click",this._boundClick),this._initialized=!1)}refresh(){if(!this._isEnabled())return;const t=this._getRows();if(!t.length)return;this._resetExpandHidden(t),this._rememberBaseVisibility(t);const e=this._getIdAttr(),i=this._getParentAttr(),s=new Map,r=new Map,n=new Map;t.forEach(((t,a)=>{const o=`row-${a+1}`,l=String(t.getAttribute(e)||o).trim()||o;t.setAttribute(e,l),s.set(l,t);const d=String(t.getAttribute(i)||"").trim();r.set(l,d),d&&(n.has(d)||n.set(d,[]),n.get(d).push(l))}));const a=new Map,o=t=>{if(a.has(t))return a.get(t);const e=String(r.get(t)||"").trim();if(!e)return a.set(t,0),0;if(!s.has(e)||e===t)return a.set(t,0),0;const i=Math.max(0,o(e)+1);return a.set(t,i),i},l=t=>{let e=String(r.get(t)||"").trim();for(;e;){if(this._collapsed.has(e))return!0;e=String(r.get(e)||"").trim()}return!1};s.forEach(((t,e)=>{const i=o(e);t.setAttribute("data-expand-depth",String(i)),t.style.setProperty("--vgdt-expand-depth",String(i));const s=n.has(e)&&n.get(e).length>0,r="1"===t.getAttribute("data-expand-seeded");s&&!r&&(this._isInitiallyCollapsed(t)&&this._collapsed.add(e),t.setAttribute("data-expand-seeded","1")),this._syncToggleNode(t,e,s);const a="1"===t.getAttribute("data-expand-base-hidden"),d=l(e),h=a||d;t.hidden=h,d?t.setAttribute("data-expand-hidden","1"):t.removeAttribute("data-expand-hidden")}))}_handleClick(t){const e=this._getToggleSelector(),i=t.target||null,s=i&&3===i.nodeType?i.parentElement:i,r=s&&s.closest?s.closest(e):null;if(!r||!this._table.contains(r))return;t.preventDefault();const n=r.closest("tr");if(!n)return;const a=String(n.getAttribute(this._getIdAttr())||"").trim();if(!a)return;const o=!this._collapsed.has(a);o?this._collapsed.add(a):this._collapsed.delete(a),this.refresh();const l={id:a,collapsed:o,row:n};"function"==typeof this._params.onToggle&&this._params.onToggle(l)}_syncToggleNode(t,e,i){const s=this._getToggleSelector();let r=t.querySelector(s);if(!r&&i){const e=t.cells&&t.cells[0]?t.cells[0]:null;e&&(r=document.createElement("button"),r.type="button",r.className="vgdt-expand-toggle",r.setAttribute("data-expand-toggle","1"),e.prepend(r))}if(!r)return;r.style.marginInlineEnd="10px",r.style.cursor="pointer";const n=r.nextSibling;if(n&&3===n.nodeType&&/^\s/.test(String(n.textContent||""))||r.after(document.createTextNode(" ")),r.setAttribute("data-expand-toggle",e),r.setAttribute("aria-expanded",this._collapsed.has(e)?"false":"true"),r.hidden=!i,!i)return;const a=this._collapsed.has(e);r.textContent=a?"+":"−"}_getRows(){const t=this._table.tBodies&&this._table.tBodies[0];return t?Array.from(t.rows).filter((t=>!t.querySelector("[data-table-state]"))):[]}_resetExpandHidden(t){t.forEach((t=>{"1"===t.getAttribute("data-expand-hidden")&&(t.hidden=!1,t.removeAttribute("data-expand-hidden"))}))}_rememberBaseVisibility(t){t.forEach((t=>{t.setAttribute("data-expand-base-hidden",t.hidden?"1":"0")}))}_isInitiallyCollapsed(t){const e=t.getAttribute("data-expand-collapsed");return null!==e?this._isTruthy(e):Boolean(this._params.collapsed)}_isEnabled(){return Boolean(this._params.enable)}_getIdAttr(){return String(this._params.idAttr||"data-expand-id").trim()||"data-expand-id"}_getParentAttr(){return String(this._params.parentAttr||"data-expand-parent-id").trim()||"data-expand-parent-id"}_getToggleSelector(){return String(this._params.toggleSelector||"[data-expand-toggle]").trim()||"[data-expand-toggle]"}_isTruthy(t){const e=String(t||"").toLowerCase().trim();return""!==e&&"0"!==e&&"false"!==e&&"off"!==e&&"no"!==e}},be=class{constructor(t={}){this._options=Object.assign({enabled:!0,debounceMs:300,inputSelector:"",param:"q",onSearch:null},t),this._input=null,this._timer=null,this._boundInput=this._handleInput.bind(this),this._boundKeyDown=this._handleKeyDown.bind(this)}init(){if(!this._options.enabled)return;const t=String(this._options.inputSelector||"").trim();if(!t)return;const e=ne(t);e&&(this._input=e,this._input.addEventListener("input",this._boundInput),this._input.addEventListener("keydown",this._boundKeyDown))}destroy(){this._input&&(this._input.removeEventListener("input",this._boundInput),this._input.removeEventListener("keydown",this._boundKeyDown),this._input=null,clearTimeout(this._timer),this._timer=null)}_handleInput(){clearTimeout(this._timer),this._timer=setTimeout((()=>{this._emit()}),ie(this._options.debounceMs,300))}_handleKeyDown(t){"Enter"===t.key&&(t.preventDefault(),clearTimeout(this._timer),this._emit())}_emit(){"function"==typeof this._options.onSearch&&this._input&&this._options.onSearch({value:this._input.value.trim(),param:String(this._options.param||"q")})}},ve=class{constructor(t={}){this._options=Object.assign({enabled:!0,formSelector:"",formNode:null,debounceMs:300,applyMode:"auto",button:{apply:"[data-filter-apply]",reset:"[data-filter-reset]"},fieldAttr:"data-filter-field",partAttr:"data-filter-part",typeAttr:"data-filter-type",valueAttr:"data-filter-value",operatorAttr:"data-filter-operator",defaultOperator:"eq",skipEmpty:!0,trimValues:!0,emitOnInit:!1,initialValues:{},onChange:null,onReset:null},t),this._form=null,this._timer=null,this._controls=[],this._boundInput=this._handleInput.bind(this),this._boundChange=this._handleChange.bind(this),this._boundClick=this._handleClick.bind(this),this._boundSubmit=this._handleSubmit.bind(this)}init(){if(!this._options.enabled)return;const t=this._resolveFormNode();t&&(this._form=t,this._syncCachedNodes(),this._form.addEventListener("input",this._boundInput),this._form.addEventListener("change",this._boundChange),this._form.addEventListener("click",this._boundClick),this._form.addEventListener("submit",this._boundSubmit),this.setValues(this._options.initialValues||{},{emit:!1}),this._options.emitOnInit&&this._emit())}destroy(){this._form&&(this._form.removeEventListener("input",this._boundInput),this._form.removeEventListener("change",this._boundChange),this._form.removeEventListener("click",this._boundClick),this._form.removeEventListener("submit",this._boundSubmit),this._form=null,clearTimeout(this._timer),this._timer=null,this._controls=[])}getState(){return this._collectState()}getValues(){return this._collectState().params}getFields(){const t=new Set;return this._getControls().forEach((e=>{const i=this._getField(e);i&&t.add(i)})),Array.from(t)}setValues(t={},e={}){this._form&&(this._getControls().forEach((e=>{const i=this._getField(e);if(!i)return;const s="operator"===this._getPart(e)?`${i}_op`:i,r=Object.prototype.hasOwnProperty.call(t,s)?t[s]:"";this._setControlValue(e,r)})),e.emit&&this._emit())}_resolveFormNode(){if(this._options.formNode&&1===this._options.formNode.nodeType)return this._options.formNode;const t=String(this._options.formSelector||"").trim();return t?ne(t):null}_handleInput(t){if(!this._isFilterControl(t.target))return;if(this._isManualMode())return;const e=String(t.target.type||"").toLowerCase();"checkbox"!==e&&"radio"!==e&&"SELECT"!==t.target.tagName?(clearTimeout(this._timer),this._timer=setTimeout((()=>this._emit()),ie(this._options.debounceMs,300))):this._emit()}_handleChange(t){this._isFilterControl(t.target)&&(this._isManualMode()||(clearTimeout(this._timer),this._emit()))}_handleClick(t){if(!this._form)return;const e=this._options.button||{},i=String(e.apply||"[data-filter-apply]").trim(),s=String(e.reset||"[data-filter-reset]").trim();if(i&&t.target.closest(i))return t.preventDefault(),clearTimeout(this._timer),void this._emit();s&&t.target.closest(s)&&(t.preventDefault(),this._reset(),"function"==typeof this._options.onReset&&this._options.onReset(),clearTimeout(this._timer),this._emit())}_handleSubmit(t){this._isManualMode()&&(t.preventDefault(),clearTimeout(this._timer),this._emit())}_emit(){this._form&&"function"==typeof this._options.onChange&&this._options.onChange(this._collectState())}_collectState(){const t=new Map;this._getControls().forEach((e=>{const i=this._getField(e);if(!i)return;t.has(i)||t.set(i,{field:i,type:this._getType(e),operator:this._getStaticOperator(e),value:"",values:[]});const s=t.get(i),r=this._getPart(e),n=this._readControlValue(e),a=String(e.type||"").toLowerCase();if("operator"!==r)if("type"!==r){if("checkbox"!==a&&"radio"!==a||""!==n)return Array.isArray(n)?(s.values=n.slice(),void(s.value=s.values.join(","))):void(s.value=n)}else s.type=String(n||"").trim()||s.type||"text";else s.operator=String(n||"").trim()||s.operator||this._getDefaultOperator()}));const e={},i={};return t.forEach(((t,s)=>{const r=this._normalizeFilterItem(t);r&&(e[s]=r,r.values.length>0?i[s]=r.values.slice():i[s]=r.value,r.operator&&(i[`${s}_op`]=r.operator))})),{filters:e,params:i,fields:Object.keys(e),meta:{count:Object.keys(e).length}}}_normalizeFilterItem(t){const e=String(t.type||"text").trim()||"text",i=String(t.operator||this._getDefaultOperator()).trim();let s=t.value,r=Array.isArray(t.values)?t.values.slice():[];if(this._options.trimValues&&("string"==typeof s&&(s=s.trim()),r=r.map((t=>String(t||"").trim())).filter((t=>""!==t))),this._options.skipEmpty){const t=0===r.length,e=null==s||""===String(s);if(t&&e)return null}return{field:String(t.field||"").trim(),type:e,operator:i,value:null==s?"":s,values:r}}_setControlValue(t,e){const i=String(t.type||"").toLowerCase();if("checkbox"!==i)if("radio"!==i)if("SELECT"===t.tagName&&t.multiple){const i=Array.isArray(e)?e:String(e||"").split(","),s=new Set(i.map((t=>String(t||"").trim())).filter((t=>""!==t)));Array.from(t.options||[]).forEach((t=>{t.selected=s.has(String(t.value||"").trim())}))}else t.value=String(e||"");else t.checked=String(t.value||"")===String(e||"");else{const i=String(e||"").toLowerCase();t.checked=i===String(t.value||"").toLowerCase()||"1"===i||"true"===i||"on"===i}}_readControlValue(t){if("SELECT"===t.tagName&&t.multiple)return Array.from(t.selectedOptions||[]).map((t=>String(t.value||"").trim())).filter((t=>""!==t));const e=String(t.type||"").toLowerCase();return"checkbox"===e?t.checked?t.value||"1":"":"radio"===e?t.checked&&t.value||"":String(t.value||"")}_syncCachedNodes(){if(!this._form)return void(this._controls=[]);const t=this._getFieldAttr();this._controls=Array.from(this._form.querySelectorAll(`[${t}]`)).filter((t=>this._isSupportedControl(t)))}_getControls(){return this._form?(Array.isArray(this._controls)&&0!==this._controls.length||this._syncCachedNodes(),this._controls):[]}_reset(){this._getControls().forEach((t=>{const e=String(t.type||"").toLowerCase();if("checkbox"!==e&&"radio"!==e)return"SELECT"===t.tagName?t.multiple?void Array.from(t.options||[]).forEach((t=>{t.selected=!1})):void(t.selectedIndex=0):void(t.value="");t.checked=!1}))}_getFieldAttr(){return String(this._options.fieldAttr||"data-filter-field").trim()||"data-filter-field"}_getPartAttr(){return String(this._options.partAttr||"data-filter-part").trim()||"data-filter-part"}_getTypeAttr(){return String(this._options.typeAttr||"data-filter-type").trim()||"data-filter-type"}_getValueAttr(){return String(this._options.valueAttr||"data-filter-value").trim()||"data-filter-value"}_getOperatorAttr(){return String(this._options.operatorAttr||"data-filter-operator").trim()||"data-filter-operator"}_getDefaultOperator(){return String(this._options.defaultOperator||"eq").trim()||"eq"}_getField(t){return String(t.getAttribute(this._getFieldAttr())||"").trim()}_getPart(t){const e=String(t.getAttribute(this._getPartAttr())||"value").toLowerCase().trim();return"operator"===e||"type"===e?e:"value"}_getType(t){return String(t.getAttribute(this._getTypeAttr())||"").toLowerCase().trim()||"text"}_getStaticOperator(t){return String(t.getAttribute(this._getOperatorAttr())||"").trim()||""}_isFilterControl(t){return Boolean(t&&this._isSupportedControl(t)&&"function"==typeof t.getAttribute&&""!==String(t.getAttribute(this._getFieldAttr())||"").trim())}_isSupportedControl(t){if(!t||"string"!=typeof t.tagName)return!1;const e=String(t.tagName||"").toUpperCase();return"INPUT"===e||"SELECT"===e||"TEXTAREA"===e}_isManualMode(){return"manual"===String(this._options.applyMode||"auto").toLowerCase().trim()}},ye="dynamicTable",we="vg."+ye,Se="vg-dynamic-table",Ce={init:"onInit",beforeload:"onBeforeLoad",dataloaded:"onDataLoaded",error:"onError",requestsuccess:"onRequestSuccess",requesterror:"onRequestError",staleresponse:"onStaleResponse",urlstateread:"onUrlStateRead",urlstatewrite:"onUrlStateWrite",urlstateerror:"onUrlStateError",emptyresult:"onEmptyResult",afterrender:"onAfterRender",statesync:"onStateSync",sortchange:"onSortChange",pagechange:"onPageChange",perpagechange:"onPerPageChange",search:"onSearch",filterschange:"onFiltersChange",reset:"onReset",export:"onExport",viewchange:"onViewChange",rowupdate:"onRowUpdate",rowupdateerror:"onRowUpdateError",bulkaction:"onBulkAction",rowdelete:"onRowDelete",rowcheck:"onRowCheck",checkall:"onCheckAll",selectionchange:"onSelectionChange",rowexpand:"onRowExpand",rowcollapse:"onRowCollapse",rowtoggle:"onRowToggle",rowreorder:"onRowReorder",rowreordererror:"onRowReorderError",columnreorder:"onColumnReorder",columnresize:"onColumnResize",columnfixed:"onColumnFixed"};class Ae extends t.A{constructor(t,e={}){super(t,e),this._params=this._getParams(t,(0,r._v)(me,e)),this._parent=null,this._tableViewport=null,this._pagination=null,this._rows=[],this._originalRows=[],this._requestToken=0,this._isRemote=!1,this._fields=[],this._isInitialized=!1,this._sortable=null,this._search=null,this._filters=null,this._sortState={field:"",dir:"asc",columnIndex:-1,sorts:[]},this._pageState={page:1,perPage:10},this._remoteParams={},this._activeFilters={},this._lastRemoteMeta={},this._liveRegion=null,this._summaryNode=null,this._panHintNode=null,this._cloneStickyState=null,this._boundPopState=this._handlePopState.bind(this),this._panState=null,this._boundPanHintResize=this._updatePanHintVisibility.bind(this),this._boundPanHintDismiss=this._handlePanHintDismiss.bind(this),this._boundCloneStickyResize=this._refreshStickyAndFixedLayout.bind(this),this._boundFixedColumnsScroll=this._syncFixedColumnsScroll.bind(this),this._fixedColumnsScrollBound=!1,this._fixedColumnsCellsCache=[],this._fixedColumnsSyncFrame=0,this._fixedColumnsLastScrollLeft=0,this._layoutResizeObserver=null,this._layoutRefreshFrame=0,this._layoutRefreshReasons=[],this._layoutRefreshScheduled=!1,this._requestAbortController=null,this._activeRemoteRequestId="",this._remotePageCache=new Map,this._fixedColumnsSuppressed=!1,this._searchInputCacheSelector="",this._searchInputCacheNode=null,this._filtersFormCacheSelector="",this._filtersFormCacheNode=null,this._filterParamKeysCache=null,this._columnReorderState={enabled:!1,fromIndex:-1,toIndex:-1,isDragging:!1},this._columnResizeState={enabled:!1,bound:!1,active:!1,index:-1,startX:0,startWidth:0,nextWidth:0,frame:0},this._virtualState={enabled:!1,bound:!1,lastPage:-1,lastPerPage:-1,start:0,end:0,page:-1,perPage:-1,frame:0,lastScrollTop:-1,rowHeight:44},this._virtualSpacers={top:null,bottom:null},this._boundVirtualScroll=this._handleVirtualScroll.bind(this),this._expandable=null}static get NAME(){return ye}static get NAME_KEY(){return we}static initAll(t={}){Array.from(s.A.findAll("[data-vg-table]")).forEach((e=>{(this.getInstance(e)||new this(e,t)).init()}))}_emitAction(t,e={}){const i=String(t||"").trim();if(!i)return;const s=Object.assign({action:i,table:this._element,isRemote:this._isRemote},e),r=this._params.callbacks||{},n=i.toLowerCase(),a=Ce[n]||"",o=a?r[a]:null;"function"==typeof o&&o(s,this);const l=this._params.events||{};if(void 0!==l.enable&&!Boolean(l.enable)||"undefined"==typeof window||"function"!=typeof window.CustomEvent)return;const d=`${String(l.prefix||"vgdt").trim()||"vgdt"}:${n}`,h=void 0===l.bubbles||Boolean(l.bubbles);this._element.dispatchEvent(new CustomEvent(d,{detail:s,bubbles:h}))}updateRemoteParams(t={},e={}){if(!this._isRemote)return;const i=!(!e||!Object.prototype.hasOwnProperty.call(e,"replace"))&&Boolean(e.replace),s=!e||!Object.prototype.hasOwnProperty.call(e,"reload")||Boolean(e.reload),r=!e||!Object.prototype.hasOwnProperty.call(e,"resetPage")||Boolean(e.resetPage),n=e&&"string"==typeof e.trigger?String(e.trigger).toLowerCase().trim():"",a=e&&e.filtersState&&"object"==typeof e.filtersState?this._normalizeFiltersEventState(e.filtersState):null,o=t&&"object"==typeof t?t:{},l=i?{}:Object.assign({},this._remoteParams);if(Object.keys(o).forEach((t=>{const e=o[t];if(Array.isArray(e)){const i=e.map((t=>String(t||"").trim())).filter((t=>""!==t));return i.length?void(l[t]=i):void delete l[t]}null!=e&&""!==e?l[t]=e:delete l[t]})),this._remoteParams=l,!s)return void this._syncUrlState();const d=this._pageState.perPage||this._normalizePositiveInt(this._params.pagination.perPage,10),h=r?1:this._pageState.page||1;this._pageState={page:h,perPage:d},this._loadRemotePage(h,d,null,{trigger:n,filtersState:a})}setLocale(t){const e=String(t||"").toLowerCase().trim()||"ru";return this._params.locale=e,this._writePersistentState("locale",e),e}setFiltersApplyMode(t){const e=this._normalizeFiltersApplyMode(t);return this._params.filters&&"object"==typeof this._params.filters||(this._params.filters={}),this._params.filters.apply=e,this._writePersistentState("filtersApplyMode",e),this._isInitialized&&this._isRemote&&this._initFilters(),e}_getViewsStorageKey(){const t=String(this._element.getAttribute("data-views-storage-key")||"").trim();if(t)return t;const e=this._params.views&&"object"==typeof this._params.views?this._params.views:{},i=e.storage&&"object"==typeof e.storage?e.storage:{};return String(i.key||viewsoptions.storageKey||"").trim()||`${this._getPerPageStorageKey()}:views`}_readViewsStorage(){try{const t=String(window.localStorage.getItem(this._getViewsStorageKey())||"").trim();if(!t)return{};const e=JSON.parse(t);return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}catch(t){return{}}}_writeViewsStorage(t){try{window.localStorage.setItem(this._getViewsStorageKey(),JSON.stringify(t||{}))}catch(t){}}_getHiddenFields(){return this._getHeaderCells().filter((t=>"1"===String(t.getAttribute("data-hidden")||""))).map((t=>String(t.getAttribute("data-field")||"").trim())).filter(Boolean)}_setFieldHidden(t,e){const i=String(t||"").trim();if(!i)return;const s=this._getHeaderCells(),r=s.findIndex((t=>String(t.getAttribute("data-field")||"").trim()===i));if(r<0)return;const n=[];this._element.tHead&&n.push(this._element.tHead),this._element.tBodies&&this._element.tBodies.length&&n.push(...Array.from(this._element.tBodies)),this._element.tFoot&&n.push(this._element.tFoot),n.forEach((t=>{Array.from(t.rows||[]).forEach((t=>{const i=t.cells&&t.cells[r]?t.cells[r]:null;i&&(i.style.display=e?"none":"",e?i.setAttribute("data-hidden","1"):i.removeAttribute("data-hidden"))}))}));const a=s[r];a&&(e?a.setAttribute("data-hidden","1"):a.removeAttribute("data-hidden"))}getCurrentViewState(){return{filters:Object.assign({},this._remoteParams||{}),sorts:this._getNormalizedSorts(this._sortState.sorts||[]),perPage:this._pageState.perPage||this._getInitialPerPage(),columnOrder:this._getCurrentColumnOrder(),hiddenFields:this._getHiddenFields()}}listViews(){return Object.keys(this._readViewsStorage()).sort()}saveView(t){const e=String(t||"").trim();if(!e)return!1;const i=this._readViewsStorage();return i[e]=this.getCurrentViewState(),this._writeViewsStorage(i),this._emitAction("viewchange",{mode:"save",name:e,state:i[e]}),!0}applyView(t){const e=String(t||"").trim();if(!e)return!1;const i=this._readViewsStorage()[e];if(!i||"object"!=typeof i)return!1;(Array.isArray(i.columnOrder)?i.columnOrder.filter(Boolean):[]).forEach(((t,e)=>{const i=this._findHeaderIndexByField(t);i<0||i===e||this._moveColumn(i,e)}));const s=Array.isArray(i.hiddenFields)?i.hiddenFields:[],r=new Set(s.map((t=>String(t||"").trim())).filter(Boolean));this._getCurrentColumnOrder().forEach((t=>{this._setFieldHidden(t,r.has(t))}));const n=this._getNormalizedSorts(i.sorts||[]);this._sortable&&this._sortable.setState({sorts:n});const a=n[0]||null;this._sortState=Object.assign({},this._sortState,{field:a?a.field:"",dir:a?a.dir:"asc",sorts:n});const o=this._clampPerPage(i.perPage,this._getInitialPerPage());if(this._pagination&&this._pagination.setMeta({page:1,perPage:o,totalPages:this._isRemote?this._normalizePositiveInt(this._lastRemoteMeta.pages,1):this._getTotalPages(o)}),this._pageState={page:1,perPage:o},this._isRemote){this._remoteParams=i.filters&&"object"==typeof i.filters?Object.assign({},i.filters):{},this._filters&&"function"==typeof this._filters.setValues&&this._filters.setValues(this._getInitialFilterValues(),{emit:!1});const t=this._getFiltersRequestMetaIfActive();this._loadRemotePage(1,o,null,t)}else this._renderPageRows(1,o);return this._afterColumnReorder(),this._emitAction("viewchange",{mode:"apply",name:e,state:i}),!0}deleteView(t){const e=String(t||"").trim();if(!e)return!1;const i=this._readViewsStorage();return!!Object.prototype.hasOwnProperty.call(i,e)&&(delete i[e],this._writeViewsStorage(i),this._emitAction("viewchange",{mode:"delete",name:e}),!0)}init(){if(this._isInitialized)return;const t=this._element.parentElement,e=this._element.closest(`.${Se}`);if(e&&e.contains(this._element))this._parent=e,this._parent&&(this._parent.classList.add(Se),this._moveTableClassesToWrapper(this._parent));else{const t=document.createElement("div");t.className=Se,this._moveTableClassesToWrapper(t),this._element.parentNode.insertBefore(t,this._element),t.appendChild(this._element),this._parent=t}if(!this._parent)return;this._ensureTableViewport(t),this._bindViewportPan(),this._restorePersistentState(),this._ensureLiveRegion(),this._ensureSummaryNode(),this._ensurePanHintNode(),this._applyFooterVisibility();const i=Boolean(this._params.sortable&&this._params.sortable.enable),s=this._isPaginationEnabled(),r=this._isCloneStickyHeaderEnabled(),n=!r&&this._isStickyHeaderEnabled();this._element.classList.toggle("table-sortable",i),this._element.classList.toggle("table-pagination",s),this._element.classList.toggle("table-sticky-head",n),this._element.classList.toggle("table-sticky-clone",r),this._parent.classList.toggle("table-sortable",i),this._parent.classList.toggle("table-pagination",s),this._parent.classList.toggle("table-sticky-head",n),this._parent.classList.toggle("table-sticky-clone",r),this._applyStickyHeader(n),this._applyCloneStickyHeader(r);const a=this._getRoute();if(this._isRemote=Boolean(a),this._fields=this._getFields(),this._sortState=this._getInitialSortState(),this._remoteParams=this._getInitialRemoteParams(),this._isInitialized=!0,this._isRemote||(this._rows=this._getTableRows(),this._originalRows=this._rows.slice()),this._initSorting(),this._initColumnReorder(),this._initColumnResize(),this._initExpandable(),this._initSearch(),this._initFilters(),this._bindTableStateActions(),this._bindPopState(),this._refreshStickyAndFixedLayout(),s)return this.setPagination(),void this._emitAction("init",{page:this._pageState.page,perPage:this._pageState.perPage});if(this._isRemote){const t=this._getInitialPage(),e=this._getInitialPerPage();this._pageState={page:t,perPage:e};const i=this._getFiltersRequestMetaIfActive();this._loadRemotePage(t,e,null,i)}else this._renderFooterFromCurrentState(),this._refreshExpandable();this._emitAction("init",{page:this._pageState.page,perPage:this._pageState.perPage})}setPagination(){if(this._isRemote)return void this._setRemotePagination();this._rows=this._getTableRows(),this._originalRows.length||(this._originalRows=this._rows.slice());const t=this._getInitialPage(),e=this._getInitialPerPage(),i=this._getTotalPages(e),s=Math.min(t,i);this._pageState={page:s,perPage:e};const r=this._params.pagination.onChange,n=this._params.pagination.onPerPageChange,a=this._getI18nSection("pagination"),o=Object.assign({},this._params.pagination,a,{page:s,perPage:e,maxPerPage:this._getMaxPerPage(),totalPages:i,onChange:t=>{const e=this._getTotalPages(t.perPage),i=Math.min(t.page,e);this._pageState={page:i,perPage:t.perPage},this._storePage(i),this._storePerPage(t.perPage),this._renderPageRows(i,t.perPage),this._pagination.setMeta({page:i,perPage:t.perPage,totalPages:e}),"ellipsis"!==t.source&&this._scrollToPaginationTop(),this._syncUrlState(),"function"==typeof r&&r(Object.assign({},t,{page:i,totalPages:e})),this._emitAction("pagechange",{page:i,perPage:t.perPage,totalPages:e,source:"local"})},onPerPageChange:t=>{"function"==typeof n&&n(t),this._emitAction("perpagechange",Object.assign({},t,{source:"local"}))}}),l=new pe(this._parent,o);l.init(),this._pagination=l,this._renderPageRows(s,e),this._renderFooterFromCurrentState()}_setRemotePagination(){const t=this._getInitialPage(),e=this._getInitialPerPage();this._pageState={page:t,perPage:e};const i=this._params.pagination.onChange,s=this._params.pagination.onPerPageChange,r=this._getI18nSection("pagination"),n=Object.assign({},this._params.pagination,r,{page:t,perPage:e,maxPerPage:this._getMaxPerPage(),totalPages:1,onChange:async t=>{this._pageState={page:t.page,perPage:t.perPage},this._storePage(t.page),this._storePerPage(t.perPage),"ellipsis"!==t.source&&this._scrollToPaginationTop(),await this._loadRemotePage(t.page,t.perPage,i);const e=this._normalizePositiveInt(this._lastRemoteMeta.pages,1);this._emitAction("pagechange",{page:t.page,perPage:t.perPage,totalPages:e,source:"remote"})},onPerPageChange:t=>{"function"==typeof s&&s(t),this._emitAction("perpagechange",Object.assign({},t,{source:"remote"}))}}),a=new pe(this._parent,n);a.init(),this._pagination=a;const o=this._getFiltersRequestMetaIfActive();this._loadRemotePage(t,e,null,o)}_getTableRows(){const t=this._element.tBodies&&this._element.tBodies[0];return t?Array.from(t.rows).filter((t=>"1"!==String(t.getAttribute("data-virtual-spacer")||""))):[]}_getTotalPages(t){return this._rows.length?Math.max(1,Math.ceil(this._rows.length/t)):1}_renderPageRows(t,e){if(!this._rows.length)return;const i=this._isVirtualEnabled(),s=(t-1)*e,r=s+e;this._rows.forEach(((t,e)=>{t.hidden=e<s||e>=r})),i?(this._virtualState.lastPage=t,this._virtualState.lastPerPage=e,this._applyVirtualWindow(t,e)):this._teardownVirtualWindow(),this._refreshExpandable(),this._renderFooterFromCurrentState(),this._refreshStickyAndFixedLayout()}_isVirtualEnabled(){const t=this._params.virtual||{},e=this._element.getAttribute("data-virtual-enable");if(!(null!==e?this._isTruthy(e):Boolean(t.enable)))return!1;const i=this._element.getAttribute("data-virtual-threshold"),s=this._normalizePositiveInt(null!==i?i:t.threshold,500);return this._rows.length>=s}_initVirtualization(){this._tableViewport&&!this._virtualState.bound&&(this._tableViewport.addEventListener("scroll",this._boundVirtualScroll,{passive:!0}),this._virtualState.bound=!0)}_teardownVirtualizationBinding(){this._tableViewport&&this._virtualState.bound&&(this._tableViewport.removeEventListener("scroll",this._boundVirtualScroll),this._virtualState.bound=!1)}_handleVirtualScroll(){if(!this._isVirtualEnabled())return;if(this._virtualState.lastPage<=0||this._virtualState.lastPerPage<=0)return;const t=this._tableViewport&&this._tableViewport.scrollTop||0;t===this._virtualState.lastScrollTop&&0===this._virtualState.frame||(this._virtualState.lastScrollTop=t,this._virtualState.frame||("undefined"!=typeof window&&"function"==typeof window.requestAnimationFrame?this._virtualState.frame=window.requestAnimationFrame((()=>{this._virtualState.frame=0,this._applyVirtualWindow(this._virtualState.lastPage,this._virtualState.lastPerPage)})):this._applyVirtualWindow(this._virtualState.lastPage,this._virtualState.lastPerPage)))}_applyVirtualWindow(t,e){if(!this._isVirtualEnabled()||!this._tableViewport)return void this._teardownVirtualWindow();this._initVirtualization();const i=this._getBody();if(!i)return void this._teardownVirtualWindow();const s=this._params.virtual||{},r=this._resolveVirtualRowHeight(t,e,s),n=this._element.getAttribute("data-virtual-overscan"),a=Math.max(0,this._normalizePositiveInt(null!==n?n:s.overscan,8)),o=Math.max(1,Math.ceil((this._tableViewport.clientHeight||0)/r)),l=(t-1)*e,d=Math.min(l+e,this._rows.length),h=Math.floor((this._tableViewport.scrollTop||0)/r),c=Math.max(l,l+h-a),u=Math.min(d,l+h+o+a),_=Math.max(0,(c-l)*r),m=Math.max(0,(d-u)*r);if(this._virtualState.start===c&&this._virtualState.end===u&&this._virtualState.page===t&&this._virtualState.perPage===e)return void this._syncVirtualSpacers(i,c,u,_,m);const p=this._virtualState.page===t&&this._virtualState.perPage===e,g=this._virtualState.start,f=this._virtualState.end,b=p?Math.max(l,Math.min(g,c)):l,v=p?Math.min(d,Math.max(f,u)):d;for(let t=b;t<v;t+=1){const e=this._rows[t];e&&(e.hidden=t<c||t>=u)}this._syncVirtualSpacers(i,c,u,_,m),this._virtualState.start=c,this._virtualState.end=u,this._virtualState.page=t,this._virtualState.perPage=e,this._virtualState.rowHeight=r}_resolveVirtualRowHeight(t,e,i={}){const s=this._element.getAttribute("data-virtual-row-height");if(null!==s&&""!==String(s).trim())return Math.max(24,this._normalizePositiveInt(s,44));const r=this._normalizePositiveInt(i.rowheight,0),n=Math.max(0,(t-1)*e),a=Math.min(n+e,this._rows.length),o=this._measureVirtualRowHeight(n,a);if(o>0)return o;if(r>0)return Math.max(24,r);const l=this._normalizePositiveInt(this._virtualState.rowHeight,44);return Math.max(24,l)}_measureVirtualRowHeight(t,e){const i=[];for(let s=t;s<e;s+=1){const t=this._rows[s];if(!t||t.hidden)continue;const e=t.getBoundingClientRect(),r=Math.round(e&&e.height?e.height:0);if(r>0&&i.push(r),i.length>=6)break}if(!i.length)return 0;const s=i.reduce(((t,e)=>t+e),0);return Math.max(24,Math.round(s/i.length))}_syncVirtualSpacers(t,e,i,s,r){const n=this._getRenderedColumnsCount(),a=this._ensureVirtualSpacer("top",n),o=this._ensureVirtualSpacer("bottom",n),l=this._rows[e]||null,d=this._rows[i]||null;this._updateVirtualSpacer(a,s,n),this._updateVirtualSpacer(o,r,n),l?t.insertBefore(a,l):a.parentElement||t.appendChild(a),d?t.insertBefore(o,d):t.appendChild(o)}_ensureVirtualSpacer(t,e){const i=this._virtualSpacers&&this._virtualSpacers[t]?this._virtualSpacers[t]:null;if(i&&i.isConnected)return this._syncVirtualSpacerColumns(i,e),i;const s=document.createElement("tr");s.setAttribute("data-virtual-spacer","1"),s.setAttribute("data-virtual-spacer-position",t),s.setAttribute("data-group-header","1"),s.setAttribute("aria-hidden","true");const r=document.createElement("td");return r.setAttribute("data-virtual-spacer-cell","1"),r.colSpan=Math.max(1,e),s.appendChild(r),this._virtualSpacers[t]=s,s}_syncVirtualSpacerColumns(t,e){t&&t.cells&&t.cells[0]&&(t.cells[0].colSpan=Math.max(1,e))}_updateVirtualSpacer(t,e,i){if(!t||!t.cells||!t.cells[0])return;const s=Math.max(0,Math.round(e));this._syncVirtualSpacerColumns(t,i),t.cells[0].style.height=`${s}px`,t.hidden=s<=0}_teardownVirtualWindow(){this._teardownVirtualizationBinding(),this._virtualState.frame&&"undefined"!=typeof window&&"function"==typeof window.cancelAnimationFrame&&window.cancelAnimationFrame(this._virtualState.frame),this._virtualState.start=0,this._virtualState.end=0,this._virtualState.page=-1,this._virtualState.perPage=-1,this._virtualState.frame=0,this._virtualState.lastScrollTop=-1,Object.keys(this._virtualSpacers||{}).forEach((t=>{const e=this._virtualSpacers[t];e&&e.parentElement&&e.parentElement.removeChild(e)}))}_normalizePositiveInt(t,e){const i=Number.parseInt(t,10);return Number.isFinite(i)&&i>0?i:e}_getRoute(){const t=this._params.request||{},e=this._element.getAttribute("data-request-route");return String(t.route||e||"").trim()||this._getFiltersRoute()}_restorePersistentState(){const t=this._readPersistentState("locale");t&&(this._params.locale=String(t).toLowerCase().trim());const e=this._readPersistentState("filtersApplyMode");e&&(this._params.filters&&"object"==typeof this._params.filters||(this._params.filters={}),this._params.filters.apply=this._normalizeFiltersApplyMode(e))}_isPersistenceEnabled(t){const e=this._params.persistence||{},i=this._element.getAttribute("data-persistence-enable");if(!(null!==i?this._isTruthy(i):Boolean(e.enable)))return!1;const s={locale:"data-persistence-locale",filtersApplyMode:"data-persistence-filters-apply-mode"}[t];if(s){const t=this._element.getAttribute(s);if(null!==t)return this._isTruthy(t)}return Boolean(e[t])}_getPersistenceStorageKey(t){const e=this._params.persistence||{};return`${String(e.storageKey||this._element.getAttribute("data-persistence-storage-key")||"").trim()||this._getPerPageStorageKey().replace("perPage","state")}:${t}`}_readPersistentState(t){if(!this._isPersistenceEnabled(t))return"";try{return String(window.localStorage.getItem(this._getPersistenceStorageKey(t))||"")}catch(t){return""}}_writePersistentState(t,e){if(this._isPersistenceEnabled(t))try{window.localStorage.setItem(this._getPersistenceStorageKey(t),String(e??""))}catch(t){}}_isTruthy(t){const e=String(t).toLowerCase().trim();return"false"!==e&&"0"!==e&&""!==e}_getFields(){const t=Array.from(this._element.querySelectorAll("thead th[data-field]")).map((t=>(t.getAttribute("data-field")||"").trim())).filter(Boolean);return t.length?t:["sku","name","category","price","stock","rating"]}_getBody(){if(this._element.tBodies&&this._element.tBodies[0])return this._element.tBodies[0];const t=document.createElement("tbody");return this._element.appendChild(t),t}_getRemoteResponseMode(){const t=this._params.request||{},e=this._element.getAttribute("data-request-responsemode"),i=null!==e?e:t.responsemode,s=String(i||"data").toLowerCase().trim();return"view"===s||"auto"===s?s:"data"}_getRemoteViewParamName(){const t=this._params.request||{},e=this._element.getAttribute("data-request-viewparam"),i=null!==e?e:t.viewparam;return String(i||"").trim()||""}_getRemoteViewParamValue(){const t=this._params.request||{},e=this._element.getAttribute("data-request-viewvalue"),i=null!==e?e:t.viewvalue;return String(i||"").trim()||""}_getRemoteFieldsParamName(){const t=this._params.request||{},e=this._element.getAttribute("data-request-fieldsparam"),i=null!==e?e:t.fieldsparam;return String(i||"").trim()||""}_getRemoteDataRoute(){return this._getFiltersRoute()||this._getRoute()}_getRequestParamMap(){const t=(this._params.request||{}).parammap;if(t&&"object"==typeof t&&!Array.isArray(t))return t;const e=this._element.getAttribute("data-request-parammap")||"";if(!e)return{};try{const t=JSON.parse(e);if(t&&"object"==typeof t&&!Array.isArray(t))return t}catch(t){return{}}return{}}_mapRemoteRequestParams(t={}){const e=this._getRequestParamMap(),i={};return Object.keys(t||{}).forEach((s=>{const r=Object.prototype.hasOwnProperty.call(e,s)?String(e[s]||"").trim():s;i[r||s]=t[s]})),i}_getRequestPath(t){const e=this._params.request||{};if("data"===t){const t=this._element.getAttribute("data-request-datapath"),i=null!==t?t:e.datapath;return String(i||"").trim()}if("meta"===t){const t=this._element.getAttribute("data-request-metapath"),i=null!==t?t:e.metapath;return String(i||"").trim()}if("view"===t){const t=this._element.getAttribute("data-request-viewpath"),i=null!==t?t:e.viewpath;return String(i||"").trim()}return""}_readPath(t,e){if(!t||"object"!=typeof t)return;const i=String(e||"").trim();if(!i)return;const s=i.split(".").map((t=>String(t||"").trim())).filter(Boolean);if(!s.length)return;let r=t;for(let t=0;t<s.length;t+=1){if(!r||"object"!=typeof r||!Object.prototype.hasOwnProperty.call(r,s[t]))return;r=r[s[t]]}return r}_extractRemoteRows(t){const e=this._readPath(t,this._getRequestPath("data"));return Array.isArray(e)?e:Array.isArray(t&&t.data)?t.data:[]}_extractRemoteMeta(t){const e=this._readPath(t,this._getRequestPath("meta"));return e&&"object"==typeof e&&!Array.isArray(e)?e:t&&"object"==typeof t&&t.meta&&"object"==typeof t.meta?t.meta:{}}_extractRemoteViewRowsHtml(t){if(!t||"object"!=typeof t)return"";const e=this._readPath(t,this._getRequestPath("view"));if("string"==typeof e)return e;if("string"==typeof t.view)return t.view;const i=t.view&&"object"==typeof t.view?t.view:null;return i&&"string"==typeof i.tbody?i.tbody:i&&"string"==typeof i.rows?i.rows:"string"==typeof t.tbody?t.tbody:""}_renderRemoteViewIfConfigured(t,e){const i=this._getRemoteResponseMode(),s="string"==typeof t&&""!==t.trim();if(!("view"===i||"auto"===i&&s))return!1;if(!s){if(Array.isArray(e)&&e.length)return!1;const t=this._getTableMessage("stateEmpty","Ничего нет");return this._renderStateRow(t,"empty"),!0}const r=this._getBody();return r.innerHTML=t,this._hasRenderableRowsInBody(r)?(this._setFixedColumnsSuppressed(!1),this._clearStateMode(),!0):(this._renderStateRow(this._getTableMessage("stateEmpty","Ничего нет"),"empty"),!0)}_initSorting(){const t=this._params.sortable||{};if(!t.enable)return;const e=this._getI18nSection("sortable"),i=this._element.getAttribute("data-sort-multi"),s=null===i?Boolean(t.multi):"false"!==String(i).toLowerCase().trim(),r=this._element.getAttribute("data-sort-multi-with-shift"),n=null===r?void 0===t.multiWithShift||Boolean(t.multiWithShift):"false"!==String(r).toLowerCase().trim(),a=this._element.getAttribute("data-sort-hide-unsorted-arrows"),o=null===a?Boolean(t.hideUnsortedArrows):"false"!==String(a).toLowerCase().trim();this._sortable=new ge(this._element,{initialField:this._sortState.field,initialDir:this._sortState.dir,ascLabel:e.ascLabel,descLabel:e.descLabel,multiSort:s,multiSortWithShift:n,hideUnsortedArrows:o,isColumnSortable:(e,i)=>!!this._isHeaderSortableByConfig(e,i,t)&&("function"!=typeof t.isColumnSortable||Boolean(t.isColumnSortable(e))),onChange:t=>this._handleSortChange(t)}),this._sortable.init(),this._sortState.sorts&&this._sortState.sorts.length&&this._sortable.setState({sorts:this._sortState.sorts}),this._refreshStickyAndFixedLayout()}_initColumnReorder(){const t=this._isColumnReorderEnabled();this._columnReorderState.enabled=t,t&&(this._applyStoredColumnOrder(),this._syncColumnReorderHeaders(),this._bindColumnReorder())}_initColumnResize(){const t=this._isColumnResizeEnabled();this._columnResizeState.enabled=t,t&&(this._syncColumnResizeHeaders(),this._bindColumnResize())}_initExpandable(){if(!this._isExpandableEnabled())return this._expandable&&"function"==typeof this._expandable.destroy&&this._expandable.destroy(),void(this._expandable=null);const t=this._getExpandableConfig();this._expandable&&"function"==typeof this._expandable.destroy&&this._expandable.destroy(),this._expandable=new fe(this._element,Object.assign({},t,{onToggle:t=>{this._emitAction("rowtoggle",t),this._emitAction(t.collapsed?"rowcollapse":"rowexpand",t),this._renderFooterFromCurrentState(),this._refreshStickyAndFixedLayout()}})),this._expandable.init()}_refreshExpandable(){this._expandable&&"function"==typeof this._expandable.refresh&&this._expandable.refresh()}_isExpandableEnabled(){const t=this._params.expandable||{},e=this._element.getAttribute("data-expandable-enable");return null!==e?this._isTruthy(e):Boolean(t.enable)}_getExpandableConfig(){const t=this._params.expandable||{},e=this._element.getAttribute("data-expandable-id-attr"),i=this._element.getAttribute("data-expandable-parent-attr"),s=this._element.getAttribute("data-expandable-toggle-selector"),r=this._element.getAttribute("data-expandable-collapsed");return{enable:!0,idAttr:String(null!==e?e:t.idAttr||"data-expand-id").trim()||"data-expand-id",parentAttr:String(null!==i?i:t.parentAttr||"data-expand-parent-id").trim()||"data-expand-parent-id",toggleSelector:String(null!==s?s:t.toggleSelector||"[data-expand-toggle]").trim()||"[data-expand-toggle]",collapsed:null!==r?this._isTruthy(r):Boolean(t.collapsed)}}_isColumnResizeEnabled(){const t=this._params.columnResize||{},e=this._element.getAttribute("data-column-resize-enable");return null!==e?this._isTruthy(e):Boolean(t.enable)}_syncColumnResizeHeaders(){this._getHeaderCells().forEach((t=>{if(!t.querySelector("[data-col-resize-handle]")){const e=document.createElement("span");e.className="vgdt-col-resize-handle",e.setAttribute("data-col-resize-handle","1"),e.setAttribute("role","separator"),e.setAttribute("aria-hidden","true"),t.appendChild(e)}t.setAttribute("data-col-resize","1")}))}_bindColumnResize(){if(this._columnResizeState.bound)return;const t=this._columnResizeState;t.onMouseDown=e=>{const i=e.target&&e.target.closest?e.target.closest("[data-col-resize-handle]"):null;if(!i)return;const s=i.closest("th"),r=this._findHeaderIndex(s);r<0||(e.preventDefault(),t.active=!0,t.index=r,t.startX=e.clientX,t.startWidth=Math.max(1,s.getBoundingClientRect().width||s.offsetWidth||1),this._element.classList.add("is-col-resizing"))},t.onMouseMove=e=>{if(!t.active||t.index<0)return;const i=this._params.columnResize||{},s=Math.max(40,this._normalizePositiveInt(i.minwidth,80)),r=Math.max(s,this._normalizePositiveInt(i.maxwidth,600));t.nextWidth=Math.min(r,Math.max(s,Math.round(t.startWidth+(e.clientX-t.startX)))),t.frame||("undefined"!=typeof window&&"function"==typeof window.requestAnimationFrame?t.frame=window.requestAnimationFrame((()=>{t.frame=0,!t.active||t.index<0||this._applyColumnWidth(t.index,t.nextWidth)})):this._applyColumnWidth(t.index,t.nextWidth))},t.onMouseUp=()=>{t.active&&(t.frame&&"undefined"!=typeof window&&"function"==typeof window.cancelAnimationFrame&&(window.cancelAnimationFrame(t.frame),t.frame=0),t.index>=0&&t.nextWidth>0&&this._applyColumnWidth(t.index,t.nextWidth),t.active=!1,t.index=-1,t.nextWidth=0,this._element.classList.remove("is-col-resizing"),this._refreshStickyAndFixedLayout(),this._emitAction("columnresize",{}))},this._element.addEventListener("mousedown",t.onMouseDown),document.addEventListener("mousemove",t.onMouseMove),document.addEventListener("mouseup",t.onMouseUp),t.bound=!0}_applyColumnWidth(t,e){const i=[];this._element.tHead&&i.push(this._element.tHead),this._element.tBodies&&this._element.tBodies.length&&i.push(...Array.from(this._element.tBodies)),this._element.tFoot&&i.push(this._element.tFoot),i.forEach((i=>{Array.from(i.rows||[]).forEach((i=>{const s=i.cells&&i.cells[t]?i.cells[t]:null;s&&(s.style.width=`${e}px`,s.style.minWidth=`${e}px`,s.style.maxWidth=`${e}px`)}))}))}_isColumnReorderEnabled(){const t=this._params.columnReorder||{},e=this._element.getAttribute("data-column-reorder-enable");if(null!==e){const t=String(e).toLowerCase().trim();return"false"!==t&&"0"!==t}return Boolean(t.enable)}_isColumnReorderPersistEnabled(){const t=this._params.columnReorder||{},e=this._element.getAttribute("data-column-reorder-persist");if(null!==e){const t=String(e).toLowerCase().trim();return"false"!==t&&"0"!==t}return Boolean(t.persist)}_getColumnReorderStorageKey(){const t=this._params.columnReorder||{},e=this._element.getAttribute("data-column-reorder-storage-key")||"";return String(t.storageKey||e).trim()||`${this._getPerPageStorageKey()}:columnOrder`}_bindColumnReorder(){this._columnReorderState.bound||(this._columnReorderState.onDragStart=t=>{const e=t.target&&t.target.closest?t.target.closest('th[data-col-reorder="1"]'):null;if(!e||!this._element.contains(e))return;if(this._isHeaderFixedForColumnReorder(e))return;const i=this._findHeaderIndex(e);if(!(i<0)&&(this._columnReorderState.fromIndex=i,this._columnReorderState.toIndex=i,this._columnReorderState.isDragging=!0,this._element.classList.add("is-col-dragging"),e.setAttribute("data-col-dragging","1"),t.dataTransfer)){t.dataTransfer.effectAllowed="move";try{t.dataTransfer.setData("text/plain",String(i))}catch(t){}}},this._columnReorderState.onDragOver=t=>{if(!this._columnReorderState.isDragging)return;const e=t.target&&t.target.closest?t.target.closest('th[data-col-reorder="1"]'):null;if(!e||!this._element.contains(e))return;if(this._isHeaderFixedForColumnReorder(e))return;t.preventDefault();const i=this._findHeaderIndex(e);i<0||(this._columnReorderState.toIndex=i,this._syncColumnDragOverMarker(i))},this._columnReorderState.onDrop=t=>{if(!this._columnReorderState.isDragging)return;t.preventDefault();const e=t.target&&t.target.closest?t.target.closest('th[data-col-reorder="1"]'):null;if(!e||!this._element.contains(e))return;if(this._isHeaderFixedForColumnReorder(e))return void this._resetColumnDragMarkers();const i=this._findHeaderIndex(e);if(i<0)return;const s=this._columnReorderState.fromIndex;this._resetColumnDragMarkers(),this._finalizeColumnReorder(s,i)},this._columnReorderState.onDragEnd=()=>{this._resetColumnDragMarkers()},this._element.addEventListener("dragstart",this._columnReorderState.onDragStart),this._element.addEventListener("dragover",this._columnReorderState.onDragOver),this._element.addEventListener("drop",this._columnReorderState.onDrop),this._element.addEventListener("dragend",this._columnReorderState.onDragEnd),this._columnReorderState.bound=!0)}_syncColumnReorderHeaders(){this._columnReorderState.enabled&&this._getHeaderCells().forEach((t=>{t.setAttribute("data-col-reorder","1");const e=this._isHeaderFixedForColumnReorder(t)?"false":"true";t.setAttribute("draggable",e)}))}_syncColumnDragOverMarker(t){this._getHeaderCells().forEach(((e,i)=>{i===t?e.setAttribute("data-col-drag-over","1"):e.removeAttribute("data-col-drag-over")})),(this._cloneStickyState&&this._cloneStickyState.head?Array.from(this._cloneStickyState.head.querySelectorAll("th")):[]).forEach(((e,i)=>{i===t?e.setAttribute("data-col-drag-over","1"):e.removeAttribute("data-col-drag-over")}))}_resetColumnDragMarkers(){this._getHeaderCells().forEach((t=>{t.removeAttribute("data-col-drag-over"),t.removeAttribute("data-col-dragging")})),(this._cloneStickyState&&this._cloneStickyState.head?Array.from(this._cloneStickyState.head.querySelectorAll("th")):[]).forEach((t=>{t.removeAttribute("data-col-drag-over"),t.removeAttribute("data-col-dragging")})),this._columnReorderState.fromIndex=-1,this._columnReorderState.toIndex=-1,this._columnReorderState.isDragging=!1,this._element.classList.remove("is-col-dragging")}_finalizeColumnReorder(t,e){!Number.isInteger(t)||!Number.isInteger(e)||t<0||e<0||t===e||(this._moveColumn(t,e),this._normalizeFixedColumnsOrder(),this._afterColumnReorder())}_moveColumn(t,e){const i=[];this._element.tHead&&i.push(this._element.tHead),this._element.tBodies&&this._element.tBodies.length&&i.push(...Array.from(this._element.tBodies)),this._element.tFoot&&i.push(this._element.tFoot),i.forEach((i=>{Array.from(i.rows||[]).forEach((i=>{const s=Array.from(i.cells||[]);if(t<0||t>=s.length||e<0||e>=s.length)return;const r=s[t],n=t<e?s[e].nextSibling:s[e];i.insertBefore(r,n||null)}))}))}_afterColumnReorder(){this._fields=this._getFields();const t=this._getNormalizedSorts(this._sortState.sorts||[]),e=t[0]||null;this._sortState={field:e?e.field:"",dir:e?e.dir:this._normalizeSortDir(this._sortState.dir),columnIndex:e?e.columnIndex:-1,sorts:t},this._sortable&&"function"==typeof this._sortable.refresh&&this._sortable.refresh({sorts:t}),this._syncColumnReorderHeaders(),this._refreshStickyAndFixedLayout(),this._syncUrlState(),this._storeColumnOrder();const i=this._getCurrentColumnOrder();this._emitAction("columnreorder",{order:i})}_getCurrentColumnOrder(){return this._getHeaderCells().map((t=>String(t.getAttribute("data-field")||"").trim())).filter(Boolean)}_storeColumnOrder(){if(!this._isColumnReorderPersistEnabled())return;const t=this._getCurrentColumnOrder();if(t.length)try{window.localStorage.setItem(this._getColumnReorderStorageKey(),t.join(","))}catch(t){}}_readStoredColumnOrder(){if(!this._isColumnReorderPersistEnabled())return[];try{const t=String(window.localStorage.getItem(this._getColumnReorderStorageKey())||"").trim();return t?t.split(",").map((t=>t.trim())).filter(Boolean):[]}catch(t){return[]}}_applyStoredColumnOrder(){const t=this._readStoredColumnOrder();if(!t.length)return;let e=!1;t.forEach(((t,i)=>{const s=this._findHeaderIndexByField(t);s<0||s===i||(this._moveColumn(s,i),e=!0)})),this._normalizeFixedColumnsOrder()&&(e=!0),e&&this._afterColumnReorder()}_isHeaderFixedForColumnReorder(t){if(!t)return!1;const e=String(t.getAttribute("data-fixed-side")||"").toLowerCase().trim();if("left"===e||"right"===e)return!0;const i=String(t.getAttribute("data-fixed")||"").toLowerCase().trim(),s=String(t.getAttribute("data-fixed-column")||"").toLowerCase().trim();if("left"===i||"right"===i||"left"===s||"right"===s)return!0;const r=this._findHeaderIndex(t);if(r<0)return!1;const n=this._getFixedColumnsByHeaders(this._getHeaderCells(),{parseTableAttr:!0,fallbackByPosition:!0});return n.left.includes(r)||n.right.includes(r)}_normalizeFixedColumnsOrder(){const t=this._getHeaderCells();if(!t.length)return!1;const e=this._getFixedColumnsByHeaders(t,{parseTableAttr:!0,fallbackByPosition:!0});if(!e.left.length&&!e.right.length)return!1;const i=e.left.map((e=>t[e])).filter(Boolean),s=e.right.map((e=>t[e])).filter(Boolean);let r=!1,n=0;i.forEach((t=>{const e=this._findHeaderIndex(t);e>=0&&e!==n&&(this._moveColumn(e,n),r=!0),n+=1}));let a=this._getHeaderCells().length-1;for(let t=s.length-1;t>=0;t-=1){const e=s[t],i=this._findHeaderIndex(e);i>=0&&i!==a&&(this._moveColumn(i,a),r=!0),a-=1}return r}_initSearch(){if(!this._isRemote)return;const t=this._params.search||{};if(!this._isSearchEnabled())return;const e=this._getSearchInputSelector();if(!e)return;const i=this._element.getAttribute("data-search-param")||"",s=String(t.param||i||"q").trim()||"q";if(Object.prototype.hasOwnProperty.call(this._remoteParams,s)){const t=this._getSearchInputNode(e);t&&t.value!==this._remoteParams[s]&&(t.value=this._remoteParams[s])}this._search&&"function"==typeof this._search.destroy&&this._search.destroy(),this._search=new be({enabled:!0,debounceMs:t.debounce,inputSelector:e,param:s,onSearch:({value:t,param:e})=>{const i={};i[e]=t;const s=this._getCurrentFiltersEventState(),r=this._isFiltersEmitFullContextEnabled(),n=this._isSearchedValue(t);this._emitAction("search",{param:e,value:t}),this._isRemote&&r||this._emitAction("filterschange",{filters:Object.assign({},s.filters||{}),params:Object.assign({},s.params||{}),fields:Array.isArray(s.fields)?s.fields.slice():[],meta:Object.assign({},s.meta||{}),phase:"change",isFiltered:this._isFilteredState(s)||n,isSearched:n}),this.updateRemoteParams(i,{replace:!1,resetPage:!0,reload:!0,trigger:r?"filterschange":"",filtersState:r?s:null})}}),this._search.init()}_getSearchInputSelector(){const t=this._params.search||{},e=this._element.getAttribute("data-search-input")||"";return String(t.input||e).trim()}_getSearchInputNode(t=""){const e=String(t||this._getSearchInputSelector()||"").trim();return e?((this._searchInputCacheSelector!==e||!this._searchInputCacheNode||!this._searchInputCacheNode.isConnected)&&(this._searchInputCacheSelector=e,this._searchInputCacheNode=document.querySelector(e)),this._searchInputCacheNode):(this._searchInputCacheSelector="",this._searchInputCacheNode=null,null)}_initFilters(){const t=this._params.filters||{};if(!this._isFiltersEnabled())return;const e=t.form&&1===t.form.nodeType?t.form:null,i=this._element.getAttribute("data-filters-form")||"",s=e?"":"string"==typeof t.form?String(t.form).trim():String(i).trim();if(!e&&!s)return;const r=this._element.getAttribute("data-filters-apply")||"",n=this._normalizeFiltersApplyMode(t.apply||r||"auto");this._writePersistentState("filtersApplyMode",n);const a=this._getInitialFilterValues(),o=t.button&&"object"==typeof t.button?t.button:{};this._filters&&"function"==typeof this._filters.destroy&&this._filters.destroy(),this._filters=new ve({enabled:!0,formSelector:s,formNode:e,debounceMs:t.debounce,applyMode:n,button:{apply:String(o.apply||this._element.getAttribute("data-filters-button-apply")||"[data-filter-apply]").trim(),reset:String(o.reset||this._element.getAttribute("data-filters-button-reset")||"[data-filter-reset]").trim()},fieldAttr:t.fieldAttr,partAttr:t.partAttr,typeAttr:t.typeAttr,valueAttr:t.valueAttr,operatorAttr:t.operatorAttr,defaultOperator:t.defaultOperator,skipEmpty:t.skipEmpty,trimValues:t.trimValues,initialValues:a,onReset:()=>{const t=this._getSearchInputSelector();if(!t)return;const e=this._getSearchInputNode(t);e&&(e.value="");const i=this._getSearchParamName();i&&delete this._remoteParams[i]},onChange:t=>{const e=this._normalizeFiltersEventState(t);this._activeFilters=Object.assign({},e.filters||{}),this._isRemote&&this._isFiltersEmitFullContextEnabled()||this._emitAction("filterschange",{filters:Object.assign({},e.filters||{}),params:Object.assign({},e.params||{}),fields:Array.isArray(e.fields)?e.fields.slice():[],meta:Object.assign({},e.meta||{}),phase:"change",isFiltered:this._isFilteredState(e)||this._isSearchActiveFromParams(this._remoteParams||{}),isSearched:this._isSearchActiveFromParams(this._remoteParams||{})}),this._handleFiltersStateChange(e)}}),this._filters.init()}_handleFiltersStateChange(t){const e=t&&t.params&&"object"==typeof t.params?t.params:{},i=this._buildFilterRemoteParamsPatch(e),s=this._params.filters||{},r=void 0===s.resetPageOnChange||Boolean(s.resetPageOnChange);if(this._isRemote){const e=this._isFiltersEmitFullContextEnabled();this.updateRemoteParams(i,{replace:!1,resetPage:r,reload:!0,trigger:e?"filterschange":"",filtersState:e?this._normalizeFiltersEventState(t):null})}else{if(this._remoteParams=Object.assign({},i),this._applyLocalFilters(),this._isPaginationEnabled()&&this._pagination){const t=this._pageState.perPage||this._normalizePositiveInt(this._params.pagination.perPage,10),e=r?1:this._pageState.page,i=this._getTotalPages(t),s=Math.max(1,Math.min(e,i));this._pageState={page:s,perPage:t},this._pagination.setMeta({page:s,perPage:t,totalPages:i}),this._renderPageRows(s,t)}else{const t=this._pageState.page||1,e=this._pageState.perPage||this._normalizePositiveInt(this._params.pagination.perPage,10);this._renderPageRows(t,e)}this._refreshStickyAndFixedLayout(),this._syncUrlState()}}_buildFilterRemoteParamsPatch(t={}){const e=t&&"object"==typeof t?t:{},i={};return this._getFilterFieldKeys().forEach((t=>{const s=String(t||"").trim();if(!s)return;Object.prototype.hasOwnProperty.call(e,s)?i[s]=e[s]:i[s]="";const r=`${s}_op`;Object.prototype.hasOwnProperty.call(e,r)?i[r]=e[r]:i[r]=""})),Object.keys(e).forEach((t=>{Object.prototype.hasOwnProperty.call(i,t)||(i[t]=e[t])})),i}_normalizeFiltersEventState(t){const e=t&&"object"==typeof t?t:{},i=e.filters&&"object"==typeof e.filters?Object.assign({},e.filters):{},s=e.params&&"object"==typeof e.params?Object.assign({},e.params):{},r=Array.isArray(e.fields)?e.fields.slice().map((t=>String(t||"").trim())).filter(Boolean):Object.keys(i),n=Object.keys(s).map((t=>String(t||"").trim())).filter((t=>""!==t&&!/_op$/i.test(t))).filter((t=>this._isNonEmptyFilterParamValue(s[t]))).map((t=>t.replace(/_value$/i,""))),a=Array.from(new Set(r.concat(n))),o=e.meta&&"object"==typeof e.meta?Object.assign({},e.meta):{};return Object.prototype.hasOwnProperty.call(o,"count")||(o.count=a.length),{filters:i,params:s,fields:a,meta:o}}_isFiltersEmitFullContextEnabled(){const t=this._params.filters||{},e=this._element.getAttribute("data-filters-emit-full-context");return null!==e?this._isTruthy(e):void 0===t.emitFullContext||null===t.emitFullContext||Boolean(t.emitFullContext)}_isFilteredState(t){const e=this._normalizeFiltersEventState(t);return e.fields.length>0||Object.keys(e.params||{}).some((t=>{const i=String(t||"").trim();return!(!i||/_op$/i.test(i))&&this._isNonEmptyFilterParamValue(e.params[i])}))}_getCurrentFiltersEventState(){let t=null;if(this._filters&&"function"==typeof this._filters.getState&&(t=this._normalizeFiltersEventState(this._filters.getState()),this._activeFilters=Object.assign({},t.filters||{})),!t){const e=this._extractFilterParamsFromRemoteParams(this._remoteParams||{});t=this._normalizeFiltersEventState({filters:Object.assign({},this._activeFilters||{}),params:e})}return t}_extractFilterParamsFromRemoteParams(t={}){const e=t&&"object"==typeof t?t:{},i={},s=new Set;return this._getFilterFieldKeys().forEach((t=>s.add(t))),Object.keys(this._activeFilters||{}).forEach((t=>s.add(String(t||"").trim()))),s.forEach((t=>{const s=String(t||"").trim();if(!s)return;Object.prototype.hasOwnProperty.call(e,s)&&(i[s]=e[s]);const r=`${s}_op`;Object.prototype.hasOwnProperty.call(e,r)&&(i[r]=e[r])})),i}_getFiltersRequestMetaIfActive(){const t=this._getCurrentFiltersEventState();return this._isFilteredState(t)?{trigger:"filterschange",filtersState:t}:null}_isNonEmptyFilterParamValue(t){return Array.isArray(t)?t.some((t=>""!==String(t||"").trim())):null!=t&&""!==String(t).trim()}_isSearchedValue(t){return this._isNonEmptyFilterParamValue(t)}_isSearchActiveFromParams(t={}){if(!this._isSearchEnabled())return!1;const e=t&&"object"==typeof t?t:{},i=this._getSearchParamName();return!(!i||!Object.prototype.hasOwnProperty.call(e,i))&&this._isSearchedValue(e[i])}_isSearchEnabled(){const t=this._params.search||{};if(void 0!==t.enable&&null!==t.enable){const e=String(t.enable).toLowerCase().trim();return"true"===e||"1"===e||"false"!==e&&"0"!==e&&Boolean(t.enable)}const e=this._element.getAttribute("data-search-enable");if(null!==e){const t=String(e).toLowerCase().trim();return"false"!==t&&"0"!==t}return!1}_isFiltersEnabled(){const t=this._params.filters||{};if(void 0!==t.enable&&null!==t.enable){const e=String(t.enable).toLowerCase().trim();return"true"===e||"1"===e||"false"!==e&&"0"!==e&&Boolean(t.enable)}const e=this._element.getAttribute("data-filters-enable");if(null!==e){const t=String(e).toLowerCase().trim();return"false"!==t&&"0"!==t}return!1}_normalizeFiltersApplyMode(t){return"manual"===String(t||"auto").toLowerCase().trim()?"manual":"auto"}_handleSortChange(t){const e=this._getNormalizedSorts(Array.isArray(t.sorts)?t.sorts:[]),i=e[0]||null;if(this._sortState={field:i?i.field:t.field||"",dir:i?i.dir:this._normalizeSortDir(t.dir),columnIndex:i&&Number.isInteger(i.columnIndex)?i.columnIndex:Number.isInteger(t.columnIndex)?t.columnIndex:-1,sorts:e},this._emitAction("sortchange",{sort:this._sortState.field,dir:this._sortState.dir,sorts:this._sortState.sorts.slice(),isRemote:this._isRemote}),this._isRemote){const t=this._pageState.perPage||this._normalizePositiveInt(this._params.pagination.perPage,10);return this._pageState={page:1,perPage:t},void this._loadRemotePage(1,t)}if(!this._sortState.sorts.length&&this._sortState.columnIndex<0?this._resetLocalRowsOrder():this._sortLocalRows(this._sortState.sorts.length?this._sortState.sorts:[{field:this._sortState.field,dir:this._sortState.dir,columnIndex:this._sortState.columnIndex}]),this._isPaginationEnabled()&&this._pagination){const t=this._pageState.perPage||this._normalizePositiveInt(this._params.pagination.perPage,10),e=this._getTotalPages(t);this._pageState={page:1,perPage:t},this._storePage(1),this._pagination.setMeta({page:1,perPage:t,totalPages:e}),this._renderPageRows(1,t)}this._refreshExpandable(),this._renderFooterFromCurrentState(),this._refreshStickyAndFixedLayout(),this._syncUrlState()}_sortLocalRows(t){this._rows.length||(this._rows=this._getTableRows());const e=this._getNormalizedSorts(t);if(!e.length||!this._rows.length)return;this._rows.sort(((t,i)=>{for(let s=0;s<e.length;s+=1){const r=e[s],n="desc"===r.dir?-1:1,a=r.columnIndex;if(!Number.isInteger(a)||a<0)continue;const o=t.cells[a]?t.cells[a].textContent:"",l=i.cells[a]?i.cells[a].textContent:"",d=this._compareSortableValues(o,l)*n;if(0!==d)return d}return 0}));const i=this._getBody();this._rows.forEach((t=>{i.appendChild(t)}))}_resetLocalRowsOrder(){this._originalRows.length||(this._originalRows=this._getTableRows()),this._rows=this._originalRows.slice();const t=this._getBody();this._rows.forEach((e=>{t.appendChild(e)}))}_applyLocalFilters(){this._originalRows.length||(this._originalRows=this._getTableRows());const t=this._activeFilters&&"object"==typeof this._activeFilters?this._activeFilters:{};if(!Object.keys(t).length)return this._rows=this._originalRows.slice(),void this._rows.forEach((t=>{t.hidden=!1}));const e=this._getFieldIndexMap(),i=[];this._originalRows.forEach((s=>{const r=this._rowMatchesFilters(s,t,e);s.hidden=!r,r&&i.push(s)})),this._rows=i}_getFieldIndexMap(){const t={};return this._getHeaderCells().forEach(((e,i)=>{const s=String(e.getAttribute("data-field")||"").trim();s&&(t[s]=i)})),t}_rowMatchesFilters(t,e,i){const s=Object.keys(e||{});for(let r=0;r<s.length;r+=1){const n=s[r],a=e[n];if(!a||"object"!=typeof a)continue;const o=String(a.field||n||"").trim(),l=Object.prototype.hasOwnProperty.call(i,o)?i[o]:-1;if(l<0)continue;const d=t.cells&&t.cells[l]?t.cells[l]:null,h=d?String(d.textContent||"").trim():"";if(!this._matchesFilterValue(h,a))return!1}return!0}_matchesFilterValue(t,e){const i=e.values&&e.values.length?e.values:e.value,s=String(e.operator||e.type||"eq").toLowerCase().trim(),r=String(t||"");if(Array.isArray(i)){const t=i.map((t=>String(t||"").toLowerCase().trim())).filter(Boolean);return!t.length||t.includes(r.toLowerCase().trim())}const n=String(i||"");if(""===n)return!0;const a=r.toLowerCase(),o=n.toLowerCase(),l=Number.parseFloat(r.replace(",",".")),d=Number.parseFloat(n.replace(",",".")),h=Number.isFinite(l)&&Number.isFinite(d);return"contains"===s?a.includes(o):"starts"===s?a.startsWith(o):"ends"===s?a.endsWith(o):"neq"===s?h?l!==d:a!==o:"gt"===s&&h?l>d:"gte"===s&&h?l>=d:"lt"===s&&h?l<d:"lte"===s&&h?l<=d:h?l===d:a===o}_compareSortableValues(t,e){const i=this._extractNumber(t),s=this._extractNumber(e),r=Number.isFinite(i),n=Number.isFinite(s);if(r&&n)return i-s;const a=String(t||"").trim(),o=String(e||"").trim();return a.localeCompare(o,"ru",{numeric:!0,sensitivity:"base"})}_extractNumber(t){const e=String(t||"").replace(/\u00A0/g,"").replace(/\s+/g,"").replace(",",".").replace(/[^\d.-]/g,"");return""===e||"-"===e||"."===e?NaN:Number.parseFloat(e)}_getInitialSortState(){const t=this._params.sortable||{},e=(this._params.request||{}).params||{},i=this._getUrlParams(),s="sort",r=String(t.initialField||i.get(s)||e[s]||this._element.getAttribute("data-sort")||"").trim(),n=t.initialDir||i.get("dir")||e.dir||this._element.getAttribute("data-dir")||"asc",a=this._normalizeSortDir(n),o=this._parseSortsFromStrings(r,n);return{field:r,dir:a,columnIndex:o[0]&&Number.isInteger(o[0].columnIndex)?o[0].columnIndex:-1,sorts:o}}_parseSortsFromStrings(t,e){const i=String(t||"").split(",").map((t=>t.trim())).filter(Boolean),s=String(e||"").split(",").map((t=>this._normalizeSortDir(t))),r=[];return i.forEach(((t,e)=>{const i=this._findHeaderIndexByField(t);r.push({field:t,dir:s[e]||s[0]||"asc",columnIndex:i})})),this._getNormalizedSorts(r)}_getNormalizedSorts(t){const e=[];return(Array.isArray(t)?t:[]).forEach((t=>{const i=String(t&&t.field?t.field:"").trim(),s=Number.isInteger(t&&t.columnIndex)?t.columnIndex:Number.parseInt(t&&t.columnIndex,10),r=this._normalizeSortDir(t&&t.dir?t.dir:"asc");if(!i&&!Number.isInteger(s))return;const n=this._resolveHeaderForSort(i,s);if(!n)return;const a=this._findHeaderIndex(n);if(a<0)return;if(!this._isHeaderSortableByConfig(n,a,this._params.sortable||{}))return;const o=String(i||n.getAttribute("data-field")||"").trim();this._isRemote&&!o||e.some((t=>o&&t.field?t.field===o:t.columnIndex===a))||e.push({field:o,dir:r,columnIndex:a})})),e}_isHeaderSortableByConfig(t,e,i={}){if(!t)return!1;const s=t.getAttribute("data-sortable");if(null!==s){const t=String(s).toLowerCase().trim();if("false"===t||"0"===t)return!1}const r=this._getSortableFieldsWhitelist(i);if(r&&r.size>0){const e=String(t.getAttribute("data-field")||"").trim();if(!e||!r.has(e))return!1}return!this._isRemote||Boolean(String(t.getAttribute("data-field")||"").trim())}_getSortableFieldsWhitelist(t={}){const e=this._element.getAttribute("data-sort-fields"),i=null!==e?e:t.fields,s=this._normalizeSortableFields(i);return s.length?new Set(s):null}_normalizeSortableFields(t){return Array.isArray(t)?t.map((t=>String(t||"").trim())).filter(Boolean):String(t||"").split(",").map((t=>t.trim())).filter(Boolean)}_getHeaderCells(){const t=this._element.tHead||this._element.querySelector("thead");return t&&t.rows&&t.rows.length?Array.from(t.rows[0].cells||[]):[]}_findHeaderIndex(t){return t?this._getHeaderCells().indexOf(t):-1}_findHeaderIndexByField(t){const e=String(t||"").trim();return e?this._getHeaderCells().findIndex((t=>String(t.getAttribute("data-field")||"").trim()===e)):-1}_resolveHeaderForSort(t,e){const i=this._getHeaderCells(),s=String(t||"").trim();if(s){const t=i.find((t=>String(t.getAttribute("data-field")||"").trim()===s));if(t)return t}return Number.isInteger(e)&&e>=0&&e<i.length?i[e]:null}_getInitialPage(){const t=this._normalizePositiveInt(this._getUrlParams().get("page"),0);if(t>0)return t;const e=(this._params.request||{}).params||{},i=this._normalizePositiveInt(e.page,0);if(i>0)return i;const s=this._readStoredPage();return s>0?s:this._normalizePositiveInt(this._params.pagination.page,1)}_getInitialPerPage(){const t=this._normalizePositiveInt(this._getUrlParams().get("per_page"),0);if(t>0)return this._clampPerPage(t,10);const e=(this._params.request||{}).params||{},i=this._normalizePositiveInt(e.per_page,0);if(i>0)return this._clampPerPage(i,10);const s=this._readStoredPerPage();if(s>0)return this._clampPerPage(s,10);const r=this._getConfiguredPerPage();return r>0?this._clampPerPage(r,10):this._clampPerPage(this._params.pagination.perPage,10)}_getConfiguredPerPage(){const t=this._element.getAttribute("data-pagination-per-page"),e=this._normalizePositiveInt(t,0);return e>0?e:this._normalizePositiveInt(this._params.pagination.perPage,0)}_getMaxPerPage(){const t=this._params.pagination||{},e=this._element.getAttribute("data-pagination-max-per-page"),i=this._normalizePositiveInt(e,0);if(i>0)return i;const s=this._normalizePositiveInt(t.maxPerPage,0);return s>0?s:100}_clampPerPage(t,e=10){const i=this._normalizePositiveInt(t,e),s=this._getMaxPerPage();return Math.max(1,Math.min(i,s))}_getFiltersRoute(){const t=this._params.filters||{},e=this._element.getAttribute("data-filters-route");return String(t.route||e||"").trim()}_isPerPagePersistenceEnabled(){const t=this._params.pagination||{},e=this._element.getAttribute("data-pagination-persist-per-page");if(null!==e){const t=String(e).toLowerCase().trim();return"false"!==t&&"0"!==t}return void 0===(t.persist||{}).perPage||null===(t.persist||{}).perPage||Boolean((t.persist||{}).perPage)}_isPagePersistenceEnabled(){const t=this._params.pagination||{},e=this._element.getAttribute("data-pagination-persist-page");if(null!==e){const t=String(e).toLowerCase().trim();return"false"!==t&&"0"!==t}return void 0===(t.persist||{}).page||null===(t.persist||{}).page||Boolean((t.persist||{}).page)}_getPerPageStorageKey(){const t=this._params.pagination||{},e=String((t.storage||{}).key||this._element.getAttribute("data-pagination-storage-key")||"").trim();if(e)return e;const i=String(this._element.id||"").trim();if(i)return`vgdt:perPage:${i}`;const s=String(this._getRoute()||"").trim();if(s)return`vgdt:perPage:${s}`;const r=String(this._element.getAttribute("data-vg-table")||"").trim();if(r)return`vgdt:perPage:${window.location.pathname}:${r}`;const n=Array.from(document.querySelectorAll("[data-vg-table]")).indexOf(this._element);return`vgdt:perPage:${window.location.pathname}:${n>=0?n:0}`}_getPageStorageKey(){const t=this._params.pagination||{};return String(((t.pageStorage||{}).storage||{}).key||this._element.getAttribute("data-pagination-page-storage-key")||"").trim()||`${this._getPerPageStorageKey()}:page`}_readStoredPage(){if(!this._isPagePersistenceEnabled())return 0;try{const t=window.localStorage.getItem(this._getPageStorageKey());return this._normalizePositiveInt(t,0)}catch(t){return 0}}_storePage(t){if(!this._isPagePersistenceEnabled())return;const e=this._normalizePositiveInt(t,0);if(!(e<=0))try{window.localStorage.setItem(this._getPageStorageKey(),String(e))}catch(t){}}_readStoredPerPage(){if(!this._isPerPagePersistenceEnabled())return 0;try{const t=window.localStorage.getItem(this._getPerPageStorageKey());return this._normalizePositiveInt(t,0)}catch(t){return 0}}_storePerPage(t){if(!this._isPerPagePersistenceEnabled())return;const e=this._normalizePositiveInt(t,0);if(!(e<=0))try{window.localStorage.setItem(this._getPerPageStorageKey(),String(e))}catch(t){}}_normalizeSortDir(t){return"desc"===String(t).split(",")[0].toLowerCase().trim()?"desc":"asc"}_isPaginationEnabled(){const t=this._params.pagination||{};if(void 0!==t.enable&&null!==t.enable){const e=String(t.enable).toLowerCase().trim();return"true"===e||"1"===e||"false"!==e&&"0"!==e&&Boolean(t.enable)}const e=this._element.getAttribute("data-pagination-enable");if(null!==e){const t=String(e).toLowerCase().trim();return"false"!==t&&"0"!==t}return!1}_isStickyHeaderEnabled(){const t=this._params.stickyHeader||{},e=this._element.getAttribute("data-sticky-header-enable");if(null!==e){const t=String(e).toLowerCase().trim();return"false"!==t&&"0"!==t}if(void 0!==t.enable&&null!==t.enable){const e=String(t.enable).toLowerCase().trim();return"true"===e||"1"===e||"false"!==e&&"0"!==e&&Boolean(t.enable)}return!1}_isCloneStickyHeaderEnabled(){return!(!this._parent||!this._parent.classList.contains("table-sticky"))||Boolean(this._element&&this._element.classList.contains("table-sticky"))}_refreshStickyAndFixedLayout(t={}){const e=Boolean(t&&t.immediate),i=String(t&&t.reason||"").trim();if(i&&(this._layoutRefreshReasons.push(i),this._layoutRefreshReasons.length>25&&this._layoutRefreshReasons.shift()),e||"undefined"==typeof window||"function"!=typeof window.requestAnimationFrame)return this._layoutRefreshFrame&&"undefined"!=typeof window&&"function"==typeof window.cancelAnimationFrame&&window.cancelAnimationFrame(this._layoutRefreshFrame),this._layoutRefreshFrame=0,this._layoutRefreshScheduled=!1,void this._refreshStickyAndFixedLayoutNow();this._layoutRefreshScheduled||(this._layoutRefreshScheduled=!0,this._layoutRefreshFrame=window.requestAnimationFrame((()=>{this._layoutRefreshFrame=0,this._layoutRefreshScheduled=!1,this._refreshStickyAndFixedLayoutNow()})))}_refreshStickyAndFixedLayoutNow(){this._layoutRefreshReasons=[],this._element&&this._element.isConnected&&(this._applyFixedColumnsLayout(),this._syncCloneStickyHeader(),this._updatePanHintVisibility())}_updateLayoutResizeBinding(){if("undefined"==typeof window)return;const t=this._isCloneStickyHeaderEnabled()||this._hasFixedColumnsConfig();window.removeEventListener("resize",this._boundCloneStickyResize),this._teardownLayoutResizeObserver(),t&&(window.addEventListener("resize",this._boundCloneStickyResize),this._setupLayoutResizeObserver())}_setupLayoutResizeObserver(){"undefined"!=typeof ResizeObserver&&(this._layoutResizeObserver||(this._layoutResizeObserver=new ResizeObserver((()=>{this._boundCloneStickyResize()}))),this._getLayoutResizeTargets().forEach((t=>{this._layoutResizeObserver.observe(t)})))}_teardownLayoutResizeObserver(){this._layoutResizeObserver&&this._layoutResizeObserver.disconnect()}_getLayoutResizeTargets(){const t=new Set,e=e=>{e&&!t.has(e)&&t.add(e)};return e(this._parent),e(this._tableViewport),Array.from(t)}_getStickyHeaderOffsets(){const t=this._params.stickyHeader||{},e=this._element.getAttribute("data-sticky-header-top"),i=null!==e&&""!==String(e).trim()?e:t.top,s=Number.isFinite(Number.parseInt(i,10))?Number.parseInt(i,10):0,r=this._element.getAttribute("data-sticky-header-max"),n=null!==r&&""!==String(r).trim()?r:t.max,a=Number.isFinite(Number.parseInt(n,10))?Number.parseInt(n,10):0;return{top:Math.max(0,s),maxHeight:Math.max(0,a)}}_getCloneStickyHeaderOffsets(){return{top:this._readCssSizeVar("--vgdt-sticky-top",0),maxHeight:this._readCssSizeVar("--vgdt-sticky-max-height",0)}}_readCssSizeVar(t,e=0){const i=[this._parent,this._element,this._tableViewport].filter(Boolean);for(let e=0;e<i.length;e+=1){const s=i[e],r=window.getComputedStyle(s).getPropertyValue(t),n=this._resolveCssLengthToPx(r,s);if(Number.isFinite(n))return Math.max(0,n)}return Math.max(0,e)}_resolveCssLengthToPx(t,e=null){const i=String(t||"").trim();if(!i)return NaN;const s=Number.parseFloat(i);if(Number.isFinite(s))return s;if("undefined"==typeof document)return NaN;const r=e instanceof Element?e:document.body||document.documentElement;if(!r)return NaN;const n=document.createElement("div");n.style.position="absolute",n.style.visibility="hidden",n.style.pointerEvents="none",n.style.left="-99999px",n.style.top="0",n.style.height=i,r.appendChild(n);const a=window.getComputedStyle(n).height;r.removeChild(n);const o=Number.parseFloat(String(a||"").trim());return Number.isFinite(o)?o:NaN}_applyStickyHeader(t){if(!this._element)return;const e=this._getStickyHeaderOffsets();if(t){this._element.style.setProperty("--vgdt-sticky-top",`${e.top}px`);const t=this._tableViewport||this._parent;return void(t&&(e.maxHeight>0?(t.classList.add("table-sticky-scroll"),t.style.setProperty("--vgdt-sticky-max-height",`${e.maxHeight}px`)):(t.classList.remove("table-sticky-scroll"),t.style.removeProperty("--vgdt-sticky-max-height"))))}this._element.style.removeProperty("--vgdt-sticky-top");const i=this._tableViewport||this._parent;i&&(i.classList.remove("table-sticky-scroll"),i.style.removeProperty("--vgdt-sticky-max-height"))}_applyCloneStickyHeader(t){const e=this._tableViewport||this._parent,i=this._cloneStickyState;if(!t)return i&&i.viewport&&i.onScroll&&i.viewport.removeEventListener("scroll",i.onScroll),i&&i.headerWrap&&i.headerWrap.parentElement&&i.headerWrap.parentElement.removeChild(i.headerWrap),this._cloneStickyState=null,this._parent.style.removeProperty("--vgdt-sticky-clone-height"),e&&!this._isStickyHeaderEnabled()&&(e.classList.remove("table-sticky-scroll"),e.style.removeProperty("--vgdt-sticky-max-height")),void this._updateLayoutResizeBinding();if(!this._parent||!this._tableViewport||!this._element.tHead)return;const s=this._getCloneStickyHeaderOffsets();if(e&&(s.maxHeight>0?(e.classList.add("table-sticky-scroll"),e.style.setProperty("--vgdt-sticky-max-height",`${s.maxHeight}px`)):(e.classList.remove("table-sticky-scroll"),e.style.removeProperty("--vgdt-sticky-max-height"))),!this._cloneStickyState){const t=document.createElement("div");t.className="vgdt-sticky-clone";const e=document.createElement("table");e.className="vgdt-sticky-clone__table",this._element.classList.contains("table-sortable")&&e.classList.add("table-sortable");const i=document.createElement("thead");e.appendChild(i),t.appendChild(e),this._parent.insertBefore(t,this._tableViewport);const s={headerWrap:t,table:e,head:i,lastHeadHtml:"",cloneCells:[],viewport:this._tableViewport,onScroll:()=>{this._syncCloneStickyScroll()},onClick:t=>{this._forwardCloneStickyInteraction(t,"click")},onChange:t=>{this._forwardCloneStickyInteraction(t,"change")},onDragStart:t=>{this._forwardCloneStickyInteraction(t,"dragstart")},onDragOver:t=>{this._forwardCloneStickyInteraction(t,"dragover")},onDrop:t=>{this._forwardCloneStickyInteraction(t,"drop")},onDragEnd:t=>{this._forwardCloneStickyInteraction(t,"dragend")}};s.viewport.addEventListener("scroll",s.onScroll,{passive:!0}),s.head.addEventListener("click",s.onClick),s.head.addEventListener("change",s.onChange),s.head.addEventListener("dragstart",s.onDragStart),s.head.addEventListener("dragover",s.onDragOver),s.head.addEventListener("drop",s.onDrop),s.head.addEventListener("dragend",s.onDragEnd),this._cloneStickyState=s}this._updateLayoutResizeBinding(),this._syncCloneStickyHeader()}_syncCloneStickyHeader(){const t=this._cloneStickyState;if(!t||!this._element||!this._element.tHead)return;const e=this._element.tHead;if(!Array.from(e.rows||[]).length)return void(t.headerWrap.hidden=!0);this._element.classList.contains("table-sortable")?t.table.classList.add("table-sortable"):t.table.classList.remove("table-sortable");const i=this._element.getAttribute("data-sort-hide-unsorted-arrows");null!==i?t.table.setAttribute("data-sort-hide-unsorted-arrows",i):t.table.removeAttribute("data-sort-hide-unsorted-arrows");let s=!1;const r=e.innerHTML;t.lastHeadHtml!==r&&(t.head.innerHTML=r,this._sanitizeCloneStickyHeadIds(t.head),t.lastHeadHtml=r,t.cloneCells=Array.from(t.head.querySelectorAll("th")),s=!0);const n=Array.from(e.querySelectorAll("th")),a=Array.isArray(t.cloneCells)&&t.cloneCells.length?t.cloneCells:Array.from(t.head.querySelectorAll("th"));this._syncCloneStickySelectAllState(e,t.head);const o=this._element.getBoundingClientRect().width,l=this._getViewportWidthMetrics(),d=!!this._tableViewport&&this._tableViewport.scrollWidth>this._tableViewport.clientWidth+1;let h=o;l&&(h=!d||l.hasVerticalOverflow?o:Math.max(o,l.effectiveWidth));const c=`${Math.max(0,h)}px`;t.table.style.width!==c&&(t.table.style.width=c),t.headerWrap.style.width="100%";let u=0;if(n.forEach(((t,e)=>{const i=a[e];if(!i)return;const s=t.getBoundingClientRect().width,r=Math.max(0,s),n=`${r}px`;i.style.width!==n&&(i.style.width=n),i.style.minWidth!==n&&(i.style.minWidth=n),i.style.maxWidth!==n&&(i.style.maxWidth=n),u+=r})),d&&a.length){const t=Math.max(0,h-u);if(t>1){const e=a[a.length-1],i=e.getBoundingClientRect().width,s=Math.max(0,i+t);e.style.width=`${s}px`,e.style.minWidth=`${s}px`,e.style.maxWidth=`${s}px`}}t.headerWrap.hidden=!1;const _=t.headerWrap.getBoundingClientRect().height;this._parent.style.setProperty("--vgdt-sticky-clone-height",`${Math.max(0,_)}px`),this._syncCloneStickyScroll(),s&&"function"==typeof this._rebuildFixedColumnsCellsCache&&(this._rebuildFixedColumnsCellsCache(),"function"==typeof this._syncFixedColumnsScroll&&this._syncFixedColumnsScroll({immediate:!0}))}_syncCloneStickySelectAllState(t,e){if(!t||!e||"function"!=typeof t.querySelector||"function"!=typeof e.querySelector)return;const i=t.querySelector("[data-select-all]"),s=e.querySelector("[data-select-all]");i&&s&&(s.checked=Boolean(i.checked),s.indeterminate=Boolean(i.indeterminate),s.disabled=Boolean(i.disabled))}_sanitizeCloneStickyHeadIds(t){if(!t||"function"!=typeof t.querySelectorAll)return;const e=Array.from(t.querySelectorAll("[id]"));if(!e.length)return;const i=new Map;if(e.forEach((t=>{const e=String(t.getAttribute("id")||"").trim();if(!e)return;const s=`${e}--vgdt-clone`;t.setAttribute("id",s),i.set(e,s)})),!i.size)return;const s=["for","headers","aria-labelledby","aria-describedby","aria-controls","aria-owns","aria-details"];Array.from(t.querySelectorAll("*")).forEach((t=>{s.forEach((e=>{const s=String(t.getAttribute(e)||"").trim();if(!s)return;const r=s.split(/\s+/).map((t=>i.get(t)||t)).join(" ");r!==s&&t.setAttribute(e,r)}))}))}_syncCloneStickyScroll(){const t=this._cloneStickyState;if(!t||!t.viewport)return;if(!(t.viewport.scrollWidth>t.viewport.clientWidth+1))return 0!==t.viewport.scrollLeft&&(t.viewport.scrollLeft=0),void(t.table.style.transform="translateX(0px)");const e=t.viewport.scrollLeft||0;t.table.style.transform=`translateX(${-e}px)`}_getViewportWidthMetrics(){const t=this._tableViewport;if(!t)return null;const e=t.clientWidth||0,i=t.clientHeight||0,s=t.scrollHeight>i+1;return{clientWidth:e,effectiveWidth:e||t.offsetWidth||0,hasVerticalOverflow:s}}_forwardCloneStickyInteraction(t,e){const i=this._cloneStickyState;if(!(i&&this._element&&this._element.tHead&&t))return;const s=t.target instanceof Element?t.target:null;if(!s)return;const r=s.closest("th");if(!r)return;const n=Array.from(i.head.querySelectorAll("th")),a=Array.from(this._element.tHead.querySelectorAll("th")),o=n.indexOf(r),l=o>=0?a[o]:null;if(!l)return;if("dragstart"===e||"dragover"===e||"drop"===e||"dragend"===e){if(!this._columnReorderState.enabled)return;if("dragstart"===e){const e=this._findHeaderIndex(l);if(e<0||this._isHeaderFixedForColumnReorder(l))return;if(this._columnReorderState.fromIndex=e,this._columnReorderState.toIndex=e,this._columnReorderState.isDragging=!0,this._element.classList.add("is-col-dragging"),l.setAttribute("data-col-dragging","1"),r.setAttribute("data-col-dragging","1"),t.dataTransfer){t.dataTransfer.effectAllowed="move";try{t.dataTransfer.setData("text/plain",String(e))}catch(t){}}return}if("dragover"===e){if(!this._columnReorderState.isDragging||this._isHeaderFixedForColumnReorder(l))return;t.preventDefault();const e=this._findHeaderIndex(l);if(e<0)return;return this._columnReorderState.toIndex=e,void this._syncColumnDragOverMarker(e)}if("drop"===e){if(!this._columnReorderState.isDragging)return;if(t.preventDefault(),this._isHeaderFixedForColumnReorder(l))return void this._resetColumnDragMarkers();const e=this._findHeaderIndex(l);if(e<0)return void this._resetColumnDragMarkers();const i=this._columnReorderState.fromIndex;return this._resetColumnDragMarkers(),void this._finalizeColumnReorder(i,e)}return void this._resetColumnDragMarkers()}if("change"===e){const t=s.closest("[data-select-all]");if(!t)return;const e=l.querySelector("[data-select-all]");if(!e)return;return e.checked=Boolean(t.checked),e.dispatchEvent(new Event("change",{bubbles:!0})),void this._syncCloneStickyHeader()}if("click"===e&&s.closest("[data-select-all]"))return;const d=s.closest("[data-sort-arrow]");let h=l;if(d){const t=d.getAttribute("data-sort-arrow"),e=l.querySelector(`[data-sort-arrow="${t}"]`);e&&(h=e)}else if(s.closest("[data-select-all]")){const t=l.querySelector("[data-select-all]");t&&(h=t)}h.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window,shiftKey:Boolean(t.shiftKey),ctrlKey:Boolean(t.ctrlKey),altKey:Boolean(t.altKey),metaKey:Boolean(t.metaKey)})),this._syncCloneStickyHeader()}_renderRemoteRows(t){const e=this._getBody();if(t.length)this._setFixedColumnsSuppressed(!1),this._clearStateMode(),e.innerHTML=t.map((t=>`<tr>${this._fields.map((e=>{const i=t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]:"",s=this._formatFieldValue(e,i);return`<td>${this._escapeHtml(s)}</td>`})).join("")}</tr>`)).join(""),this._updatePanHintVisibility();else{const t=this._getTableMessage("stateEmpty","Ничего нет");this._renderStateRow(t,"empty")}}_renderStateRow(t,e){const i=this._getBody(),s=this._getRenderedColumnsCount(),r="error"===e?`<div class="vgdt-state-actions"><button type="button" class="vgdt-state-reset" data-state-retry>${this._escapeHtml(this._getTableMessage("retry","Повторить"))}</button></div>`:"",n=this._buildStateIllustrationMarkup(e);i.innerHTML=`<tr><td colspan="${s}" data-table-state="${e}"><div class="vgdt-state">${n}<div class="vgdt-state-text">${this._escapeHtml(t)}</div>${r}</div></td></tr>`;const a=i.querySelector("[data-table-state]");this._setFixedColumnsSuppressed(!0),this._setStateMode(e),this._ensureStateRowVisible(a),this._announce(t),this._clearFooter(),this._updatePanHintVisibility(),this._refreshStickyAndFixedLayout()}_scrollToPaginationTop(){if(!this._isPaginationScrollToTopEnabled())return;if(this._tableViewport&&(this._tableViewport.scrollTop=0,this._tableViewport.scrollLeft=0),"undefined"==typeof window||!this._parent)return;const t=this._getPaginationScrollTopTarget(),e=window.pageYOffset||window.scrollY||0;if(!Number.isFinite(t))return;if(Math.abs(t-e)<2)return;const i="function"==typeof window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;window.scrollTo({top:Math.max(0,Math.round(t)),behavior:i?"auto":"smooth"})}_getPaginationScrollTopTarget(){if(this._isPaginationScrollToWindowTopEnabled())return 0;const t=this._parent.getBoundingClientRect();return Number.isFinite(t.top)?t.top+(window.pageYOffset||window.scrollY||0):NaN}_isPaginationScrollToTopEnabled(){const t=(this._params.pagination||{}).scrollToTop;return null!=t&&Boolean(t)}_isPaginationScrollToWindowTopEnabled(){const t=(this._params.pagination||{}).scrollToWindowTop;return null!=t&&Boolean(t)}_getI18nSection(t){const e=this._params.i18n&&"object"==typeof this._params.i18n?this._params.i18n:{},i=me.i18n&&"object"==typeof me.i18n?me.i18n:{},s=String(this._params.locale||"ru").toLowerCase(),r=s.split("-")[0],n=i[s]||i[r]||i.ru||{},a=n[t]&&"object"==typeof n[t]?n[t]:{},o=e[s]||e[r],l=o&&"object"==typeof o&&o[t]&&"object"==typeof o[t]?o[t]:{};return Object.assign({},a,l)}_getTableMessage(t,e){const i=this._getI18nSection("table")[t];return"string"==typeof i&&i.trim()?i:e}async _waitMinLoadingDelay(t){const e=this._params.loading||{},i=Math.max(0,Number.parseInt(e.minDelay,10)||0);if(i<=0)return;const s=i-(Date.now()-t);s<=0||await new Promise((t=>setTimeout(t,s)))}_ensureSummaryNode(){if(!this._isSummaryEnabled()||this._summaryNode||!this._parent)return;const t=document.createElement("div");t.className="vgdt-summary",t.hidden=!0;const e=this._tableViewport&&this._tableViewport.parentElement===this._parent?this._tableViewport:this._element;this._parent.insertBefore(t,e),this._summaryNode=t}}Object.assign(Ae.prototype,Qt,ee,oe,le,he,ue,_e),g.A.on(document,"DOMContentLoaded",(()=>{Ae.initAll()}));const Ee=Ae;var xe=i(911);const Pe='tbody tr:not([data-group-header="1"])',Le="[data-row-select]",Ie="[data-select-all]",Me={rowcheck:"onRowCheck",checkall:"onCheckAll",rowreorder:"onRowReorder"};class De{static _getInitStore(){return this.__initStore||(this.__initStore=new WeakSet),this.__initStore}static _getDragStore(){return this.__dragStore||(this.__dragStore=new WeakMap),this.__dragStore}static initAll(){Array.from(document.querySelectorAll("[data-vg-table]")).forEach((t=>{if(!this._isEditableEnabled(t))return;const e=this._getInitStore();if(e.has(t))return this._syncSelectAll(t),void this._syncRowReorder(t);e.add(t),this._bind(t),this._syncSelectAll(t),this._syncRowReorder(t)}))}static _bind(t){t.addEventListener("change",(e=>{const i=e.target.closest(Ie);if(i)return this._toggleAll(t,Boolean(i.checked)),this._syncSelectAll(t),void this._emit(t,"checkall",this._getSelectionPayload(t,{checked:Boolean(i.checked)}));const s=e.target.closest(Le);if(!s)return;this._syncSelectAll(t);const r=s.closest("tr");this._emit(t,"rowcheck",this._getSelectionPayload(t,{checked:Boolean(s.checked),row:this._getRowPayload(t,r)}))})),t.addEventListener("dragstart",(e=>{this._handleRowDragStart(t,e)})),t.addEventListener("dragover",(e=>{this._handleRowDragOver(t,e)})),t.addEventListener("drop",(e=>{this._handleRowDrop(t,e)})),t.addEventListener("dragend",(()=>{this._clearRowDragState(t)}));const e=this._getEventPrefix(t);t.addEventListener(`${e}:dataloaded`,(()=>{this._syncSelectAll(t),this._syncRowReorder(t)}))}static _toggleAll(t,e){Array.from(t.querySelectorAll(`${Pe} ${Le}`)).forEach((t=>{t.checked=e}))}static _syncSelectAll(t){const e=Array.from(t.querySelectorAll(`${Pe} ${Le}`)),i=e.length,s=e.filter((t=>t.checked)).length,r=t.querySelector(Ie);r&&(r.checked=i>0&&s===i,r.indeterminate=s>0&&s<i)}static _getSelectionPayload(t,e={}){const i=Array.from(t.querySelectorAll(`${Pe} ${Le}`)),s=i.length,r=i.filter((t=>t.checked)).length;return Object.assign({total:s,selected:r},e)}static _isEditableEnabled(t){const e=this._getEditableOptions(this._getTableInstance(t));if(void 0!==e.enable)return Boolean(e.enable);const i=t.getAttribute("data-editable-enable");return null!==i&&this._parseBool(i,!1)}static _isRowReorderEnabled(t){const e=this._getEditableOptions(this._getTableInstance(t)),i=t.getAttribute("data-row-reorder-enable");return null!==i?this._parseBool(i,!1):void 0===e.rowReorder||Boolean(e.rowReorder)}static _getRowReorderMode(t){const e=this._getEditableOptions(this._getTableInstance(t)),i=t.getAttribute("data-row-reorder-mode");return"handle"===String(null!==i?i:e.rowReorderMode||"row").trim().toLowerCase()?"handle":"row"}static _getRowReorderHandleSelector(t){const e=this._getEditableOptions(this._getTableInstance(t)),i=String(t.getAttribute("data-row-reorder-handle-selector")||"").trim(),s=String(e.rowReorderHandleSelector||"").trim();return i||s||"[data-row-reorder-handle]"}static _syncRowReorder(t){const e=this._isRowReorderEnabled(t),i=this._getRowReorderMode(t),s=this._getRowReorderHandleSelector(t);Array.from(t.querySelectorAll(Pe)).forEach((t=>{const r=Array.from(t.querySelectorAll(s));if(!e)return t.removeAttribute("data-row-reorder"),t.removeAttribute("data-row-reorder-mode"),t.setAttribute("draggable","false"),void r.forEach((t=>t.setAttribute("draggable","false")));t.setAttribute("data-row-reorder","1"),t.setAttribute("data-row-reorder-mode",i),t.setAttribute("draggable","row"===i?"true":"false"),r.forEach((t=>t.setAttribute("draggable","handle"===i?"true":"false")))})),e||this._clearRowDragState(t)}static _getRowDragState(t){const e=this._getDragStore();return e.has(t)||e.set(t,{fromRow:null,fromIndex:-1,overRow:null,overAfter:!1}),e.get(t)}static _clearRowDragState(t){const e=this._getRowDragState(t);Array.from(t.querySelectorAll(`${Pe}[data-row-dragging], ${Pe}[data-row-drag-over]`)).forEach((t=>{t.removeAttribute("data-row-dragging"),t.removeAttribute("data-row-drag-over")})),e.fromRow=null,e.fromIndex=-1,e.overRow=null,e.overAfter=!1}static _handleRowDragStart(t,e){if(!this._isRowReorderEnabled(t))return;const i=e.target&&e.target.closest?e.target.closest(`${Pe}[data-row-reorder="1"]`):null;if(!i||!t.contains(i))return;if("handle"===this._getRowReorderMode(t)){const i=this._getRowReorderHandleSelector(t);if(!Boolean(e.target&&e.target.closest&&e.target.closest(i)))return void e.preventDefault()}else if(e.target&&e.target.closest&&e.target.closest('input, button, a, select, textarea, [contenteditable="true"]'))return void e.preventDefault();const s=this._getRowDragState(t);s.fromRow=i,s.fromIndex=this._getBodyRowIndex(t,i),s.overRow=null,s.overAfter=!1,i.setAttribute("data-row-dragging","1"),e.dataTransfer&&(e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain","row-reorder"))}static _handleRowDragOver(t,e){const i=this._getRowDragState(t);if(!i.fromRow)return;const s=e.target&&e.target.closest?e.target.closest(`${Pe}[data-row-reorder="1"]`):null;if(!s||!t.contains(s))return;e.preventDefault();const r=s.getBoundingClientRect(),n=e.clientY>r.top+r.height/2;i.overRow=s,i.overAfter=n,Array.from(t.querySelectorAll(`${Pe}[data-row-drag-over]`)).forEach((t=>{t.removeAttribute("data-row-drag-over")})),s!==i.fromRow&&s.setAttribute("data-row-drag-over",n?"after":"before")}static _handleRowDrop(t,e){const i=this._getRowDragState(t);if(!i.fromRow)return;e.preventDefault();const s=i.overRow;if(!s||!t.contains(s))return void this._clearRowDragState(t);if(!this._moveRow(t,i.fromRow,s,i.overAfter))return void this._clearRowDragState(t);const r=this._getBodyRowIndex(t,i.fromRow);this._syncSelectAll(t),this._emit(t,"rowreorder",{row:this._getRowPayload(t,i.fromRow),fromIndex:i.fromIndex,toIndex:r,beforeRow:this._getSiblingRowPayload(t,i.fromRow,"prev"),afterRow:this._getSiblingRowPayload(t,i.fromRow,"next")}),this._clearRowDragState(t)}static _moveRow(t,e,i,s){const r=t.tBodies&&t.tBodies[0]?t.tBodies[0]:null;return!!(r&&e&&i&&e!==i)&&(s?i.nextSibling!==e&&(r.insertBefore(e,i.nextSibling),!0):e.nextSibling!==i&&(r.insertBefore(e,i),!0))}static _getBodyRowIndex(t,e){const i=t.tBodies&&t.tBodies[0]?t.tBodies[0]:null;return i&&e?Array.from(i.rows).indexOf(e):-1}static _getSiblingRowPayload(t,e,i){if(!e)return null;const s="prev"===i?e.previousElementSibling:e.nextElementSibling;return s&&"TR"===s.tagName?this._getRowPayload(t,s):null}static _getRowPayload(t,e){if(!e)return null;const i=Array.from(t.querySelectorAll("thead th")).map((t=>String(t.textContent||"").trim())),s=Array.from(e.cells||[]).map((t=>String(t.textContent||"").trim()));return{index:this._getBodyRowIndex(t,e),headers:i,cells:s,values:i.reduce(((t,e,i)=>(t[e||`col_${i}`]=s[i]||"",t)),{})}}static _emit(t,e,i={}){const s=String(e||"").toLowerCase().trim();if(!s)return;const r=this._getTableInstance(t),n=Object.assign({action:s,table:t,isRemote:Boolean(r&&r._isRemote)},i),a=r&&r._params&&r._params.callbacks&&"object"==typeof r._params.callbacks?r._params.callbacks:{},o=Me[s]||"",l=o?a[o]:null;"function"==typeof l&&l(n,r);const d=r&&r._params&&r._params.events?r._params.events:{};if(void 0!==d.enable&&!Boolean(d.enable)||"function"!=typeof window.CustomEvent)return;const h=String(d.prefix||"vgdt").trim()||"vgdt",c=void 0===d.bubbles||Boolean(d.bubbles);t.dispatchEvent(new CustomEvent(`${h}:${s}`,{detail:n,bubbles:c}))}static _getEditableOptions(t=null){const e=t||null;return e&&e._params&&e._params.editable&&"object"==typeof e._params.editable?e._params.editable:{}}static _getTableInstance(t){return t?xe.A.get(t,"vg.dynamicTable"):null}static _getEventPrefix(t){const e=this._getTableInstance(t),i=e&&e._params&&e._params.events?e._params.events:{};return String(i.prefix||"vgdt").trim()||"vgdt"}static _parseBool(t,e=!1){if(null==t)return e;const i=String(t).toLowerCase().trim();return"1"===i||"true"===i||"yes"===i||"on"===i||"0"!==i&&"false"!==i&&"no"!==i&&"off"!==i&&e}}g.A.on(document,"DOMContentLoaded",(()=>{De.initAll()}));const Te={pathAttribute:"data-vg-filepreview",fieldsAttribute:"data-fields",validAttribute:"data-vg-filepreview-valid",errorAttribute:"data-vg-filepreview-error",errorValue:"invalid-file-path",fieldAttribute:"data-vg-filepreview-field",editableAttribute:"data-vg-filepreview-editable",editableFieldsAttribute:"data-vg-filepreview-editable-fields",missingFieldsAttribute:"data-vg-filepreview-missing-fields"},ke=class{constructor(t,e={}){this._element=t,this._options=Object.assign({},Te,e)}getFilePath(){if(!this._element)return"";const t=this._element.getAttribute(this._options.pathAttribute);return"string"==typeof t?t.trim():""}getFields(){if(!this._element)return[];const t=this._element.getAttribute(this._options.fieldsAttribute);return"string"==typeof t&&t.trim()?t.split(",").map((t=>t.trim())).filter((t=>t&&/^[-_a-zA-Z0-9]+$/.test(t))):[]}validateFilePath(t){if(!t||"#"===t||/^javascript:/i.test(t))return{isValid:!1,fileUrl:null};try{const e=new URL(t,window.location.origin),i=e.protocol;if(!["http:","https:","blob:","data:"].includes(i))return{isValid:!1,fileUrl:null};if("data:"===i||"blob:"===i)return{isValid:!0,fileUrl:e};const s=(e.pathname||"").split("/").filter(Boolean).pop()||"";return s&&s.includes(".")?{isValid:!0,fileUrl:e}:{isValid:!1,fileUrl:null}}catch{return{isValid:!1,fileUrl:null}}}syncState(t){this._element&&(this._element.setAttribute(this._options.validAttribute,t?"true":"false"),t?this._element.removeAttribute(this._options.errorAttribute):this._element.setAttribute(this._options.errorAttribute,this._options.errorValue))}resolveEditableFields(t=[]){return this._element&&Array.isArray(t)&&t.length?t.reduce(((t,e)=>(t[e]=this._element.querySelector(`.${this._escapeClassName(e)}`),t)),{}):{}}syncEditableFields(t={}){if(!this._element)return;this._element.querySelectorAll(`[${this._options.fieldAttribute}]`).forEach((t=>{t.removeAttribute(this._options.fieldAttribute),t.setAttribute(this._options.editableAttribute,"false")}));const e=[],i=[];Object.entries(t).forEach((([t,s])=>{s?(s.setAttribute(this._options.fieldAttribute,t),s.setAttribute(this._options.editableAttribute,"true"),e.push(t)):i.push(t)})),e.length?this._element.setAttribute(this._options.editableFieldsAttribute,e.join(",")):this._element.removeAttribute(this._options.editableFieldsAttribute),i.length?this._element.setAttribute(this._options.missingFieldsAttribute,i.join(",")):this._element.removeAttribute(this._options.missingFieldsAttribute)}_escapeClassName(t){return window.CSS&&"function"==typeof window.CSS.escape?window.CSS.escape(t):String(t).replace(/([ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~])/g,"\\$1")}getFileMeta(t){const e="string"==typeof t?t.trim():"";if(!e)return{name:"",ext:"",originalName:"",isMedia:!1,sizeBytes:null,sizeText:""};try{const t=new URL(e,window.location.origin),i=t.pathname||"",s=t.searchParams,r=this._readOriginalName(s);let n=decodeURIComponent(i.split("/").pop()||"");n&&n.includes(".")||(n=r||n);const a=n.includes(".")?`.${n.split(".").pop()||""}`:"",o=this._readSize(s),l=[".mp3",".wav",".ogg",".flac",".aac",".m4a",".mp4",".webm",".mov",".mkv",".avi"];return{name:n,ext:a.toLowerCase(),originalName:r,isMedia:l.includes(a.toLowerCase()),sizeBytes:o,sizeText:this._formatSize(o)}}catch{const t=e.split("#")[0].split("?")[0];let i=decodeURIComponent(t.split("/").pop()||"");const s=this._readOriginalName(null);i&&i.includes(".")||(i=s||i);const r=i.includes(".")?`.${i.split(".").pop()||""}`:"",n=this._readSize(null);return{name:i,ext:r.toLowerCase(),originalName:s||"",isMedia:!1,sizeBytes:n,sizeText:this._formatSize(n)}}}_readOriginalName(t){const e=this._element?.getAttribute("data-original-name")||this._element?.getAttribute("data-vg-filepreview-original-name")||"";if(e)return String(e).trim();const i=["original_name","originalName","filename","name"];for(const e of i){const i=t.get(e);if(i)return String(i).trim()}return""}_readSize(t){const e=[this._element?.getAttribute("data-size"),this._element?.getAttribute("data-vg-filepreview-size")];for(const t of e){const e=this._parseSizeValue(t);if(null!==e)return e}if(!t)return null;const i=["size","size_bytes","bytes"];for(const e of i){const i=t.get(e),s=this._parseSizeValue(i);if(null!==s)return s}return null}_parseSizeValue(t){if(null==t)return null;const e=String(t).trim().toLowerCase();if(!e)return null;const i=e.match(/^(\d+(?:\.\d+)?)\s*(b|kb|mb|gb|tb)?$/i);if(!i)return null;const s=Number.parseFloat(i[1]);if(!Number.isFinite(s)||s<0)return null;const r=(i[2]||"b").toLowerCase();return Math.round(s*({b:1,kb:1024,mb:1048576,gb:1073741824,tb:1099511627776}[r]||1))}_formatSize(t){if(!Number.isFinite(t)||t<0)return"";const e=["B","KB","MB","GB","TB"];let i=t,s=0;for(;i>=1024&&s<e.length-1;)i/=1024,s+=1;const r=i>=100||0===s?0:2;return`${i.toFixed(r)} ${e[s]}`}},Fe=new Set(["mp3"]),Re=(t,e=0)=>(127&t[e])<<21|(127&t[e+1])<<14|(127&t[e+2])<<7|127&t[e+3],Oe=(t,e,i)=>i?Re([t.getUint8(e),t.getUint8(e+1),t.getUint8(e+2),t.getUint8(e+3)],0):(t.getUint8(e)<<24|t.getUint8(e+1)<<16|t.getUint8(e+2)<<8|t.getUint8(e+3))>>>0,Ne=(t,e)=>{if(!t||!t.length)return"";try{if(0===e)return new TextDecoder("iso-8859-1").decode(t).replace(/\u0000/g,"").trim();if(1===e){if(t.length>=2){const e=t[0],i=t[1];if(255===e&&254===i)return new TextDecoder("utf-16le").decode(t.slice(2)).replace(/\u0000/g,"").trim();if(254===e&&255===i){const e=new Uint8Array(t.length-2);for(let i=2;i+1<t.length;i+=2)e[i-2]=t[i+1],e[i-1]=t[i];return new TextDecoder("utf-16le").decode(e).replace(/\u0000/g,"").trim()}}return new TextDecoder("utf-16le").decode(t).replace(/\u0000/g,"").trim()}if(2===e){const e=new Uint8Array(t.length);for(let i=0;i+1<t.length;i+=2)e[i]=t[i+1],e[i+1]=t[i];return new TextDecoder("utf-16le").decode(e).replace(/\u0000/g,"").trim()}return new TextDecoder("utf-8").decode(t).replace(/\u0000/g,"").trim()}catch{return""}},ze=(t,e,i=1)=>{for(let s=e;s<t.length;s+=i)if(2===i){if(s+1<t.length&&0===t[s]&&0===t[s+1])return s}else if(0===t[s])return s;return-1},He=t=>{if(!t||t.length<4)return null;const e=t[0];let i=1;const s=ze(t,i);if(s<0)return null;const r=new TextDecoder("iso-8859-1").decode(t.slice(i,s)).trim();if(i=s+1,i>=t.length)return null;i+=1;const n=1===e||2===e,a=ze(t,i,n?2:1);if(a>=0&&(i=a+(n?2:1)),i>=t.length)return null;const o=t.slice(i),l=r||"image/jpeg";return o.length?{mimeType:l,data:o}:null},$e=async t=>{if(!(t instanceof File))return null;const e=(t=>{const e=String(t?.name||"").toLowerCase(),i=e.lastIndexOf(".");return i<0||i>=e.length-1?"":e.slice(i+1)})(t);if(!Fe.has(e))return null;if(!t.size)return null;try{const e=t.slice(0,Math.min(t.size,2097152)),i=(t=>{const e=new Uint8Array(t);if(e.length<10)return null;if(73!==e[0]||68!==e[1]||51!==e[2])return null;const i=e[3];if(i<2||i>4)return null;const s=Re(e,6),r=Math.min(e.length,s+10),n=new DataView(t,0,r);let a=10,o="",l=null;for(;a+10<=r;){const t=String.fromCharCode(n.getUint8(a),n.getUint8(a+1),n.getUint8(a+2),n.getUint8(a+3));if(!t.trim())break;const s=Oe(n,a+4,4===i);if(!s||s<1)break;const d=a+10,h=d+s;if(h>r)break;const c=e.slice(d,h);"TIT2"===t&&c.length>1&&(o=Ne(c.slice(1),c[0])||o),"APIC"!==t||l||(l=He(c)),a=h}return{title:o,picture:l}})(await e.arrayBuffer());if(!i)return null;const s={};if(i.title&&(s.title=i.title),i.picture?.data?.length){const t=new Blob([i.picture.data],{type:i.picture.mimeType||"image/jpeg"});s.pictureBlob=t}return Object.keys(s).length?s:null}catch{return null}},Be=new Set(["mp4","webm","mov","mkv","avi","m4v","ogv"]);class je{constructor(){this._modalId="vg-filepreview-image-modal"}static getInstance(){return je._instance||(je._instance=new je),je._instance}open(t={}){const e=String(t.src||"").trim();if(!e)return;if(this._ensureModal(),!this._modal||!this._image)return;const i=String(t.defaultTitle||"").trim(),s=String(t.title||"").trim();this._title.textContent=s||i,this._image.src=e,this._image.alt=s||i,this._modal.show()}close(){this._modal&&this._modal.hide()}_ensureModal(){this._modal&&this._root||this._initModal()}_initModal(){const t={centered:!0,dismiss:!0,backdrop:!0,keyboard:!0,sizes:{width:"fit-content"},animation:{enable:!1}},e=document.getElementById(this._modalId);if(e)return this._root=e,this._modal=V.getOrCreateInstance(e,t),this._bindElements(e),void this._bindLifecycle(e);this._modal=V.build(this._modalId,t,(t=>{const e=t._element;this._root=e,e.classList.add("vg-filepreview-image-modal");const i=e.querySelector(".vg-modal-body"),s=e.querySelector(".vg-modal-content");if(!i||!s)return;i.classList.add("vg-filepreview-image-modal__body"),i.innerHTML="";let r=e.querySelector(".vg-modal-header");r||(r=document.createElement("div"),r.className="vg-modal-header",s.prepend(r)),this._title=document.createElement("div"),this._title.className="vg-modal-title",this._title.textContent="",this._image=document.createElement("img"),this._image.className="vg-filepreview-image-modal__img",this._image.loading="eager",this._image.decoding="async",r.appendChild(this._title),i.appendChild(this._image),this._bindLifecycle(e)}))}_bindElements(t){this._title=t.querySelector(".vg-filepreview-image-modal__title"),this._image=t.querySelector(".vg-filepreview-image-modal__img")}_bindLifecycle(t){t&&!t.hasAttribute("data-vg-filepreview-image-lifecycle-bind")&&(t.setAttribute("data-vg-filepreview-image-lifecycle-bind","true"),t.addEventListener("vg.modal.hidden",(()=>{this._destroyModal()})))}_destroyModal(){this._modal&&"function"==typeof this._modal.dispose&&this._modal.dispose(),this._root&&this._root.parentNode&&this._root.parentNode.removeChild(this._root),this._root=null,this._modal=null,this._title=null,this._image=null}}const Ve=je,qe=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".tif",".tiff",".heic",".heif",".avif"]),Ue=class{constructor(){this.name="image",this._modal=Ve.getInstance()}canRender(t={}){const e=String(t?.fileMeta?.ext||"").toLowerCase();return qe.has(e)}render(t={}){const e=t?.previewContainer,i=Boolean(t?.ui?.nameOnly),s=t?.i18n,r=t?.fileUrl?.href||t?.filePath||"";if(!r)return!1;const n=e=>{e&&e.preventDefault(),this._modal.open({src:r,title:t?.fileMeta?.name||s?.message("image_title")||"",defaultTitle:s?.message("image_title")||""})},a=t?.element?.querySelector(".name");a&&!a.hasAttribute("data-vg-filepreview-image-bind")&&(a.setAttribute("data-vg-filepreview-image-bind","true"),a.classList.add("is-preview-action"),a.addEventListener("click",n));const o=t?.element?.closest(".file")?.querySelector(".file-image .file-preview");if(o&&!o.hasAttribute("data-vg-filepreview-image-bind")&&(o.setAttribute("data-vg-filepreview-image-bind","true"),o.classList.add("is-preview-action"),o.addEventListener("click",n)),i)return Boolean(a||o);if(!e)return!1;const l=document.createElement("button");l.type="button",l.className="vg-filepreview-image-trigger",l.textContent=s?.button("open_image")||"",l.addEventListener("click",n),e.appendChild(l);const d=document.createElement("img");return d.className="vg-filepreview-image-thumb",d.src=r,d.alt=t?.fileMeta?.name||s?.message("image_thumbnail_alt")||"",d.loading="lazy",d.addEventListener("click",n),e.appendChild(d),!0}};class We{constructor(){this._modalId="vg-filepreview-office-modal",this._labels={}}static getInstance(){return We._instance||(We._instance=new We),We._instance}open(t={}){const e=String(t.src||"").trim();if(!e)return;if(this._ensureModal(),!this._modal||!this._frame)return;this._labels=t?.labels&&"object"==typeof t.labels?t.labels:{},this._src=e,this._downloadName=String(t.downloadName||"").trim();const i=String(t.defaultTitle||"").trim(),s=String(t.title||"").trim();this._title.textContent=s||i,this._fallback.textContent=this._label("fallback"),this._download.textContent=this._label("download"),this._frame.src=this._buildViewerUrl(e),this._modal.show()}_ensureModal(){this._modal&&this._root||this._initModal()}_initModal(){this._modal=V.build(this._modalId,{centered:!0,dismiss:!0,backdrop:!0,keyboard:!0,sizes:{width:"fit-content"},animation:{enable:!1}},(t=>{const e=t._element;this._root=e,e.classList.add("vg-filepreview-office-modal");const i=e.querySelector(".vg-modal-body"),s=e.querySelector(".vg-modal-content");if(!i||!s)return;i.classList.add("vg-filepreview-image-modal__body"),i.innerHTML="";let r=e.querySelector(".vg-modal-header");r||(r=document.createElement("div"),r.className="vg-modal-header",s.prepend(r)),this._title=document.createElement("div"),this._title.className="vg-modal-title",this._frame=document.createElement("iframe"),this._frame.className="vg-filepreview-office-modal__frame",this._frame.setAttribute("title","Office preview");const n=document.createElement("div");n.className="vg-filepreview-office-modal__footer",this._fallback=document.createElement("span"),this._fallback.className="vg-filepreview-office-modal__hint",this._download=document.createElement("button"),this._download.type="button",this._download.className="vg-filepreview-office-modal__btn",this._download.addEventListener("click",(()=>this._downloadFile())),n.appendChild(this._fallback),n.appendChild(this._download),r.appendChild(this._title),i.appendChild(this._frame),s.appendChild(n),this._bindLifecycle(e)}))}_buildViewerUrl(t){const e=new URL(t,window.location.origin).href;return`https://view.officeapps.live.com/op/embed.aspx?src=${encodeURIComponent(e)}`}_downloadFile(){if(!this._src)return;const t=document.createElement("a");t.href=this._src,this._downloadName&&t.setAttribute("download",this._downloadName),t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)}_label(t){const e=this._labels?.[t];return String(e||"").trim()}_bindLifecycle(t){t&&!t.hasAttribute("data-vg-filepreview-office-lifecycle-bind")&&(t.setAttribute("data-vg-filepreview-office-lifecycle-bind","true"),t.addEventListener("vg.modal.hidden",(()=>this._destroyModal())))}_destroyModal(){this._modal&&"function"==typeof this._modal.dispose&&this._modal.dispose(),this._root&&this._root.parentNode&&this._root.parentNode.removeChild(this._root),this._root=null,this._modal=null,this._title=null,this._frame=null,this._fallback=null,this._download=null,this._labels=null,this._src="",this._downloadName=""}}const Ke=We,Ye=new Set([".doc",".docx",".xls",".xlsx",".ppt",".pptx",".odt",".ods",".odp"]),Ge=class{constructor(){this.name="office",this._modal=Ke.getInstance()}canRender(t={}){const e=String(t?.fileMeta?.ext||"").toLowerCase();return Ye.has(e)}render(t={}){const e=t?.previewContainer,i=Boolean(t?.ui?.nameOnly),s=t?.i18n,r=t?.fileUrl?.href||t?.filePath||"";if(!r)return!1;const n=e=>{e&&e.preventDefault(),this._modal.open({src:r,title:t?.fileMeta?.name||s?.message("office_title")||"",defaultTitle:s?.message("office_title")||"",downloadName:t?.fileMeta?.originalName||t?.fileMeta?.name||"",labels:{download:s?.button("download")||"",fallback:s?.message("office_fallback")||""}})},a=t?.element?.querySelector(".name");if(a&&!a.hasAttribute("data-vg-filepreview-office-bind")&&(a.setAttribute("data-vg-filepreview-office-bind","true"),a.classList.add("is-preview-action"),a.addEventListener("click",n)),i)return Boolean(a);if(!e)return!1;const o=document.createElement("button");return o.type="button",o.className="vg-filepreview-office-trigger",o.textContent=s?.button("open_office")||"",o.addEventListener("click",n),e.appendChild(o),!0}};class Xe{constructor(){this._modalId="vg-filepreview-pdf-modal",this._labels={},this._src="",this._downloadName="",this._page=1,this._zoom=100}static getInstance(){return Xe._instance||(Xe._instance=new Xe),Xe._instance}open(t={}){const e=String(t.src||"").trim();if(!e)return;if(this._ensureModal(),!this._modal||!this._frame)return;this._labels=t?.labels&&"object"==typeof t.labels?t.labels:{},this._src=e,this._downloadName=String(t.downloadName||"").trim(),this._page=1,this._zoom=100;const i=String(t.defaultTitle||"").trim(),s=String(t.title||"").trim();this._title.textContent=s||i,this._syncControls(),this._updateFrameSrc(),this._modal.show()}_ensureModal(){this._modal&&this._root||this._initModal()}_initModal(){const t={centered:!0,dismiss:!0,backdrop:!0,keyboard:!0,sizes:{width:"fit-content"},animation:{enable:!1}},e=document.getElementById(this._modalId);if(e)return this._root=e,this._modal=V.getOrCreateInstance(e,t),this._bindElements(e),void this._bindLifecycle(e);this._modal=V.build(this._modalId,t,(t=>{const e=t._element;this._root=e,e.classList.add("vg-filepreview-pdf-modal");const i=e.querySelector(".vg-modal-body"),s=e.querySelector(".vg-modal-content");if(!i||!s)return;i.classList.add("vg-filepreview-pdf-modal__body"),i.innerHTML="";let r=e.querySelector(".vg-modal-header");r||(r=document.createElement("div"),r.className="vg-modal-header",s.prepend(r)),this._title=document.createElement("div"),this._title.className="vg-modal-title";const n=document.createElement("div");n.className="vg-filepreview-pdf-modal__toolbar",this._pagePrev=document.createElement("button"),this._pagePrev.type="button",this._pagePrev.className="vg-filepreview-pdf-modal__btn",this._pagePrev.setAttribute("data-role","page-prev"),this._pagePrev.addEventListener("click",(()=>{this._page=Math.max(1,this._page-1),this._syncControls(),this._updateFrameSrc()})),this._pageInfo=document.createElement("span"),this._pageInfo.className="vg-filepreview-pdf-modal__meta",this._pageInfo.setAttribute("data-role","page"),this._pageNext=document.createElement("button"),this._pageNext.type="button",this._pageNext.className="vg-filepreview-pdf-modal__btn",this._pageNext.setAttribute("data-role","page-next"),this._pageNext.addEventListener("click",(()=>{this._page+=1,this._syncControls(),this._updateFrameSrc()})),this._zoomOut=document.createElement("button"),this._zoomOut.type="button",this._zoomOut.className="vg-filepreview-pdf-modal__btn",this._zoomOut.setAttribute("data-role","zoom-out"),this._zoomOut.addEventListener("click",(()=>{this._zoom=Math.max(50,this._zoom-10),this._syncControls(),this._updateFrameSrc()})),this._zoomIn=document.createElement("button"),this._zoomIn.type="button",this._zoomIn.className="vg-filepreview-pdf-modal__btn",this._zoomIn.setAttribute("data-role","zoom-in"),this._zoomIn.addEventListener("click",(()=>{this._zoom=Math.min(300,this._zoom+10),this._syncControls(),this._updateFrameSrc()})),this._zoomInfo=document.createElement("span"),this._zoomInfo.className="vg-filepreview-pdf-modal__meta",this._zoomInfo.setAttribute("data-role","zoom"),this._download=document.createElement("button"),this._download.type="button",this._download.className="vg-filepreview-pdf-modal__btn primary",this._download.setAttribute("data-role","download"),this._download.addEventListener("click",(()=>this._downloadFile())),n.appendChild(this._pagePrev),n.appendChild(this._pageInfo),n.appendChild(this._pageNext),n.appendChild(this._zoomOut),n.appendChild(this._zoomInfo),n.appendChild(this._zoomIn),n.appendChild(this._download),this._frame=document.createElement("iframe"),this._frame.className="vg-filepreview-pdf-modal__frame",this._frame.setAttribute("title","PDF preview"),r.appendChild(this._title),i.appendChild(this._frame),this._bindLifecycle(e)}))}_bindElements(t){this._title=t.querySelector(".vg-filepreview-pdf-modal__title"),this._frame=t.querySelector(".vg-filepreview-pdf-modal__frame"),this._pagePrev=t.querySelector('.vg-filepreview-pdf-modal__btn[data-role="page-prev"]'),this._pageNext=t.querySelector('.vg-filepreview-pdf-modal__btn[data-role="page-next"]'),this._zoomOut=t.querySelector('.vg-filepreview-pdf-modal__btn[data-role="zoom-out"]'),this._zoomIn=t.querySelector('.vg-filepreview-pdf-modal__btn[data-role="zoom-in"]'),this._download=t.querySelector('.vg-filepreview-pdf-modal__btn[data-role="download"]'),this._pageInfo=t.querySelector('.vg-filepreview-pdf-modal__meta[data-role="page"]'),this._zoomInfo=t.querySelector('.vg-filepreview-pdf-modal__meta[data-role="zoom"]')}_bindLifecycle(t){t&&!t.hasAttribute("data-vg-filepreview-pdf-lifecycle-bind")&&(t.setAttribute("data-vg-filepreview-pdf-lifecycle-bind","true"),t.addEventListener("vg.modal.hidden",(()=>this._destroyModal())))}_syncControls(){this._pageInfo&&this._zoomInfo&&(this._pagePrev.textContent=this._label("prevPage"),this._pageNext.textContent=this._label("nextPage"),this._zoomOut.textContent=this._label("zoomOut"),this._zoomIn.textContent=this._label("zoomIn"),this._download.textContent=this._label("download"),this._pageInfo.textContent=`${this._label("page")}: ${this._page}`,this._zoomInfo.textContent=`${this._label("zoom")}: ${this._zoom}%`)}_updateFrameSrc(){if(!this._frame||!this._src)return;const t=`#page=${this._page}&zoom=${this._zoom}`;this._frame.src=`${this._src}${t}`}_downloadFile(){if(!this._src)return;const t=document.createElement("a");t.href=this._src,this._downloadName&&t.setAttribute("download",this._downloadName),t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)}_label(t){const e=this._labels?.[t];return String(e||"").trim()}_destroyModal(){this._modal&&"function"==typeof this._modal.dispose&&this._modal.dispose(),this._root&&this._root.parentNode&&this._root.parentNode.removeChild(this._root),this._root=null,this._modal=null,this._title=null,this._frame=null,this._labels=null,this._src=""}}const Ze=Xe,Je=new Set([".pdf"]),Qe=class{constructor(){this.name="pdf",this._modal=Ze.getInstance()}canRender(t={}){const e=String(t?.fileMeta?.ext||"").toLowerCase();return Je.has(e)}render(t={}){const e=t?.previewContainer,i=Boolean(t?.ui?.nameOnly),s=t?.i18n,r=t?.fileUrl?.href||t?.filePath||"";if(!r)return!1;const n=e=>{e&&e.preventDefault(),this._modal.open({src:r,title:t?.fileMeta?.name||s?.message("pdf_title")||"",defaultTitle:s?.message("pdf_title")||"",labels:{page:s?.message("pdf_page")||"",zoom:s?.message("pdf_zoom")||"",zoomIn:s?.button("zoom_in")||"",zoomOut:s?.button("zoom_out")||"",prevPage:s?.button("prev")||"",nextPage:s?.button("next")||"",download:s?.button("download")||""},downloadName:t?.fileMeta?.originalName||t?.fileMeta?.name||"file.pdf"})},a=t?.element?.querySelector(".name");if(a&&!a.hasAttribute("data-vg-filepreview-pdf-bind")&&(a.setAttribute("data-vg-filepreview-pdf-bind","true"),a.classList.add("is-preview-action"),a.addEventListener("click",n)),i)return Boolean(a);if(!e)return!1;const o=document.createElement("button");return o.type="button",o.className="vg-filepreview-pdf-trigger",o.textContent=s?.button("open_pdf")||"",o.addEventListener("click",n),e.appendChild(o),!0}};class ti{constructor(){this._modalId="vg-filepreview-text-modal",this._abortController=null,this._labels={}}static getInstance(){return ti._instance||(ti._instance=new ti),ti._instance}open(t={}){const e=String(t.src||"").trim();if(!e)return;if(this._ensureModal(),!this._modal||!this._content)return;this._labels=t?.labels&&"object"==typeof t.labels?t.labels:{};const i=String(t.defaultTitle||"").trim(),s=String(t.title||"").trim(),r=String(t.ext||"").toLowerCase();this._title.textContent=s||i,this._content.textContent=this._label("loading"),this._content.classList.remove("is-markdown"),this._modal.show(),this._loadText(e,{ext:r})}close(){this._modal&&this._modal.hide()}_ensureModal(){this._modal&&this._root||this._initModal()}_initModal(){const t={centered:!0,dismiss:!0,backdrop:!0,keyboard:!0,sizes:{width:"600px",height:""},animation:{enable:!1}},e=document.getElementById(this._modalId);if(e)return this._root=e,this._modal=V.getOrCreateInstance(e,t),this._bindElements(e),void this._bindLifecycle(e);this._modal=V.build(this._modalId,t,(t=>{const e=t._element;this._root=e,e.classList.add("vg-filepreview-text-modal");const i=e.querySelector(".vg-modal-body"),s=e.querySelector(".vg-modal-content");if(!i||!s)return;i.classList.add("vg-filepreview-text-modal__body"),i.innerHTML="";let r=e.querySelector(".vg-modal-header");r||(r=document.createElement("div"),r.className="vg-modal-header",s.prepend(r)),this._title=document.createElement("div"),this._title.className="vg-modal-title",this._title.textContent="",this._content=document.createElement("pre"),this._content.className="vg-filepreview-text-modal__content",this._content.textContent="",r.appendChild(this._title),i.appendChild(this._content),this._bindLifecycle(e)}))}_bindElements(t){this._title=t.querySelector(".vg-filepreview-text-modal__title"),this._content=t.querySelector(".vg-filepreview-text-modal__content")}_bindLifecycle(t){t&&!t.hasAttribute("data-vg-filepreview-text-lifecycle-bind")&&(t.setAttribute("data-vg-filepreview-text-lifecycle-bind","true"),t.addEventListener("vg.modal.hidden",(()=>{this._destroyModal()})))}_loadText(t,e={}){const i=String(e.ext||"").toLowerCase(),s=`${t}|${i}`;if(ti._cache.has(s)){const t=ti._cache.get(s);this._renderLoadedText(t,i)}else this._abortController&&this._abortController.abort(),this._abortController=new AbortController,fetch(t,{method:"GET",signal:this._abortController.signal}).then((t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.text()})).then((t=>{const e=t||"";ti._cache.set(s,e),this._renderLoadedText(e,i)})).catch((t=>{this._content&&"AbortError"!==t?.name&&(this._content.classList.remove("is-markdown"),this._content.textContent=`${this._label("cannotOpen")}: ${t?.message||this._label("unknownError")}`)}))}_renderLoadedText(t,e){if(!this._content)return;const i=String(t||"");".md"===e?(this._content.classList.add("is-markdown"),this._content.innerHTML=this._renderMarkdown(i)):(this._content.classList.remove("is-markdown"),this._content.textContent=i||this._label("emptyFile"))}_destroyModal(){this._abortController&&(this._abortController.abort(),this._abortController=null),this._modal&&"function"==typeof this._modal.dispose&&this._modal.dispose(),this._root&&this._root.parentNode&&this._root.parentNode.removeChild(this._root),this._root=null,this._modal=null,this._title=null,this._content=null,this._labels=null}_label(t,e=""){const i=this._labels?.[t];return"string"==typeof i&&i.trim()?i:e}_renderMarkdown(t){const e=t=>String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),i=t=>{let i=e(t);return i=i.replace(/`([^`]+)`/g,"<code>$1</code>"),i=i.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),i=i.replace(/\*([^*]+)\*/g,"<em>$1</em>"),i=i.replace(/\[([^\]]+)\]\(([^)]+)\)/g,((t,e,i)=>`<a href="${this._sanitizeUrl(i)}" target="_blank" rel="noopener noreferrer">${e}</a>`)),i},s=String(t||"").split(/\r?\n/),r=[];let n=!1,a=!1;return s.forEach((t=>{const s=t||"";if(s.trim().startsWith("```"))return void(a?(a=!1,r.push("</code></pre>")):(a=!0,r.push("<pre><code>")));if(a)return void r.push(`${e(s)}\n`);if(!s.trim())return void(n&&(n=!1,r.push("</ul>")));const o=s.match(/^(#{1,6})\s+(.+)$/);if(o){n&&(n=!1,r.push("</ul>"));const t=o[1].length;return void r.push(`<h${t}>${i(o[2])}</h${t}>`)}const l=s.match(/^[-*]\s+(.+)$/);if(l)return n||(n=!0,r.push("<ul>")),void r.push(`<li>${i(l[1])}</li>`);n&&(n=!1,r.push("</ul>")),r.push(`<p>${i(s)}</p>`)})),n&&r.push("</ul>"),a&&r.push("</code></pre>"),r.join("")||`<p>${this._escapeHtml(this._label("emptyFile"))}</p>`}_escapeHtml(t){return String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}_sanitizeUrl(t){const e=String(t||"").trim();if(!e)return"#";try{const t=new URL(e,window.location.origin);if(["http:","https:","mailto:"].includes(t.protocol))return t.href}catch{return"#"}return"#"}}ti._cache=new Map;const ei=ti,ii=new Set([".txt",".md",".csv",".json",".xml",".yml",".yaml",".log",".ini",".conf",".env"]),si=class{constructor(){this.name="text",this._modal=ei.getInstance()}canRender(t={}){const e=String(t?.fileMeta?.ext||"").toLowerCase();return ii.has(e)}render(t={}){const e=t?.previewContainer,i=Boolean(t?.ui?.nameOnly),s=t?.i18n,r=t?.fileUrl?.href||t?.filePath||"";if(!r)return!1;const n=e=>{e&&e.preventDefault(),this._modal.open({src:r,title:t?.fileMeta?.name||s?.message("text_title")||"",defaultTitle:s?.message("text_title")||"",ext:t?.fileMeta?.ext||"",labels:{loading:s?.message("loading_text")||"",cannotOpen:s?.message("cannot_open_file")||"",unknownError:s?.message("unknown_error")||"",emptyFile:s?.message("empty_file")||""}})},a=t?.element?.querySelector(".name");if(a&&!a.hasAttribute("data-vg-filepreview-text-bind")&&(a.setAttribute("data-vg-filepreview-text-bind","true"),a.classList.add("is-preview-action"),a.addEventListener("click",n)),i)return Boolean(a);if(!e)return!1;const o=document.createElement("button");return o.type="button",o.className="vg-filepreview-text-trigger",o.textContent=s?.button("open_text")||"",o.addEventListener("click",n),e.appendChild(o),!0}};class ri{constructor(){this._modalId="vg-filepreview-video-modal",this._playlist=[],this._currentIndex=-1,this._labels={},this._onKeyDown=t=>this._handleHotkeys(t)}static getInstance(){return ri._instance||(ri._instance=new ri),ri._instance}open(t={}){const e=String(t.src||"").trim();if(!e)return;if(this._ensureModal(),!this._modal||!this._video)return;const i=t?.playlist&&"object"==typeof t.playlist?t.playlist:null;if(this._labels=t?.labels&&"object"==typeof t.labels?t.labels:{},i?.tracks?.length){this._playlist=i.tracks;const t=this._playlist.findIndex((t=>String(t.src||"").trim()===e));this._currentIndex=t>=0?t:Number(i.currentIndex||0)}else this._playlist=[{src:e,title:String(t.title||"").trim()}],this._currentIndex=0;const s=String(t.defaultTitle||"").trim(),r=String(t.title||"").trim();this._title.textContent=r||s,this._syncNavigation(),this._video.src=e,this._video.load(),this._modal.show(),this._video.play().catch((()=>{}))}close(){this._modal&&(this._modal.hide(),this._stop())}_ensureModal(){this._modal&&this._root||this._initModal()}_initModal(){const t={centered:!0,dismiss:!0,backdrop:!0,keyboard:!0,sizes:{width:"fit-content"},animation:{enable:!1}},e=document.getElementById(this._modalId);if(e)return this._root=e,this._modal=V.getOrCreateInstance(e,t),this._bindElements(e),void this._bindEvents(e);this._modal=V.build(this._modalId,t,(t=>{const e=t._element;this._root=e,e.classList.add("vg-filepreview-video-modal");const i=e.querySelector(".vg-modal-body"),s=e.querySelector(".vg-modal-content");if(!i||!s)return;i.classList.add("vg-filepreview-image-modal__body"),i.innerHTML="";let r=e.querySelector(".vg-modal-header");r||(r=document.createElement("div"),r.className="vg-modal-header",s.prepend(r)),this._title=document.createElement("div"),this._title.className="vg-modal-title",this._title.textContent="";const n=document.createElement("div");n.className="vg-filepreview-video-modal__navigation",this._prevButton=document.createElement("button"),this._prevButton.type="button",this._prevButton.className="vg-filepreview-video-modal__nav-btn",this._prevButton.addEventListener("click",(()=>this._goPrev())),this._nextButton=document.createElement("button"),this._nextButton.type="button",this._nextButton.className="vg-filepreview-video-modal__nav-btn",this._nextButton.addEventListener("click",(()=>this._goNext())),n.appendChild(this._prevButton),n.appendChild(this._nextButton),this._video=document.createElement("video"),this._video.className="vg-filepreview-video-modal__video",this._video.controls=!0,this._video.preload="metadata",this._video.playsInline=!0,this._video.addEventListener("ended",(()=>this._goNext(!0))),r.appendChild(this._title),i.appendChild(this._video),this._bindEvents(e)}))}_bindElements(t){this._title=t.querySelector(".vg-filepreview-video-modal__title"),this._video=t.querySelector(".vg-filepreview-video-modal__video")}_bindEvents(t){t&&!t.hasAttribute("data-vg-filepreview-video-bind")&&(t.setAttribute("data-vg-filepreview-video-bind","true"),document.addEventListener("keydown",this._onKeyDown),t.addEventListener("vg.modal.hidden",(()=>{this._stop(),this._destroyModal()})))}_stop(){this._video&&(this._video.pause(),this._video.currentTime=0)}_destroyModal(){document.removeEventListener("keydown",this._onKeyDown),this._modal&&"function"==typeof this._modal.dispose&&this._modal.dispose(),this._root&&this._root.parentNode&&this._root.parentNode.removeChild(this._root),this._root=null,this._modal=null,this._title=null,this._prevButton=null,this._nextButton=null,this._video=null,this._playlist=[],this._currentIndex=-1,this._labels={}}_syncNavigation(){if(!this._prevButton||!this._nextButton)return;this._prevButton.textContent=this._labels.prev||"",this._nextButton.textContent=this._labels.next||"";const t=this._playlist.length>1;this._prevButton.disabled=!t,this._nextButton.disabled=!t}_goPrev(){this._playlist.length&&(this._currentIndex=this._currentIndex<=0?this._playlist.length-1:this._currentIndex-1,this._openCurrentTrack())}_goNext(t=!1){this._playlist.length&&(1!==this._playlist.length||t)&&(this._currentIndex=(this._currentIndex+1)%this._playlist.length,this._openCurrentTrack())}_openCurrentTrack(){const t=this._playlist[this._currentIndex];t?.src&&this.open({src:t.src,title:t.title||"",defaultTitle:t.title||"",playlist:{tracks:this._playlist,currentIndex:this._currentIndex},labels:this._labels})}_handleHotkeys(t){if(!this._root||!this._root.classList.contains("show"))return;const e=String(t?.target?.tagName||"").toUpperCase();["INPUT","TEXTAREA","SELECT"].includes(e)||("ArrowLeft"===t.key&&(t.preventDefault(),this._goPrev()),"ArrowRight"===t.key&&(t.preventDefault(),this._goNext()))}}const ni=ri,ai=t=>{const e=t?.getAttribute("data-vg-filepreview")||"";return String(e).trim()},oi=t=>{try{return new URL(t,window.location.origin).href}catch{return""}},li=(t,e="")=>{const i=t?.querySelector(".name"),s=String(i?.textContent||"").trim();if(s)return s;const r=String(e).split("/").pop()||"";return decodeURIComponent(r)},di=t=>{const e=t?.querySelector(".original_name");return String(e?.textContent||"").trim()},hi=new Set([".mp4",".webm",".mov",".mkv",".avi",".m4v"]),ci=class{constructor(){this.name="video",this._modal=ni.getInstance()}canRender(t={}){const e=String(t?.fileMeta?.ext||"").toLowerCase();return hi.has(e)}render(t={}){const e=t?.previewContainer,i=Boolean(t?.ui?.nameOnly),s=t?.i18n,r=t?.fileUrl?.href||t?.filePath||"";if(!r)return!1;const n=((t,e=()=>!0)=>{const i=Array.from(document.querySelectorAll('[data-vg-filepreview][data-vg-filepreview-valid="true"]')).map((t=>{const e=ai(t),i=oi(e),s=(t=>{if(!t)return"";const e=String(t).split("#")[0].split("?")[0].split("/").pop()||"";return e.includes(".")?`.${String(e.split(".").pop()||"").toLowerCase()}`:""})(e);return{element:t,path:e,src:i,ext:s,title:li(t,e),subtitle:di(t)}})).filter((t=>t.src&&e(t.ext))),s=oi(ai(t)),r=i.findIndex((t=>t.src===s));return{tracks:i,currentIndex:r>=0?r:0}})(t?.element,(t=>hi.has(t))),a={prev:s?.button("prev")||"",next:s?.button("next")||""},o=e=>{e&&e.preventDefault(),this._modal.open({src:r,title:t?.fileMeta?.name||s?.message("video_title")||"",defaultTitle:s?.message("video_title")||"",playlist:n,labels:a})},l=t?.element?.querySelector(".name");if(l&&!l.hasAttribute("data-vg-filepreview-video-bind")&&(l.setAttribute("data-vg-filepreview-video-bind","true"),l.classList.add("is-preview-action"),l.addEventListener("click",o)),i)return Boolean(l);if(!e)return!1;const d=document.createElement("button");return d.type="button",d.className="vg-filepreview-video-trigger",d.textContent=s?.button("open_video")||"",d.addEventListener("click",o),e.appendChild(d),!0}};class ui{constructor(){this._modalId="vg-filepreview-zip-modal",this._abortController=null,this._labels={},this._entries=[],this._arrayBuffer=null}static getInstance(){return ui._instance||(ui._instance=new ui),ui._instance}open(t={}){const e=String(t.src||"").trim();if(!e)return;if(this._ensureModal(),!this._modal||!this._content)return;this._labels=t?.labels&&"object"==typeof t.labels?t.labels:{};const i=String(t.defaultTitle||"").trim(),s=String(t.title||"").trim();this._title.textContent=s||i,this._content.innerHTML=`<div class="vg-filepreview-zip-modal__loading">${this._escapeHtml(this._label("loadingArchive"))}</div>`,this._modal.show(),this._loadZipEntries(e)}close(){this._modal&&this._modal.hide()}_ensureModal(){this._modal&&this._root||this._initModal()}_initModal(){const t={centered:!0,dismiss:!0,backdrop:!0,keyboard:!0,sizes:{width:"800px"},animation:{enable:!1}},e=document.getElementById(this._modalId);if(e)return this._root=e,this._modal=V.getOrCreateInstance(e,t),this._bindElements(e),void this._bindLifecycle(e);this._modal=V.build(this._modalId,t,(t=>{const e=t._element;this._root=e,e.classList.add("vg-filepreview-zip-modal");const i=e.querySelector(".vg-modal-body"),s=e.querySelector(".vg-modal-content");if(!i||!s)return;i.classList.add("vg-filepreview-image-modal__body"),i.innerHTML="";let r=e.querySelector(".vg-modal-header");r||(r=document.createElement("div"),r.className="vg-modal-header",s.prepend(r)),this._title=document.createElement("div"),this._title.className="vg-modal-title",this._title.textContent="",this._content=document.createElement("div"),this._content.className="vg-filepreview-zip-modal__content",r.appendChild(this._title),i.appendChild(this._content),this._bindLifecycle(e)}))}_bindElements(t){this._title=t.querySelector(".vg-filepreview-zip-modal__title"),this._content=t.querySelector(".vg-filepreview-zip-modal__content")}_bindLifecycle(t){t&&!t.hasAttribute("data-vg-filepreview-zip-lifecycle-bind")&&(t.setAttribute("data-vg-filepreview-zip-lifecycle-bind","true"),t.addEventListener("vg.modal.hidden",(()=>{this._destroyModal()})))}_loadZipEntries(t){this._abortController&&this._abortController.abort(),this._abortController=new AbortController;const e=ui._cache.get(t);if(e?.entries&&e?.arrayBuffer)return this._entries=e.entries,this._arrayBuffer=e.arrayBuffer,void this._renderEntries(this._entries);fetch(t,{method:"GET",signal:this._abortController.signal}).then((t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.arrayBuffer()})).then((e=>{const i=this._parseZipEntries(e);this._entries=i,this._arrayBuffer=e,ui._cache.set(t,{entries:i,arrayBuffer:e}),this._renderEntries(i)})).catch((t=>{if("AbortError"!==t?.name&&this._content){const e=this._resolveErrorText(t);this._content.innerHTML=`<div class="vg-filepreview-zip-modal__error">${this._escapeHtml(this._label("cannotOpenArchive"))}: ${this._escapeHtml(e)}</div>`}}))}_destroyModal(){this._abortController&&(this._abortController.abort(),this._abortController=null),this._modal&&"function"==typeof this._modal.dispose&&this._modal.dispose(),this._root&&this._root.parentNode&&this._root.parentNode.removeChild(this._root),this._root=null,this._modal=null,this._title=null,this._content=null,this._labels=null,this._entries=[],this._arrayBuffer=null}_parseZipEntries(t){const e=new DataView(t),i=e.byteLength;if(i<22)throw new Error("invalid_zip");const s=this._findEndOfCentralDirectory(e);if(s<0)throw new Error("central_directory_not_found");const r=e.getUint16(s+10,!0),n=e.getUint32(s+16,!0),a=new TextDecoder("utf-8",{fatal:!1}),o=[];let l=n;for(let s=0;s<r&&!(l+46>i)&&33639248===e.getUint32(l,!0);s+=1){const s=e.getUint32(l+20,!0),r=e.getUint32(l+24,!0),n=e.getUint16(l+10,!0),d=e.getUint16(l+28,!0),h=e.getUint16(l+30,!0),c=e.getUint16(l+32,!0),u=e.getUint32(l+42,!0),_=l+46,m=_+d;if(m>i)break;const p=new Uint8Array(t,_,d),g=a.decode(p);o.push({name:g,compressedSize:s,uncompressedSize:r,compressionMethod:n,localHeaderOffset:u,isDirectory:g.endsWith("/")}),l=m+h+c}return o}_findEndOfCentralDirectory(t){const e=Math.max(0,t.byteLength-65557);for(let i=t.byteLength-22;i>=e;i-=1)if(101010256===t.getUint32(i,!0))return i;return-1}_renderEntries(t){if(!this._content)return;if(!t.length)return void(this._content.innerHTML=`<div class="vg-filepreview-zip-modal__empty">${this._escapeHtml(this._label("archiveEmptyUnsupported"))}</div>`);const e=t.map(((t,e)=>{const i=t.isDirectory?this._label("typeDir"):this._label("typeFile"),s=t.isDirectory?"-":this._formatSize(t.compressedSize),r=t.isDirectory?"-":this._formatSize(t.uncompressedSize),n=!t.isDirectory&&this._canPreviewEntry(t)?`<button type="button" class="vg-filepreview-zip-modal__entry-btn" data-entry-index="${e}">${this._escapeHtml(this._label("previewEntry"))}</button>`:"-";return`\n<tr>\n\t<td>${e+1}</td>\n\t<td class="name">${this._escapeHtml(t.name)}</td>\n\t<td>${i}</td>\n\t<td>${s}</td>\n\t<td>${r}</td>\n\t<td>${n}</td>\n</tr>`})).join("");this._content.innerHTML=`\n<table class="vg-filepreview-zip-modal__table">\n\t<thead>\n\t\t<tr>\n\t\t\t<th>#</th>\n\t\t\t<th>${this._escapeHtml(this._label("tableName"))}</th>\n\t\t\t<th>${this._escapeHtml(this._label("tableType"))}</th>\n\t\t\t<th>${this._escapeHtml(this._label("tablePacked"))}</th>\n\t\t\t<th>${this._escapeHtml(this._label("tableSize"))}</th>\n\t\t\t<th>${this._escapeHtml(this._label("tablePreview"))}</th>\n\t\t</tr>\n\t</thead>\n\t<tbody>\n\t\t${e}\n\t</tbody>\n</table>`,this._bindEntriesPreview()}_label(t,e=""){const i=this._labels?.[t];return"string"==typeof i&&i.trim()?i:e}_resolveErrorText(t){const e=String(t?.message||"").trim();return e?"invalid_zip"===e?this._label("invalidZip"):"central_directory_not_found"===e?this._label("centralDirectoryNotFound"):e:this._label("unknownError")}_formatSize(t){if(!Number.isFinite(t)||t<0)return"-";const e=["B","KB","MB","GB"];let i=t,s=0;for(;i>=1024&&s<e.length-1;)i/=1024,s+=1;const r=i>=100||0===s?0:2;return`${i.toFixed(r)} ${e[s]}`}_escapeHtml(t){return String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}_bindEntriesPreview(){this._content&&!this._content.hasAttribute("data-vg-filepreview-zip-preview-bind")&&(this._content.setAttribute("data-vg-filepreview-zip-preview-bind","true"),this._content.addEventListener("click",(t=>{const e=t.target.closest("[data-entry-index]");if(!e)return;t.preventDefault();const i=Number(e.getAttribute("data-entry-index"));!Number.isFinite(i)||i<0||i>=this._entries.length||this._previewEntry(i)})))}_canPreviewEntry(t){if(!t||t.isDirectory||!t.name)return!1;const e=this._extractExtension(t.name);return new Set([".txt",".md",".json",".xml",".yml",".yaml",".csv",".log",".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp"]).has(e)}async _previewEntry(t){if(!this._content)return;const e=this._entries[t];if(!e||!this._canPreviewEntry(e))return;let i=this._content.querySelector(".vg-filepreview-zip-modal__entry-preview");i||(i=document.createElement("div"),i.className="vg-filepreview-zip-modal__entry-preview",this._content.appendChild(i)),i.innerHTML=`<div class="vg-filepreview-zip-modal__entry-preview-loading">${this._escapeHtml(this._label("loadingEntry"))}</div>`;try{const t=await this._extractEntryBytes(e),s=this._extractExtension(e.name);if(this._isImageExtension(s)){const r=new Blob([t.buffer],{type:this._mimeByExtension(s)}),n=URL.createObjectURL(r);return i.innerHTML=`\n<div class="vg-filepreview-zip-modal__entry-preview-title">${this._escapeHtml(e.name)}</div>\n<img class="vg-filepreview-zip-modal__entry-preview-image" src="${n}" alt="${this._escapeHtml(e.name)}" />`,void setTimeout((()=>URL.revokeObjectURL(n)),2e3)}const r=new TextDecoder("utf-8",{fatal:!1}).decode(t),n=this._escapeHtml(r||this._label("emptyFileInArchive"));i.innerHTML=`\n<div class="vg-filepreview-zip-modal__entry-preview-title">${this._escapeHtml(e.name)}</div>\n<pre class="vg-filepreview-zip-modal__entry-preview-text">${n}</pre>`}catch(t){i.innerHTML=`<div class="vg-filepreview-zip-modal__entry-preview-error">${this._escapeHtml(this._label("cannotPreviewEntry"))}: ${this._escapeHtml(t?.message||this._label("unknownError"))}</div>`}}async _extractEntryBytes(t){if(!this._arrayBuffer)throw new Error(this._label("archiveBufferMissing"));const e=new DataView(this._arrayBuffer),i=Number(t.localHeaderOffset||0);if(i+30>e.byteLength)throw new Error(this._label("entryCorrupted"));if(67324752!==e.getUint32(i,!0))throw new Error(this._label("entryCorrupted"));const s=i+30+e.getUint16(i+26,!0)+e.getUint16(i+28,!0),r=s+Number(t.compressedSize||0);if(r>e.byteLength)throw new Error(this._label("entryCorrupted"));const n=new Uint8Array(this._arrayBuffer.slice(s,r)),a=Number(t.compressionMethod||0);if(0===a)return n;if(8===a){if("undefined"==typeof DecompressionStream)throw new Error(this._label("deflateNotSupported"));const t=new Blob([n]).stream().pipeThrough(new DecompressionStream("deflate-raw")),e=await new Response(t).arrayBuffer();return new Uint8Array(e)}throw new Error(this._label("compressionNotSupported"))}_extractExtension(t){const e=String(t||"").toLowerCase().split("/").pop()||"";return e.includes(".")?`.${e.split(".").pop()||""}`:""}_isImageExtension(t){return new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp"]).has(t)}_mimeByExtension(t){return{".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".svg":"image/svg+xml",".bmp":"image/bmp"}[t]||"application/octet-stream"}}ui._cache=new Map;const _i=ui,mi=new Set([".zip"]),pi=class{constructor(){this.name="zip",this._modal=_i.getInstance()}canRender(t={}){const e=String(t?.fileMeta?.ext||"").toLowerCase();return mi.has(e)}render(t={}){const e=t?.previewContainer,i=Boolean(t?.ui?.nameOnly),s=t?.i18n,r=t?.fileUrl?.href||t?.filePath||"";if(!r)return!1;const n=e=>{e&&e.preventDefault(),this._modal.open({src:r,title:t?.fileMeta?.name||s?.message("archive_title")||"",defaultTitle:s?.message("archive_title")||"",labels:{loadingArchive:s?.message("loading_archive")||"",cannotOpenArchive:s?.message("cannot_open_archive")||"",unknownError:s?.message("unknown_error")||"",invalidZip:s?.message("invalid_zip")||"",centralDirectoryNotFound:s?.message("central_directory_not_found")||"",archiveEmptyUnsupported:s?.message("archive_empty_unsupported")||"",typeDir:s?.message("archive_type_dir")||"",typeFile:s?.message("archive_type_file")||"",tableName:s?.message("archive_table_name")||"",tableType:s?.message("archive_table_type")||"",tablePacked:s?.message("archive_table_packed")||"",tableSize:s?.message("archive_table_size")||"",tablePreview:s?.message("archive_table_preview")||"",previewEntry:s?.button("preview")||"",loadingEntry:s?.message("loading_entry")||"",cannotPreviewEntry:s?.message("cannot_preview_entry")||"",deflateNotSupported:s?.message("deflate_not_supported")||"",compressionNotSupported:s?.message("compression_not_supported")||"",entryCorrupted:s?.message("entry_corrupted")||"",archiveBufferMissing:s?.message("archive_buffer_missing")||"",emptyFileInArchive:s?.message("empty_file")||""}})},a=t?.element?.querySelector(".name");if(a&&!a.hasAttribute("data-vg-filepreview-zip-bind")&&(a.setAttribute("data-vg-filepreview-zip-bind","true"),a.classList.add("is-preview-action"),a.addEventListener("click",n)),i)return Boolean(a);if(!e)return!1;const o=document.createElement("button");return o.type="button",o.className="vg-filepreview-zip-trigger",o.textContent=s?.button("open_archive")||"",o.addEventListener("click",n),e.appendChild(o),!0}},gi=new Set(["ru","en"]),fi=(t,e="ru")=>{const i=String(t||"").trim().toLowerCase();if(!i)return e;const s=i.split("-")[0];return gi.has(s)?s:e};class bi extends t.A{constructor(t,e={}){super(t,e),this._params=this._getParams(t,(0,r._v)({validate:!0,lang:"ru",ui:{nameOnly:!1},preview:{audio:{enable:!0},video:{enable:!0},image:{enable:!0},archive:{enable:!0},text:{enable:!0},office:{enable:!0},pdf:{enable:!0}}},e)),this._filePath="",this._fileUrl=null,this._isValid=!1,this._fileMeta={},this._fields=[],this._editableFields={},this._helper=new ke(this._element),this._renderers=[new Ue,new ci,new Qe,new Ge,new pi,new si],this._lang=((t,e)=>{const i=fi(t,"");if(i)return i;const s=fi(e?.getAttribute("lang"),"");if(s)return s;const r=fi(e?.closest("[lang]")?.getAttribute("lang"),"");if(r)return r;const n=fi(document?.documentElement?.getAttribute("lang"),"");return n||(fi(window?.navigator?.language,"")||"ru")})(this._params.lang,this._element),this._i18n=((t="ru")=>{const e=fi(t,"ru"),i=tt(e,"filepreview")||{},s=et(e,"filepreview")||{};return{lang:e,message:(t,e="")=>i[t]||e,button:(t,e="")=>s[t]||e}})(this._lang),this._inlineAudio=null,this._inlineAudioSrc="",this._inlineAudioButton=null,this._inlineAudioIcon=null,this._inlineAudioContainer=null,this._audioMetaPromise=null,this._audioMetaApplied=!1,this._audioCoverObjectUrl="",this._videoMetaPromise=null,this._videoMetaApplied=!1,this._videoCoverObjectUrl="",this._imageModal=null,this.init()}static get NAME(){return"filepreview"}static get NAME_KEY(){return"vg.filepreview"}get filePath(){return this._filePath}get fileUrl(){return this._fileUrl}get isValid(){return this._isValid}get fileMeta(){return this._fileMeta}get fields(){return this._fields}get editableFields(){return this._editableFields}init(){const t=this._helper.getFilePath();if(this._filePath=t,this._params.validate){const e=this._helper.validateFilePath(t);this._isValid=e.isValid,this._fileUrl=e.fileUrl}else this._isValid=!0,this._fileUrl=null;return this._helper.syncState(this._isValid),!!this._isValid&&(this._fileMeta=this._helper.getFileMeta(this._filePath),this.preview())}preview(){return this._setState("loading"),this._fields=this._helper.getFields(),this._editableFields=this._helper.resolveEditableFields(this._fields),this._helper.syncEditableFields(this._editableFields),this._renderIcon(),this._renderTextFields(),this._renderDownloadField(),this._enrichVideoMetadata(),this._renderPreview(),this._editableFields}_renderIcon(){const t=this._editableFields.icon;if(!t)return;const e=this._getImageIconSrc();if(e){t.innerHTML="";const i=document.createElement("img");return i.src=e,i.alt=this._fileMeta?.originalName||this._fileMeta?.name||"",i.className="vg-filepreview-icon-image",i.loading="lazy",i.addEventListener("error",(()=>{this._renderDefaultIcon(t)})),this._isPreviewGroupEnabled("image")&&this._bindIconImageToModal(i,e),void t.appendChild(i)}this._renderDefaultIcon(t)}_renderTextFields(){const t=this._getDisplayName(),e=this._getFileName(),i=this._hasDataDrivenDisplayName(),s=this._editableFields.name;s&&(this._isAudioFile()&&this._isPreviewGroupEnabled("audio")?(this._renderAudioNameField(s),this._element.setAttribute("data-vg-filepreview-renderer","audio")):t&&(s.classList.remove("vg-filepreview-audio-inline"),s.textContent=t,this._applyNameClampStyles(s)));const r=this._editableFields.ext;r&&this._fileMeta.ext&&(r.textContent=this._fileMeta.ext);const n=this._editableFields.size;n&&this._fileMeta.sizeText&&(n.textContent=this._fileMeta.sizeText);const a=this._editableFields.original_name;if(a)return i&&e?(a.textContent=e,void this._applyNameClampStyles(a)):this._fileMeta.originalName?(a.textContent=this._fileMeta.originalName,void this._applyNameClampStyles(a)):void(this._fileMeta.isMedia&&(a.textContent=""))}_renderAudioNameField(t){const e=this._getDisplayName();if(!e)return;t.innerHTML="",t.classList.add("vg-filepreview-audio-inline");const i=document.createElement("button");i.type="button",i.className="vg-filepreview-audio-inline__toggle",i.setAttribute("aria-label","Play/Pause");const s=document.createElement("span");s.className="vg-filepreview-audio-inline__icon",i.appendChild(s);const r=document.createElement("span");r.className="vg-filepreview-audio-inline__name",r.textContent=e,this._applyNameClampStyles(r),r.addEventListener("click",(t=>{t.preventDefault(),t.stopPropagation(),this._toggleInlineAudio()})),i.addEventListener("click",(t=>{t.preventDefault(),t.stopPropagation(),this._toggleInlineAudio()})),t.appendChild(i),t.appendChild(r),this._inlineAudioButton=i,this._inlineAudioIcon=s;const n=this._element?.classList?.contains("file")?this._element:this._element?.closest?.(".file");this._inlineAudioContainer=n||this._element||t,this._setInlineAudioProgress(0);const a=bi._activeAudioOwner===this&&this._inlineAudio&&!this._inlineAudio.paused;this._syncInlineAudioIcon(a),this._enrichAudioMetadata(r)}_toggleInlineAudio(){if(!this._isPreviewGroupEnabled("audio"))return;const t=this._fileUrl?.href||this._filePath||"";t&&this._inlineAudioButton&&(bi._activeAudioOwner&&bi._activeAudioOwner!==this&&bi._activeAudioOwner._stopInlineAudio(),this._inlineAudio&&this._inlineAudioSrc===t||(this._stopInlineAudio(),this._inlineAudio=new Audio(t),this._inlineAudioSrc=t,this._inlineAudio.addEventListener("ended",(()=>{this._syncInlineAudioIcon(!1),this._setInlineAudioProgress(0)})),this._inlineAudio.addEventListener("timeupdate",(()=>this._syncInlineAudioProgress())),this._inlineAudio.addEventListener("loadedmetadata",(()=>this._syncInlineAudioProgress()))),this._inlineAudio.paused?this._inlineAudio.play().then((()=>{bi._activeAudioOwner=this,this._syncInlineAudioIcon(!0)})).catch((()=>{this._syncInlineAudioIcon(!1)})):(this._inlineAudio.pause(),this._syncInlineAudioIcon(!1),bi._activeAudioOwner===this&&(bi._activeAudioOwner=null)))}_stopInlineAudio(){if(!this._inlineAudio)return this._syncInlineAudioIcon(!1),void this._setInlineAudioProgress(0);this._inlineAudio.pause(),this._inlineAudio.currentTime=0,this._syncInlineAudioIcon(!1),this._setInlineAudioProgress(0),bi._activeAudioOwner===this&&(bi._activeAudioOwner=null)}_syncInlineAudioIcon(t){this._inlineAudioIcon&&(this._inlineAudioIcon.innerHTML=t?(0,f.z)("pause")||"":(0,f.z)("play")||"")}_syncInlineAudioProgress(){if(!this._inlineAudio)return void this._setInlineAudioProgress(0);const t=Number(this._inlineAudio.duration||0),e=Number(this._inlineAudio.currentTime||0);if(!t||!Number.isFinite(t)||t<=0)return void this._setInlineAudioProgress(0);const i=Math.max(0,Math.min(100,e/t*100));this._setInlineAudioProgress(i)}_setInlineAudioProgress(t){if(!this._inlineAudioContainer)return;const e=Math.max(0,Math.min(100,Number(t)||0));this._inlineAudioContainer.style.setProperty("--vg-filepreview-audio-inline-progress",`${e}%`)}_renderDownloadField(){const t=this._editableFields.download;if(!t)return;const e=this._i18n?.button("download")||"",i=(0,f.z)("download")||"",s=String(t.tagName||"").toUpperCase();let r=null;if("A"===s||"BUTTON"===s?r=t:(r=t.querySelector("[data-vg-filepreview-download-control]"),r||(r=document.createElement("button"),r.type="button",t.innerHTML="",t.appendChild(r))),r.classList.add("vg-filepreview-download-trigger"),r.setAttribute("data-vg-filepreview-download-control","true"),"A"===s&&r===t?(r.setAttribute("href",this._fileUrl?.href||this._filePath||"#"),this._fileMeta?.name&&r.setAttribute("download",this._fileMeta.name)):"BUTTON"===String(r.tagName||"").toUpperCase()&&r.setAttribute("type","button"),!r.hasAttribute("data-vg-filepreview-download-content-init")){if(r.setAttribute("data-vg-filepreview-download-content-init","true"),r.innerHTML="",i){const t=document.createElement("span");t.className="vg-filepreview-download-trigger__icon",t.innerHTML=i,r.appendChild(t)}if(e){const t=document.createElement("span");t.className="vg-filepreview-download-trigger__text",t.textContent=e,r.appendChild(t)}}r.hasAttribute("data-vg-filepreview-download-bind")||(r.setAttribute("data-vg-filepreview-download-bind","true"),r.addEventListener("click",(t=>{t.preventDefault(),this._downloadFile()})))}_downloadFile(){const t=this._fileUrl?.href||this._filePath||"";if(!t)return;const e=this._fileMeta?.originalName||this._fileMeta?.name||"file";fetch(t,{method:"GET",credentials:"same-origin"}).then((t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.blob()})).then((t=>{const i=URL.createObjectURL(t);this._downloadByLink(i,e),setTimeout((()=>URL.revokeObjectURL(i)),1e3)})).catch((()=>{this._downloadByLink(t,e)}))}_downloadByLink(t,e){const i=document.createElement("a");i.href=t,i.style.display="none",i.rel="noopener noreferrer",e&&i.setAttribute("download",e),document.body.appendChild(i),i.click(),document.body.removeChild(i)}_enrichAudioMetadata(t=null){if(this._audioMetaApplied||this._audioMetaPromise||!this._isAudioFile())return;const e=this._fileUrl?.href||this._filePath||"";e&&(this._audioMetaPromise=this._createAudioFileFromSource(e).then((t=>t?$e(t):null)).then((e=>{if(!e)return!1;let i=!1;const s=String(e.title||"").trim();if(s){this._element.setAttribute("data-vg-filepreview-display-name",s),t&&(t.textContent=s,this._applyNameClampStyles(t));const e=this._editableFields?.original_name;e&&(e.textContent=this._getFileName(),this._applyNameClampStyles(e)),i=!0}if(e.pictureBlob instanceof Blob&&this._editableFields?.icon){this._audioCoverObjectUrl&&URL.revokeObjectURL(this._audioCoverObjectUrl),this._audioCoverObjectUrl=URL.createObjectURL(e.pictureBlob);const t=this._editableFields.icon;t.innerHTML="";const r=document.createElement("img");r.src=this._audioCoverObjectUrl,r.alt=s||this._fileMeta?.originalName||this._fileMeta?.name||"",r.className="vg-filepreview-icon-image",r.loading="lazy",r.addEventListener("error",(()=>{this._renderDefaultIcon(t)})),this._bindIconImageToModal(r,this._audioCoverObjectUrl,s),t.appendChild(r),i=!0}return this._audioMetaApplied=!0,i})).catch((()=>!1)).finally((()=>{this._audioMetaPromise=null})))}_enrichVideoMetadata(){if(!this._isPreviewGroupEnabled("video"))return;if(this._videoMetaApplied||this._videoMetaPromise||!this._isVideoFile())return;const t=this._fileUrl?.href||this._filePath||"";t&&(this._videoMetaPromise=this._createMediaFileFromSource(t,this._fileMeta?.originalName||this._fileMeta?.name||"video.mp4","video/mp4").then((t=>t?(async t=>{if(!(t instanceof File))return null;const e=(t=>{const e=String(t?.name||"").toLowerCase(),i=e.lastIndexOf(".");return i<0||i>=e.length-1?"":e.slice(i+1)})(t);if(!String(t.type||"").toLowerCase().startsWith("video/")&&!Be.has(e))return null;if(!t.size)return null;let i="";try{i=URL.createObjectURL(t);const e=document.createElement("video");e.preload="metadata",e.muted=!0,e.playsInline=!0,e.crossOrigin="anonymous",e.src=i,await(s=e,r="loadedmetadata",new Promise(((t,e)=>{const i=()=>{a(),t(!0)},n=()=>{a(),e(new Error(r))},a=()=>{s.removeEventListener(r,i),s.removeEventListener("error",n)};s.addEventListener(r,i,{once:!0}),s.addEventListener("error",n,{once:!0})})));const n=Number(e.videoWidth||0),a=Number(e.videoHeight||0),o=Number(e.duration||0);if(!(n&&a&&Number.isFinite(n)&&Number.isFinite(a)))return{duration:Number.isFinite(o)?o:0,width:0,height:0};const l=o>1?Math.min(1,Math.max(0,o/2)):0;await((t,e)=>new Promise(((i,s)=>{const r=()=>{a(),i(!0)},n=()=>{a(),s(new Error("seek"))},a=()=>{t.removeEventListener("seeked",r),t.removeEventListener("error",n)};t.addEventListener("seeked",r,{once:!0}),t.addEventListener("error",n,{once:!0}),t.currentTime=e})))(e,l);const d=document.createElement("canvas");d.width=n,d.height=a;const h=d.getContext("2d");if(!h)return{duration:Number.isFinite(o)?o:0,width:n,height:a};h.drawImage(e,0,0,n,a);const c=await((t,e="image/jpeg",i=.92)=>new Promise((s=>{t.toBlob((t=>s(t||null)),e,i)})))(d,"image/jpeg",.92);return{duration:Number.isFinite(o)?o:0,width:n,height:a,posterBlob:c||null}}catch{return null}finally{i&&URL.revokeObjectURL(i)}var s,r})(t):null)).then((t=>{if(!(t&&t.posterBlob instanceof Blob&&this._editableFields?.icon))return!1;this._videoCoverObjectUrl&&URL.revokeObjectURL(this._videoCoverObjectUrl),this._videoCoverObjectUrl=URL.createObjectURL(t.posterBlob);const e=this._editableFields.icon;e.innerHTML="";const i=document.createElement("img");return i.src=this._videoCoverObjectUrl,i.alt=this._fileMeta?.originalName||this._fileMeta?.name||"",i.className="vg-filepreview-icon-image",i.loading="lazy",i.addEventListener("error",(()=>{this._renderDefaultIcon(e)})),this._isPreviewGroupEnabled("video")&&this._bindIconImageToModal(i,this._videoCoverObjectUrl,i.alt),e.appendChild(i),this._videoMetaApplied=!0,!0})).catch((()=>!1)).finally((()=>{this._videoMetaPromise=null})))}async _createAudioFileFromSource(t=""){const e=this._fileMeta?.originalName||this._fileMeta?.name||"audio.mp3";return this._createMediaFileFromSource(t,e,"audio/mpeg")}async _createMediaFileFromSource(t="",e="file",i="application/octet-stream"){try{const s=await fetch(t,{method:"GET",credentials:"same-origin"});if(!s.ok)return null;const r=await s.blob();return r&&r.size?new File([r],e,{type:r.type||i,lastModified:Date.now()}):null}catch{return null}}_bindIconImageToModal(t,e="",i=""){if(!t)return;const s=String(e||"").trim();if(!s)return;const r=String(i||this._fileMeta?.originalName||this._fileMeta?.name||"").trim();t.setAttribute("data-vg-filepreview-image-modal-src",s),t.setAttribute("data-vg-filepreview-image-modal-title",r),t.classList.add("is-preview-action"),t.hasAttribute("data-vg-filepreview-image-modal-bind")||(t.setAttribute("data-vg-filepreview-image-modal-bind","true"),t.addEventListener("click",(e=>{e.preventDefault(),e.stopPropagation();const i=String(t.getAttribute("data-vg-filepreview-image-modal-src")||"").trim();if(!i)return;const s=String(t.getAttribute("data-vg-filepreview-image-modal-title")||"").trim();this._imageModal||(this._imageModal=Ve.getInstance()),this._imageModal.open({src:i,title:s,defaultTitle:this._i18n?.message("image_title")||""})})))}_renderPreview(){const t=Boolean(this._params?.ui?.nameOnly)||!this._shouldRenderPreviewForCurrentFile(),e=this._resolvePreviewContainer({autoCreate:!t});if(!e&&!t)return void this._setState("error");e&&(e.innerHTML="");const i={element:this._element,filePath:this._filePath,fileUrl:this._fileUrl,fileMeta:this._fileMeta,previewContainer:e,lang:this._lang,i18n:this._i18n,ui:this._params?.ui||{}};let s=!1;if(this._renderers.forEach((t=>{if(!s&&"function"==typeof t?.canRender&&"function"==typeof t?.render&&this._isRendererEnabled(t?.name)&&t.canRender(i)){try{s=!0===t.render(i)}catch(t){s=!1}s&&this._element.setAttribute("data-vg-filepreview-renderer",t.name||"custom")}})),!s&&!t)return this._element.removeAttribute("data-vg-filepreview-renderer"),void this._setState("empty");this._setState("ready")}_resolvePreviewContainer(t={}){if(Object.prototype.hasOwnProperty.call(t,"autoCreate")&&!Boolean(t.autoCreate)){const t=this._editableFields.preview||this._element.querySelector('[data-vg-filepreview-slot="preview"]');return t&&(t.innerHTML="",t.classList.remove("preview"),t.setAttribute("hidden","hidden"),t.setAttribute("aria-hidden","true")),null}const e=this._editableFields.preview;if(e)return e.classList.add("preview"),e.removeAttribute("hidden"),e.removeAttribute("aria-hidden"),e.setAttribute("data-vg-filepreview-slot","preview"),e;const i=this._element.querySelector('[data-vg-filepreview-slot="preview"]');if(i)return i.classList.add("preview"),i.removeAttribute("hidden"),i.removeAttribute("aria-hidden"),this._editableFields.preview=i,i;const s=document.createElement("div");return s.className="preview",s.setAttribute("data-vg-filepreview-slot","preview"),this._element.appendChild(s),this._editableFields.preview=s,s}_shouldRenderPreviewForCurrentFile(){return this._isAudioFile()?this._isPreviewGroupEnabled("audio"):".pdf"===String(this._fileMeta?.ext||"").toLowerCase()?this._isPreviewGroupEnabled("pdf"):this._isVideoFile()?this._isPreviewGroupEnabled("video"):!this._isImageFile()&&(this._isOfficeFile()?this._isPreviewGroupEnabled("office"):this._isArchiveFile()?this._isPreviewGroupEnabled("archive"):!!this._isTextFile()&&this._isPreviewGroupEnabled("text"))}_isRendererEnabled(t=""){const e={image:"image",video:"video",pdf:"pdf",office:"office",zip:"archive",text:"text"}[String(t||"").trim()];return!e||this._isPreviewGroupEnabled(e)}_isPreviewGroupEnabled(t=""){const e=String(t||"").trim();if(!e)return!1;const i=this._params?.preview;if(!i||"object"!=typeof i||Array.isArray(i))return!1;if(!Object.prototype.hasOwnProperty.call(i,e))return!1;const s=i[e];return"boolean"==typeof s?s:!(!s||"object"!=typeof s||Array.isArray(s))&&!!Object.prototype.hasOwnProperty.call(s,"enable")&&Boolean(s.enable)}_getImageIconSrc(){const t=String(this._fileMeta?.ext||"").toLowerCase();return[".jpg",".jpeg",".png",".gif",".webp",".bmp",".svg",".avif",".ico"].includes(t)&&(this._fileUrl?.href||this._filePath)||""}_isImageFile(){const t=String(this._fileMeta?.ext||"").toLowerCase();return[".jpg",".jpeg",".png",".gif",".webp",".bmp",".svg",".avif",".ico",".tif",".tiff",".heic",".heif"].includes(t)}_isOfficeFile(){const t=String(this._fileMeta?.ext||"").toLowerCase();return[".doc",".docx",".xls",".xlsx",".ppt",".pptx",".odt",".ods",".odp"].includes(t)}_isArchiveFile(){const t=String(this._fileMeta?.ext||"").toLowerCase();return[".zip"].includes(t)}_isTextFile(){const t=String(this._fileMeta?.ext||"").toLowerCase();return[".txt",".md",".csv",".json",".xml",".yml",".yaml",".log",".ini",".conf",".env"].includes(t)}_renderDefaultIcon(t){const e=(0,f.z)(this._filePath);t.innerHTML=e||""}_applyNameClampStyles(t){t&&t.style&&(t.style.minWidth="60px",t.style.maxWidth="100%",t.style.overflow="hidden",t.style.textOverflow="ellipsis",t.style.whiteSpace="nowrap")}static init(t,e={}){return bi.getOrCreateInstance(t,e)}static stopActiveInlineAudio(){const t=bi._activeAudioOwner;t&&"function"==typeof t._stopInlineAudio&&t._stopInlineAudio(),bi._activeAudioOwner=null}static stopActiveInlineAudioIfDetached(t=[]){const e=bi._activeAudioOwner;e&&e._element&&Array.isArray(t)&&t.length&&t.some((t=>!(!t||"function"!=typeof t.contains)&&(t===e._element||t.contains(e._element))))&&(e._stopInlineAudio(),bi._activeAudioOwner=null)}_setState(t=""){const e=String(t||"").trim();e?this._element.setAttribute("data-vg-filepreview-state",e):this._element.removeAttribute("data-vg-filepreview-state")}_isAudioFile(){const t=String(this._fileMeta?.ext||"").toLowerCase();return[".mp3",".wav",".ogg",".flac",".aac",".m4a",".opus",".wma"].includes(t)}_isVideoFile(){const t=String(this._fileMeta?.ext||"").toLowerCase();return[".mp4",".webm",".mov",".mkv",".avi",".m4v",".ogv"].includes(t)}_getFileName(){return String(this._fileMeta?.originalName||this._fileMeta?.name||"").trim()}_getDataDisplayName(){return String(this._element?.getAttribute("data-name")||"").trim()||String(this._element?.getAttribute("data-vg-filepreview-display-name")||"").trim()}_hasDataDrivenDisplayName(){const t=this._getDataDisplayName();if(!t)return!1;const e=this._getFileName();return!e||t!==e}_getDisplayName(){return this._getDataDisplayName()||this._getFileName()}}const vi=bi;class yi extends t.A{constructor(t,e={},i={}){super(t,e),this._params=this._getParams(t,(0,r._v)(i,e)),this._params.init="init"in e&&e.init||this._params.init,this._params.init?(this._isInitialized=!0,this._tpl=(0,h.A)("dom"),this._files=[],this._errors=new Set,this._fileObjectUrls=new Map,this._audioMetaPromises=new Map,this._nodes={stat:s.A.find(`.${this._getClass("stat")}`,this._element),info:s.A.find(`.${this._getClass("info")}`,this._element),drop:s.A.find(`.${this._getClass("drop")}`,this._element)},this.template='<li data-file="" class="file"><div class="file-image"></div><div class="file-info"></div><div class="file-remove"></div></li>',this._onNativeInputChange=t=>this.change(t?.target),this._init()):this._isInitialized=!1}_getClass(t){return{stat:"vg-files-stat","stat-progress":"vg-files-stat-progress",info:"vg-files-info","info-list":"vg-files-info--list",drop:"vg-files-drop","drop-list":"vg-files-drop--list","drop-message":"vg-files-drop-message",errors:"vg-files-errors"}[t]||""}_applyRenameToIncomingFiles(t){const e=this._params?.rename;return e&&Array.isArray(t)&&t.length?t.map(((t,i)=>{if(!t)return t;let s=null;if("function"==typeof e?s=e(t,i):!0===e&&(s=this._generateRenamedFileName(t?.name||"file",i)),!s||"string"!=typeof s||""===s.trim())return t;if(t.name===s)return t;try{const e=new File([t],s,{type:t.type||"application/octet-stream",lastModified:t.lastModified||Date.now()});return["id","src","image"].forEach((i=>{void 0!==t[i]&&Object.defineProperty(e,i,{value:t[i],writable:!0,enumerable:!0})})),e}catch(e){return t}})):t}_generateRenamedFileName(t,e){const i=String(t||"file"),s=i.lastIndexOf("."),r=s>0&&s<i.length-1,n=r?i.slice(0,s):i,a=r?i.slice(s+1):"",o=Date.now(),l=e+1,d=n.trim()||"file";return a?`${d}_${o}_${l}.${a}`:`${d}_${o}_${l}`}_init(){this._isInitialized&&(1===Number(this._params?.limits?.count)?(this._preventOriginalInputFromSubmit(!0),this._cleanupFakeInputs()):this._preventOriginalInputFromSubmit(),this._addEventListener())}change(t=null){const e=t?.files;if(!e?.length)return;const i=this._applyRenameToIncomingFiles(Array.from(e)),s=1===Number(this._params?.limits?.count);if(Boolean(this._params?.replace)&&s)return this.clear(!1),this.append(i,!0),this._revokeUrls(),this._cleanupFakeInputs(),this._cleanupErrors(),this._files=this._filterFiles(i),this._params.prepend&&this._files.reverse(),void this.build();this._params.allowed?(this.clear(),this.append(i,!0),this.build()):(this.append(i,!1),this.build())}build(){this._updateStat(),this._params.ajax?(this._render.init()?this._render.init():this._renderUI(this._files),this._renderUI(this._files)):(this._renderUI(this._files),1===Number(this._params?.limits?.count)?this._cleanupFakeInputs():this._generateHiddenInputs(this._files))}append(t,e=!0){const i=this._applyRenameToIncomingFiles(Array.from(t));let s;return s=e?i:this._mergeFilesByOrder(i,this._files,Boolean(this._params.prepend)),this._files=this._filterFiles(s),this._renderErrors(),this._enrichAudioMetadata(this._files),this._files}_mergeFilesByOrder(t=[],e=[],i=!1){const s=i?[...t,...e]:[...e,...t],r=new Set,n=[];return s.forEach((t=>{const e=this._getFileKey(t);r.has(e)||(r.add(e),n.push(t))})),n}_getFileKey(t){return`${t.name}-${t.size}-${t.type}`}_getFileCustomData(t){const e=t?.customData;return!e||"object"!=typeof e||Array.isArray(e)?{}:e}_toDataAttributeKey(t){return t?String(t).replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/[_\s]+/g,"-").replace(/[^a-zA-Z0-9-]/g,"").replace(/-+/g,"-").replace(/^-|-$/g,"").toLowerCase():""}_toDataAttributeValue(t){if(null==t||""===t)return null;if("object"==typeof t)try{return JSON.stringify(t)}catch(e){return String(t)}return t}_buildFileDataAttributes(t,e={}){const i={...e},s=this._getFileCustomData(t);return Object.entries(s).forEach((([t,e])=>{const s=this._toDataAttributeKey(t);if(!s)return;const r=`data-${s}`;if(Object.prototype.hasOwnProperty.call(i,r))return;const n=this._toDataAttributeValue(e);null!==n&&(i[r]=n)})),i}_filterFiles(t){this._errors.clear();const{count:e,sizes:i,total:s}=this._params.limits,r=1024*i*1024,n=1024*s*1024;let a=0;const o=[];for(const i of t){if(e>0&&o.length>=e){this._errors.add("is-count");break}let t=!0;this._params.types.length&&!this._params.types.includes(i.type)&&(this._errors.add("is-types"),t=!1),i.size>r&&(this._errors.add("is-sizes"),t=!1),t&&n>0&&(a+i.size>n?(this._errors.add("is-total-size"),t=!1):a+=i.size),t&&o.push(i)}return o}_getSizes(t,e=!1){const i=e?this._files.reduce(((t,e)=>t+e.size),0):t,s=["byte","kilobyte","megabyte","gigabyte"],r=i>0?Math.min(Math.floor(Math.log(i)/Math.log(1024)),s.length-1):0,n=i/Math.pow(1024,r);return new Intl.NumberFormat(this._params.lang,{style:"unit",unit:s[r],unitDisplay:"short",maximumFractionDigits:2}).format(n)}_cleanupErrors(){this._errors.clear();const t=s.A.find(`.${this._getClass("errors")}`,this._element);t&&t.remove()}_renderErrors(){if(!this._errors.size)return;const t=tt(this._params.lang,"files")||this._getFallbackErrors();let e=s.A.find(`.${this._getClass("errors")}`,this._element);e?e.innerHTML="":(e=this._tpl.div({class:this._getClass("errors")}),this._element.prepend(e)),this._errors.forEach((i=>{const s=t[i]||i;e.append(this._tpl.span({class:"error-item"},s))}))}_getFallbackErrors(){const{count:t,sizes:e,total:i}=this._params.limits;return{"is-count":`Limit: ${t}`,"is-sizes":`Max size: ${e}MB`,"is-total-size":`Total max size: ${i}MB`,"is-types":`Allowed: ${this._params.types.join(", ")}`}}_renderUI(t){this._nodes.drop?this._renderUIDropList(t):this._nodes.info&&this._renderInfoList(t),this._renderUIStatusDropInfoAjax(this._files)}_parseTemplate(){const t=this._render,e='<li data-file="" class="file"><div class="file-image"></div><div class="file-custom"><div class="file-info"></div><div class="file-remove"></div></div></li>';let i=this.template||e;t&&t.bufferTemplate&&(i=t.bufferTemplate);const s=document.createElement("div");s.innerHTML=i;let r=s.firstElementChild;r||(s.innerHTML=e,r=s.firstElementChild);const n=r.className||"",a=n?n.split(" ").filter((t=>""!==t.trim())):[],o=r.childElementCount,l=[];for(let t=0;t<o;t++)l.push({index:t,element:r.children[t],className:r.children[t].className});return{children:l,template:i,liClasses:a,liClassName:n}}_renderUIDropList(t){if(!this._nodes.drop)return;let i=s.A.find(`.${this._getClass("drop-list")}`,this._nodes.drop);i||(i=this._tpl.ul([],{class:this._getClass("drop-list")}));const r=this._parseTemplate().children,n=this._parseTemplate().liClasses.filter((t=>"file"!==t)),a=document.createDocumentFragment();t.forEach((t=>{let e=n;this._params.detach&&e.push("with-remove"),this._params.sortable.enabled&&e.push("with-sortable"),1===this._params.limits.count&&(e.push("single"),t.type.startsWith("image/")?e.push("single-image"):e.push("single-file"));let i=[];r.forEach((e=>{const s=this._renderTemplatePart(e.element,t,null,{isDrop:!0});s&&i.push(s)}));const s=this._tpl.li(this._buildFileDataAttributes(t,{"data-name":t.name,"data-size":t.size??0,"data-id":t.id||"",class:"file "+e.join(" ")}),i);a.appendChild(s)})),i.innerHTML="",i.appendChild(a);const o=s.A.find(`.${this._getClass("drop-message")}`,this._nodes.drop);o&&(t.length?e.x.add(o,"has-files"):e.x.remove(o,"has-files"),1===Number(this._params?.limits?.count)&&(t.length?e.x.remove(o,"show"):e.x.add(o,"show"))),this._nodes.drop.appendChild(i),e.x.add(this._nodes.drop,"active")}_renderInfoList(t){if(!this._nodes.info)return;let i=s.A.find(`.${this._getClass("info-list")}`,this._element);i||(i=this._tpl.ul([],{class:this._getClass("info-list")}),this._nodes.info.appendChild(i)),this._params.info||e.x.add(i,"list-row");const r=this._parseTemplate().children,n=this._parseTemplate().liClasses.filter((t=>"file"!==t)),a=Array.from(i.children||[]),o=new Map;a.forEach((t=>{const e=this._getInfoNodeKey(t);e&&(t.hasAttribute("data-file-key")||t.setAttribute("data-file-key",e),o.set(e,t))}));const l=[];if(t.forEach(((t,e)=>{const i=this._getFileKey(t),s=this._getInfoItemSignature(t,e),a=o.get(i);if(a&&a.getAttribute("data-vg-info-signature")===s){const t=a.querySelector(".iteration");return t&&(t.textContent=`${e+1}.`),l.push(a),void o.delete(i)}a&&(vi.stopActiveInlineAudioIfDetached([a]),a.remove());const d=this._createInfoListItem(t,e,r,n,i,s);l.push(d),o.delete(i)})),o.size){const t=Array.from(o.values());vi.stopActiveInlineAudioIfDetached(t),t.forEach((t=>t.remove()))}l.forEach((t=>{i.appendChild(t)})),this._initFilePreviewInInfo(i),e.x.add(this._nodes.info,"show")}_getInfoItemSignature(t,e){const i=this._resolveDisplayName(t),s=this._resolveFilePreviewPath(t);return`${t?.id||""}|${t?.name||""}|${t?.size??0}|${t?.type||""}|${i}|${s}`}_getInfoNodeKey(t){if(!t||"function"!=typeof t.getAttribute)return"";const e=String(t.getAttribute("data-file-key")||"").trim();if(e)return e;const i=String(t.getAttribute("data-name")||"").trim(),s=String(t.getAttribute("data-size")||"").trim(),r=String(t.getAttribute("data-type")||"").trim();if(i&&s&&r)return`${i}-${s}-${r}`;const n=String(t.getAttribute("data-file")||"").trim();if(!n)return"";try{const t=JSON.parse(n),e=String(t?.name||"").trim(),i=String(t?.size??"").trim(),s=String(t?.type||"").trim();if(e&&i&&s)return`${e}-${i}-${s}`}catch{return""}return""}_createInfoListItem(t,e,i,s,r,n){let a=[...s];this._params.image&&a.push("with-image"),this._params.info&&a.push("with-info"),this._params.detach&&a.push("with-remove"),this._params.sortable.enabled&&a.push("with-sortable");const o=this._resolveFilePreviewPath(t),l=this._resolveDisplayName(t);let d=[];i.forEach((i=>{const s=this._renderTemplatePart(i.element,t,e);s&&d.push(s)}));const h={"data-name":t.name,"data-size":t.size??0,"data-type":t.type||"","data-id":t.id||"","data-file-key":r,"data-vg-info-signature":n,class:"file "+a.join(" ")+" "};return o&&(h["data-vg-filepreview"]=o,h["data-fields"]="name,size,download",h["data-original-name"]=t.name||"",h["data-vg-filepreview-display-name"]=l||t.name||""),this._tpl.li(this._buildFileDataAttributes(t,h),d)}_renderTemplatePart(t,e,i=null,s={}){if(!t)return null;const{isDrop:r=!1}=s,n=t?.classList;if(n?.contains("file-image"))return this._renderUIImage(e);if(n?.contains("file-info"))return r?null:this._renderUIInfo(e,i);if(n?.contains("file-remove"))return this._wrapInFileCustom(this._renderUIDetach(e));const a=t.cloneNode(!0);return this._replaceTemplateSlot(a,".file-image",(()=>this._renderUIImage(e))),this._replaceTemplateSlot(a,".file-info",(()=>r?null:this._renderUIInfo(e,i))),this._replaceTemplateSlot(a,".file-remove",(()=>this._renderUIDetach(e))),this._wrapInFileCustom(a)}_wrapInFileCustom(t){if(!t)return null;if(t.classList?.contains("file-custom"))return t;const e=document.createElement("div");return e.className="file-custom",e.appendChild(t),e}_replaceTemplateSlot(t,e,i){(t?.matches&&t.matches(e)?[t]:Array.from(t.querySelectorAll(e))).forEach((t=>{const e=i();e?t.replaceWith(e):t.remove()}))}_renderUIDetach(t){if(this._params.detach)return this._tpl.div({class:"file-remove"},[this._setButtonElement(t)])}_renderUIInfo(t,e){if(this._params.info){const i=this._resolveDisplayName(t);return this._tpl.div({class:"file-info"},[this._tpl.span({class:"iteration"},`${e+1}.`),this._tpl.span({class:"name"},i),this._tpl.span({class:"size"},`[${this._getSizes(t.size)}]`),this._tpl.span({class:"download"},"")])}}_renderUIImage(t){const e=this._tpl.div({class:"file-image"}),i=t?.src||t?.image;if(i)return e.appendChild(this._tpl.img(i,t.name||"",{class:"file-preview"})),e;const s=this._getFileCustomData(t),r=String(s.audioCover||"").trim();if(r)return e.appendChild(this._tpl.img(r,this._resolveDisplayName(t),{class:"file-preview"})),e;if(t?.type&&t.type.startsWith("image/")){const i=this._getFileObjectUrl(t);return i?(e.appendChild(this._tpl.img(i,t.name,{class:"file-preview"})),e):e}const n=this._getIconByFileType(t);return e.appendChild(this._tpl.i({},n,{isHTML:!0})),e}_resolveDisplayName(t){const e=this._getFileCustomData(t);return String(e.audioTitle||"").trim()||String(t?.name||"").trim()}_getIconByFileType(t){return(0,f.z)(t)}_resolveFilePreviewPath(t){return String(t?.src||t?.image||"").trim()||this._getFileObjectUrl(t)}_getFileObjectUrl(t){if(!(t&&"undefined"!=typeof File&&t instanceof File))return"";const e=this._getFileKey(t);if(this._fileObjectUrls.has(e))return this._fileObjectUrls.get(e);const i=URL.createObjectURL(t);return this._fileObjectUrls.set(e,i),i}_isAudioFile(t){if(!t)return!1;if(String(t.type||"").toLowerCase().startsWith("audio/"))return!0;const e=String(t.name||"").toLowerCase();return/\.(mp3|m4a|aac|wav|ogg|flac|opus|wma)$/.test(e)}_setFileCustomDataValue(t,e,i){t&&e&&(t.customData&&"object"==typeof t.customData&&!Array.isArray(t.customData)||Object.defineProperty(t,"customData",{value:{},writable:!0,enumerable:!0}),t.customData[e]=i)}_enrichAudioMetadata(t=[]){if(!Array.isArray(t)||!t.length)return;const e=[];t.forEach((t=>{if(!this._isAudioFile(t))return;const i=this._getFileKey(t);if(this._audioMetaPromises.has(i))return;const s=this._getFileCustomData(t);if(s.audioTitle||s.audioCover)return;const r=$e(t).then((e=>{if(!e)return!1;let s=!1;if(e.title&&(this._setFileCustomDataValue(t,"audioTitle",e.title),s=!0),e.pictureBlob){const r=`cover:${i}`;let n=this._fileObjectUrls.get(r);n||(n=URL.createObjectURL(e.pictureBlob),this._fileObjectUrls.set(r,n)),this._setFileCustomDataValue(t,"audioCover",n),s=!0}return s})).catch((()=>!1)).then((t=>(this._audioMetaPromises.delete(i),t)));this._audioMetaPromises.set(i,r),e.push(r)})),e.length&&Promise.allSettled(e).then((t=>{t.some((t=>"fulfilled"===t.status&&!0===t.value))&&this._files.length&&this._renderUI(this._files)}))}_initFilePreviewInInfo(t){if(!this._nodes.info||!t)return;const e=this._params?.lang||document.documentElement.lang||"ru";(s.A.findAll("[data-vg-filepreview]",t)||[]).forEach((t=>{vi.getOrCreateInstance(t,{lang:e,ui:{nameOnly:!0}})}))}_updateStat(){if(!this._nodes.stat)return;const t=this._getSizes(this._files,!0),i=s.A.find(`.${this._getClass("stat")}-count`,this._nodes.stat);i&&(i.innerHTML=this._files.length?`${this._files.length}<span>[${t}]</span>`:""),e.x.add(this._nodes.stat,"show")}_generateHiddenInputs(t){this._cleanupFakeInputs();const i=document.createDocumentFragment(),r=e.p.get(s.A.find("label",this._element),"for")||"",n=s.A.findID(r,this._element)?.name||s.A.findID(r,this._element)?.dataset.originalName||"files[]",a=n.endsWith("[]")?n.slice(0,-2):n;1===Number(this._params?.limits?.count)||(t.forEach(((t,s)=>{const r=document.createElement("input");r.type="file",r.name=`${a}[${s}]`,r.dataset.vgFiles="generated",e.p.hide(r);const n=new DataTransfer;n.items.add(t),r.files=n.files,i.appendChild(r)})),this._element.appendChild(i))}_cleanupFakeInputs(){s.A.findAll('[data-vg-files="generated"]',this._element).forEach((t=>t.remove()))}clear(t=!0){const i=[];if(this._nodes.info){const t=s.A.find(`.${this._getClass("info-list")}`,this._element);t?.children?.length&&i.push(...Array.from(t.children))}if(this._nodes.drop){const t=s.A.find(`.${this._getClass("drop-list")}`,this._element);t?.children?.length&&i.push(...Array.from(t.children))}if(i.length&&vi.stopActiveInlineAudioIfDetached(i),this._revokeUrls(),t&&this._resetFileInput(),this._cleanupFakeInputs(),this._cleanupErrors(),this._files=[],this._nodes.info){e.x.remove(this._nodes.info,"show");const t=s.A.find(`.${this._getClass("info-list")}`,this._element);t&&(t.innerHTML="")}if(this._nodes.drop){const t=s.A.find(`.${this._getClass("drop-list")}`,this._element);t&&(t.innerHTML="");const i=s.A.find(`.${this._getClass("drop-message")}`,this._element);i&&(e.x.remove(i,"has-files"),1===Number(this._params?.limits?.count)&&e.x.add(i,"show")),e.x.remove(this._nodes.drop,"active")}this._nodes.stat&&e.x.remove(this._nodes.stat,"show")}_revokeUrls(){this._fileObjectUrls.forEach((t=>{URL.revokeObjectURL(t)})),this._fileObjectUrls.clear(),this._audioMetaPromises.clear()}_resetFileInput(){s.A.findAll('[data-vg-toggle="files"]',this._element).forEach((t=>t.value=""))}_preventOriginalInputFromSubmit(t=!1){const e=s.A.find('[data-vg-toggle="files"]',this._element);e&&(t||e.dataset.originalName?t&&e.dataset.originalName&&(e.name=e.dataset.originalName,delete e.dataset.originalName):(e.dataset.originalName=e.name,e.removeAttribute("name")))}_addEventListener(){s.A.findAll('[data-vg-toggle="files"]',this._element).forEach((t=>{t.removeEventListener("change",this._onNativeInputChange),t.addEventListener("change",this._onNativeInputChange)}))}dispose(){this.clear(),super.dispose()}}const wi=yi;var Si=i(11);const Ci=class{constructor(t={}){this.mode=t.mode||"sequential",this.maxParallel=t.maxParallel||3,this.maxConcurrent=t.maxConcurrent||1,this.retryAttempts=t.retryAttempts||3,this.retryDelay=t.retryDelay||1e3,this.uploads=new Map,this.completed=[],this.queue=[],this.waitingPromises=[],this.activeCount=0,this.isPaused=!1,this.callbacks={progress:[],complete:[],error:[],allComplete:[]},this._checkAllCompleteBound=this.checkAllComplete.bind(this)}async uploadFile(t,e,i={}){const s=this.generateId(),r={id:s,file:t,url:e,options:i,status:"pending",progress:0,attempts:0,result:null,error:null,startTime:null,endTime:null,controller:new AbortController,signal:null};return this.uploads.set(s,r),"sequential"===this.mode?this._addToSequentialQueue(r):this._startParallelUpload(r)}async uploadFiles(t,e,i={}){const s=t.map((t=>this.uploadFile(t,e,i)));return(await Promise.allSettled(s)).map((t=>"fulfilled"===t.status?{file:t.value.file?.name,success:!0,result:t.value}:{file:t.reason?.file?.name||"unknown",success:!1,error:t.reason}))}_addToSequentialQueue(t){return new Promise(((e,i)=>{this.queue.push({uploadData:t,resolve:e,reject:i}),this._processSequentialQueue()}))}async _processSequentialQueue(){if(this.isPaused||this.activeCount>=this.maxConcurrent||0===this.queue.length)return;const{uploadData:t,resolve:e,reject:i}=this.queue[0];this.activeCount++;try{e(await this._executeUpload(t))}catch(t){i(t)}finally{this.queue.shift(),this.activeCount--,await this._processSequentialQueue()}}async _startParallelUpload(t){this.activeCount>=this.maxParallel&&await new Promise((t=>this.waitingPromises.push(t))),this.activeCount++,t.startTime=Date.now();try{return await this._executeUpload(t)}finally{this.activeCount--,this._notifyWaiting()}}_notifyWaiting(){this.waitingPromises.length>0&&this.activeCount<this.maxParallel&&this.waitingPromises.shift()()}async _executeUpload(t,e=1){t.status="uploading",t.attempts=e,t.signal=t.controller.signal;try{const e=await this._performUpload(t);return this._completeUpload(t,e),e}catch(i){if("cancelled"===t.status)return;if(t.error=i,e<this.retryAttempts)return t.status="retrying",this.notifyProgress(t),await this._delay(this.retryDelay*Math.pow(2,e)),this._executeUpload(t,e+1);throw t.status="failed",t.endTime=Date.now(),this.notifyProgress(t),this.notifyError(t,i),this._checkAllCompleteBound(),i}}_performUpload(t){return new Promise(((e,i)=>{const s=new Si.A,n=new FormData;n.append("file",t.file),n.append("_token",s._getCsrfToken()||""),t.options.additionalData&&Object.entries(t.options.additionalData).forEach((([t,e])=>{n.append(t,e)}));const a={onProgress:(e,i)=>{t.progress=e,this.notifyProgress(t)},onSuccess:t=>{e((0,r.OM)(t))},onError:t=>{i((0,r.OM)(t))},signal:t.signal},o=s.post(t.url,n,a);t.xhr=o}))}_completeUpload(t,e){t.status="completed",t.progress=100,t.result=e,t.endTime=Date.now(),this.completed.push({...t}),this.notifyComplete(t),this._checkAllCompleteBound()}cancelUpload(t){const e=this.uploads.get(t);if(!e||["completed","failed","cancelled"].includes(e.status))return!1;e.controller.abort(),e.xhr&&"function"==typeof e.xhr.abort&&e.xhr.abort(),e.status="cancelled",e.endTime=Date.now(),this.notifyProgress(e);const i=this.queue.findIndex((e=>e.uploadData.id===t));return i>-1&&this.queue.splice(i,1),!0}setMode(t,e=3){this.mode=t,this.maxParallel=e,"parallel"===t&&(this.queue=[],this._notifyWaiting())}pause(){this.isPaused=!0}resume(){this.isPaused=!1,"sequential"===this.mode?this._processSequentialQueue():this._notifyWaiting()}clear(){this.uploads.forEach(((t,e)=>{this.cancelUpload(e)})),this.uploads.clear(),this.completed=[],this.queue=[],this.waitingPromises=[],this.activeCount=0}getStats(){const t=Array.from(this.uploads.values()),e=t.reduce(((t,e)=>t+(e.file?.size||0)),0);return{total:t.length,active:this.activeCount,pending:t.filter((t=>"pending"===t.status)).length,uploading:t.filter((t=>"uploading"===t.status)).length,completed:t.filter((t=>"completed"===t.status)).length,failed:t.filter((t=>"failed"===t.status)).length,cancelled:t.filter((t=>"cancelled"===t.status)).length,mode:this.mode,isPaused:this.isPaused,queueLength:this.queue.length,totalSizeFormatted:(e/1048576).toFixed(2)+" MB"}}printDebugStats(){const t=this.getStats();console.group("--- Uploader Statistics ---"),console.table({Mode:t.mode,Status:t.isPaused?"Paused":"Running","Total Files":t.total,Uploading:t.uploading,Completed:t.completed,Failed:t.failed,Queue:t.queueLength}),console.log(`Total Size: ${t.totalSizeFormatted}`),console.groupEnd()}generateId(){return`${Date.now()}-${Math.random().toString(36).substr(2,9)}`}_delay(t){return new Promise((e=>setTimeout(e,t)))}checkAllComplete(){Array.from(this.uploads.values()).every((t=>["completed","failed","cancelled"].includes(t.status)))&&this.uploads.size>0&&this.notifyAllComplete()}onProgress(t){this.callbacks.progress.push(t)}onComplete(t){this.callbacks.complete.push(t)}onError(t){this.callbacks.error.push(t)}onAllComplete(t){this.callbacks.allComplete.push(t)}notifyProgress(t){this.callbacks.progress.forEach((e=>this._safeCall(e,{...t,stats:this.getStats()})))}notifyComplete(t){this.callbacks.complete.forEach((e=>this._safeCall(e,t)))}notifyError(t,e){this.callbacks.error.forEach((i=>this._safeCall(i,t,e)))}notifyAllComplete(){this.callbacks.allComplete.forEach((t=>this._safeCall(t,{completed:this.completed,stats:this.getStats()})))}isIdle(){const t=this.activeCount>0,e=this.queue.length>0,i=this.waitingPromises.length>0,s=Array.from(this.uploads.values()).some((t=>["uploading","retrying","pending"].includes(t.status)));return!(t||e||i||s)}offAll(){return this.callbacks.progress=[],this.callbacks.complete=[],this.callbacks.error=[],this.callbacks.allComplete=[],this}_safeCall(t,...e){try{t(...e)}catch(t){console.error("Callback error:",t)}}},Ai="vg-files-drop",Ei="drop-active",xi="drop-hover";class Pi extends t.A{constructor(t,e={}){super(t,e),this._element=t,this._params=e,this._files=null,this._input=null,this._init()}static get NAME(){return"drop-and-drop"}static get NAME_KEY(){return"vg.drop-and-drop"}_init(){Pi._instances.add(this),this._params?.smartdrop&&(Pi._smartInstances.add(this),this._bindGlobalEvents()),this._findInput(),this._setupEvents()}_findInput(){const{id:t,name:e}=this._element.dataset;t&&(this._input=document.getElementById(t)),!this._input&&e&&(this._input=s.A.find(`[name="${e}"]`)),this._input||(this._input=s.A.find('input[type="file"]',this._element)||s.A.find('input[type="file"]',this._element.parentNode))}_setupEvents(){if(!(0,r.vq)(this._element))return;const t=t=>{if(document.querySelector(".dragging"))return!0;let e="";try{e=t.dataTransfer?.getData?.("text/plain")||""}catch(t){}return"vgsortable"===e};g.A.on(this._element,"dragover",(i=>{if(i.preventDefault(),i.stopPropagation(),t(i))return e.x.remove(this._element,[Ei,xi]),Pi._setDropMessageTitleState(this._element,!1),void(i.dataTransfer.dropEffect="none");e.x.has(this._element,Ei)||e.x.add(this._element,xi)})),g.A.on(this._element,"dragenter",(i=>{if(i.preventDefault(),i.stopPropagation(),t(i))return e.x.remove(this._element,[Ei,xi]),void Pi._setDropMessageTitleState(this._element,!1);e.x.add(this._element,[Ei,xi]),Pi._setDropMessageTitleState(this._element,!0)})),g.A.on(this._element,"dragleave",(i=>{if(i.preventDefault(),i.stopPropagation(),t(i))return e.x.remove(this._element,[Ei,xi]),void Pi._setDropMessageTitleState(this._element,!1);i.target!==this._element&&i.target.closest("."+Ai)!==this._element||(e.x.remove(this._element,xi),setTimeout((()=>{this._element.matches(":hover")||(e.x.remove(this._element,Ei),Pi._setDropMessageTitleState(this._element,!1))}),50))})),g.A.on(this._element,"drop",(i=>{if(i.preventDefault(),i.stopPropagation(),e.x.remove(this._element,[Ei,xi]),Pi._setDropMessageTitleState(this._element,!1),t(i))return;const s=i.dataTransfer?.files;s&&s.length&&(this._files=s,(0,r.vq)(this._input)&&(this._input.files=s,g.A.trigger(this._input,"change")))}))}_bindGlobalEvents(){Pi._isGlobalEventsBound||(Pi._globalHandlers={dragenter:t=>this._updateSuggestedDrop(t),dragover:t=>this._updateSuggestedDrop(t),dragleave:t=>{this._isFileDrag(t)&&(null!==t.relatedTarget&&t.target!==document&&t.target!==document.documentElement||Pi._clearSuggestedDrop())},drop:t=>{if(!this._isFileDrag(t))return void Pi._clearSuggestedDrop();const e=Pi._activeSuggestedDrop;if(e){const i=Array.from(Pi._smartInstances).find((t=>t._element===e)),s=t.dataTransfer?.files;i&&s&&s.length&&(0,r.vq)(i._input)&&(t.preventDefault(),t.stopPropagation(),i._files=s,i._input.files=s,g.A.trigger(i._input,"change"))}Pi._clearSuggestedDrop()},dragend:()=>Pi._clearSuggestedDrop()},g.A.on(document,"dragenter",Pi._globalHandlers.dragenter),g.A.on(document,"dragover",Pi._globalHandlers.dragover),g.A.on(document,"dragleave",Pi._globalHandlers.dragleave),g.A.on(document,"drop",Pi._globalHandlers.drop),g.A.on(document,"dragend",Pi._globalHandlers.dragend),g.A.on(window,"dragenter",Pi._globalHandlers.dragenter),g.A.on(window,"dragover",Pi._globalHandlers.dragover),g.A.on(window,"dragleave",Pi._globalHandlers.dragleave),g.A.on(window,"drop",Pi._globalHandlers.drop),g.A.on(window,"dragend",Pi._globalHandlers.dragend),Pi._isGlobalEventsBound=!0)}_updateSuggestedDrop(t){if(!this._isFileDrag(t))return void Pi._clearSuggestedDrop();const i=this._getVisibleDropZonesInViewport();if(1===i.length){const[s]=i;return Pi._activeSuggestedDrop!==s&&(Pi._clearSuggestedDrop(),e.x.add(s,Ei),Pi._setDropMessageTitleState(s,!0),Pi._activeSuggestedDrop=s),t.dataTransfer&&(t.dataTransfer.dropEffect="copy"),void t.preventDefault()}Pi._clearSuggestedDrop()}_isFileDrag(t){try{const e=t?.dataTransfer;return!!e&&(!!(e.files&&e.files.length>0)||(e.items&&e.items.length>0?Array.from(e.items).some((t=>"file"===t.kind)):!!e.types&&Array.from(e.types).includes("Files")))}catch(t){return!1}}_getVisibleDropZonesInViewport(){return Array.from(s.A.findAll(`.${Ai}`)||[]).filter((t=>this._isVisibleInViewport(t)))}_isVisibleInViewport(t){if(!(0,r.vq)(t)||!t.isConnected)return!1;const e=window.getComputedStyle(t);if("none"===e.display||"hidden"===e.visibility||"0"===e.opacity)return!1;const i=t.getBoundingClientRect();return!(!i.width||!i.height)&&(i.bottom>0&&i.right>0&&i.top<window.innerHeight&&i.left<window.innerWidth)}static _clearSuggestedDrop(){Pi._activeSuggestedDrop&&(Pi._setDropMessageTitleState(Pi._activeSuggestedDrop,!1),e.x.remove(Pi._activeSuggestedDrop,Ei),Pi._activeSuggestedDrop=null)}static _setDropMessageTitleState(t,e){if(!(0,r.vq)(t))return;const i=s.A.find(".vg-files-drop-message .title",t);if(!i)return;const n=(i.getAttribute("data-drop-original-text")||"").trim()||(i.textContent||"").trim();i.setAttribute("data-drop-original-text",n);const a=(t.getAttribute("data-drop-active-text")||"").trim();i.textContent=e&&a?a:n}static _unbindGlobalEvents(){if(!Pi._isGlobalEventsBound)return;const t=Pi._globalHandlers||{};g.A.off(document,"dragenter",t.dragenter),g.A.off(document,"dragover",t.dragover),g.A.off(document,"dragleave",t.dragleave),g.A.off(document,"drop",t.drop),g.A.off(document,"dragend",t.dragend),g.A.off(window,"dragenter",t.dragenter),g.A.off(window,"dragover",t.dragover),g.A.off(window,"dragleave",t.dragleave),g.A.off(window,"drop",t.drop),g.A.off(window,"dragend",t.dragend),Pi._isGlobalEventsBound=!1,Pi._globalHandlers=null,Pi._clearSuggestedDrop()}getFiles(){return this._files}dispose(){g.A.off(this._element,"dragover"),g.A.off(this._element,"dragenter"),g.A.off(this._element,"dragleave"),g.A.off(this._element,"drop"),Pi._instances.delete(this),Pi._smartInstances.delete(this),Pi._smartInstances.size||Pi._unbindGlobalEvents(),this._input=null,this._files=null}init(){return this}}Pi._instances=new Set,Pi._smartInstances=new Set,Pi._isGlobalEventsBound=!1,Pi._activeSuggestedDrop=null,Pi._globalHandlers=null;const Li=Pi;var Ii=i(483);const Mi=class{constructor(t,e,i={}){this.module=t,this.element=(0,r.vq)(e)?e:null,this.element?(this._params=new it.A(i,e).get(),this._nodes={info:this.module._nodes.info,drop:this.module._nodes.drop},this.bufferTemplate="",this.parsedFiles=[]):console.error("Invalid element provided:",e)}init(){const t=this._nodes.info||this._nodes.drop;if(!t)return!1;const e=this._nodes.info?"info":"drop";return this._nativeRenderFiles(e,t)}_nativeRenderFiles(t,i){const r=s.A.find(`.vg-files-${t}--list`,i);if(!r)return!1;const n=Array.from(r.children).filter((t=>"LI"===t.tagName));return 0!==n.length&&(this._setTemplateInBuffer(n),!!this.bufferTemplate&&(this.parsedFiles=n.map((t=>{const i=e.p.get(t,"data-file");return i?this._parseDataFile(i):null})).filter(Boolean),!0))}_parseDataFile(t){const e=(0,r.OM)(t);if(!e||"object"!=typeof e||Array.isArray(e))return null;const i=this._extractBinaryMeta(e),s=this._toStringOrNull(e.name),n=this._toStringOrNull(e.id),a=this._toStringOrNull(e.src),o=this._toStringOrNull(e.type)||i.type||"application/octet-stream",l={id:n,name:s,size:this._toNumberOrNull(e.size)??i.size??0,type:o,src:a,lastModified:this._toNumberOrNull(e.lastModified??e["last-modified"])??i.lastModified??Date.now()};if(void 0!==e.image&&null!==e.image&&""!==e.image&&(l.image=e.image),!["id","name","size","type","src"].every((t=>{const e=l[t];return"size"===t?Number.isFinite(e):null!=e&&""!==e})))return null;const d={},h=new Set(["id","name","size","type","src","image","lastModified","last-modified"]);return Object.entries(e).forEach((([t,e])=>{h.has(t)||null!=e&&""!==e&&(d[t]=e)})),Object.keys(d).length&&(l.customData=d),l}_extractBinaryMeta(t){const e=t.file||t.blob||t.originFile||null;return e instanceof Blob?{size:this._toNumberOrNull(e.size)??null,type:this._toStringOrNull(e.type)||null,lastModified:(e instanceof File?this._toNumberOrNull(e.lastModified):null)??null}:{}}_toStringOrNull(t){if(null==t)return null;return String(t).trim()||null}_toNumberOrNull(t){if(null==t||""===t)return null;const e=Number(t);return Number.isFinite(e)?e:null}_setTemplateInBuffer(t){if(this.bufferTemplate||0===t.length)return;const i=t[0];e.p.has(i,"data-file")?this.bufferTemplate=i.outerHTML:(this.bufferTemplate=i.outerHTML,i.remove())}dispose(){this.bufferTemplate="",this.parsedFiles=[]}};var Di=i(355);const Ti="files",ki="vg.files",Fi='[data-vg-reload="file"]',Ri='[data-vg-dismiss="file"]',Oi="vg-files",Ni=`${Oi}-stat`,zi="completed",Hi="pending",$i="loading",Bi="failing",ji="loaded";class Vi extends wi{constructor(t,e={}){super(t,e,{init:!0,allowed:!1,lang:document.documentElement.lang||"ru",limits:{count:0,sizes:10,total:0},image:!1,detach:!0,info:!0,types:[],ajax:!1,prepend:!0,replace:!0,rename:!1,smartdrop:!1,uploads:{mode:"sequential",route:"",maxParallel:3,maxConcurrent:1,retryAttempts:1,retryDelay:1e3},removes:{buttons:null,all:{route:"",alert:!0,toast:!0,confirm:null,buttons:null},single:{route:"",alert:!0,toast:!0,confirm:null,buttons:null}},sortable:{enabled:!1,route:"",handle:".file",lists:["vg-files-info--list","vg-files-drop--list"]},callbacks:{onInit:null,onChange:null,onUploadStart:null,onUploadProgress:null,onUploadComplete:null,onUploadError:null,onUploadAllComplete:null,onRemoveFile:null,onClear:null,onReload:null}}),this._files=[],this._uploadedKeys=new Set,this._failingUploadedKeys=new Set,this._pendingUploadedKeys=new Set,this._unUploadedFiles=[],this._uploader=null,this._sortable=null,this._render=null,this.isRenderNonInit=!1,this._initExtended()}static get NAME(){return Ti}static get NAME_KEY(){return ki}_initExtended(){if(!this._isInitialized)return;if(this._render=new Mi(this,this._element,this._params),this._params.ajax&&(this._params.allowed=!1),this.isRenderNonInit)return;this.isRenderNonInit=this._render.init();const t=this._render.parsedFiles;t.length&&this._addExternalFiles(t),this._params.allowed&&!this._params.ajax&&(this._params.detach=!1),this._nodes.drop&&(this._params.image=!0,this._params.detach=!0,this._setDropActiveText(),Li.getOrCreateInstance(this._nodes.drop,this._params).init()),this._addEventListenerExtended(),this._renderStat(),this._triggerCallback("onInit",{element:this._element,files:t||[]})}_setDropActiveText(){if(!this._nodes.drop)return;const t=tt(this._params.lang,Ti)||{},e=(this._nodes.drop.getAttribute("data-drop-active-text")||"").trim()||t["drop-active"]||"Release to upload";this._nodes.drop.setAttribute("data-drop-active-text",e);const i=s.A.find(".vg-files-drop-message .title",this._nodes.drop);if(!i)return;const r=(i.getAttribute("data-drop-original-text")||"").trim()||(i.textContent||"").trim();i.setAttribute("data-drop-original-text",r)}_addExternalFiles(t){Array.isArray(t)&&t.length&&(t.forEach((t=>{if(!t?.name)return;const e={};"string"==typeof t.type&&(e.type=t.type),Number.isFinite(t.lastModified)&&(e.lastModified=t.lastModified);const i=new File([""],t.name,e);void 0!==t.id&&null!==t.id&&""!==t.id&&Object.defineProperty(i,"id",{value:t.id,writable:!0,enumerable:!0}),Number.isFinite(t.size)&&Object.defineProperty(i,"size",{value:t.size,writable:!0,enumerable:!0}),void 0!==t.src&&null!==t.src&&""!==t.src&&Object.defineProperty(i,"src",{value:t.src,writable:!0,enumerable:!0}),void 0!==t.image&&null!==t.image&&""!==t.image&&Object.defineProperty(i,"image",{value:t.image,writable:!0,enumerable:!0}),t.customData&&"object"==typeof t.customData&&!Array.isArray(t.customData)&&Object.defineProperty(i,"customData",{value:t.customData,writable:!0,enumerable:!0});const s=this._getFileKey(i);this._uploadedKeys.add(s),this._pendingUploadedKeys.delete(s),this._failingUploadedKeys.delete(s),this._files.push(i)})),this._renderUI(this._files),this._renderStat(),this._updateStat(),this._setStatItem("completed",this._uploadedKeys.size),this._params.sortable?.enabled&&this._params.sortable.route&&!this._sortable&&(this._sortable=new Di.default(this,this._params.sortable)),this._triggerCallback("onChange",{files:this._files}),g.A.trigger(this._element,`${ki}.change`,{files:this._files}))}_addEventListenerExtended(){s.A.findAll('[data-vg-toggle="files"]',this._element).forEach((t=>{this._onNativeInputChange&&t.removeEventListener("change",this._onNativeInputChange),t.addEventListener("change",(t=>this._handleChange(t)))}))}_handleChange(t){const e=t?.target,i=this._snapshotInputFiles(e);this.change(e),this._params.ajax&&this.uploadAll(this._files);const s={files:this._files,input:t?.target||t?.src||"",inputFiles:i};this._triggerCallback("onChange",s),this._triggerEvent("change",{files:this._files,input:s.input,inputFiles:s.inputFiles})}_snapshotInputFiles(t){const e=t?.files;return e?.length?Array.from(e):[]}async uploadAll(t){if(!this._params.ajax||!this._params.uploads.route)return;this._uploadedKeys.size||this._failingUploadedKeys.clear();const e=t.filter((t=>!this._uploadedKeys.has(this._getFileKey(t))));if(!e.length)return;this._uploader&&!this._uploader.isIdle()||(this._uploader=new Ci({mode:this._params.uploads.mode,maxConcurrent:this._params.uploads.maxConcurrent,maxParallel:this._params.uploads.maxParallel,retryAttempts:this._params.uploads.retryAttempts,retryDelay:this._params.uploads.retryDelay}),this._setupUploadEventHandlers()),e.forEach((t=>{const e=this._getFileKey(t);this._pendingUploadedKeys.add(e),this._unUploadedFiles=this._unUploadedFiles.filter((t=>this._getFileKey(t)!==e))})),this._setStatItem("pending",this._pendingUploadedKeys.size);const i={additionalData:{timestamp:(new Date).toISOString(),source:"web_uploader",prepend:this._params.prepend}};this._triggerCallback("onUploadStart",{files:e,total:e.length}),this._triggerEvent("upload.start",{files:e,total:e.length});try{await this._uploader.uploadFiles(e,this._params.uploads.route,i)}catch(t){console.error("Bulk upload failed:",t)}}async upload(t){if(!this._params.ajax||!this._params.uploads.route)return;this._uploader&&!this._uploader.isIdle()||(this._uploader=new Ci({mode:this._params.uploads.mode,maxConcurrent:this._params.uploads.maxConcurrent,maxParallel:this._params.uploads.maxParallel,retryAttempts:this._params.uploads.retryAttempts,retryDelay:this._params.uploads.retryDelay}));const i=this._getFileKey(t);this._pendingUploadedKeys.has(i)||(this._pendingUploadedKeys.add(i),this._setStatItem("pending",this._pendingUploadedKeys.size)),this._unUploadedFiles=this._unUploadedFiles.filter((t=>this._getFileKey(t)!==i));const s=this._getItemElement(t);s&&(e.x.remove(s,Bi),e.x.add(s,$i),e.x.add(s,Hi)),this._setupUploadEventHandlers(t);const r={additionalData:{timestamp:(new Date).toISOString(),source:"web_uploader"}};try{await this._uploader.uploadFiles([t],this._params.uploads.route,r)}catch(t){console.error("Upload failed:",t)}}_setupUploadEventHandlers(){"function"==typeof this._uploader.offAll?this._uploader.offAll():(this._uploader.off("progress"),this._uploader.off("complete"),this._uploader.off("error"),this._uploader.off("allComplete")),this._updateStat(!0),this._uploader.onProgress((t=>{const i=t.file,n=this._getItemElement(i);if(!n)return;e.x.add(n,$i),e.x.add(n,Hi);const a=this._getButtonElement(i);if((0,r.vq)(a)){const t=a.closest("li");if(t){const e=s.A.find(".file-remove",t);e&&(e.innerHTML="",e.appendChild(this._setButtonElement(i,!0)))}}const o={file:t.file,progress:t.progress,bytesSent:t.bytesSent,totalBytes:t.totalBytes};this._triggerCallback("onUploadProgress",o),this._triggerEvent("upload.progress",o)})),this._uploader.onComplete((t=>{const i=t.file,n=this._getFileKey(i),a=this._getItemElement(i);if(!a)return;e.x.replace(a,$i,ji),e.x.remove(a,Hi);const o=this._getButtonElement(i),l=(0,r.OM)(t.result?.response?.id)||t.id||i.lastModified;if(i.id=l,(0,r.vq)(o)&&l){const t=o.closest("li");if(t){e.p.set(t,"data-id",l),this._setButtonElement(i);const r=s.A.find(".file-remove",t);r&&(r.innerHTML="",r.appendChild(this._setButtonElement(i,!0,"completed")),e.x.add(t,zi),setTimeout((()=>{r.innerHTML="",r.appendChild(this._setButtonElement(i)),e.x.remove(t,zi)}),1e3))}}this._uploadedKeys.add(n),this._failingUploadedKeys.delete(n),this._pendingUploadedKeys.delete(n),this._setStatItem("completed",this._uploadedKeys.size),this._setStatItem("pending",this._pendingUploadedKeys.size);const d={file:t.file,response:t.result?.response,status:t.result?.status,id:i.id};this._triggerCallback("onUploadComplete",d),this._triggerEvent("upload.complete",d)})),this._uploader.onError((t=>{const i=t.file,n=this._getFileKey(i),a=this._getItemElement(i);if(!a)return;this._uploadedKeys.delete(n),this._failingUploadedKeys.add(n),this._pendingUploadedKeys.delete(n),this._unUploadedFiles.push(i),e.x.remove(a,Hi),e.x.replace(a,$i,Bi),this._setStatItem("failing",this._failingUploadedKeys.size),this._setStatItem("pending",this._pendingUploadedKeys.size);const o=this._getButtonElement(i);if((0,r.vq)(o)){const t=o.closest("li");if(t){this._setButtonElement(i);const r=s.A.find(".file-remove",t);r&&(r.innerHTML="",r.appendChild(this._setFailingButtons(i)),e.x.add(t,Bi))}}const l={file:t.file};this._triggerCallback("onUploadError",l),this._triggerEvent("upload.error",l)})),this._uploader.onAllComplete((()=>{this._triggerEvent("upload.allComplete"),this._updateStat(!1),this._failingUploadedKeys.size||this._params.sortable?.enabled&&this._params.sortable.route&&Promise.resolve().then(i.bind(i,355)).then((t=>{this._sortable&&"function"==typeof this._sortable.destroy&&this._sortable.destroy(),this._sortable=new t.default(this,this._params.sortable)})).catch((t=>{console.error("Ошибка загрузки VGFilesSortable:",t)}));const t={uploaded:this._uploadedKeys.size,failed:this._failingUploadedKeys.size,total:this._files.length};this._triggerCallback("onUploadAllComplete",t)}))}reload(t){if(!this._params.ajax||!this._params.uploads.route)return;const i=e.p.get(t,"data"),s={name:i.name,size:i.size,type:i.type,lastModified:i["last-modified"]},r=this._getFileKey(s);if(!this._failingUploadedKeys.has(r))return;const n=this._unUploadedFiles.find((t=>this._getFileKey(t)===r));if(!n)return;this._failingUploadedKeys.delete(r),this._pendingUploadedKeys.add(r),this._setStatItem("failing",this._failingUploadedKeys.size),this._setStatItem("pending",this._pendingUploadedKeys.size);const a={button:t,file:n};this._triggerCallback("onReload",a),this._triggerEvent("reload",a),this.upload(n)}_runAjaxRequest(t,e){const i=this._params.ajax;this._params.ajax=t,this._route(((t,s)=>{this._params.ajax=i,e(t,s)}))}_normalizeConfirmResult(t){if(!0===t)return{accepted:!0,data:null};if(!1===t||null==t)return{accepted:!1,data:null};if("object"==typeof t){if("boolean"==typeof t.accepted)return{accepted:t.accepted,data:t.data??null};if(Object.prototype.hasOwnProperty.call(t,"data"))return{accepted:!0,data:t.data??null}}return{accepted:Boolean(t),data:null}}_runDefaultRemoveConfirm(t,e){return new Promise((i=>{ft.confirm(t,{lang:e.lang,ajax:e.ajax,buttons:e.buttons,message:e.message}),g.A.one(t,"vg.alert.accept",(t=>{i({accepted:!0,data:t?.vgalert?.data??null})})),g.A.one(t,"vg.alert.reject",(()=>{i({accepted:!1,data:null})}))}))}_isPlainObject(t){return t&&"object"==typeof t&&!Array.isArray(t)}_mergeButtonConfigs(...t){return t.reduce(((t,e)=>this._isPlainObject(e)?(Object.entries(e).forEach((([e,i])=>{this._isPlainObject(t[e])&&this._isPlainObject(i)?t[e]=this._mergeButtonConfigs(t[e],i):t[e]=Array.isArray(i)?i.slice():i})),t):t),{})}_getDefaultRemoveConfirmButtons(){return{agree:{text:et(this._params.lang,Ti).agree,class:["btn-danger"]},cancel:{text:et(this._params.lang,Ti).cancel,class:["btn-outline-danger"]}}}_getRemoveConfirmButtons(t){return this._mergeButtonConfigs(this._getDefaultRemoveConfirmButtons(),this._params?.removes?.buttons,this._params?.removes?.[t]?.buttons)}_confirmRemove(t,e,i,s){const r=this._getRemoveConfirmButtons(t),n={type:t,trigger:e,lang:this._params.lang,ajax:i,buttons:r,message:s},a=this._params?.removes?.[t]?.confirm;return"function"==typeof a?Promise.resolve(a(n,this)).then((t=>this._normalizeConfirmResult(t))):this._runDefaultRemoveConfirm(e,n)}removeFile(t){const i=(0,r.OM)(e.p.get(t,"data-name")),n=(0,r.OM)(e.p.get(t,"data-size")),a=(0,r.OM)(e.p.get(t,"data-id")),o=()=>{const e={button:t,name:i,size:n,id:a,remaining:this._files.length};this._triggerCallback("onRemoveFile",e),this._triggerEvent("remove",e)},l=this._files.find((t=>t.name===i&&t.size===n));if(l){const t=this._getFileKey(l);this._uploadedKeys.delete(t),this._pendingUploadedKeys.delete(t),this._failingUploadedKeys.delete(t)}if(this._getItemElement().forEach((t=>{const i=s.A.find("button",t);if(!i)return;const n=(0,r.OM)(e.p.get(i,"data-id")),a=(0,r.OM)(e.p.get(i,"data-name")),o=(0,r.OM)(e.p.get(i,"data-size"));this._files.forEach((t=>{t.name===a&&t.size===o&&(t.id=n)})),l?.name===a&&l?.size===o&&(l.id=n)})),this._params.ajax&&this._params.removes.single.route){if(!a)return this._files=this._files.filter((t=>!(t.name===i&&t.size===n))),this._updateStatsAfterRemove(),this._files.length?this.build():this.clear(!0),o(),void this._resetFileInput();const e=this._params.removes.single.route,s=e.includes("?")?"&":"?",r={route:`${e}${s}id=${encodeURIComponent(a)}`,method:"delete"},l=t=>{this._files=this._files.filter((t=>!(t.name===i&&t.size===n))),this._updateStatsAfterRemove(),this._files.length?this._renderUI(this._files):this.clear(!0,!0),this._params.removes.single.toast&&Ii.A.run(t?.response?.message),o()};if(this._params.removes.single.alert){const e={title:tt(this._params.lang,Ti).title,description:tt(this._params.lang,Ti).description};this._confirmRemove("single",t,r,e).then((t=>{t.accepted&&(t.data?l(t.data):this._runAjaxRequest(r,((t,e)=>{l(e)})))})).catch((()=>{}))}else this._runAjaxRequest(r,((t,e)=>{l(e)}))}else this._files=this._files.filter((t=>!(t.name===i&&t.size===n))),this._updateStatsAfterRemove(),this._files.length?this.build():this.clear(!0),o();this._resetFileInput()}_updateStatsAfterRemove(){this._setStatItem("completed",this._uploadedKeys.size),this._setStatItem("pending",this._pendingUploadedKeys.size),this._setStatItem("failing",this._failingUploadedKeys.size),this._updateStat()}_getItemElement(t=null){let e=`${this._getClass("info-list")}`;return this._nodes.drop&&(e=`${this._getClass("drop-list")}`),t?s.A.find(`.${e} li[data-name="${t.name}"][data-size="${t.size}"]`,this._element):s.A.findAll(`.${e} li.loaded`,this._element)}_getButtonElement(t){return s.A.find(`button[data-name="${t.name}"][data-size="${t.size}"]`,this._element)}_setButtonElement(t,e=!1,i=""){let s=(0,f.z)("trash"),r="data-vg-dismiss";return this._params.info||(s=(0,f.z)("cross")),e&&(s=(0,f.z)("spinner"),"completed"===i?s=(0,f.z)("check"):r="data-vg-reload"),this._tpl.button([this._tpl.i({},s,{isHTML:!0})],"button",this._buildFileDataAttributes(t,{type:"button",[r]:"file","data-name":t.name,"data-size":t.size??0,"data-type":t.type||"","data-last-modified":t.lastModified||"","data-id":t.id||""}))}_setFailingButtons(t){return this._tpl.div({class:"file-failing-actions"},[this._setButtonElement(t,!0,"failing"),this._setButtonElement(t)])}_renderStat(){if(!this._nodes.stat)return;if(!this._params.ajax)return;const t=s.A.find(`.${Ni}-progress`,this._nodes.stat);if(!t)return;let e=s.A.find(`.${Ni}-progress-list`,t);e||(e=this._tpl.ul([this._tpl.li({class:"stat-item pending","data-count":"0",title:tt(this._params.lang,Ti).pending},[this._tpl.span({class:"stat-label"},(0,f.z)("cloud-dot"),{isHTML:!0}),this._tpl.span({class:"stat-value"},0)]),this._tpl.li({class:"stat-item completed","data-count":"0",title:tt(this._params.lang,Ti).completed},[this._tpl.span({class:"stat-label"},(0,f.z)("cloud-dot"),{isHTML:!0}),this._tpl.span({class:"stat-value"},0)]),this._tpl.li({class:"stat-item failing","data-count":"0",title:tt(this._params.lang,Ti).failing},[this._tpl.span({class:"stat-label"},(0,f.z)("cloud-dot"),{isHTML:!0}),this._tpl.span({class:"stat-value"},0)])],{class:Ni+"-progress-list"},!0),t.appendChild(e))}_setStatItem(t,i){if(!this._nodes.stat)return;const r=s.A.find(`.${Ni}-progress-list li.${t}`,this._nodes.stat);if(!r)return;e.p.set(r,"data-count",i);const n=s.A.find(".stat-value",r);n&&(n.innerHTML=i)}_renderUIStatusDropInfoAjax(t){this._params.ajax&&t.forEach((t=>{const i=this._getItemElement(t);if(!i)return;const s=this._getFileKey(t);this._uploadedKeys.has(s)?(e.x.replace(i,Hi,zi),e.x.add(i,ji)):this._failingUploadedKeys.has(s)?e.x.replace(i,Hi,Bi):e.x.add(i,Hi)}))}_triggerCallback(t,e){const i=this._params.callbacks?.[t];if("function"==typeof i)try{i.call(this,e,this)}catch(e){console.error(`${t} callback error:`,e)}}_triggerEvent(t,e={}){g.A.trigger(this._element,`${ki}.${t}`,e)}_getUploadedIds(){return Array.from(this._uploadedKeys).map((t=>{const e=this._files.find((e=>this._getFileKey(e)===t));return e?.id||null})).filter((t=>null!==t))}dispose(){this._sortable&&"function"==typeof this._sortable.destroy&&this._sortable.destroy(),this._sortable=null,this.clear(),this._uploader&&("function"==typeof this._uploader.destroy?this._uploader.destroy():("function"==typeof this._uploader.clear&&this._uploader.clear(),"function"==typeof this._uploader.offAll&&this._uploader.offAll())),super.dispose()}}g.A.on(document,`DOMContentLoaded.${ki}.data.api`,(()=>{s.A.findAll(`.${Oi}`).forEach((t=>Vi.getOrCreateInstance(t)))})),g.A.on(document,`click.${ki}.data.api`,Ri,(function(t){t.preventDefault(),t.stopPropagation(),"function"==typeof t.stopImmediatePropagation&&t.stopImmediatePropagation();const e=t.target.closest(`.${Oi}`);e&&Vi.getOrCreateInstance(e).removeFile(t.target.closest(Ri))})),g.A.on(document,`click.${ki}.data.api`,Fi,(function(t){t.preventDefault(),t.stopPropagation(),"function"==typeof t.stopImmediatePropagation&&t.stopImmediatePropagation();const e=t.target.closest(`.${Oi}`);e&&Vi.getOrCreateInstance(e).reload(t.target.closest(Fi))})),g.A.on(document,`click.${ki}.data.api`,'[data-vg-dismiss="vg-files"]',(function(t){const e=t.target.closest(`.${Oi}`);if(!e)return;const i=Vi.getOrCreateInstance(e);if(i._params.ajax&&i._params.removes.all.route){t.preventDefault();const e={route:i._params.removes.all.route,method:"post",data:{ids:i._getUploadedIds()}},s=()=>{i.clear(!0,!0)};if(i._params.removes.all.alert){const r={title:tt(i._params.lang,Ti).title,description:tt(i._params.lang,Ti).descriptions};i._confirmRemove("all",t.target,e,r).then((t=>{if(t.accepted)return t.data?(i._params.removes.all.toast&&Ii.A.run(t.data?.response?.message),void s()):void i._runAjaxRequest(e,((t,e)=>{i._params.removes.all.toast&&e?.response?.message&&Ii.A.run(e.response.message),s()}))})).catch((()=>{}))}else i._runAjaxRequest(e,((t,e)=>{i._params.removes.all.toast&&e?.response?.message&&Ii.A.run(e.response.message),s()}))}else i.clear(!0,!0)}));const qi=Vi;var Ui=i(614);const Wi="vg.hideshowpass",Ki="show",Yi=`click.${Wi}.data.api`;class Gi extends t.A{constructor(t,e={}){super(t,e),this._params=this._getParams(t,(0,r._v)({parentClass:"vg-form-sender--content-pass"},e))}static get NAME(){return"hideshowpass"}static get NAME_KEY(){return Wi}toggle(t){return this._isShown()?this.hide(t):this.show(t)}show(t){t&&(this._params=this._getParams(t,this._params)),this._element.classList.add(Ki),t.remove(),this.build(!0),e.p.set(this._element,"type","text")}hide(t){this._element.classList.remove(Ki),t.remove(),this.build(!1),e.p.set(this._element,"type","password")}_isShown(){return this._element.classList.contains(Ki)}static init(t,e){Gi.getOrCreateInstance(t,e).build(!1)}build(t=!1){let e=this._params.classes.join(" "),i="";const s=(0,h.A)("string");this._element.parentElement&&this._params.parentClass&&this._element.parentElement.classList.add(this._params.parentClass),i=t?s.component("eye",{class:e,type:"hide"}):s.component("eye",{class:e}),this._element.insertAdjacentHTML(this._params.insert,i)}}g.A.on(document,Yi,'[data-vg-toggle="pass"]',(function(t){const e=s.A.prev(this,"input");e&&(["A","AREA"].includes(this.tagName)&&t.preventDefault(),(0,r.d6)(this)||(this.setAttribute("aria-expanded",!0),Gi.getOrCreateInstance(e.shift()).toggle(this)))}));const Xi=Gi,Zi="form-sender",Ji="vg.fs",Qi="vg-form-sender-alert",ts=`submit.${Ji}.data.api`;class es extends t.A{constructor(t,e={}){super(t,e),this._params=this._getParams(t,(0,r._v)({response:{enabled:!1,errors:!1,title:"",message:""},redirect:{error:"",success:""},validate:!1,submit:!1,fields:[],timeout:50,pass:{enabled:!0,template:"pass-open",classes:["vg-form-sender--hide-show-pass"],insert:"afterend"},alert:{enabled:!0,type:"modal",errors:!0,title:!0,delay:0,modal:{closeModalsBeforeModal:!0},toast:{closeModalsBeforeToast:!0}},ajax:{route:"",target:"",method:"get",timeout:1e3,loader:!1,output:!0},classes:{general:"vg-form-sender",alertCollapse:"vg-form-sender-collapse",alertModal:"vg-form-sender-modal",validation:"needs-validation",wasValidate:"was-validated",content:"vg-form-sender--content"},callback:{afterInit:r.lQ,afterSuccess:r.lQ,afterError:r.lQ,afterSend:r.lQ},interceptors:{beforeSend:()=>new Promise(((t,e)=>t())),success:!1,error:!1},button:{enabled:!0,disabled:!0,send:"Отправляем...",initial:"Отправить",spinner:{enabled:!1,element:'<span class="spinner-border spinner-border-sm me-2"></span>'},click:r.lQ},lang:"ru"},e)),this._button=null,this._cachedElements=new Map,this._initElements()}static get NAME(){return Zi}static get NAME_KEY(){return Ji}_initElements(){this._button=s.A.find('[type="submit"]',this._element)||s.A.find('[form="'+this._element.id+'"]')||null;const t=s.A.findAll("input, textarea, select",this._element);this._cachedElements.set("fields",t),this._params.ajax.route=e.p.get(this._element,"action")||this._params.ajax.route,this._params.ajax.method=e.p.get(this._element,"method")||this._params.ajax.method,this._params.isBtnText="false"!==e.p.get(this._element,"data-btn-text"),this._params.isJsonParse="false"!==e.p.get(this._element,"data-json-parse"),this._params.isShowPass="true"===e.p.get(this._element,"data-show-pass"),this._button&&(this._params=this._getParams(this._button,this._params),this._params.button.initial=this._button.innerHTML.trim()||this._params.button.initial)}build(){this._element.classList.add(this._params.classes.general);const t=this._cachedElements.get("fields");return t&&t.forEach((t=>{(0,r.zN)(t)&&t.parentElement&&t.parentElement.classList.add(this._params.classes.content)})),this._params.validate&&(e.p.set(this._element,"novalidate",""),this._element.classList.add(this._params.classes.validation)),this._params.pass.enabled&&[...s.A.findAll('input[type="password"]',this._element)].forEach((t=>{Xi.init(t,this._params.pass)})),(0,r.g7)(this._params.callback.afterInit,[this._element,this]),this}request(t,e=null){const i=this;i._alertBefore();i._params.interceptors.beforeSend().then((()=>{(()=>{let s=new FormData(i._element);i._params.ajax.data=e?((t,e)=>{const i=new Set;return e.forEach(((e,s)=>{i.has(s)||(t.delete(s),i.add(s)),t.append(s,e)})),t})(e,s):s,i._route((function(e,s){(0,r.g7)(i._params.callback.afterSend,[i._element,i,e,s]),i._element.classList.remove("was-validated"),i._params.response.enabled&&(s.response=i._params.response),i._params.alert.enabled&&("string"==typeof e&&"error"===e?i._params.redirect.error?window.location.href=i._params.redirect.error:(i._params.interceptors.error||i._alertError(t,s),(0,r.g7)(i._params.callback.afterError,[i._element,i,t,s])):"string"==typeof e&&"success"===e&&(i._params.redirect.success?window.location.href=i._params.redirect.success:(i._params.interceptors.success||i._alertSuccess(t,s),(0,r.g7)(i._params.callback.afterSuccess,[i._element,i,t,s]))))}))})()})).catch((t=>{console.error(t)}))}_alertBefore(){const t=this;if("collapse"===t._params.alert.type){const e=t._params.classes.alertCollapse;if(!t._cachedElements.has("collapses")||document.querySelector("."+e+".show")){const i=document.getElementsByClassName(e);t._cachedElements.set("collapses",i),[...i].forEach((function(t){t.classList.contains("show")&&Dt.getOrCreateInstance(t,{toggle:!1}).hide()}))}}t._statusButton("before"),g.A.trigger(t._element,"vg.fs.before",{vgformsender:{self:t}})}_alertError(t,e){const i=this;i._statusButton("after"),i._jsonParse(e,"error"),g.A.trigger(i._element,"vg.fs.error",{vgformsender:{event:t,self:i,data:e}})}_alertSuccess(t,e){const i=this;i._statusButton("after"),i._jsonParse(e,"success"),g.A.trigger(i._element,"vg.fs.success",{vgformsender:{event:t,self:i,data:e}})}_statusButton(t){if(this._button){if("before"===t){const t=this._button;this._params.button.initial=this._button.innerHTML.trim(),this._params.button.spinner.enabled&&this._button.insertAdjacentHTML("afterbegin",this._params.button.spinner.element),this._params.button.enabled&&(t.innerHTML=this._params.button.send),this._params.button.disabled&&e.p.set(this._button,"disabled","disabled"),(0,r.g7)(this._params.button.click,[this,this._button,"before"])}if("after"===t){if(this._params.button.enabled&&(this._button.innerHTML=this._params.button.initial),this._params.button.disabled&&e.p.remove(this._button,"disabled"),this._params.button.spinner.enabled){let t=this._button.querySelector(".spinner-border");t&&t.remove()}(0,r.g7)(this._params.button.click,[this,this._button,"after"])}}}_jsonParse(t,e){const i=this;i._params.isJsonParse?i.alert((0,r.OM)(t),e):i.alert(t,e)}alert(t,e){if((0,r.Gv)(t))if("code"in t&&t.code&&200===t.code){if("response"in t&&t.response){let i=(0,r.OM)(t.response);"string"==typeof i?-1===i.indexOf("Parse error")&&-1===i.indexOf("syntax error")||(e="danger",t={response:{title:Q(this._params.lang,"errors").title,message:tt(this._params.lang,"errors").went_wrong}}):"errors"in i&&(0,r.OM)(i.errors)&&(e=(0,r.OM)(i.errors)?"danger":"success")}}else e="danger";this._params.alert.enabled&&("modal"===this._params.alert.type&&this._alertModal(t,e),"collapse"===this._params.alert.type&&this._alertCollapse(t,e),"toast"===this._params.alert.type&&this._alertToast(t,e))}_alertModal(t,e){const i=this,n=i._params.alert.modal?.closeModalsBeforeModal,a=!n&&i._hasOpenedModals();n&&i._closeOpenedModals();let o=i._params.classes.general+"-"+(0,r.PR)(),l=s.A.find("."+i._params.classes.alertModal);l&&l.remove(),setTimeout((()=>{j.init(o,{dismiss:!0,classes:{alert:i._params.classes.alertModal}},(function(r){let n=r._element;n.classList.add(i._params.classes.alertModal),a&&i._setStackedModalState(n);let o=s.A.find(".vg-modal-content",n);o&&o.classList.add(Qi,Qi+"-"+e);let l=s.A.find(".vg-modal-body",n);l&&l.append(i.setDataRelationStatus(n,e,t,"modal")),r.toggle(),i._params.alert.delay>0&&setTimeout((()=>{r.hide()}),i._params.alert.delay)}))}),i._params.timeout)}_hasOpenedModals(){return Boolean(s.A.find(".modal.show, .vg-modal.show"))}_setStackedModalState(t){t&&(t.classList.add("vg-modal-stacked"),t.style.zIndex=this._getNextModalZIndex())}_getNextModalZIndex(){const t=s.A.findAll(".modal.show, .vg-modal.show").map((t=>Number.parseInt(window.getComputedStyle(t).zIndex,10))).filter((t=>Number.isFinite(t)));return String((t.length?Math.max(...t):1040)+10)}_closeOpenedModals(){[...document.getElementsByClassName("modal")].forEach((t=>{t&&t.classList.contains("show")&&("undefined"!=typeof bootstrap&&bootstrap.Modal?.getOrCreateInstance?bootstrap.Modal.getOrCreateInstance(t).hide():console.warn(tt(this._params.lang,Zi).bootstrap_not_found))})),[...document.getElementsByClassName("vg-modal")].forEach((t=>{if(t&&t.classList.contains("show")){const e=j.getOrCreateInstance(t);e.hide([e])}}))}_alertCollapse(t,e){const i=this;let n=s.A.find("."+i._params.classes.alertCollapse);n||(n=document.createElement("div"),n.classList.add(i._params.classes.alertCollapse),n.classList.add("vg-collapse"),n.id=i._params.classes.general+"-"+(0,r.PR)(),n.append(i.setDataRelationStatus(n,e,t,"collapse")),i._element.prepend(n));let a=Dt.getOrCreateInstance(n,{toggle:!1});a.toggle(),i._params.alert.delay>0&&setTimeout((()=>{a.hide()}),i._params.alert.delay)}_alertToast(t,e){const i=this._prepareAlertResponse(e,t),s=this._getToastParams(e);this._params.alert.toast?.closeModalsBeforeToast&&this._closeOpenedModals(),i.title?Ui.A.run([i.title,i.message],s):Ui.A.run(i.message,s)}_getToastParams(t){const e="error"===t?"danger":t,i="danger"===t?"error":t,s=this._params.alert.delay>0?this._params.alert.delay:3e3,n={},{closeModalsBeforeToast:a,...o}=this._params.alert.toast||{};return["static","placement","autohide","delay","enableClickToast","enableButtonClose","keyboard","theme","drag","resize","stack","animation","ajax"].forEach((t=>{t in this._params.alert&&(n[t]=this._params.alert[t])})),(0,r._v)({theme:e||"dark",type:i||null,enableButtonClose:!0,autohide:this._params.alert.delay>0,delay:s},n,o)}setDataRelationStatus(t,e,i,r){let n=s.A.find("."+Qi+"-content",t);const a=this._prepareAlertResponse(e,i),o=(a.title?(0,h.A)("string").h4({class:Qi+"-content--title"},a.title):"")+a.message;if(n)s.A.find(".vg-modal-body",t).innerHTML=o;else{const t=(0,h.A)("dom");n=t.div({class:Qi+"-"+r},[t.div({class:Qi+"-content"},[t.i({class:Qi+"-content--icon"},(0,f.z)(e),{isHTML:!0}),t.div({class:Qi+"-content--text"},o,{isHTML:!0})])])}return n}_prepareAlertResponse(t,e){let i=(0,r.OM)(e?.response)||e;if((0,r.Gv)(e)){if((0,r.Gv)(e.response)&&"view"in e.response)return{title:"",message:e.response.view};if("string"!=typeof i){if("danger"===t){if(i.title="title"in i?i.title:Q(this._params.lang,"errors").title,"code"in e&&200!==e.code){const t={400:tt(this._params.lang,"errors")[400],401:tt(this._params.lang,"errors")[401],403:tt(this._params.lang,"errors")[403],404:tt(this._params.lang,"errors")[404],413:tt(this._params.lang,"errors")[413],419:tt(this._params.lang,"errors")[419],422:tt(this._params.lang,"errors")[422],500:tt(this._params.lang,"errors")[500],504:tt(this._params.lang,"errors")[504]};i.message=t[e.code]||tt(this._params.lang,"errors").went_wrong,i.title+=" ("+e.code+")"}if("errors"in i&&this._params.alert.errors){let t=(0,r.OM)(i.errors)||null;if(i.message=[],(0,r.Gv)(t))for(const e in t)Array.isArray(t[e])?t[e].forEach((t=>i.message.push(t))):i.message.push(t[e])}}const s=(0,h.A)("string");let n="";return Array.isArray(i.message)?i.message.forEach((t=>{n+=s.div({class:Qi+"-content--message"},t)})):n=s.div({class:Qi+"-content--message"},i.message),{title:this._params.alert.title&&i.title||"",message:n}}}return{title:"",message:"string"==typeof i?i:""}}static init(t,e={}){es.getOrCreateInstance(t,e).build()}static buttonClick(t,e,i="before"){const n=s.A.find(t);if(n){const t=es.getOrCreateInstance(n);n.addEventListener("vg.fs."+i,(i=>{(0,r.g7)(e,[n,t])}))}}}g.A.on(document,ts,(function(t){if(!e.p.has(t.target,"data-vgformsender"))return;const i=es.getOrCreateInstance(t.target,{});if(i){if(i._params.validate&&!i._element.checkValidity())return t.preventDefault(),t.stopPropagation(),i._element.classList.add(i._params.classes.wasValidate),!1;if(!i._params.submit){t.preventDefault();const e=function(t,e){return e.forEach((function(e){(0,r.Gv)(e)&&Object.keys(e).forEach((function(i){let s=(0,r.OM)(e[i]);Array.isArray(s)||(0,r.Gv)(s)?t.append(i,JSON.stringify(s)):t.append(i,s)}))})),t};let s=new FormData(i._element),n=i._params.fields;return Array.isArray(n)&&n.length&&(s=e(s,n)),i.request(t,s)}}}));const is=es;function ss(t){return Array.prototype.slice.call(arguments,1).forEach((e=>{e&&Object.keys(e).forEach((i=>{t[i]=e[i]}))})),t}const rs=function t(e,i){function s(t,s,r){if("undefined"==typeof document)return;if("number"==typeof(r=ss({},i,r)).expires){const t=864e5;r.expires=new Date(Date.now()+r.expires*t)}r.expires&&(r.expires=r.expires.toUTCString()),t=encodeURIComponent(t).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);let n="";return Object.keys(r).forEach((t=>{if(r[t]&&(n+="; "+t,!0!==r[t])){const e=String(r[t]).split(";")[0];n+="="+e}})),document.cookie=t+"="+e.write(s,t)+n}return Object.create({set:s,get:function(t){if("undefined"==typeof document||arguments.length&&!t)return;const i=document.cookie?document.cookie.split("; "):[],s={};for(let r=0;r<i.length;r++){const n=i[r].split("="),a=n.slice(1).join("="),o=n[0];try{const i=decodeURIComponent(o);if(s[i]=e.read(a,i),t===i)break}catch(t){}}return t?s[t]:s},remove:function(t,e){s(t,"",ss({},e,{expires:-1}))},withAttributes:function(e){return t(this.converter,ss({},this.attributes,e))},withConverter:function(e){return t(ss({},this.converter,e),this.attributes)}},{attributes:{value:Object.freeze(i)},converter:{value:Object.freeze(e)}})}({read:function(t){return'"'===t[0]&&(t=t.slice(1,-1)),t.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(t){return encodeURIComponent(t).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"}),ns="vg.lawcookie",as="show",os=`${ns}.hide`,ls=`${ns}.hidden`,ds=`${ns}.show`,hs=`${ns}.shown`,cs=`click.${ns}.data.api`;class us extends t.A{constructor(t,e={}){super(t,e),this._params=this._getParams(t,(0,r._v)({storage:"local",delay:500,cookie:{name:"lawCookie",value:"yes",attributes:{}},animation:{enable:!0,in:"animate__fadeInUp",out:"animate__fadeOutDown",delay:800},ajax:{route:"",target:"",method:"get",loader:!1,once:!1,output:!0}},e)),this._storage=this._createStorage(),this._params.animation.delay=this._params.animation.enable?this._params.animation.delay:0,this._animation(this._element,us.NAME_KEY,this._params.animation)}static get NAME(){return"lawcookie"}static get NAME_KEY(){return ns}_isConsented(){return this._storage.get()===this._params.cookie.value}toggle(){return this._isConsented()?this.hide():this.show()}show(){(0,r.d6)(this._element)||this._isConsented()||g.A.trigger(this._element,ds).defaultPrevented||(this._element.classList.add(as),this._queueCallback((()=>{g.A.trigger(this._element,hs)}),this._element,!0,this._params.delay))}hide(){g.A.trigger(this._element,os).defaultPrevented||(this._element.classList.remove(as),this._queueCallback((()=>{g.A.trigger(this._element,ls)}),this._element,!0,this._params.animation.delay))}_createStorage(){const{name:t,value:e,attributes:i}=this._params.cookie;return"cookie"===this._params.storage?{get:()=>rs.get(t),set:()=>rs.set(t,e,i)}:{get:()=>localStorage.getItem(t),set:()=>localStorage.setItem(t,e)}}accept(){this._storage.set()}static reset(){rs.remove(us.getDefaultParams().cookie.name),localStorage.clear(),location.reload()}static getDefaultParams(){return(0,r._v)({cookie:{name:"lawCookie"}},{})}dispose(){rs.remove(us.getDefaultParams().cookie.name),localStorage.clear(),super.dispose()}static init(t,e={}){us.getOrCreateInstance(t,e).toggle()}}(0,f.P)(us),g.A.on(document,cs,'[data-vg-toggle="lawcookie"]',(function(t){if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),(0,r.d6)(this))return;const e=s.A.find("#vg-lawcookie");if(!e)return;const i=us.getOrCreateInstance(e);i.accept(),i.hide()})),g.A.on(document,cs,'[data-vg-toggle="lawcookie-clear"]',(function(t){if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),(0,r.d6)(this))return;const e=s.A.find("#vg-lawcookie");e&&(us.getOrCreateInstance(e).dispose(),us.reset())}));const _s=us,ms="loadmore",ps="vg."+ms,gs=`${ps}.loaded`,fs=`${ps}.before.load`,bs="vg-collapse",vs="show",ys=`click.${ps}.data.api`;class ws extends t.A{static get NAME(){return ms}static get NAME_KEY(){return ps}constructor(t,e){super(t,e),this._params=this._getParams(t,(0,r._v)({lang:document.documentElement.lang||"ru",limit:0,offset:0,output:!0,autohide:!0,animate:!1,append:"after",mode:"button",threshold:100,debug:!1,detach:!1,button:{text:"",send:"Загружаю...",show:"Показываю...",loader:!1,classes:[]},ajax:{route:"",target:"",method:"get",loader:!1,once:!1,output:!1,data:{}}},e)),this._observer=null,this._isScrollMode="scroll"===this._params.mode,this._isToggleElement=t.hasAttribute("data-vg-toggle"),this._params.button.send=et(this._params.lang,ms).send,this._params.button.show=et(this._params.lang,ms).show,this._params.button.text||(this._params.button.text=this._isToggleElement?this._element.innerHTML.trim()||et(this._params.lang,ms)["text-ajax"]:this._params.ajax.route?et(this._params.lang,ms)["text-ajax"]:et(this._params.lang,ms)["text-more"]),this._isToggleElement?this._initializeAsButton():this._initializeContainer()}_initializeAsButton(){this._isScrollMode&&this._initScrollMode()}_initializeContainer(){const{elements:t,limit:e}=this._params,i=this._element,r=s.A.findAll(`.${t}`,i);!this._params.ajax.route&&(r.length<=e||this._params.offset>=r.length)||(r.forEach(((t,i)=>{t.classList.toggle(vs,i<e),t.classList.toggle(bs,i>=e)})),"button"===this._params.mode?this._createAndInsertButton(i):this._isScrollMode&&this._initScrollMode(),0===this._params.offset&&(this._params.offset=e))}_createAndInsertButton(t){const i=document.createElement("button"),s=(0,r.OM)(t.dataset.buttonText)||this._params.button.text,n={limit:this._params.limit,offset:this._params.offset,output:this._params.output,autohide:this._params.autohide,animate:this._params.animate,append:this._params.append,mode:this._params.mode,threshold:this._params.threshold,debug:this._params.debug,detach:this._params.detach,elements:this._params.elements,"vg-toggle":"loadmore",target:`#${t.id}`};Object.assign(n,(0,r.OM)(t.dataset.params)),Object.keys(n).forEach((t=>{e.p.set(i,`data-${t}`,n[t])})),i.textContent=s,i.classList.add(...this._params.button.classes),t.parentNode.insertBefore(i,t.nextSibling)}_initScrollMode(){this._setupIntersectionObserver(),this._observeLastVisibleItem()}_setupIntersectionObserver(){this._observer||(this._observer=new IntersectionObserver((t=>{t.forEach((t=>{t.isIntersecting&&(this._params.debug&&console.log("[VGLoadMore] Пересечение — вызов toggle"),this.toggle())}))}),{root:null,rootMargin:`0px 0px ${this._params.threshold}px 0px`,threshold:.1}))}_observeLastVisibleItem(){if(!this._observer)return;this._observer.disconnect();const t=s.A.find(this._params.target)||this._element.parentNode,e=s.A.findAll(`.${this._params.elements}`,t).filter((t=>t.classList.contains(vs))),i=e[e.length-1];i instanceof Element&&this._observer.observe(i)}toggle(t){this._params.debug&&console.log("[VGLoadMore] toggle()"),g.A.trigger(this._element,fs).defaultPrevented||((this._isToggleElement||["BUTTON","A"].includes(this._element.tagName)&&!this._isScrollMode)&&(this._element.disabled=!0,this._element.innerHTML=this._params.ajax.route?this._params.button.send:this._params.button.show),this._params.ajax.route?this.ajax(t):this.staticLoad(t))}ajax(t){const e=this._params.ajax.target?.trim();let i=null;if(i=e?s.A.find(e):this._element,!i)return void console.error("[VGLoadMore] target элемент не найден:",this._params.ajax.target);const n=this._params.button.text;this._params.ajax.data={limit:this._params.limit,offset:this._params.offset},this._route(((e,s,a)=>{if("error"===e||"string"!=typeof s?.response)return;this._params.output&&i.insertAdjacentHTML("after"===this._params.append?"beforeend":"afterbegin",s.response),this._params.offset+=this._params.limit,this._restoreElementState(n),this._observeLastVisibleItem();const o=!s.response.trim();this._params.autohide&&this._params.detach&&o&&this._autohideTrigger(),g.A.trigger(this._element,gs,{stats:e,data:s}),(0,r.g7)(t,[this,s,a,e])}),(t=>{this._restoreElementState(n),console.error("[VGLoadMore] AJAX ошибка",t)}))}staticLoad(t){const e=s.A.find(this._params.target)||this._element.parentNode,i=s.A.findAll(`.${this._params.elements}`,e),n=this._params.offset,a=n+this._params.limit,o=i.slice(n,a);if(0===o.length)return;(this._isToggleElement||["BUTTON","A"].includes(this._element.tagName)&&!this._isScrollMode)&&(this._element.disabled=!0,this._element.innerHTML=this._params.button.show),o.forEach((t=>{t.classList.replace(bs,vs),this._params.animate&&(t.style.opacity=0,requestAnimationFrame((()=>{t.style.transition="opacity 0.3s ease",t.style.opacity=1})))})),this._params.offset=a,this._observeLastVisibleItem();const l=i.slice(a);this._params.autohide&&this._params.detach&&0===l.length&&this._autohideTrigger(),this._restoreElementState(this._params.button.text),(0,r.g7)(t,[this,this._element])}_restoreElementState(t){(this._isToggleElement||"BUTTON"===this._element.tagName)&&!this._isScrollMode&&(this._element.disabled=!1,this._element.innerHTML=t)}_autohideTrigger(){this._isScrollMode?(this._observer?.disconnect(),this._observer=null):this._params.detach&&this._element.parentNode&&this._element.remove()}dispose(){this._observer?.disconnect(),super.dispose()}}g.A.on(document,"DOMContentLoaded",(()=>{s.A.findAll("[data-vgloadmore]").forEach((t=>{!t.dataset.initialized&&ws.getOrCreateInstance(t),t.dataset.initialized="true"}))})),g.A.on(document,ys,'[data-vg-toggle="loadmore"]',(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),ws.getOrCreateInstance(this).toggle()}));const Ss=ws,Cs="vg.nav",As="show",Es="fade",xs="active",Ps=`${Cs}.hide`,Ls=`${Cs}.hidden`,Is=`${Cs}.show`,Ms=`${Cs}.shown`,Ds=`mouseover.${Cs}.data.api`,Ts=`mouseout.${Cs}.data.api`,ks=`click.${Cs}.data.api`,Fs=`keyup.${Cs}.data.api`;class Rs extends t.A{constructor(t,e={}){super(t),this._params=this._getParams(t,(0,r._v)({breakpoint:"lg",placement:"horizontal",hover:!0,hoversmoothfirstlevel:{enable:!1,horizontalOnly:!0},animation:{enable:!0,timeout:700},toggle:'<span class="default"></span>',hamburger:{enable:!0,always:!1,title:"",body:null,target:"#sidebar-nav"},callbacks:{afterInit:r.lQ,afterClick:r.lQ}},e)),this._classes={hamburgerActive:"vg-nav-hamburger-active",hamburgerAlways:"vg-nav-hamburger-always",hamburger:"vg-nav-hamburger",container:"vg-nav-container",wrapper:"vg-nav-wrapper",active:"vg-nav-active",expand:"vg-nav-expand",cloned:"vg-nav-cloned",hover:"vg-nav-hover",flip:"vg-nav-flip",XXXL:"vg-nav-xxxl",XXL:"vg-nav-xxl",XL:"vg-nav-xl",LG:"vg-nav-lg",MD:"vg-nav-md",SM:"vg-nav-sm",XS:"vg-nav-xs"},this._navigation=null,this.navigation="."+this._classes.wrapper,!1===this._params.animation.enable&&(this._params.animation.timeout=10),this._openDrops=new Map,this._pointerPosition=null,this._handleScroll=this._handleScroll.bind(this),this._handleResize=this._handleResize.bind(this)}static get NAME(){return"nav"}static get NAME_KEY(){return Cs}get navigation(){return this._navigation}set navigation(t){let e=s.A.find(t,this._element);e&&(this._navigation=e)}build(){if(!this.navigation)return;let t=this._params,i=this._classes;if(this._element.classList.add(i.container),this._element.classList.add("vg-nav-"+t.placement),t.hamburger.always?this._element.classList.add(i.hamburgerAlways):t.breakpoint?!1!==t.breakpoint&&this._element.classList.add("vg-nav-"+t.breakpoint):this._element.classList.add(i.expand),t.hamburger.enable&&!s.A.find("."+i.hamburger,this._element)){const s=t.hamburger.target||"#sidebar-nav";let r="",n='<span class="'+i.hamburger+'--lines"><span></span><span></span><span></span></span>';t.hamburger.title&&(r='<span class="'+i.hamburger+'--title">'+t.hamburger.title+"</span>"),null!==t.hamburger.body&&(n=t.hamburger.body);let a=document.createElement("a");a.classList.add(i.hamburger),e.p.set(a,"data-vg-toggle","sidebar"),e.p.set(a,"href",s),a.innerHTML=r+n,this._element.append(a)}if(t.toggle){let e=[...s.A.findAll(".dropdown > a",this._element)],i='<span class="toggle">'+t.toggle+"</span>";e.length&&e.forEach((function(t){t.querySelector(".toggle")||t.closest(".dots")||(t.setAttribute("aria-expanded","false"),t.insertAdjacentHTML("beforeend",i))}))}"afterInit"in this._params.callbacks&&(0,r.g7)(this._params.callbacks.afterInit,[this])}show(t){let e=t.relatedTarget;if(!e||(0,r.d6)(e))return;if(e.closest(".dropdown-content")||e.classList.add("first"),g.A.trigger(e,Is,{relatedTarget:t}).defaultPrevented)return;let i=s.A.find(".dropdown-content",e),n=e.firstElementChild;n&&n.setAttribute("aria-expanded","true"),i.classList.add(As),e.classList.add(xs);const a=new kt({reference:e,drop:i,placement:"bottom-start",fallbackPlacements:["top-start","bottom-end","top-end"],offset:[0,6],boundary:"clippingParents",autoFlip:!0,overflowProtection:!0});a._setPlacement(),this._openDrops.set(i,{reference:e,placement:a,scrollHandler:this._handleScroll,resizeHandler:this._handleResize}),window.addEventListener("scroll",this._handleScroll,{passive:!0,capture:!0}),window.addEventListener("resize",this._handleResize),this._queueCallback((()=>{i.classList.add(Es),g.A.trigger(e,Ms,t)}),i,!0,10)}hide(t){const e=this;if("ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))g.A.off(t,"mouseover",r.lQ);let i=t.relatedTarget;if("elm"in t&&t.elm&&(i=t.elm),i){if(g.A.trigger(i,Ps).defaultPrevented)return;i.classList.remove(xs),i.classList.contains("first")&&i.classList.remove("first"),[...s.A.findAll("."+As,i)].forEach((function(i,s){i.classList.remove(Es);let r=i.closest(".dropdown");r.classList.contains(xs)&&r.classList.remove(xs);let n=i.previousElementSibling;if(n&&n.setAttribute("aria-expanded","false"),0===s){const s=()=>{i.classList.remove(As),g.A.trigger(i,Ls,t)};e._queueCallback(s,i,!0,500)}const a=e._openDrops.get(i);a&&(window.removeEventListener("scroll",a.scrollHandler,{capture:!0}),window.removeEventListener("resize",a.resizeHandler),e._openDrops.delete(i))}))}}_handleScroll(){for(const[t,e]of this._openDrops.entries())if(null!==t.offsetParent){if(e.placement._setPlacement(),!this._isElementInViewport(t)){const t=e.reference;this.hide({relatedTarget:t})}}else this._cleanupDrop(t)}_handleResize(){for(const[t,e]of this._openDrops.entries())null!==t.offsetParent&&e.placement._setPlacement()}_cleanupDrop(t){const e=this._openDrops.get(t);e&&(window.removeEventListener("scroll",e.scrollHandler,{capture:!0}),window.removeEventListener("resize",e.resizeHandler),this._openDrops.delete(t))}_isElementInViewport(t){const e=t.getBoundingClientRect(),i=window.innerHeight||document.documentElement.clientHeight,s=window.innerWidth||document.documentElement.clientWidth,r=e.top<=i&&e.top+e.height>=0,n=e.left<=s&&e.left+e.width>=0;return r&&n}_updatePointerPosition(t){t&&"number"==typeof t.clientX&&"number"==typeof t.clientY&&(this._pointerPosition={x:t.clientX,y:t.clientY})}_isHorizontalPointerMove(t){if(!this._pointerPosition||!t)return!1;const e=t.clientX-this._pointerPosition.x,i=t.clientY-this._pointerPosition.y;return Math.abs(e)>Math.abs(i)&&Math.abs(e)>0}_isFirstLevelDropdown(t){return!!t&&!t.closest(".dropdown-content")}_hasDirectDropdownContent(t){return!(!t||!t.children)&&[...t.children].some((t=>t.classList&&t.classList.contains("dropdown-content")))}_isAdjacentDropdown(t,e){return!(!t||!e||t.parentElement!==e.parentElement||t.previousElementSibling!==e&&t.nextElementSibling!==e)}_canSmoothSwitchFirstLevel(t,e,i){const s=this._params.hoversmoothfirstlevel||{};return!(!s.enable||!e||!i||e===i||!this._isFirstLevelDropdown(e)||!this._isFirstLevelDropdown(i)||!this._hasDirectDropdownContent(e)||!this._hasDirectDropdownContent(i)||!this._isAdjacentDropdown(e,i)||s.horizontalOnly&&!this._isHorizontalPointerMove(t))}static init(t,e={}){const i=Rs.getOrCreateInstance(t,e);i.build();let n=s.A.findAll(".dropdown",i.navigation);i._params.hover&&!(0,r.Xb)()&&(g.A.on(i.navigation,`mousemove.${Cs}.data.api`,(function(t){i._updatePointerPosition(t)})),[...n].forEach((function(t){let e=null;g.A.on(t,Ds,(function(t){if(e)return;let s=t.target.closest(".dropdown");if(!s)return;if(!i.navigation.contains(s))return;e=s;const r=t.relatedTarget?.closest(".dropdown"),n=i._canSmoothSwitchFirstLevel(t,s,r);n||Rs.hideOpenDrops(t);let a={relatedTarget:s};i.show(a),n&&r&&r.classList.contains(xs)&&i.hide({relatedTarget:r}),i._updatePointerPosition(t)})),g.A.on(t,Ts,(function(t){if(!e)return;let s=t.relatedTarget?.closest(".dropdown"),r=s,n=e;for(;r;){if(r===e)return;r=r.parentNode}if(i._canSmoothSwitchFirstLevel(t,n,s))return e=null,void i._updatePointerPosition(t);e=null,i.hide({relatedTarget:r,elm:n}),i._updatePointerPosition(t)}))})));const a=document.querySelector(i._params.hamburger.target||"#sidebar-nav");let o=i._element.querySelector("."+i._classes.hamburger);a&&o&&(a.addEventListener("vg.sidebar.show",(function(){o.classList.add(i._classes.hamburgerActive)})),a.addEventListener("vg.sidebar.hide",(function(){o.classList.remove(i._classes.hamburgerActive)})))}static clearDrops(t){2===t.button||"keyup"===t.type&&"Tab"!==t.key||Rs.hideOpenDrops(t)}static hideOpenDrops(t){[...s.A.findAll(".dropdown:not(.disabled):not(:disabled).active")].forEach((e=>{let i=t.target;if(e!==i.closest(".dropdown")){const t=e.closest(".vg-nav"),s=Rs.getInstance(t);if(!s)return;let r=!!t.querySelector(".first"),n=!!i.closest(".dropdown-content");if(r&&n)return;const a={relatedTarget:e};s.hide(a)}}))}}g.A.on(document,Fs,Rs.clearDrops),g.A.on(document,ks,Rs.clearDrops),g.A.on(document,ks,".vg-nav a",(function(t){if(!e.p.has(this,"aria-expanded"))return;let i=this.closest(".vg-nav");const n=Rs.getOrCreateInstance(i);if("afterClick"in n._params.callbacks&&(0,r.g7)(n._params.callbacks.afterClick,[n,t,this]),n._params.hover&&!(0,r.Xb)())return;t.preventDefault();let a=this.parentNode;if(!a)return;if((0,r.d6)(a)||!(0,r.zN)(a))return;let o=!!i.querySelector(".first");if(this.closest(".dropdown-content")&&o){if(a.classList.contains("active"))return void n.hide({relatedTarget:a})}else[...s.A.findAll(".active",i)].forEach((function(t){n.hide({relatedTarget:t})}));n.show({relatedTarget:a})}));const Os=Rs;var Ns=i(546);const zs="nestable",Hs="vg.nestable",$s="is-dragging",Bs="vg-nestable-placeholder",js="vg-nestable-inner",Vs="vg-nestable-handle",qs="vg-nestable-handle-icon",Us="vg-nestable-collapse-toggle",Ws="is-drop-target",Ks="is-drop-denied",Ys=`${Hs}.start`,Gs=`${Hs}.change`,Xs=`${Hs}.end`,Zs=`${Hs}.save`,Js=`${Hs}.init`,Qs=`${Hs}.refresh`,tr=`${Hs}.pointerdown`,er=`${Hs}.move`,ir=`${Hs}.drop`,sr=`${Hs}.transfer`,rr=`${Hs}.placeholdermove`,nr=`${Hs}.destroy`;class ar extends t.A{static _groups=new Map;constructor(t,e={}){super(t,e),this._params=this._getParams(t,(0,r._v)({listselector:".vg-nestable-list",itemselector:".vg-nestable-item",handleselector:".vg-nestable-handle",idattribute:"data-id",childlistclass:"vg-nestable-list",handleicon:"",indent:50,maxdepth:6,moveaxis:"default",hoverthreshold:0,neighborchangethreshold:0,showplaceholder:!0,group:"",connect:!1,accept:null,collapse:{enabled:!0,open:!0,showtext:(0,f.z)("plus"),hidetext:(0,f.z)("minus")},callbacks:{init:null,refresh:null,pointerdown:null,start:null,move:null,placeholdermove:null,drop:null,transfer:null,change:null,end:null,save:null,destroy:null},ajax:{route:"",method:"post",field:"items",data:{},loader:!1,once:!1,output:!1,timeout:0}},e)),this._rootList=this._resolveRootList(),this._draggedItem=null,this._placeholder=null,this._dragElement=null,this._dragLayer=null,this._isDragging=!1,this._startSnapshot="",this._sourceInstance=this,this._lastDropInstance=this,this._activeDropList=null,this._mouse={startX:0,startY:0,startItemX:0,grabOffsetX:0,grabOffsetY:0,x:0,y:0},this._previousBodyCursor="",this._boundOnMouseDown=this._onMouseDown.bind(this),this._boundOnMouseMove=this._onMouseMove.bind(this),this._boundOnMouseUp=this._onMouseUp.bind(this),this._boundOnPointerDown=this._onPointerDown.bind(this),this._boundOnPointerMove=this._onPointerMove.bind(this),this._boundOnPointerUp=this._onPointerUp.bind(this),this._boundOnPointerCancel=this._onPointerCancel.bind(this),this._boundOnTouchStart=this._onTouchStart.bind(this),this._boundOnTouchMove=this._onTouchMove.bind(this),this._boundOnTouchEnd=this._onTouchEnd.bind(this),this._boundOnTouchCancel=this._onTouchCancel.bind(this),this._boundOnKeyDown=this._onKeyDown.bind(this),this._supportsPointerEvents="undefined"!=typeof window&&"PointerEvent"in window,this._activePointerId=null,this._activeTouchId=null,this._keyboardDraggedItem=null,this._keyboardStartSnapshot="",this._liveRegion=null,this._rootList&&(this._registerGroup(),this.refresh(),this._ensureLiveRegion(),this._bindEvents(),this._emit("init",{payload:this.serialize()}))}static get NAME(){return zs}static get NAME_KEY(){return Hs}_getEventKey(t){switch(t){case"init":return Js;case"refresh":return Qs;case"pointerdown":return tr;case"start":return Ys;case"move":return er;case"placeholdermove":return rr;case"drop":return ir;case"transfer":return sr;case"change":return Gs;case"end":return Xs;case"save":return Zs;case"destroy":return nr;default:return`${Hs}.${t}`}}_emit(t,e={}){const i={action:t,instance:this,...e};g.A.trigger(this._element,this._getEventKey(t),i);const s=this._params?.callbacks?.[t];if("function"==typeof s)try{s(i)}catch(e){console.error(`[${zs}] callback "${t}" failed`,e)}return i}_getGroupName(){const t=this._params?.group;return null==t?"":String(t).trim()}_registerGroup(){const t=this._getGroupName();t&&(ar._groups.has(t)||ar._groups.set(t,new Set),ar._groups.get(t).add(this))}_unregisterGroup(){const t=this._getGroupName();if(!t||!ar._groups.has(t))return;const e=ar._groups.get(t);e.delete(this),e.size||ar._groups.delete(t)}_getConnectedInstances(){if(!this._params.connect)return[this];const t=this._getGroupName();return t&&ar._groups.has(t)?Array.from(ar._groups.get(t)).filter((t=>t&&t._rootList)):[this]}_findOwnerInstanceByElement(t){return t&&this._getConnectedInstances().find((e=>e._rootList&&e._rootList.contains(t)))||null}_canAcceptItem(t,e){const i=this._params?.accept;if("function"!=typeof i)return!0;try{return!!i(t,e,this)}catch(t){return console.error(`[${zs}] accept() failed`,t),!1}}refresh(){this._getItems().forEach((t=>{const e=this._ensureItemLayout(t);e&&(e.style.cursor="grab",e.style.userSelect="none",e.style.touchAction="none",["BUTTON","A","INPUT"].includes(e.tagName)||e.setAttribute("role","button"),e.hasAttribute("tabindex")||e.setAttribute("tabindex","0"),e.hasAttribute("aria-label")||e.setAttribute("aria-label","Drag item")),this._syncItemCollapse(t)})),this._emit("refresh",{items:this._getItems().length})}_syncItemCollapse(t){if(!t||!this._params.collapse?.enabled)return;const e=this._getDirectChildBySelector(t,`.${js}`),i=e?this._getDirectChildBySelector(e,`.${Vs}`):null,s=this._getDirectChildBySelector(t,this._params.listselector);let r=e?this._getDirectChildBySelector(e,`.${Us}`):null;if(!e||!s)return void(r&&r.remove());s.id||(s.id=`vg-nestable-collapse-${Math.random().toString(36).slice(2,10)}`);const n=s.classList.contains("vg-collapse");s.classList.add("vg-collapse"),n||(this._params.collapse.open?s.classList.add("show"):s.classList.remove("show")),r?i&&r.previousElementSibling!==i&&e.insertBefore(r,i.nextSibling):(r=document.createElement("button"),r.type="button",r.className=Us,i?e.insertBefore(r,i.nextSibling):e.insertBefore(r,e.firstChild)),r.setAttribute("data-vg-toggle","collapse"),r.setAttribute("data-vg-target",`#${s.id}`),r.setAttribute("aria-controls",s.id);const a=Ns.A.toSafeHtmlString(this._params.collapse.showtext||(0,f.z)("chevron")),o=Ns.A.toSafeHtmlString(this._params.collapse.hidetext||(0,f.z)("chevron"));r.setAttribute("data-show-text",a),r.setAttribute("data-hide-text",o);const l=s.classList.contains("show");r.setAttribute("aria-expanded",l?"true":"false"),r.innerHTML=l?o:a,Dt.getOrCreateInstance(s,{toggle:!1})}_ensureItemLayout(t){if(!t||!this._params.handleselector)return null;const e=this._ensureInnerLayout(t);let i=this._getDirectChildBySelector(e,this._params.handleselector);if(!i){const e=Array.from(t.querySelectorAll(this._params.handleselector)).find((e=>e.closest(this._params.itemselector)===t));e&&(i=e)}if(!i){if(this._params.handleselector!==`.${Vs}`)return null;i=document.createElement("div"),i.classList.add(Vs)}if(i.parentElement===e&&i===e.firstElementChild||e.insertBefore(i,e.firstChild),!i.querySelector(`:scope > .${qs}`)){const t=document.createElement("span");t.className=qs,t.setAttribute("aria-hidden","true"),t.innerHTML=Ns.A.toSafeHtmlString(this._params.handleicon||(0,f.z)("dots-six-vertical")||":::"),i.prepend(t)}return i}_ensureInnerLayout(t){let e=this._getDirectChildBySelector(t,`.${js}`);const i=this._getDirectChildBySelector(t,this._params.listselector);return e||(e=document.createElement("div"),e.className=js,t.insertBefore(e,i||t.firstChild)),Array.from(t.childNodes).filter((t=>t!==e&&!(t.nodeType===Node.ELEMENT_NODE&&t.matches(this._params.listselector)))).forEach((t=>e.append(t))),e.parentElement!==t&&t.insertBefore(e,i||t.firstChild),e}_getDirectChildBySelector(t,e){return t&&e&&Array.from(t.children).find((t=>t.matches(e)))||null}serialize(){return this._rootList?this._serializeList(this._rootList):[]}save(){const t=this.serialize(),e=this._params.ajax?.route;return e?(this._emit("save",{payload:t,status:"start"}),new Promise(((i,s)=>{const n=this._params.ajax||{},a=n.field||"items",o=String(n.method||"post").toLowerCase(),l=Number(n.timeout||0),d=(0,r._v)(n.data||{},{[a]:t}),h=new Si.A,c={onSuccess:e=>{this._emit("save",{payload:t,status:"success",response:e}),i(e)},onError:e=>{this._emit("save",{payload:t,status:"error",error:e}),s(e)}};setTimeout((()=>{switch(o){case"get":h.get(e,c);break;case"delete":h.delete(e,c);break;default:h.post(e,d,c)}}),l)}))):(this._emit("save",{payload:t,status:"skipped"}),Promise.resolve(t))}dispose(){this._rootList&&(this._supportsPointerEvents?this._rootList.removeEventListener("pointerdown",this._boundOnPointerDown):(this._rootList.removeEventListener("mousedown",this._boundOnMouseDown),this._rootList.removeEventListener("touchstart",this._boundOnTouchStart)),this._rootList.removeEventListener("keydown",this._boundOnKeyDown)),document.removeEventListener("mousemove",this._boundOnMouseMove),document.removeEventListener("mouseup",this._boundOnMouseUp),document.removeEventListener("pointermove",this._boundOnPointerMove),document.removeEventListener("pointerup",this._boundOnPointerUp),document.removeEventListener("pointercancel",this._boundOnPointerCancel),document.removeEventListener("touchmove",this._boundOnTouchMove),document.removeEventListener("touchend",this._boundOnTouchEnd),document.removeEventListener("touchcancel",this._boundOnTouchCancel),this._clearDragState(),this._clearKeyboardDragState(),this._liveRegion?.parentElement&&this._liveRegion.remove(),this._liveRegion=null,this._unregisterGroup(),this._emit("destroy"),super.dispose()}_bindEvents(){this._rootList.addEventListener("keydown",this._boundOnKeyDown),this._supportsPointerEvents?this._rootList.addEventListener("pointerdown",this._boundOnPointerDown):(this._rootList.addEventListener("mousedown",this._boundOnMouseDown),this._rootList.addEventListener("touchstart",this._boundOnTouchStart,{passive:!1}))}_resolveRootList(){return this._element?this._element.matches(this._params.listselector)?this._element:this._element.querySelector(this._params.listselector):null}_getItems(t=this._rootList){return t?Array.from(t.querySelectorAll(this._params.itemselector)):[]}_onMouseDown(t){0===t.button&&(this._startInteraction(t.target,t.clientX,t.clientY,t),this._draggedItem&&(document.addEventListener("mousemove",this._boundOnMouseMove),document.addEventListener("mouseup",this._boundOnMouseUp)))}_onMouseMove(t){this._processDragMove(t.clientX,t.clientY,t)}_onMouseUp(){document.removeEventListener("mousemove",this._boundOnMouseMove),document.removeEventListener("mouseup",this._boundOnMouseUp),this._finishDrag()}_onPointerDown(t){"mouse"===t.pointerType&&0!==t.button||(this._startInteraction(t.target,t.clientX,t.clientY,t),this._draggedItem&&(this._activePointerId=t.pointerId,document.addEventListener("pointermove",this._boundOnPointerMove),document.addEventListener("pointerup",this._boundOnPointerUp),document.addEventListener("pointercancel",this._boundOnPointerCancel)))}_onPointerMove(t){this._draggedItem&&t.pointerId===this._activePointerId&&this._processDragMove(t.clientX,t.clientY,t)}_onPointerUp(t){t.pointerId===this._activePointerId&&(this._activePointerId=null,document.removeEventListener("pointermove",this._boundOnPointerMove),document.removeEventListener("pointerup",this._boundOnPointerUp),document.removeEventListener("pointercancel",this._boundOnPointerCancel),this._finishDrag())}_onPointerCancel(t){t.pointerId===this._activePointerId&&(this._activePointerId=null,document.removeEventListener("pointermove",this._boundOnPointerMove),document.removeEventListener("pointerup",this._boundOnPointerUp),document.removeEventListener("pointercancel",this._boundOnPointerCancel),this._cancelDrag())}_onTouchStart(t){if(null!==this._activeTouchId||!t.changedTouches?.length)return;const e=t.changedTouches[0];this._startInteraction(e.target,e.clientX,e.clientY,t),this._draggedItem&&(this._activeTouchId=e.identifier,document.addEventListener("touchmove",this._boundOnTouchMove,{passive:!1}),document.addEventListener("touchend",this._boundOnTouchEnd),document.addEventListener("touchcancel",this._boundOnTouchCancel))}_onTouchMove(t){if(!this._draggedItem||null===this._activeTouchId)return;const e=this._findTouchById(t.changedTouches,this._activeTouchId)||this._findTouchById(t.touches,this._activeTouchId);e&&this._processDragMove(e.clientX,e.clientY,t)}_onTouchEnd(t){null!==this._activeTouchId&&this._findTouchById(t.changedTouches,this._activeTouchId)&&(this._activeTouchId=null,document.removeEventListener("touchmove",this._boundOnTouchMove),document.removeEventListener("touchend",this._boundOnTouchEnd),document.removeEventListener("touchcancel",this._boundOnTouchCancel),this._finishDrag())}_onTouchCancel(){null!==this._activeTouchId&&(this._activeTouchId=null,document.removeEventListener("touchmove",this._boundOnTouchMove),document.removeEventListener("touchend",this._boundOnTouchEnd),document.removeEventListener("touchcancel",this._boundOnTouchCancel),this._cancelDrag())}_onKeyDown(t){if(this._isDragging||this._draggedItem)return;const e=t.target?.closest?.(this._params.itemselector);if(!e||!this._rootList.contains(e))return;const i=t.key,s=" "===i||"Enter"===i;if(s&&!this._keyboardDraggedItem){if(!this._isKeyboardDragHandle(t.target,e))return;return t.preventDefault(),void this._startKeyboardDrag(e)}if(!this._keyboardDraggedItem)return;if(e!==this._keyboardDraggedItem&&!this._keyboardDraggedItem.contains(e))return;if(s)return t.preventDefault(),void this._finishKeyboardDrag();if("Escape"===i)return t.preventDefault(),void this._finishKeyboardDrag({cancelled:!0});let r=!1,n="";const a=this._getMoveAxis(),o="horizontal"!==a,l="vertical"!==a;if("ArrowUp"===i){if(!o)return;t.preventDefault(),r=this._moveKeyboardUp(this._keyboardDraggedItem),n="Moved up."}else if("ArrowDown"===i){if(!o)return;t.preventDefault(),r=this._moveKeyboardDown(this._keyboardDraggedItem),n="Moved down."}else if("ArrowRight"===i){if(!l)return;t.preventDefault(),r=this._indentKeyboard(this._keyboardDraggedItem),n="Nested into previous item."}else if("ArrowLeft"===i){if(!l)return;t.preventDefault(),r=this._outdentKeyboard(this._keyboardDraggedItem),n="Moved out one level."}r&&(this._cleanupEmptyLists(),this.refresh(),this._keyboardDraggedItem.focus?.(),this._emit("move",{item:this._keyboardDraggedItem,targetInstance:this,keyboard:!0,mouse:null}),n&&this._announce(n))}_isKeyboardDragHandle(t,e){if(!t||!e)return!1;const i=this._params.handleselector;if(!i)return!0;const s=t.closest(i);return!(!s||!e.contains(s))}_startKeyboardDrag(t){t&&!this._keyboardDraggedItem&&(this._keyboardDraggedItem=t,this._keyboardStartSnapshot=JSON.stringify(this.serialize()),t.classList.add($s),t.setAttribute("aria-grabbed","true"),this._emit("start",{item:t,payload:this.serialize(),keyboard:!0}),this._announce(this._getKeyboardDragInstructions()))}_finishKeyboardDrag(t={}){if(!this._keyboardDraggedItem)return;const e=this._keyboardDraggedItem,i=this._keyboardStartSnapshot?JSON.parse(this._keyboardStartSnapshot):[],s=this.serialize(),r=this._keyboardStartSnapshot!==JSON.stringify(s);this._emit("drop",{item:e,payload:s,previousPayload:i,changed:r,targetInstance:this,keyboard:!0,cancelled:!!t.cancelled}),r&&this._emit("change",{payload:s,previousPayload:i,keyboard:!0}),this._emit("end",{payload:s,changed:r,keyboard:!0,cancelled:!!t.cancelled}),t.cancelled?this._announce("Move cancelled."):r?this._announce("Item dropped."):this._announce("Item position unchanged."),r&&this._params.ajax?.route&&this.save(),this._clearKeyboardDragState()}_clearKeyboardDragState(){this._keyboardDraggedItem&&(this._keyboardDraggedItem.classList.remove($s),this._keyboardDraggedItem.removeAttribute("aria-grabbed")),this._keyboardDraggedItem=null,this._keyboardStartSnapshot=""}_moveKeyboardUp(t){const e=this._getPreviousItem(t);return e?(t.parentElement.insertBefore(t,e),!0):(this._announce("Cannot move up."),!1)}_moveKeyboardDown(t){const e=this._getNextItem(t);return e?(t.parentElement.insertBefore(t,e.nextSibling),!0):(this._announce("Cannot move down."),!1)}_indentKeyboard(t){const e=this._getPreviousItem(t);if(!e||e===t||t.contains(e))return this._announce("Cannot nest here."),!1;const i=this._getOrCreateChildList(e);return this._isDepthExceeded(i,t)?(this._announce("Maximum nesting depth reached."),!1):(i.append(t),!0)}_outdentKeyboard(t){const e=t.parentElement,i=e?.closest(this._params.itemselector);if(!i)return this._announce("Cannot move left."),!1;const s=i.parentElement;return s?(s.insertBefore(t,i.nextSibling),!0):(this._announce("Cannot move left."),!1)}_getMoveAxis(t=this._params){const e=String(t?.moveaxis||"default").trim().toLowerCase();return"vertical"===e||"horizontal"===e?e:"default"}_getKeyboardDragInstructions(){const t=this._getMoveAxis();return"vertical"===t?"Picked up item. Use Up/Down arrows to move, Enter or Space to drop, Escape to cancel.":"horizontal"===t?"Picked up item. Use Left/Right arrows to move, Enter or Space to drop, Escape to cancel.":"Picked up item. Use arrow keys to move, Enter or Space to drop, Escape to cancel."}_startInteraction(t,e,i,s){this._keyboardDraggedItem&&this._clearKeyboardDragState();const r=t?.closest?.(this._params.itemselector);if(!r||!this._rootList.contains(r))return;const n=this._params.handleselector;if(n){const e=t.closest(n);if(!e||!r.contains(e))return}s.preventDefault();const a=r.getBoundingClientRect();this._draggedItem=r,this._mouse.startX=e,this._mouse.startY=i,this._mouse.startItemX=a.left,this._mouse.grabOffsetX=e-a.left,this._mouse.grabOffsetY=i-a.top,this._mouse.x=e,this._mouse.y=i,this._isDragging=!1,this._startSnapshot="",this._emit("pointerdown",{item:this._draggedItem,mouse:{x:this._mouse.x,y:this._mouse.y}})}_processDragMove(t,e,i){if(!this._draggedItem)return;if(this._mouse.x=t,this._mouse.y=e,!this._isDragging){const t=Math.abs(this._mouse.x-this._mouse.startX),e=Math.abs(this._mouse.y-this._mouse.startY);if(t<3&&e<3)return;this._startDrag()}i.preventDefault(),this._moveDragElement(this._mouse.x,this._mouse.y);const s=this._getPointerTarget(this._mouse.x,this._mouse.y);if(!s)return void this._setDropListState(null);if(s.closest(`.${Bs}`))return;const r=this._findOwnerInstanceByElement(s)||this,n=s.closest(r._params.itemselector),a=this._resolveDropList(s,n,r);if(!a||!r._rootList.contains(a))return void this._setDropListState(null);if(!r._canAcceptItem(this._draggedItem,this._sourceInstance))return void this._setDropListState(a,!0);const o=this._resolveMode(this._mouse.x,this._mouse.y,n,r._params);if(this._emit("move",{item:this._draggedItem,hoveredItem:n,mode:o,targetInstance:r,mouse:{x:this._mouse.x,y:this._mouse.y}}),"keep"!==o){if("child"===o){let t=null;if(n){if(n===this._draggedItem||this._draggedItem.contains(n))return void this._setDropListState(null);t=n}else if(this._placePlaceholderWhenExplicitlyNeeded(a,this._mouse.y,r),this._placeholder?.parentElement)for(t=r._getPreviousItem(this._placeholder);t&&(t===this._draggedItem||this._draggedItem.contains(t));)t=r._getPreviousItem(t);if(!t)return void this._setDropListState(null);const e=r._getOrCreateChildList(t);return r._isDepthExceeded(e,this._draggedItem)?void this._setDropListState(e,!0):(this._placePlaceholder(e,null),this._setDropListState(e),this._currentTargetInstance=r,void(this._lastDropInstance=r))}if(n){if(n===this._draggedItem||this._draggedItem.contains(n))return void this._setDropListState(null);const t=n.parentElement;return r._isDepthExceeded(t,this._draggedItem)?void this._setDropListState(t,!0):("before"===o?this._placePlaceholder(t,n):this._placePlaceholder(t,n.nextSibling),this._setDropListState(t),this._currentTargetInstance=r,void(this._lastDropInstance=r))}this._placePlaceholderWhenExplicitlyNeeded(a,this._mouse.y,r),this._setDropListState(a),this._currentTargetInstance=r,this._lastDropInstance=r}else this._setDropListState(a)}_finishDrag(){if(!this._draggedItem)return;const t=this._draggedItem,e=this._isDragging,i=this._lastDropInstance||this,s=this._startSnapshot?JSON.parse(this._startSnapshot):[];let r=this.serialize(),n=i.serialize(),a=!1;if(e){const e=this._placeholder?.parentElement||null;e&&e.insertBefore(t,this._placeholder),t.style.display="",this._cleanupEmptyLists(),i!==this&&i._cleanupEmptyLists(),this.refresh(),i!==this&&i.refresh(),r=this.serialize(),n=i.serialize(),a=this._startSnapshot!==JSON.stringify(r)||i!==this}const o=r;this._emit("drop",{item:t,payload:o,previousPayload:s,changed:a,targetInstance:i}),a&&i!==this&&(this._emit("transfer",{item:t,from:this,to:i,sourcePayload:r,targetPayload:n}),i._emit("transfer",{item:t,from:this,to:i,sourcePayload:r,targetPayload:n}),i._emit("change",{payload:n,previousPayload:[]})),this._clearDragState(),a&&this._emit("change",{payload:o,previousPayload:s}),e&&this._emit("end",{payload:o,changed:a}),a&&(this._params.ajax?.route&&this.save(),i!==this&&i._params.ajax?.route&&i.save())}_cancelDrag(){if(!this._draggedItem)return;const t=this._isDragging;this._clearDragState(),t&&this._emit("end",{payload:this.serialize(),changed:!1,cancelled:!0})}_findTouchById(t,e){if(!t||null==e)return null;for(let i=0;i<t.length;i+=1)if(t[i].identifier===e)return t[i];return null}_startDrag(){this._draggedItem&&!this._isDragging&&(this._isDragging=!0,this._startSnapshot=JSON.stringify(this.serialize()),this._sourceInstance=this,this._sourceRoot=this._rootList,this._currentTargetInstance=this,this._lastDropInstance=this,this._placeholder=this._createPlaceholder(this._draggedItem),this._params.showplaceholder||this._placeholder.classList.add("vg-nestable-placeholder-hidden"),this._draggedItem.parentElement.insertBefore(this._placeholder,this._draggedItem.nextSibling),this._dragElement=this._createDragElement(this._draggedItem),this._dragLayer=document.createElement("div"),this._dragLayer.classList.add("vg-nestable-drag-layer"),this._element?.classList&&this._element.classList.forEach((t=>this._dragLayer.classList.add(t))),this._dragLayer.style.position="fixed",this._dragLayer.style.left="0",this._dragLayer.style.top="0",this._dragLayer.style.width="0",this._dragLayer.style.height="0",this._dragLayer.style.pointerEvents="none",this._dragLayer.style.zIndex="99999",document.body.append(this._dragLayer),this._dragLayer.append(this._dragElement),"undefined"!=typeof document&&document.body&&(this._previousBodyCursor=document.body.style.cursor||"",document.body.style.cursor="grabbing"),this._moveDragElement(this._mouse.x,this._mouse.y),this._draggedItem.classList.add($s),this._draggedItem.style.display="none",this._draggedItem.setAttribute("aria-grabbed","true"),this._emit("start",{item:this._draggedItem,payload:this.serialize()}))}_createDragElement(t){const e=t.getBoundingClientRect(),i=t.cloneNode(!0);return i.classList.add("is-drag-ghost","vg-nestable-drag-element"),i.style.position="fixed",i.style.left=`${e.left}px`,i.style.top=`${e.top}px`,i.style.width=`${e.width}px`,i.style.zIndex="99999",i.style.pointerEvents="none",i.style.margin="0",i}_moveDragElement(t,e){if(!this._dragElement)return;const i=t-(Number(this._mouse.grabOffsetX)||0),s=e-(Number(this._mouse.grabOffsetY)||0);this._dragElement.style.left=`${i}px`,this._dragElement.style.top=`${s}px`}_getPointerTarget(t,e){const i=document.elementFromPoint(t,e);return i&&this._findOwnerInstanceByElement(i)?i:null}_resolveDropList(t,e,i=this){if(e)return e.parentElement;const s=t.closest(i._params.listselector);return s&&i._rootList.contains(s)?s:i._rootList}_resolveMode(t,e,i,s=this._params){if(!i)return"append";const r=i.getBoundingClientRect(),n=e-r.top,a=t-(Number.isFinite(this._mouse.startItemX)?this._mouse.startItemX:this._mouse.startX),o=parseFloat(s.indent),l=Number.isFinite(o)?o:0,d=this._getMoveAxis(s),h="horizontal"!==d,c="vertical"!==d,u=Math.max(0,Math.min(49,Number(s.neighborchangethreshold||0)));if(u>0){const t=u/100,e=r.height*t,i=r.height*(1-t);return c&&a>l?"child":h&&n<=e?"before":h&&n>=i?"after":"keep"}const _=Math.min(.45,Math.max(.05,Number(s.hoverthreshold||.18)));return c&&a>l?"child":h&&n<r.height*(.5-_)?"before":h&&n>r.height*(.5+_)?"after":"keep"}_getPreviousItem(t){let e=t?.previousElementSibling||null;for(;e&&!e.matches(this._params.itemselector);)e=e.previousElementSibling;return e}_getNextItem(t){let e=t?.nextElementSibling||null;for(;e&&!e.matches(this._params.itemselector);)e=e.nextElementSibling;return e}_getOrCreateChildList(t){let e=t.querySelector(`:scope > ${this._params.listselector}`);return e||(e=document.createElement(this._rootList.tagName||"ol"),this._params.childlistclass&&this._params.childlistclass.split(" ").filter(Boolean).forEach((t=>e.classList.add(t))),t.append(e),e)}_isDepthExceeded(t,e=this._draggedItem){const i=this._getListDepth(t),s=Number(this._params.maxdepth||1);return i+this._getItemSubtreeDepth(e)-1>s}_getListDepth(t){if(!t)return 1;let e=1,i=t;for(;i&&i!==this._rootList;){const t=i.closest(this._params.itemselector);if(!t)break;e+=1,i=t.parentElement?.closest(this._params.listselector)}return e}_getItemSubtreeDepth(t){if(!t)return 1;const e=this._getDirectChildBySelector(t,this._params.listselector);if(!e)return 1;const i=Array.from(e.children).filter((t=>t.matches(this._params.itemselector)));return i.length?i.reduce(((t,e)=>Math.max(t,this._getItemSubtreeDepth(e))),1)+1:1}_cleanupEmptyLists(){this._rootList&&Array.from(this._rootList.querySelectorAll(this._params.listselector)).forEach((t=>{t!==this._rootList&&(Array.from(t.children).some((t=>t.matches(this._params.itemselector)))||t.remove())}))}_createPlaceholder(t){const e=t.tagName&&"li"===t.tagName.toLowerCase()?"li":"div",i=document.createElement(e);return i.className=Bs,i.style.height=`${Math.max(t.getBoundingClientRect().height,24)}px`,i.setAttribute("aria-hidden","true"),i}_placePlaceholder(t,e=null){if(!t||!this._placeholder)return;if(e===this._placeholder)return;const i=this._placeholder.parentElement,s=this._placeholder.nextSibling;i===t&&s===e||(t.insertBefore(this._placeholder,e),this._emit("placeholdermove",{parent:t,beforeNode:e,item:this._draggedItem}))}_placePlaceholderWhenExplicitlyNeeded(t,e,i=this){if(!t||i._isDepthExceeded(t,this._draggedItem))return;const s=Array.from(t.children).filter((t=>t.matches(this._params.itemselector)));if(!s.length)return void this._placePlaceholder(t,null);const r=s[0],n=s[s.length-1],a=r.getBoundingClientRect(),o=n.getBoundingClientRect();e<=a.top+8?this._placePlaceholder(t,r):e>=o.bottom-8&&this._placePlaceholder(t,null)}_setDropListState(t,e=!1){this._activeDropList&&this._activeDropList!==t&&this._activeDropList.classList.remove(Ws,Ks),t?(t.classList.add(e?Ks:Ws),t.classList.remove(e?Ws:Ks),this._activeDropList=t):this._activeDropList=null}_clearDragState(){this._setDropListState(null),this._draggedItem&&(this._draggedItem.classList.remove($s),this._draggedItem.style.display="",this._draggedItem.removeAttribute("aria-grabbed")),this._dragElement&&this._dragElement.parentElement&&this._dragElement.remove(),this._dragLayer&&this._dragLayer.parentElement&&this._dragLayer.remove(),"undefined"!=typeof document&&document.body&&(document.body.style.cursor=this._previousBodyCursor||""),this._placeholder&&this._placeholder.parentElement&&this._placeholder.remove(),this._draggedItem=null,this._placeholder=null,this._dragElement=null,this._dragLayer=null,this._previousBodyCursor="",this._isDragging=!1,this._currentTargetInstance=this,this._lastDropInstance=this,this._activePointerId=null,this._activeTouchId=null}_ensureLiveRegion(){if(!this._element||this._liveRegion)return;const t=document.createElement("div");t.className="vg-nestable-live",t.setAttribute("aria-live","polite"),t.setAttribute("aria-atomic","true"),t.style.position="absolute",t.style.width="1px",t.style.height="1px",t.style.margin="-1px",t.style.border="0",t.style.padding="0",t.style.clip="rect(0 0 0 0)",t.style.clipPath="inset(50%)",t.style.overflow="hidden",t.style.whiteSpace="nowrap",this._element.append(t),this._liveRegion=t}_announce(t){t&&(this._ensureLiveRegion(),this._liveRegion&&(this._liveRegion.textContent="",requestAnimationFrame((()=>{this._liveRegion&&(this._liveRegion.textContent=t)}))))}_serializeList(t){return Array.from(t.children).filter((t=>t.matches(this._params.itemselector))).map((t=>{const e=(0,r.OM)(t.getAttribute(this._params.idattribute)),i=t.querySelector(`:scope > ${this._params.listselector}`),s={id:e??null};if(i){const t=this._serializeList(i);t.length&&(s.children=t)}return s}))}}g.A.on(document,`DOMContentLoaded.${Hs}.data.api`,(()=>{s.A.findAll('[data-vg-toggle="nestable"]').forEach((t=>ar.getOrCreateInstance(t)))}));const or=ar,lr="is-status-success",dr="is-status-warning",hr="is-status-danger",cr=[lr,dr,hr],ur=(t,e,i)=>{const s=i.max-i.min,r=s>0?(t-i.min)/s*100:0,n=Number(e?.status?.warningBelow),a=Number(e?.status?.dangerBelow),o=Number.isFinite(n)?n:60;return r<(Number.isFinite(a)?a:30)?"danger":r<o?"warning":"success"},_r=(t,e,i)=>{const s=((t,e,i)=>{if(!i.isRange)return e.from;const s="string"==typeof t?.status?.by?t.status.by.toLowerCase():"to";return"from"===s?e.from:"avg"===s?(e.from+e.to)/2:e.to})(t,e,i);return ur(s,t,e)},mr=(t,e)=>{t.classList.remove(...cr),"danger"!==e?"warning"!==e?t.classList.add(lr):t.classList.add(dr):t.classList.add(hr)},pr=(t,e)=>!Array.isArray(t?.labelWords)||t.labelWords.length<3?null:"danger"===e?t.labelWords[0]||null:"warning"===e?t.labelWords[1]||null:t.labelWords[2]||null,gr="vg.rangeslider",fr="vg-range-slider",br="is-hidden",vr=`${gr}.init`,yr=`${gr}.input`,wr=`${gr}.change`,Sr=`${gr}.update`,Cr={range:!1,min:0,max:100,step:1,start:null,connect:!0,tooltips:!0,labels:!0,separator:" - ",suffix:"",prefix:"",labelWords:null,skin:"default",ruler:{count:6,labels:!0,values:null,dimInactive:!1},status:{warningBelow:60,dangerBelow:30,by:"to"},name:{min:"",max:""},input:{min:null,max:null},output:{target:null,min:null,max:null},disabled:!1,onInit:null,onInput:null,onChange:null,onUpdate:null,formatValue:null};class Ar extends t.A{constructor(t,e={}){super(t,e),this._sourceInput=this._element.matches('input[type="range"]')?this._element:null,this._params=this._buildParams(e),this._isRange=this._resolveRangeMode(),this._listeners=[],this._handleResize=()=>this._syncUI(),this._dom={root:null,wrapper:null,fill:null,inputFrom:null,inputTo:null,tooltipFrom:null,tooltipTo:null,tooltipMerged:null,labelFrom:null,labelTo:null,labelSeparator:null,hiddenMin:null,hiddenMax:null,skin:null},this._state=this._buildState(),this._render(),this._bindEvents(),this._syncUI(),this._setDisabledState(this._params.disabled),this._emit(vr,"onInit")}static get NAME(){return"rangeslider"}static get NAME_KEY(){return gr}static init(t,e={}){return this.getOrCreateInstance(t,e)}getValue(){return this._isRange?[this._state.from,this._state.to]:this._state.from}setValue(t,e={}){const{silent:i=!1,emit:s="update"}=e;if(this._isRange){const e=Array.isArray(t)?t:[t,this._state.to],i=this._normalizeValue(e[0],this._state.min),s=this._normalizeValue(e[1],this._state.max);this._state.from=Math.min(i,s),this._state.to=Math.max(i,s)}else this._state.from=this._normalizeValue(t,this._state.min);this._syncUI(),i||this._emit("change"===s?wr:Sr,"change"===s?"onChange":"onUpdate")}enable(){this._setDisabledState(!1)}disable(){this._setDisabledState(!0)}dispose(){this._listeners.forEach((({element:t,type:e,handler:i})=>t.removeEventListener(e,i))),this._listeners=[],window.removeEventListener("resize",this._handleResize),super.dispose()}_buildParams(t){const e=this._getParams(this._element,(0,r._v)(Cr,t));return this._sourceInput&&(e.min=""!==this._sourceInput.min?(0,r.OM)(this._sourceInput.min):e.min,e.max=""!==this._sourceInput.max?(0,r.OM)(this._sourceInput.max):e.max,e.step=""!==this._sourceInput.step?(0,r.OM)(this._sourceInput.step):e.step,e.start=""!==this._sourceInput.value?(0,r.OM)(this._sourceInput.value):e.start,e.name=this._sourceInput.name||e.name,e.disabled=this._sourceInput.disabled||e.disabled),"string"==typeof e.name&&(e.name={min:e.name,max:e.name}),e.input&&"object"==typeof e.input||(e.input={min:null,max:null}),"string"==typeof e.output?e.output={target:e.output,min:null,max:null}:e.output&&"object"==typeof e.output?Object.prototype.hasOwnProperty.call(e.output,"target")||(e.output.target=null):e.output={target:null,min:null,max:null},!e.labelWords&&e.label&&"object"==typeof e.label&&Object.prototype.hasOwnProperty.call(e.label,"words")&&(e.labelWords=e.label.words),"string"==typeof e.labelWords?e.labelWords=e.labelWords.split(",").map((t=>t.trim())).filter(Boolean):Array.isArray(e.labelWords)||(e.labelWords=null),e}_buildState(){const t=Number((0,r.OM)(this._params.min)),e=Math.max(Number((0,r.OM)(this._params.max)),t),i=Number((0,r.OM)(this._params.step))||1,s=this._resolveStartValues(t,e);return{min:t,max:e>=t?e:t,step:i>0?i:1,from:s.from,to:s.to}}_resolveRangeMode(){return!this._sourceInput&&!0===(0,r.OM)(this._params.range)}_resolveStartValues(t,e){let i=t,s=e;if(this._isRange){const r=Array.isArray(this._params.start)?this._params.start:[this._params.from,this._params.to];i=this._normalizeValue(r[0],t,t,e),s=this._normalizeValue(r[1],e,t,e),i>s&&([i,s]=[s,i])}else{const r=this._params.start??this._params.value??t;i=this._normalizeValue(r,t,t,e),s=i}return{from:i,to:s}}_render(){const t=this._sourceInput?this._renderFromInput():this._renderFromContainer();this._dom.root=t,this._dom.wrapper=s.A.find(".vg-range-slider__wrapper",t),this._dom.fill=s.A.find(".vg-range-slider__fill",t),this._dom.inputFrom=s.A.find(".vg-range-slider__input--from",t),this._dom.inputTo=s.A.find(".vg-range-slider__input--to",t),this._dom.tooltipFrom=s.A.find(".vg-range-slider__tooltip--from",t),this._dom.tooltipTo=s.A.find(".vg-range-slider__tooltip--to",t),this._dom.tooltipMerged=s.A.find(".vg-range-slider__tooltip--merged",t),this._dom.labelFrom=s.A.find(".vg-range-slider__label--from",t),this._dom.labelTo=s.A.find(".vg-range-slider__label--to",t),this._dom.labelSeparator=s.A.find(".vg-range-slider__separator",t),this._dom.hiddenMin=t.querySelector('input[data-vgrangeslider-hidden="min"]'),this._dom.hiddenMax=t.querySelector('input[data-vgrangeslider-hidden="max"]'),this._dom.skin=((t,e,i,s)=>(t.classList.add("is-skin-default"),"ruler"===e.skin?(t.classList.add("is-skin-ruler"),((t,e,i,s,r)=>{const n=((t,e)=>{if(Array.isArray(t?.ruler?.values)&&t.ruler.values.length>0)return t.ruler.values.map((t=>Number(t))).filter((t=>Number.isFinite(t))).sort(((t,e)=>t-e));const i=Math.max(2,Number(t?.ruler?.count)||6),s=(e.max-e.min)/(i-1),r=[];for(let t=0;t<i;t++){const n=t===i-1?e.max:e.min+s*t;r.push(Number(n.toFixed(5)))}return r})(e,i),a=document.createElement("div");a.className="vg-range-slider__ruler",!0===e?.ruler?.dimInactive&&t.classList.add("is-ruler-dim-inactive");const o=n.map((t=>{const i=document.createElement("span");i.className="vg-range-slider__ruler-item",i.style.left=`${r(t)}px`,i.dataset.value=String(t);const n=document.createElement("span");if(n.className="vg-range-slider__ruler-mark",i.appendChild(n),!1!==e?.ruler?.labels){const e=document.createElement("span");e.className="vg-range-slider__ruler-label",e.textContent=s(t),i.appendChild(e)}return a.appendChild(i),i}));return t.appendChild(a),{type:"ruler",root:a,ticks:o,values:n}})(t,e,i,s.formatValue,s.toPositionPx)):"status"===e.skin?(t.classList.add("is-skin-status"),mr(t,_r(e,i,s)),{type:"status",root:t}):(e.skin,null)))(t,this._params,this._state,{formatValue:t=>this._formatValue(t),toPositionPx:t=>this._toPositionPx(t)})}_renderFromInput(){const t=this._sourceInput,e=document.createElement("div");e.className=fr;const i=document.createElement("div");i.className="vg-range-slider__wrapper";const s=document.createElement("div");s.className="vg-range-slider__track";const r=document.createElement("div");r.className="vg-range-slider__fill";const n=this._params.tooltips?this._createTooltip("from"):null,a=this._params.labels?this._createLabels(!1):null;return t.insertAdjacentElement("beforebegin",e),t.classList.add("vg-range-slider__input","vg-range-slider__input--from"),t.autocomplete="off",s.appendChild(r),i.appendChild(s),i.appendChild(t),n&&i.appendChild(n),e.appendChild(i),a&&e.appendChild(a),e}_renderFromContainer(){const t=this._element;t.classList.add(fr),this._isRange&&t.classList.add("is-range"),t.innerHTML="";const e=document.createElement("div");e.className="vg-range-slider__wrapper";const i=document.createElement("div");i.className="vg-range-slider__track";const s=document.createElement("div");s.className="vg-range-slider__fill",i.appendChild(s),e.appendChild(i);const r=this._createRangeInput("from");if(e.appendChild(r),this._isRange){const t=this._createRangeInput("to");e.appendChild(t)}return this._params.tooltips&&(e.appendChild(this._createTooltip("from")),this._isRange&&e.appendChild(this._createTooltip("to")),this._isRange&&e.appendChild(this._createTooltip("merged"))),t.appendChild(e),this._params.labels&&t.appendChild(this._createLabels(this._isRange)),this._isRange?(this._ensureHiddenInput(t,"min",this._params.input?.min,this._params.name?.min),this._ensureHiddenInput(t,"max",this._params.input?.max,this._params.name?.max)):this._params.name?.min&&this._ensureHiddenInput(t,"min",this._params.input?.min,this._params.name.min),t}_createRangeInput(t){const e=document.createElement("input");return e.type="range",e.className=`vg-range-slider__input vg-range-slider__input--${t}`,e.min=String(this._state.min),e.max=String(this._state.max),e.step=String(this._state.step),e.value=String("to"===t?this._state.to:this._state.from),e.autocomplete="off",e}_createTooltip(t){const e=document.createElement("span");return e.className=`vg-range-slider__tooltip vg-range-slider__tooltip--${t}`,"merged"===t&&e.classList.add(br),e}_createLabels(t){const e=document.createElement("div");e.className="vg-range-slider__labels";const i=document.createElement("span");if(i.className="vg-range-slider__label vg-range-slider__label--from",e.appendChild(i),t){const t=document.createElement("span");t.className="vg-range-slider__separator",t.textContent=this._params.separator,e.appendChild(t);const i=document.createElement("span");i.className="vg-range-slider__label vg-range-slider__label--to",e.appendChild(i)}return e}_ensureHiddenInput(t,e,i,r){let n=i?s.A.find(i):null;n||(n=document.createElement("input"),n.type="hidden",r&&(n.name=r),t.appendChild(n)),n.setAttribute("data-vgrangeslider-hidden",e)}_bindEvents(){const t=t=>e=>{const i=this._normalizeValue(e.target.value,this._state.min);this._isRange?"from"===t?(this._state.from=Math.min(i,this._state.to),e.target.value=String(this._state.from)):(this._state.to=Math.max(i,this._state.from),e.target.value=String(this._state.to)):this._state.from=i,this._syncUI(),this._emit(yr,"onInput")},e=()=>{this._syncUI(),this._emit(wr,"onChange")};[this._dom.inputFrom,this._dom.inputTo].filter(Boolean).forEach((i=>{const s=i.classList.contains("vg-range-slider__input--to")?"to":"from",r=t(s),n=e;i.addEventListener("input",r),i.addEventListener("change",n),this._listeners.push({element:i,type:"input",handler:r}),this._listeners.push({element:i,type:"change",handler:n})})),window.addEventListener("resize",this._handleResize)}_syncUI(){this._toPercent(this._state.from),this._toPercent(this._isRange?this._state.to:this._state.from);const t=this._toPositionPx(this._state.from),e=this._toPositionPx(this._isRange?this._state.to:this._state.from);if(this._dom.inputFrom&&(this._dom.inputFrom.value=String(this._state.from)),this._dom.inputTo&&(this._dom.inputTo.value=String(this._state.to)),this._dom.fill){const i=this._isRange?t:0,s=this._isRange?e-t:e;this._dom.fill.style.left=`${Math.max(i,0)}px`,this._dom.fill.style.width=`${Math.max(s,0)}px`}this._placeTooltip(this._dom.tooltipFrom,t,this._formatValue(this._state.from)),this._placeTooltip(this._dom.tooltipTo,e,this._formatValue(this._state.to)),this._syncTooltips(t,e),this._dom.labelFrom&&(this._dom.labelFrom.textContent=this._formatValue(this._state.from)),this._dom.labelTo&&(this._dom.labelTo.textContent=this._formatValue(this._state.to)),this._dom.labelSeparator&&(this._dom.labelSeparator.hidden=!this._isRange),this._syncTargets(),((t,e,i)=>{if(!t)return;if("status"===t.type)return mr(t.root,_r(i.params,e,i)),void((t,e,i)=>{const s=i?.dom?.labelFrom,r=i?.dom?.labelTo,n=pr(t,ur(e.from,t,e)),a=pr(t,ur(e.to,t,e));s&&n&&(s.textContent=n),r&&a&&(r.textContent=a)})(i.params,e,i);if("ruler"!==t.type)return;const s=e.from!==e.to||i.isRange;t.ticks.forEach(((i,r)=>{const n=t.values[r],a=s?n>=e.from&&n<=e.to:n<=e.from;i.classList.toggle("is-active",a)}))})(this._dom.skin,this._state,{isRange:this._isRange,params:this._params,dom:this._dom})}_syncTargets(){const t=this.getValue(),[e,i]=Array.isArray(t)?t:[t,t];this._dom.hiddenMin&&(this._dom.hiddenMin.value=String(e)),this._dom.hiddenMax&&(this._dom.hiddenMax.value=String(i)),this._setText(this._params.output?.target,this._isRange?`${this._formatValue(e)}${this._params.separator}${this._formatValue(i)}`:this._formatValue(e)),this._setText(this._params.output?.min,this._formatValue(e)),this._setText(this._params.output?.max,this._formatValue(i))}_setDisabledState(t){this._params.disabled=!!t,this._dom.root&&this._dom.root.classList.toggle("disabled",this._params.disabled),[this._dom.inputFrom,this._dom.inputTo].filter(Boolean).forEach((t=>{t.disabled=this._params.disabled}))}_placeTooltip(t,e,i){t&&(t.textContent=i,t.style.left=`${e}px`)}_syncTooltips(t,e){const i=this._dom.tooltipMerged,s=this._dom.tooltipFrom,r=this._dom.tooltipTo;return this._isRange&&i&&s&&r?e-t<=s.offsetWidth/2+r.offsetWidth/2+8?(s.classList.add(br),r.classList.add(br),i.classList.remove(br),i.textContent=`${this._formatValue(this._state.from)}${this._params.separator}${this._formatValue(this._state.to)}`,void(i.style.left=(t+e)/2+"px")):(s.classList.remove(br),r.classList.remove(br),void i.classList.add(br)):(s&&s.classList.remove(br),r&&r.classList.remove(br),void(i&&i.classList.add(br)))}_toPercent(t){const e=this._state.max-this._state.min;return e<=0?0:(t-this._state.min)/e*100}_toPositionPx(t){const e=this._dom?.wrapper,i=this._state.max-this._state.min;if(!e||i<=0)return 0;const s=(t-this._state.min)/i,r=getComputedStyle(this._dom.root||e),n=parseFloat(r.getPropertyValue("--vg-range-slider-thumb-size"))||0,a=e.clientWidth||0;return a<=0?0:a<=n?a/2:s*(a-n)+n/2}_normalizeValue(t,e,i=this._state?.min??0,s=this._state?.max??100){const n=Number((0,r.OM)(t)),a=Number.isFinite(n)?n:e,o=Math.min(Math.max(a,i),s),l=this._state?.step||this._params.step||1,d=Math.round((o-i)/l)*l+i;return Number(d.toFixed(5))}_formatValue(t){return"function"==typeof this._params.formatValue?this._params.formatValue.call(this,t,this._element):`${null==this._params.prefix?"":String(this._params.prefix)}${t}${null==this._params.suffix?"":String(this._params.suffix)}`}_getStatusBy(){if("string"!=typeof this._params?.status?.by)return"to";const t=this._params.status.by.toLowerCase();return["from","to","avg"].includes(t)?t:"to"}_getStatusPercentByValue(t){const e=this._state.max-this._state.min;return e<=0?0:(t-this._state.min)/e*100}_getStatusToneByValue(t){const e=this._getStatusPercentByValue(t),i=Number(this._params?.status?.warningBelow),s=Number(this._params?.status?.dangerBelow),r=Number.isFinite(i)?i:60;return e<(Number.isFinite(s)?s:30)?"danger":e<r?"warning":"success"}_getStatusLabelByTone(t){return!Array.isArray(this._params?.labelWords)||this._params.labelWords.length<3?null:"danger"===t?this._params.labelWords[0]||null:"warning"===t?this._params.labelWords[1]||null:this._params.labelWords[2]||null}_getStatusDetail(){const t=this._getStatusBy(),e=this._state.from,i=this._state.to,s="from"===t?e:"avg"===t?(e+i)/2:i,r=this._getStatusToneByValue(s);return{by:t,sourceValue:s,percent:Number(this._getStatusPercentByValue(s).toFixed(5)),tone:r,label:this._getStatusLabelByTone(r),from:{value:e,percent:Number(this._getStatusPercentByValue(e).toFixed(5)),tone:this._getStatusToneByValue(e),label:this._getStatusLabelByTone(this._getStatusToneByValue(e))},to:{value:i,percent:Number(this._getStatusPercentByValue(i).toFixed(5)),tone:this._getStatusToneByValue(i),label:this._getStatusLabelByTone(this._getStatusToneByValue(i))}}}_emit(t,e){const i={value:this.getValue(),from:this._state.from,to:this._state.to,min:this._state.min,max:this._state.max,step:this._state.step,status:this._getStatusDetail(),instance:this};g.A.trigger(this._element,t,i);const s=this._params[e];"function"==typeof s&&s.call(this,this._element,i)}_setText(t,e){if(!t)return;const i=s.A.find(t);i&&(i.textContent=e)}}g.A.on(document,"DOMContentLoaded",(()=>{s.A.findAll("[data-vgrangeslider]").forEach((t=>{t.dataset.vgrangesliderInitialized||(Ar.getOrCreateInstance(t),t.dataset.vgrangesliderInitialized="true")}))}));const Er=Ar,xr="rollup",Pr="vg.rollup",Lr="show",Ir="vg-rollup-display--none",Mr=`${Pr}.hide`,Dr=`${Pr}.show`,Tr=`click.${Pr}.data.api`;class kr extends t.A{constructor(t,i={}){super(t,i);const s={lang:document.documentElement.lang||"ru",content:"text",cnt:0,fade:!0,transition:!1,number:!1,height:0,ellipsis:{line:null},more:" еще ",button:{enabled:!0,more:"Показать",less:"Свернуть",classes:""},callbacks:{init:()=>{},expand:()=>{},collapse:()=>{}}};let n=e.p.get(t,"data-lang")||"lang"in i?i.lang:s.lang;s.button.more=et(n,xr).show,s.button.less=et(n,xr).less,s.more=et(n,xr).more,this._params=this._getParams(t,(0,r._v)(s,i)),this.classes={container:"vg-rollup",hidden:"vg-rollup-content--hidden",fade:"vg-rollup-content--fade",ellipsis:"vg-rollup-content--ellipsis",button:"vg-rollup-content--button",transition:"vg-rollup-content--transition"},this.total=0,this.count=0,this.offset=0,this.isOffset=!1,this.build()}static get NAME(){return xr}static get NAME_KEY(){return Pr}static toggle(t,e){const i=kr.getOrCreateInstance(t);i.isShow()?i._hide(e):i._show(e)}_show(t){e.x.add(this._element,Lr),t.innerHTML=this._params.button.less,e.p.set(t,"aria-expanded","true"),this.offset>0&&(t.innerHTML=this.isOffset?this._params.button.more:this._params.button.less,e.p.set(t,"aria-expanded",this.isOffset?"true":"false")),this.switch(this._element,!1),g.A.trigger(this._element,Dr,{relatedTarget:t})}_hide(t){let i=this._params.button.more;if(this._params.number){const t=this.total-this.count;t>0&&(i+=this._params.more+t)}e.x.remove(this._element,Lr),e.p.set(t,"aria-expanded","false"),t.textContent=i,this.switch(this._element,!0),g.A.trigger(this._element,Mr,{relatedTarget:t})}build(t=null,i=!0){const s=t||this._element,n=s.clientHeight,a=this._params.height||n/2,{fade:o,transition:l,button:d,number:h,content:c,elements:u,cnt:_,ellipsis:m}=this._params,p=null!==m.line,g=d.enabled&&i;e.x.add(s,this.classes.container),i?("text"===c&&n>a?this._setupTextContent(s,a,o,l,p,m.line,g,h):"elements"===c&&this._setupElementsContent(s,u,_,o,l,p,g,h),(0,r.g7)(this._params.callbacks.init,[s,this])):this.switch(s)}_setupTextContent(t,i,s,r,n,a,o,l){e.x.add(t,this.classes.hidden),t.style.height=i+"px",n&&a?(e.x.add(t,this.classes.ellipsis),t.style.lineClamp=Number(a)):n&&console.error("Переменная [data-line] или параметр[line] не должны быть пустыми"),r&&e.x.add(t,this.classes.transition),s&&e.x.add(t,this.classes.fade),o&&this._createButton(t,"",l)}_setupElementsContent(t,i,r,n,a,o,l,d){const h=s.A.findAll("."+i,t);this.total=h.length,this.count=r,h.forEach(((t,i)=>{i>=r&&e.x.add(t,Ir)}));const c=l&&h.length>r;if(o&&e.x.add(t,this.classes.ellipsis),a&&e.x.add(t,this.classes.transition),n&&e.x.add(t,this.classes.fade),c){const e=this.total-this.count,i=d&&e>0?this._params.more+e:"";this._createButton(t,i,!1)}}_createButton(t,e="",i=!1){t.id||(t.id=`vg-rollup-${Math.random().toString(36).substr(2,9)}`);const s=this._params.button.more,r=`<div class="${this.classes.button}">\n <a href="#" aria-expanded="false" data-vg-toggle="rollup" class="${this._params.button.classes}" data-vg-target="#${t.id}">\n ${s}${e}\n </a>\n </div>`;t.insertAdjacentHTML("afterend",r)}switch(t,i=!1){if(i&&!this.isOffset){const{content:i}=this._params,n=t.clientHeight,a=this._params.height||n/2;if("text"===i&&n>a)e.x.add(t,this.classes.hidden),t.style.height=a+"px",this._params.ellipsis.line&&(e.x.add(t,this.classes.ellipsis),t.style.lineClamp=this._params.ellipsis.line),this._params.fade&&e.x.add(t,this.classes.fade),this._params.transition&&e.x.add(t,this.classes.transition),(0,r.g7)(this._params.callbacks.expand,[t,this]);else if("elements"===i){const i=s.A.findAll("."+this._params.elements,t);i.forEach(((t,i)=>{i>=this.count&&e.x.add(t,Ir)})),(0,r.g7)(this._params.callbacks.collapse,[t,i,this])}e.x.add(t,this.classes.container)}else{const{hidden:i,ellipsis:n,fade:a}=this.classes;e.x.remove(t,[i,n,a]),e.p.remove(t,"style"),"elements"===this._params.content&&s.A.findAll("."+this._params.elements,t).forEach((t=>e.x.remove(t,Ir))),(0,r.g7)(this._params.callbacks.expand,[t,this])}}isShow(){return e.x.has(this._element,Lr)}static init(t,e={},i){const s=kr.getOrCreateInstance(t,e);(0,r.g7)(i,[s])}}g.A.on(document,Tr,'[data-vg-toggle="rollup"]',(function(t){if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),(0,r.d6)(this))return;const e=s.A.getElementFromSelector(this);e&&kr.toggle(e,this)}));const Fr=kr,Rr="vg.select",Or="vg-select",Nr="vg-select-list--option",zr="vg-select-tag",Hr="vg-select-tag-remove",$r=`click.${Rr}.data.api`,Br=`keyup.${Rr}.data.api`,jr=`reset.${Rr}.data.api`,Vr=`keydown.${Rr}.data.api`,qr=`${Rr}.change`,Ur=`${Rr}.search`,Wr=`${Rr}.select`,Kr=`${Rr}.deselect`,Yr='[data-vg-toggle="select"]',Gr="select",Xr="vg.select",Zr="show",Jr="active",Qr="vg-select",tn="vg-select-dropdown",en="vg-select-list",sn="vg-select-list--option",rn="vg-select-current",nn="vg-select-current--placeholder",an="vg-select-search",on="vg-select-tags",ln="vg-select-tag",dn="vg-select-load-more",hn="vg-select-loading",cn="drop-up",un=`${Xr}.change`,_n=`${Xr}.hide`,mn=`${Xr}.hidden`,pn=`${Xr}.show`,gn=`${Xr}.shown`,fn=`${Xr}.init`,bn=`${Xr}.rebuild`,vn=`${Xr}.open`,yn=`${Xr}.close`,wn=`${Xr}.select`,Sn=`${Xr}.clear`,Cn=`${Xr}.error`,An=`${Xr}.loadNext`,En='[data-vg-toggle="select"]',xn=`.${rn}`,Pn=`.${tn}`,Ln=`.${an} input`,In=`.${en}`,Mn=`.${dn}`,Dn=["inited","updating","exclude"];class Tn extends t.A{constructor(t,e={}){super(t,e),this._params=this._getParams(t,(0,r._v)({lang:document.documentElement.lang||"ru",position:"none",search:{enabled:!0,route:"",remote:!1,delay:300,minterm:1,pagination:!1,pageParam:"page",termParam:"q",perpage:20,loadMoreText:"Загрузить ещё"},close:!0,tree:!1,exclude:"data-filter-param",placeholder:"",onInit:null,onShow:null,onHide:null,onChange:null,onSelect:null,onDeselect:null,onClear:null,onLoadNext:null},e)),this._observer=null,this._observerTimeout=null,this._drop=s.A.find(Pn,this._element),this._searchTerm="",this._currentPage=1,this._totalPages=null,this._loading=!1,"object"==typeof e.search&&(this._params.search.loadMoreText=et(this._params.lang,Gr)["load-more"]||"Загрузить еще"),this._remoteSearchRequestId=0,this._remoteSearchAbortController=null,this._positioningScrollParent=null,this._boundUpdateDropdownPlacement=()=>this._updateDropdownPlacement(),this._initObserver(),this._initLoadMoreButton(),this._triggerEvent(fn),this._callCallback("onInit")}static get NAME(){return Gr}static get NAME_KEY(){return Xr}static buildListOptions(t,i,r={}){let n=i.querySelector(`.${en}`);n?n.innerHTML="":(n=document.createElement("ul"),e.x.add(n,en),i.appendChild(n));const a=s.A.findAll("optgroup",t),o=document.createDocumentFragment(),l=this._isTreeEnabled(t,r);return a.length>0?(a.forEach((i=>{const r=document.createElement("ol");e.x.add(r,"vg-select-list--optgroup");const n=document.createElement("li");n.textContent=i.label.trim(),e.x.add(n,"vg-select-list--optgroup-title"),r.appendChild(n),Tn._createListItems(s.A.findAll("option",i),r,t,{tree:l,depth:l?1:0}),o.appendChild(r)})),n.appendChild(o)):Tn._createListItems(t.options,n,t,{tree:l,depth:0}),n}static _createListItems(t,i,s,n={}){const a=document.createDocumentFragment(),o=Number.isInteger(n.depth)?n.depth:0,l=!!n.tree;[...t].forEach((t=>{if(t.hidden)return;const i=t.getAttribute("value"),s=null==i?"":i,n=t.textContent.trim(),d=""===s&&""===n,h=document.createElement("li");if(h.textContent=n,h.dataset.index=String(t.index),h.dataset.value=s,h.classList.add(sn),e.p.set(h,"data-vg-toggle","select-option"),l){const e=t.dataset.level,i=Number.isFinite(Number(e))?parseInt(e,10):null,s=Math.max(0,null==i?o:i);h.dataset.level=String(s),h.style.paddingLeft=16+16*s+"px"}t.selected&&h.classList.add("selected"),t.disabled&&h.classList.add("disabled"),d&&(h.hidden=!0,h.style.display="none");const c=e.p.get(t);(0,r.ze)(c)||Object.keys(c).forEach((t=>{e.p.set(h,`data-${t}`,c[t])})),a.appendChild(h)})),i.appendChild(a)}static _isTreeEnabled(t,e={}){return"boolean"==typeof e.tree?e.tree:!(!t?.dataset||void 0===t.dataset.tree)&&!0===(0,r.OM)(t.dataset.tree)}static _getDataAttrCopyExclusions(t,e={}){const i=("string"==typeof e.exclude?e.exclude:t.dataset.exclude||"").split(",").map((t=>this._normalizeDataAttrKey(t))).filter(Boolean);return new Set([...Dn,...i])}static _normalizeDataAttrKey(t){return String(t||"").trim().replace(/^data-/,"").toLowerCase()}static isPlaceholderValue(t,e){const i=t.dataset.placeholderValue;return i?i.split(",").map((t=>t.trim())).includes(String(e)):null==e||""===String(e).trim()}static hasExplicitSelectedOption(t){return Array.from(t.options).some((t=>t.hasAttribute("selected")))}static hasSelectedValidOption(t){const e=t.selectedIndex;return-1!==e&&!this.isPlaceholderValue(t,t.options[e]?.value)}static build(t,i=!1,s={}){(i||"true"===t.dataset.inited)&&this.destroy(t);const n=document.createElement("div");n.classList.add(Qr),n.style.position="relative",t.classList.length&&[...t.classList].forEach((t=>n.classList.add(t))),(0,r.d6)(t)&&n.classList.add("disabled");const a=e.p.get(t);if(!(0,r.ze)(a)){const i=this._getDataAttrCopyExclusions(t,s);Object.keys(a).forEach((t=>{i.has(t)||e.p.set(n,`data-${t}`,a[t])}))}const o=t.dataset.placeholder||"",l=t.multiple,d=document.createElement("div");if(d.classList.add(rn),d.setAttribute("data-vg-toggle","select"),d.setAttribute("aria-expanded","false"),d.setAttribute("role","button"),d.tabIndex=l?-1:0,l){const t=document.createElement("div");t.classList.add(on),d.appendChild(t);const e=document.createElement("input");e.type="text",e.className="vg-select-multiple-input",e.style.cssText="border:0;outline:none;background:transparent;padding:0;margin:0;min-width:1px;width:1px;height:1px;line-height:1;font:inherit;opacity:0;",t.appendChild(e),e.addEventListener("focus",(()=>{const t=Tn.getInstance(e.closest(`.${Qr}`));t&&!t._isShown()&&t.show()}))}else{const e=t.selectedIndex,i=e>=0?t.options[e]:null,s=i?.textContent.trim()||"",r=o&&!this.hasSelectedValidOption(t);d.innerHTML=r?`<span class="${nn}">${o}</span>`:s||"-"}n.appendChild(d);const h=document.createElement("div");h.classList.add(tn),n.appendChild(h),this.buildListOptions(t,h,s),t.insertAdjacentElement("afterend",n),t.dataset.inited="true",this.getOrCreateInstance(n,s),this.updateUI(t);const c=Tn.getInstance(n);let u=null;if(e.p.has(t,"data-search-enabled")){const t=document.createElement("div");t.classList.add(an),u=document.createElement("input"),u.name="vg-select-search",u.type="text",u.placeholder=Q(c._params.lang,Gr).search,u.autocomplete="off",u.setAttribute("role","searchbox"),t.appendChild(u),h.insertBefore(t,h.firstChild)}if(u&&c){let t;u.addEventListener("input",(e=>{const i=e.target.value.trim(),s=c._params;if(c._callCallback("onSearch",{term:i}),s.search.remote&&s.search.route){if(i.length<(s.search.minterm||1))return;clearTimeout(t),t=setTimeout((()=>{c._fetchRemoteData(i)}),s.search.delay||300)}else c._filterLocalOptions(i)}))}return n}toggle(t){return this._isShown()?this.hide():this.show(t)}show(t){if(!(0,r.d6)(this._element)&&!g.A.trigger(this._element,pn,{relatedTarget:t}).defaultPrevented){if(this._element.classList.add(Zr),"none"!==this._getPositionMode()?this._setupDropdownPlacement():this._teardownDropdownPlacement(),"ontouchstart"in document.documentElement&&(document.body.style.pointerEvents="none"),this._element.querySelector(En).setAttribute("aria-expanded","true"),this._params.search?.enabled){const t=this._element.querySelector(Ln);t&&t.focus()}return this._queueCallback((()=>{this._element.classList.add(Jr),this._updateDropdownPlacement(),g.A.trigger(this._element,gn,{relatedTarget:t}),this._triggerEvent(vn),this._callCallback("onShow")}),this._drop,!0,50)}}hide(){!(0,r.d6)(this._element)&&this._isShown()&&this._completeHide()}_completeHide(t={}){g.A.trigger(this._element,_n,t).defaultPrevented||(this._teardownDropdownPlacement(),this._element.classList.remove(Jr),this._element.querySelector(En).setAttribute("aria-expanded","false"),this._queueCallback((()=>{this._element.classList.remove(Zr),g.A.trigger(this._element,mn,t),this._triggerEvent(yn),this._callCallback("onHide")}),this._drop,!0,10),"ontouchstart"in document.documentElement&&(document.body.style.pointerEvents=""))}_isShown(){return this._element.classList.contains(Zr)}_initObserver(){this._observer&&this._observer.disconnect();const t=this._element.previousElementSibling;t&&"SELECT"===t.tagName&&(this._observer=new MutationObserver((e=>{if(console.debug("VGSelect: Mutation detected",e),t.hasAttribute("data-updating"))return;if(!e.some((t=>"attributes"===t.type?["disabled","required","style","hidden"].includes(t.attributeName):"childList"===t.type||"characterData"===t.type)))return;const i=this._isShown();clearTimeout(this._observerTimeout),this._observerTimeout=setTimeout((()=>{this._element.previousElementSibling!==t||t.hasAttribute("data-updating")||(this._updateFromMutation(),i&&requestAnimationFrame((()=>{this.show()})))}),100)})),this._observer.observe(t,{attributes:!0,attributeFilter:["disabled","required","style","hidden"],childList:!0,subtree:!0,characterData:!0}))}_updateFromMutation(){const t=this._element.previousElementSibling;if(!t)return;(0,r.d6)(t)?this._element.classList.add("disabled"):this._element.classList.remove("disabled");const e=this._element.querySelector(Pn);Tn.buildListOptions(t,e,this._params),Tn.updateUI(t)}dispose(){this._observer&&(this._observer.disconnect(),this._observer=null),clearTimeout(this._observerTimeout),this._observerTimeout=null,this._teardownDropdownPlacement(),super.dispose()}_setupDropdownPlacement(){"none"!==this._getPositionMode()&&(this._teardownDropdownPlacement(),this._positioningScrollParent=this._getOverflowAncestor(this._element),window.addEventListener("resize",this._boundUpdateDropdownPlacement,{passive:!0}),window.addEventListener("scroll",this._boundUpdateDropdownPlacement,{passive:!0}),this._positioningScrollParent&&this._positioningScrollParent.addEventListener("scroll",this._boundUpdateDropdownPlacement,{passive:!0}),this._updateDropdownPlacement())}_teardownDropdownPlacement(){window.removeEventListener("resize",this._boundUpdateDropdownPlacement),window.removeEventListener("scroll",this._boundUpdateDropdownPlacement),this._positioningScrollParent&&this._positioningScrollParent.removeEventListener("scroll",this._boundUpdateDropdownPlacement),this._positioningScrollParent=null,this._element.classList.remove(cn),this._element.style.removeProperty("--vg-select-list-max-height")}_getPositionMode(){const t=this._params?.position,e=null==t?"none":String(t).trim().toLowerCase();return"auto"===e||"top"===e||"bottom"===e||"none"===e?e:"none"}_getOverflowAncestor(t){let e=t?.parentElement;for(;e&&e!==document.body&&e!==document.documentElement;){const t=window.getComputedStyle(e),i=t.overflowX||t.overflow||"visible",s=t.overflowY||t.overflow||"visible";if("visible"!==i||"visible"!==s)return e;e=e.parentElement}return null}_getClipRect(){const t={top:0,left:0,right:window.innerWidth,bottom:window.innerHeight},e=this._positioningScrollParent;if(!e)return t;const i=e.getBoundingClientRect();return{top:Math.max(t.top,i.top),left:Math.max(t.left,i.left),right:Math.min(t.right,i.right),bottom:Math.min(t.bottom,i.bottom)}}_updateDropdownPlacement(){if(!this._isShown())return;const t=this._getPositionMode();if("none"===t)return;const e=this._getClipRect(),i=this._element.getBoundingClientRect(),s=e.bottom-i.bottom,r=i.top-e.top,n="top"===t||"bottom"!==t&&r>s;this._element.classList.toggle(cn,n);const a=n?r:s,o=Math.max(80,Math.floor(a-12));Number.isFinite(o)&&o>0&&this._element.style.setProperty("--vg-select-list-max-height",`${o}px`)}static destroy(t){const e=t.nextElementSibling;e&&e.classList.contains(Qr)&&e.remove()}static updateUI(t){const e=t.nextElementSibling;if(!e||!e.classList.contains(Qr))return;const i=e.querySelector(xn),s=t.dataset.placeholder||"",r=t.multiple,n=Tn.getInstance(e);if(r){const e=i.querySelector(`.${on}`),r=e.querySelector("input"),a=e.querySelectorAll(`.${ln}`).length;e.innerHTML="",e.appendChild(r);const o=Array.from(t.selectedOptions);0===o.length&&a>0&&(n?._triggerEvent(Sn),n?._callCallback("onClear")),0===o.length?r.placeholder=s:(r.placeholder="",o.forEach((t=>{const i=document.createElement("div");i.classList.add(ln),i.innerHTML=`<span>${t.textContent}</span><svg class="vg-select-tag-remove" data-index="${t.index}" data-value="${t.getAttribute("value")??""}" width="14" height="14" viewBox="0 0 14 14"><line x1="2" y1="2" x2="12" y2="12" stroke="currentColor"/><line x1="12" y1="2" x2="2" y2="12" stroke="currentColor"/></svg>`,e.insertBefore(i,r)})))}else{const e=t.selectedIndex,r=e>=0?t.options[e]:null,n=r?.textContent.trim()||"",a=s&&!this.hasSelectedValidOption(t),o=a?s:n||"-";i.textContent!==o&&(i.innerHTML=a?`<span class="${nn}">${s}</span>`:o)}}static changeSelector(t,e,i={}){const s=t.nextElementSibling,n=s?Tn.getInstance(s):null;t.setAttribute("data-updating","true");try{const s=t.querySelector(`option[value="${CSS.escape((0,r.OM)(e))}"]`);if(!s)return void n?._triggerEvent(Cn,{error:"Option not found",value:e});const a=s.selected,o=s.textContent.trim();t.multiple?s.selected=!1!==i?.selected:([...t.options].forEach((t=>t.selected=!1)),s.selected=!0,t.value=s.value),this.updateUI(t);const l=new Event("change",{bubbles:!0,cancelable:!0});t.dispatchEvent(l),a||(g.A.trigger(t,un,{data:i}),n?._triggerEvent(wn,{value:e,text:o,data:i}),n?._callCallback("onSelect",{value:e,text:o,data:i}))}finally{t.removeAttribute("data-updating")}}static changeSelectorByIndex(t,e,i={}){const s=t.nextElementSibling,r=s?Tn.getInstance(s):null;t.setAttribute("data-updating","true");try{const s=Number.isInteger(e)?t.options[e]:null;if(!s)return void r?._triggerEvent(Cn,{error:"Option not found by index",index:e});const n=s.selected,a=s.textContent.trim(),o=s.value;t.multiple?s.selected=!1!==i?.selected:([...t.options].forEach((t=>t.selected=!1)),s.selected=!0,t.value=s.value),this.updateUI(t);const l=new Event("change",{bubbles:!0,cancelable:!0});t.dispatchEvent(l),n||(g.A.trigger(t,un,{data:i}),r?._triggerEvent(wn,{value:o,text:a,data:i}),r?._callCallback("onSelect",{value:o,text:a,data:i}))}finally{t.removeAttribute("data-updating")}}_triggerEvent(t,e={}){g.A.trigger(this._element,t,e)}_callCallback(t,e=null){const i=this._params[t];"function"==typeof i&&i.call(this,this._element,e)}static init(t,e={},i=!1){this.build(t,i,e)}static clearDrops(t){const e=s.A.find(`.${Qr}.${Zr}`);if(!e)return;const i=t.target.closest(En);if(i&&i.closest(`.${Qr}`)===e)return;if(t.composedPath().some((t=>t.classList?.contains(tn))))return;const r=Tn.getInstance(e);r&&r._completeHide({relatedTarget:t.target})}_initLoadMoreButton(){if(!this._params.search?.pagination||!this._params.search.remote)return;const t=this._element.querySelector(In);if(!t)return;const e=document.createElement("li");e.className=dn,e.style.textAlign="center",e.style.padding="8px",e.style.cursor="pointer",e.style.color="#007bff",e.style.fontSize="14px",e.style.fontWeight="500",e.textContent=this._params.search.loadMoreText,e.addEventListener("click",(()=>{!this._loading&&(null===this._totalPages||this._currentPage<this._totalPages)&&this._loadNextPage()})),t.appendChild(e),this._hideLoadMoreButton(!0)}_hideLoadMoreButton(t){const e=this._element.querySelector(Mn);e&&(e.style.display=t?"none":"block")}_showLoading(t){const e=this._element.querySelector(In);let i=e.querySelector(`.${hn}`);t&&!i?(i=document.createElement("li"),i.className=hn,i.style.textAlign="center",i.style.padding="8px",i.textContent=tt(this._params.lang,Gr).loading,e.appendChild(i)):!t&&i&&i.remove()}async _loadNextPage(){const{route:t,pageParam:e="page",termParam:i="q",perpage:s=20}=this._params.search,r=this._currentPage+1,n=new URL(t,window.location.origin);n.searchParams.set(i,this._searchTerm),n.searchParams.set(e,r),n.searchParams.set("per_page",s),this._loading=!0,this._showLoading(!0),this._hideLoadMoreButton(!0);try{const t=await fetch(n,{headers:{"Content-Type":"application/json"}}),e=await t.json();Array.isArray(e.results)&&(Tn.addOptions(this._element.previousElementSibling,e,{preserve:!0}),this._currentPage=e.pagination?.current_page||r,this._totalPages=e.pagination?.total_pages||null,(null===this._totalPages||this._currentPage<this._totalPages)&&this._hideLoadMoreButton(!1),this._callCallback("onLoadNext",{page:this._currentPage,data:e}),this._triggerEvent(An,{page:this._currentPage,term:this._searchTerm}))}catch(t){console.error("VGSelect: Failed to load next page",t),this._triggerEvent(Cn,{error:"Pagination fetch failed",term:this._searchTerm}),this._hideLoadMoreButton(!1)}finally{this._showLoading(!1),this._loading=!1}}_fetchRemoteData(t){const{route:e,method:i="GET",pageParam:s="page",termParam:r="q",perpage:n=20}=this._params.search,a=new URL(e,window.location.origin);a.searchParams.set(r,t),a.searchParams.set(s,1),a.searchParams.set("per_page",n);const o=this._element.querySelector(Ln),l=this._isShown();this._searchTerm=t,this._currentPage=1,this._totalPages=null,this._remoteSearchAbortController&&this._remoteSearchAbortController.abort(),this._remoteSearchAbortController=new AbortController;const d=++this._remoteSearchRequestId,h=this._remoteSearchAbortController.signal;this._showLoading(!0),this._hideLoadMoreButton(!0),fetch(a,{method:i,headers:{"Content-Type":"application/json"},signal:h}).then((t=>t.json())).then((e=>{if(d!==this._remoteSearchRequestId)return;if((o?o.value.trim():"")!==t)return;const i=this._element.previousElementSibling;i&&([...i.querySelectorAll("option")].forEach((t=>{const e=t===i.options[0],s=""===(t.getAttribute("value")??""),r=""===(t.textContent||"").trim(),n=!0===t.hidden||t.hasAttribute("hidden"),a=t.hasAttribute("selected");e&&s&&r&&n&&a||t.hasAttribute("data-preserve")||t.closest("optgroup[data-preserve]")||t.remove()})),Tn.addOptions(i,e,{preserve:!0}),this._callCallback("onSearch",{term:t,data:e}),this._triggerEvent(bn,{term:t,data:e}),e.pagination&&(this._currentPage=e.pagination.current_page||1,this._totalPages=e.pagination.total_pages||null),(null===this._totalPages||this._currentPage<this._totalPages)&&this._hideLoadMoreButton(!1),l&&o&&(o.focus(),this._element.classList.add(Zr,Jr)))})).catch((e=>{e&&"AbortError"===e.name||(console.error("VGSelect: Remote search error",e),this._triggerEvent(Cn,{error:"Search request failed",term:t}),this._hideLoadMoreButton(!1))})).finally((()=>{d===this._remoteSearchRequestId&&this._showLoading(!1)}))}static addOptions(t,e,i={}){const{preserve:s=!1}=i,r=t.nextElementSibling,n=r&&r.classList.contains(Qr),a=n?Tn.getInstance(r):null;let o=e;if(e&&e.results&&Array.isArray(e.results)&&(o=e.results),!Array.isArray(o))return void a?._triggerEvent(Cn,{error:"Invalid data format: expected array"});const l=this._isTreeEnabled(t,a?._params||{});s||([...t.querySelectorAll("option")].forEach((t=>{const e=t.closest("optgroup");""!==t.value&&(t.hasAttribute("data-preserve")||e&&e.hasAttribute("data-preserve")||t.remove())})),[...t.querySelectorAll("optgroup")].forEach((t=>{0!==t.children.length||t.hasAttribute("data-preserve")||t.remove()})));const d=(t,e,i=null)=>{const s=document.createElement("option"),r=Array.isArray(t.children)&&t.children.length>0;s.value=t.id||"",s.textContent=t.text||"",t.selected&&(s.selected=!0),t.disabled&&(s.disabled=!0),l&&Number.isInteger(i)&&(s.setAttribute("data-level",String(i)),r&&!s.value&&(s.disabled=!0)),Object.keys(t).filter((t=>!["id","text","selected","disabled","children"].includes(t))).forEach((e=>{s.setAttribute(`data-${e}`,t[e])})),e.appendChild(s)},h=(t,e,i=0)=>{t.forEach((t=>{d(t,e,i),Array.isArray(t.children)&&t.children.length>0&&h(t.children,e,i+1)}))};if(l?h(o,t,0):o.forEach((e=>{if(e.children&&Array.isArray(e.children)){const i=document.createElement("optgroup");i.label=e.text||"",e.disabled&&(i.disabled=!0),e.children.forEach((t=>d(t,i))),t.appendChild(i)}else d(e,t)})),n){const e=r.querySelector(`.${tn}`);Tn.buildListOptions(t,e,a?._params||{}),a?._triggerEvent(bn)}else this.updateUI(t)}_filterLocalOptions(t){const e=this._drop.querySelector(`.${en}`).querySelectorAll(`.${sn}`);t?(t=t.toLowerCase(),e.forEach((e=>{const i=e.textContent.toLowerCase();e.hidden=!i.includes(t)}))):e.forEach((t=>t.hidden=!1))}}g.A.on(document,$r,(t=>kn.clearDrops(t))),g.A.on(document,$r,Yr,(function(t){const e=t.target;if(e.closest(`.${zr}`)||e.closest(`.${Hr}`))return void t.stopPropagation();const i=this.closest(`.${Or}`),r=kn.getOrCreateInstance(i),n=s.A.find(`.${Or}.show`);n&&n!==i&&kn.getInstance(n)?.hide(),r.toggle(this)})),g.A.on(document,$r,'[data-vg-toggle="select-option"]',(function(t){const i=t.target;if(i.classList.contains("disabled"))return;const s=i.closest(`.${Or}`),r=s.previousElementSibling,n=r.multiple,a=i.dataset.index,o=Number.isFinite(Number(a))?parseInt(a,10):NaN,l=Number.isInteger(o)?r.options[o]:null;if(!l)return;const d=kn.getInstance(s),h=l.selected,c=l.value;if(n)l.selected=!l.selected,i.classList.toggle("selected",l.selected),kn.updateUI(r),r.dispatchEvent(new Event("change",{bubbles:!0})),g.A.trigger(r,qr,{data:{value:c,title:i.textContent,...e.p.get(i)}}),l.selected?(d?._triggerEvent(Wr,{value:c,title:i.textContent,...e.p.get(i)}),d?._callCallback("onSelect",{value:c,title:i.textContent,...e.p.get(i)})):(d?._triggerEvent(Kr,{value:c,title:i.textContent,...e.p.get(i)}),d?._callCallback("onDeselect",{value:c,title:i.textContent,...e.p.get(i)}));else{if(h)return;s.querySelectorAll(`.${Nr}`).forEach((t=>t.classList.remove("selected"))),i.classList.add("selected"),kn.changeSelectorByIndex(r,o,{index:o,value:c,title:i.textContent,...e.p.get(i)}),!1!==d?._params?.close&&d?.hide()}})),g.A.on(document,Br,'[name="vg-select-search"]',(function(t){const e=t.target,i=e.closest(".vg-select-dropdown"),s=i?.querySelector(".vg-select-list");if(!s)return;const n=e.closest(`.${Or}`),a=kn.getInstance(n),o=s.querySelectorAll(`.${Nr}`),l=s.querySelectorAll(".vg-select-list--optgroup"),d=e.value.trim().toLowerCase(),h=[d,(0,r.Ff)(d),(0,r.Ff)(d,!0)];if(o.forEach((t=>{t.hidden=!1,t.style.display=""})),l.forEach((t=>{t.hidden=!1,t.style.display=""})),d){let t=0;l.length?l.forEach((e=>{const i=e.querySelectorAll(`.${Nr}`),s=Array.from(i).some((t=>{const e=t.textContent.toLowerCase();return h.some((t=>e.includes(t)))}));e.hidden=!s,e.style.display=s?"":"none",i.forEach((e=>{const i=e.textContent.toLowerCase(),s=h.some((t=>i.includes(t)));e.hidden=!s,e.style.display=s?"":"none",s&&t++}))})):o.forEach((e=>{const i=e.textContent.toLowerCase(),s=h.some((t=>i.includes(t)));e.hidden=!s,e.style.display=s?"":"none",s&&t++})),a?._triggerEvent(Ur,{query:d,results:t}),a?._callCallback("onSearch",{query:d,results:t})}else a?._triggerEvent(Ur,{query:"",results:o.length}),a?._callCallback("onSearch",{query:"",results:o.length})})),g.A.on(document,jr,"form",(function(){s.A.findAll('select[data-inited="true"]',this).forEach((t=>kn.build(t,!0)))})),g.A.on(document,"keydown",Yr,(function(t){const e=kn.getInstance(this.closest(`.${Or}`));if(e)switch(t.key){case"Enter":case" ":t.preventDefault(),e.toggle();break;case"Escape":e._isShown()&&e.hide();break;case"ArrowDown":t.preventDefault(),e._isShown()||e.show()}})),g.A.on(document,$r,".vg-select-tags",(function(t){const e=t.target.closest(`.${Hr}`);if(!e)return;t.preventDefault(),t.stopPropagation();const i=this.closest(`.${Or}`),s=i.previousElementSibling,r=e.dataset.index,n=Number.isFinite(Number(r))?parseInt(r,10):NaN,a=Number.isInteger(n)?s.options[n]:null,o=Number.isInteger(n)?i.querySelector(`.${Nr}[data-index="${n}"]`):null,l=kn.getInstance(i);a&&(a.selected=!1,o&&o.classList.remove("selected"),kn.updateUI(s),s.dispatchEvent(new Event("change",{bubbles:!0})),g.A.trigger(s,qr,{data:{value:a.value}}),l?._triggerEvent(Kr,{value:a.value}),l?._callCallback("onDeselect",{value:a.value}))})),g.A.on(document,Vr,".vg-select-multiple-input",(function(t){if("Backspace"===t.key&&!t.target.value){const e=t.target,i=e.parentElement.querySelectorAll(`.${zr}`);if(i.length>0){const t=i[i.length-1].querySelector("svg"),s=t?.dataset.index,r=Number.isFinite(Number(s))?parseInt(s,10):NaN,n=e.closest(`.${Or}`).previousElementSibling,a=Number.isInteger(r)?n.options[r]:null,o=Number.isInteger(r)?e.closest(`.${Or}`).querySelector(`.${Nr}[data-index="${r}"]`):null,l=kn.getInstance(e.closest(`.${Or}`));a&&(a.selected=!1,o&&o.classList.remove("selected"),kn.updateUI(n),n.dispatchEvent(new Event("change",{bubbles:!0})),g.A.trigger(n,qr,{data:{value:a.value}}),l?._triggerEvent(Kr,{value:a.value}),l?._callCallback("onDeselect",{value:a.value}))}}}));const kn=Tn,Fn=kn,Rn="vg.sidebar",On="show",Nn="vg-sidebar-open",zn={HIDE:`${Rn}.hide`,HIDDEN:`${Rn}.hidden`,SHOW:`${Rn}.show`,SHOWN:`${Rn}.shown`,LOADED:`${Rn}.loaded`,KEYDOWN_DISMISS:`keydown.dismiss.${Rn}`,HIDE_PREVENTED:`hidePrevented.${Rn}`,CLICK_DATA_API:`click.${Rn}.data.api`,POPSTATE_DATA_API:`popstate.${Rn}.data.api`,DOM_LOADED_DATA_API:`DOMContentLoaded.${Rn}.data.api`};class Hn extends t.A{constructor(t,e={}){super(t,e),this._params=this._getParams(t,(0,r._v)({backdrop:!0,overflow:!0,keyboard:!0,hash:!1,animation:{enable:!1,in:"animate__rollIn",out:"animate__rollOut",delay:800},ajax:{route:"",target:"",method:"get",loader:!1,once:!1,output:!0}},e)),this._scrollBar=new d,this._params.animation.delay=this._params.animation.enable?this._params.animation.delay:0,this._addEventListeners(),this._dismissElement(),this._animation(this._element,Rn,this._params.animation)}static get NAME(){return"sidebar"}static get NAME_KEY(){return Rn}toggle(t){return this._isShown()?this.hide():this.show(t)}_showPopstateHandler=null;show(t){(0,r.d6)(this._element)||(t&&(this._params=this._getParams(t,this._params)),this._route(((t,e)=>{g.A.trigger(this._element,zn.LOADED,{stats:t,data:e})})),g.A.trigger(this._element,zn.SHOW,{relatedTarget:t}).defaultPrevented||(this._params.backdrop&&p.show(),this._params.overflow&&this._scrollBar.hide(),this._params.hash&&(history.pushState(null,"",`#${this._element.id}`),this._showPopstateHandler&&g.A.off(window,zn.POPSTATE_DATA_API,this._showPopstateHandler),this._showPopstateHandler=()=>this.hide(),g.A.on(window,zn.POPSTATE_DATA_API,this._showPopstateHandler)),this._element.classList.add(On),document.body.classList.add(Nn),this._queueCallback((()=>{const e=s.A.find(".vg-backdrop");e&&g.A.on(e,"mousedown.vg.backdrop",(()=>this.hide())),g.A.trigger(this._element,zn.SHOWN,{relatedTarget:t})}),this._element,!0,50)))}hide(t=!1){(0,r.d6)(this._element)||g.A.trigger(this._element,zn.HIDE).defaultPrevented||(document.body.classList.remove(Nn),this._element.classList.remove(On),setTimeout((()=>{this._element.setAttribute("aria-expanded","false"),this._queueCallback((()=>{t||(this._params.backdrop?p.hide((()=>{this._params.overflow&&this._scrollBar.reset()})):this._params.overflow&&this._scrollBar.reset(),this._params.hash&&window.location.hash===`#${this._element.id}`&&history.replaceState("",document.title,window.location.pathname+window.location.search),this._showPopstateHandler&&(g.A.off(window,zn.POPSTATE_DATA_API,this._showPopstateHandler),this._showPopstateHandler=null),g.A.trigger(this._element,zn.HIDDEN))}),this._element,!0)}),this._params.animation.delay))}dispose(){super.dispose(),g.A.off(this._element,zn.HIDE),this._showPopstateHandler&&g.A.off(window,zn.POPSTATE_DATA_API,this._showPopstateHandler),this._scrollBar.reset()}_isShown(){return this._element.classList.contains(On)}_addEventListeners(){g.A.on(document,zn.KEYDOWN_DISMISS,(t=>{"Escape"===t.key&&(this._params.keyboard?this.hide():g.A.trigger(this._element,zn.HIDE_PREVENTED))}))}}(0,f.P)(Hn),g.A.on(document,zn.CLICK_DATA_API,'[data-vg-toggle="sidebar"]',(function(t){const e=s.A.getElementFromSelector(this);if(!e)return;if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),(0,r.d6)(this))return;this.setAttribute("aria-expanded","true"),g.A.one(e,zn.HIDDEN,(()=>{this.setAttribute("aria-expanded","false")}));const i=s.A.find(".vg-sidebar.show");i&&i!==e&&Hn.getInstance(i).hide(),Hn.getOrCreateInstance(e).toggle(this)})),g.A.on(document,zn.DOM_LOADED_DATA_API,(function(){const t=window.location.hash.slice(1);if(!t)return;const e=s.A.find(`#${t}`);if(e&&e.classList.contains("vg-sidebar")&&!(0,r.d6)(e)){const t=Hn.getOrCreateInstance(e);t._params.hash&&t.toggle()}}));const $n=Hn,Bn="vg.spy",jn=`.${Bn}`,Vn=".data-api",qn=`activate${jn}`,Un=`click${jn}`,Wn=`load${jn}${Vn}`,Kn="active",Yn="[href], [data-vg-target]",Gn=".nav-link",Xn=`${Gn}, .nav-item > ${Gn}, .list-group-item`;class Zn extends t.A{constructor(t,e){super(t,e),this._params=this._configAfterMerge((0,r._v)({offset:null,rootMargin:"0px 0px -25%",smoothScroll:!0,target:this._element,threshold:[.1,.5,1]},e)),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement=null,this._activeTarget=null,this._observer=null,this._scrollbar=null,this._scrollbarListener=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get NAME(){return"spy"}static get NAME_KEY(){return Bn}refresh(){this._initializeTargetsAndObservables(),this._updateRootElement(),this._maybeEnableSmoothScroll(),this._setupTracking()}_setupTracking(){this._updateSmoothScrollbar(),this._scrollbar?this._setupScrollbarTracking():(this._teardownScrollbarTracking(),this._rebuildObserver(),this._rootElement&&!this._isScrollableSelf(this._rootElement)&&window.Scrollbar&&setTimeout((()=>{this._scrollbar||(this._updateSmoothScrollbar(),this._scrollbar&&this._setupScrollbarTracking())}),0))}_updateSmoothScrollbar(){const t=this._rootElement,e=window.Scrollbar;let i=null;t&&(i=t.scrollbar||null,!i&&e&&"function"==typeof e.get&&(i=e.get(t)||null)),i!==this._scrollbar&&(this._teardownScrollbarTracking(),this._scrollbar=i)}_setupScrollbarTracking(){this._scrollbar&&"function"==typeof this._scrollbar.addListener&&(this._observer&&this._observer.disconnect(),this._scrollbarListener&&"function"==typeof this._scrollbar.removeListener&&this._scrollbar.removeListener(this._scrollbarListener),this._scrollbarListener=t=>this._onScrollbarScroll(t),this._scrollbar.addListener(this._scrollbarListener),this._onScrollbarScroll(null))}_teardownScrollbarTracking(){this._scrollbar&&this._scrollbarListener&&"function"==typeof this._scrollbar.removeListener&&this._scrollbar.removeListener(this._scrollbarListener),this._scrollbarListener=null}_onScrollbarScroll(t){const e=t?.offset?.y??this._getParentScrollTop(),i=e>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=e;const s=this._getActivationLine(e),n=[];for(const[t,e]of this._observableSections.entries()){if(!e||!(0,r.zN)(e))continue;const i=this._targetLinks.get(t);i&&n.push({top:this._getSectionTop(e),link:i})}n.sort(((t,e)=>t.top-e.top));let a=null;for(const t of n)if(t.top<=s)a=t.link;else if(!i)break;this._process(a)}_getActivationLine(t){const e=this._rootElement?this._rootElement.clientHeight:window.innerHeight||document.documentElement.clientHeight||0,i=(this._params.rootMargin||"").trim(),s=i?i.split(/\s+/):[],r=1===s.length||2===s.length?s[0]:s.length>=3?s[2]:null;if(r&&r.endsWith("%")){const i=Number.parseFloat(r);if(!Number.isNaN(i))return t+e*(1+i/100)}if(r&&r.endsWith("px")){const i=Number.parseFloat(r);if(!Number.isNaN(i))return t+e+i}return t+.75*e}_rebuildObserver(){this._observer&&this._observer.disconnect(),this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}_updateRootElement(){if(this._rootElement=this._normalizeScrollRoot(this._params.target),!this._rootElement&&this._isScrollableSelf(this._element)&&(this._rootElement=this._element),!this._rootElement){const t=this._observableSections.values().next().value||null;t&&this._isScrollable(t)?this._rootElement=t.parentElement:this._rootElement=t?this._getScrollParent(t):null}this._updateSmoothScrollbar(),this._previousScrollData.parentScrollTop=this._getParentScrollTop(),this._previousScrollData.visibleEntryTop=0}_normalizeScrollRoot(t){const e=(0,r.V6)(t);if(!e)return null;if(e===document.body||e===document.documentElement)return null;if(this._isScrollableSelf(e))return e;const i=window.Scrollbar;return e.scrollbar||i&&"function"==typeof i.get&&i.get(e)?e:null}_isScrollable(t){if(!(t instanceof HTMLElement))return!1;const e=t.parentElement;return!!e&&this._isScrollableSelf(e)}_isScrollableSelf(t){if(!(t instanceof HTMLElement))return!1;const e=getComputedStyle(t).overflowY;return!!/(auto|scroll|overlay)/.test(e)&&t.scrollHeight>t.clientHeight}_getScrollParent(t){for(let e=t.parentElement;e&&e!==document.body;e=e.parentElement)if(this._isScrollableSelf(e))return e;return null}_getSectionTop(t){if(this._rootElement){const e=this._rootElement.getBoundingClientRect(),i=t.getBoundingClientRect();return(this._scrollbar?.offset?.y??this._rootElement.scrollTop)+(i.top-e.top)}return(window.scrollY||document.documentElement.scrollTop||0)+t.getBoundingClientRect().top}_getParentScrollTop(){return this._scrollbar?this._scrollbar.offset?.y??0:this._rootElement?this._rootElement.scrollTop:window.scrollY||document.documentElement.scrollTop||0}dispose(){this._observer&&this._observer.disconnect(),this._teardownScrollbarTracking(),this._scrollbar=null,super.dispose()}_configAfterMerge(t){return t.target=(0,r.V6)(t.target)||document.body,null!=t.offset&&(t.rootMargin=`${t.offset}px 0px -30%`),"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t.trim())))),t}_maybeEnableSmoothScroll(){this._params.smoothScroll&&(g.A.off(this._element,Un),g.A.on(this._element,Un,Yn,(t=>{const e=t.delegateTarget||t.target,i=this._getTargetIdFromTrigger(e);if(!i)return;let n=this._observableSections.get(i);if(n||(n=s.A.findID(i),n&&(this._targetLinks.set(n.id,e),this._observableSections.set(n.id,n))),!n)return;if(!(0,r.zN)(n))return void setTimeout((()=>{const t=s.A.findID(i);if(!t||!(0,r.zN)(t))return;this._targetLinks.set(t.id,e),this._observableSections.set(t.id,t),this._updateRootElement(),this._setupTracking();const n=this._getSectionTop(t);this._scrollbar&&"function"==typeof this._scrollbar.scrollTo?this._scrollbar.scrollTo(0,n,600):this._rootElement?this._rootElement.scrollTo?this._rootElement.scrollTo({top:n,behavior:"smooth"}):this._rootElement.scrollTop=n:window.scrollTo?window.scrollTo({top:n,behavior:"smooth"}):document.documentElement.scrollTop=n,this._process(e)}),0);t.preventDefault(),this._updateRootElement(),this._setupTracking();const a=this._getSectionTop(n),o=this._rootElement;return this._scrollbar&&"function"==typeof this._scrollbar.scrollTo?(this._scrollbar.scrollTo(0,a,600),void this._process(e)):o?(o.scrollTo?o.scrollTo({top:a,behavior:"smooth"}):o.scrollTop=a,void this._process(e)):(window.scrollTo?window.scrollTo({top:a,behavior:"smooth"}):document.documentElement.scrollTop=a,void this._process(e))})))}_getNewObserver(){const t={root:this._rootElement,rootMargin:this._params.rootMargin,threshold:this._params.threshold};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(t.target.id),i=this._getParentScrollTop(),s=i>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=i;for(const i of t){if(!i.isIntersecting){this._clearActiveClass(e(i));continue}const t=this._getSectionTop(i.target),r=t>=this._previousScrollData.visibleEntryTop;(s&&r||!s&&!r)&&(this._previousScrollData.visibleEntryTop=t,this._process(e(i)))}}_initializeTargetsAndObservables(){this._targetLinks.clear(),this._observableSections.clear();const t=s.A.findAll(Yn,this._element);for(const e of t){if((0,r.d6)(e))continue;const t=this._getTargetIdFromTrigger(e);if(!t)continue;const i=s.A.findID(t);i&&(this._targetLinks.set(i.id,e),this._observableSections.set(i.id,i))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._element),this._activeTarget=t,t&&(t.classList.add(Kn),this._activateParents(t),g.A.trigger(this._element,qn,{relatedTarget:t})))}_activateParents(t){if(t.classList.contains("vg-dropdown-item")){const e=s.A.find('[data-vg-toggle="dropdown"]',t.closest(".vg-dropdown"));e&&e.classList.add(Kn)}else for(const e of s.A.parents(t,".nav, .list-group"))for(const t of s.A.prev(e,Xn))t.classList.add(Kn)}_clearActiveClass(t){if(!t)return;t.classList.remove(Kn);const e=s.A.findAll(`[href].${Kn}, [data-vg-target].${Kn}`,t);for(const t of e)t.classList.remove(Kn)}_getTargetIdFromTrigger(t){if(!t||"function"!=typeof t.getAttribute)return null;const e=(t.getAttribute("data-vg-target")||"").trim(),i=(t.getAttribute("href")||"").trim(),s=e&&"#"!==e?e:i&&(i.includes("#")||i.startsWith("#"))?i.includes("#")&&!i.startsWith("#")?`#${i.split("#")[1]}`:i:null;if(!s||"#"===s||!s.startsWith("#"))return null;const r=this._safeDecode(s);return r&&r.startsWith("#")&&r.length>1?r.slice(1):null}_safeDecode(t){try{return decodeURIComponent(t)}catch{try{return decodeURI(t)}catch{return t}}}}(()=>{let t=!1;const e=()=>{if(!t){t=!0;for(const t of s.A.findAll('[data-vg-toggle="spy"]'))Zn.getOrCreateInstance(t)}};"loading"===document.readyState?g.A.on(document,`DOMContentLoaded${jn}${Vn}`,e):e(),g.A.on(window,Wn,e)})();const Jn=Zn,Qn="vg.tabs",ta=`${Qn}.hide`,ea=`${Qn}.hidden`,ia=`${Qn}.show`,sa=`${Qn}.shown`,ra=`${Qn}.loaded`,na=`keydown.${Qn}`,aa=`load.${Qn}`,oa=`click.${Qn}`,la=`mouseover.${Qn}`,da=`mouseout.${Qn}`,ha=["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"],ca="ArrowRight",ua="ArrowDown",_a="Home",ma="End",pa="active",ga="hover",fa="fade",ba="show",va="vg-tabs-slider",ya='.vg-tabs-link:not([data-vg-toggle="dropdown"]), .list-group-item:not([data-vg-toggle="dropdown"]), [role="tab"]:not([data-vg-toggle="dropdown"])',wa='[data-vg-toggle="tab"]',Sa={DROPDOWN_TOGGLE:'[data-vg-toggle="dropdown"]',DROPDOWN_MENU:".dropdown-content",TAB_CLASS:".vg-tabs",TAB_PANEL:'.list-group, .vg-tabs-panel, [role="tablist"]',OUTER:".vg-tabs-item, .list-group-item",INNER:ya,DATA_TOGGLE:wa,INNER_ELEM:`${ya}, ${wa}`,DATA_TOGGLE_ACTIVE:'.active[data-vg-toggle="tab"]'};class Ca extends t.A{constructor(t,e){if(super(t,e),this._params=(0,r._v)({slide:!1,hash:!1,ajax:{route:"",target:"",method:"get",loader:!1,once:!0,output:!0}},this._params),this._parent=this._element.closest(Sa.TAB_PANEL),this._main_parent=this._parent?.closest(Sa.TAB_CLASS)||null,!this._parent)throw new TypeError(`${t.outerHTML} не имеет родителя с селектором ${Sa.INNER_ELEM}`);this._params=this._getParams(this._main_parent,this._params),this._params=this._getParams(this._element,this._params),this._setInitialAttributes(this._parent,this._getChildren()),this._setInitialSlider(),this._setTabHash(),g.A.on(this._element,na,(t=>this._keydown(t)))}static get NAME(){return"tabs"}static get NAME_KEY(){return Qn}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=t,s=e?g.A.trigger(e,ta,{relatedTarget:i}):null;g.A.trigger(t,ia,{relatedTarget:i}).defaultPrevented||s&&s.defaultPrevented||(this._deactivate(e,t),this._activate(t,i))}_elemIsActive(t){return t?.classList.contains(pa)||!1}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_activate(t,e){if(!t)return;t.classList.add(pa);const i=s.A.getElementFromSelector(t);i&&this._activate(i,e),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(this._route(((t,e)=>{g.A.trigger(this._element,ra,{stats:t,data:e})})),t.removeAttribute("tabindex"),t.setAttribute("aria-selected","true"),this._toggleDropDown(t,!0),g.A.trigger(t,sa,{relatedTarget:e})):t.classList.add(ba)}),t,t.classList.contains(fa))}_deactivate(t,e){if(!t)return;t.classList.remove(pa),t.blur();const i=s.A.getElementFromSelector(t);i&&this._deactivate(i,e),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected","false"),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),g.A.trigger(t,ea,{relatedTarget:e})):t.classList.remove(ba)}),t,t.classList.contains(fa))}_keydown(t){if(!ha.includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!(0,r.d6)(t)));let i;if([_a,ma].includes(t.key))i=e[t.key===_a?0:e.length-1];else{const s=[ca,ua].includes(t.key);i=(0,r.iq)(e,t.target,s,!0)}i&&(i.focus({preventScroll:!0}),Ca.getOrCreateInstance(i).show())}_setTabHash(){if(!this._params.hash)return;const t=document.location.toString();if(!t.includes("#"))return;const e=t.split("#")[1],i=s.A.find(`[href="#${e}"]`,this._parent)||s.A.find(`[data-vg-target="#${e}"]`,this._element)||null;i&&Ca.getOrCreateInstance(i).show()}_setInitialSlider(){if(!this._params.slide)return;let t=s.A.find(`.${va}`,this._main_parent);t||(t=document.createElement("span"),t.classList.add(va),this._main_parent.prepend(t)),this._main_parent.classList.add("vg-tabs-with-slider");const e=s.A.find(`.${pa}`,this._parent);if(!e)return;const{width:i,height:n}=window.getComputedStyle(e);e.classList.add(ga),t.style.width=i,t.style.height=n,t.style.left=`${e.offsetLeft}px`,g.A.on(this._main_parent,la,Sa.DATA_TOGGLE,(e=>{const i=e.target;if(["A","AREA"].includes(i.tagName)&&e.preventDefault(),(0,r.d6)(i))return;const n=s.A.find(`.${ga}`,this._parent);n&&n.classList.remove(ga),i.classList.add(ga);const{width:a,height:o}=window.getComputedStyle(i);t.style.width=a,t.style.height=o,t.style.left=`${i.offsetLeft}px`})),g.A.on(this._main_parent,da,Sa.DATA_TOGGLE,(()=>{const e=s.A.find(`.${pa}`,this._parent),{width:i,height:r}=window.getComputedStyle(e);s.A.findAll(`.${ga}`,this._parent).forEach((t=>t.classList.remove(ga))),e.classList.add(ga),t.style.width=i,t.style.height=r,t.style.left=`${e.offsetLeft}px`}))}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist"),e.forEach((t=>this._setInitialAttributesOnChild(t)))}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=s.A.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",t.id))}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_getChildren(){return s.A.findAll(Sa.INNER_ELEM,this._parent)}_getInnerElement(t){return t.matches(Sa.INNER_ELEM)?t:s.A.find(Sa.INNER_ELEM,t)}_getOuterElement(t){return t.closest(Sa.OUTER)||t}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const r=(t,r)=>{const n=s.A.find(t,i);n&&n.classList.toggle(r,e)};r(Sa.DROPDOWN_TOGGLE,pa),r(Sa.DROPDOWN_MENU,ba),i.setAttribute("aria-expanded",e)}}g.A.on(document,oa,Sa.DATA_TOGGLE,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),(0,r.d6)(this)||Ca.getOrCreateInstance(this).show()})),g.A.on(window,aa,(()=>{s.A.findAll(Sa.DATA_TOGGLE_ACTIVE).forEach((t=>{Ca.getOrCreateInstance(t)}))}));const Aa=Ca,Ea="vg.tooltip",xa='[data-vg-toggle="tooltip"]',Pa='[data-vg-toggle="popover"]',La="vg-tooltip-open",Ia="show",Ma="shown",Da=`${xa}.${Ia}, ${Pa}.${Ia}`,Ta=`${Ea}.hide`,ka=`${Ea}.hidden`,Fa=`${Ea}.show`,Ra=`${Ea}.shown`,Oa=`click.${Ea}.data.api`,Na=`mouseenter.${Ea}`,za=`mouseleave.${Ea}`,Ha=`click.dismiss.${Ea}`,$a=`keydown.dismiss.${Ea}`,Ba=["top","top-start","top-end","bottom","bottom-start","bottom-end","left","left-start","left-end","right","right-start","right-end"],ja={title:"",content:"",trigger:"hover",placement:"top",container:"body",popover:!1,html:!1,offset:[8,8],autoFlip:!0,overflowProtection:!0,fallbackPlacements:["bottom","right","left"],closeOnOutsideClick:!0,keyboard:!0,closeOther:!0,delay:{show:100,hide:100},arrow:{padding:8},custom:{class:""},animation:{enable:!0,in:"animate__backInUp",out:"animate__backOutDown",delay:300,effect:"none"}};class Va extends t.A{constructor(t,e={}){super(t,e),this._params=this._getParams(t,(0,r._v)(ja,e)),this._tooltip=null,this._isHiding=!1,this._showTimeout=null,this._hideTimeout=null,this._fixTitle(),this._handleUpdate=()=>{this._isShown()&&this._setPlacement()}}static get NAME(){return"tooltip"}static get NAME_KEY(){return Ea}toggle(t){return this._isShown()?this.hide():this.show(t)}show(t){(0,r.d6)(this._element)||this._isShown()||(this._clearTimeouts(),this._showTimeout=setTimeout((()=>{this._showTimeout=null,g.A.trigger(this._element,Fa,{relatedTarget:t}).defaultPrevented||(this._params.closeOther&&this._hideOpenedTooltips(),this._isHiding=!1,this._createTooltip(),this._tooltip&&(this._tooltip.classList.remove(Ma),this._tooltip.classList.add(Ia),this._element.classList.add(Ia),document.body.classList.add(La),this._addWindowListeners(),requestAnimationFrame((()=>{this._tooltip&&(this._setPlacement(),this._queueCallback((()=>{this._tooltip&&!this._isHiding&&(this._tooltip.classList.add(Ma),g.A.trigger(this._element,Ra,{relatedTarget:t}))}),this._tooltip,!0,this._params.animation.delay))}))))}),this._params.delay.show))}hide(){this._isShown()&&!this._isHiding&&this._tooltip&&(this._clearTimeouts(),this._hideTimeout=setTimeout((()=>{this._hideTimeout=null,g.A.trigger(this._element,Ta).defaultPrevented||(this._removeWindowListeners(),this._isHiding=!0,this._tooltip.classList.remove(Ma),this._queueCallback((()=>{this._tooltip&&(this._tooltip.classList.remove(Ia),this._element.classList.remove(Ia),this._element.removeAttribute("aria-describedby"),this._tooltip.remove(),this._tooltip=null,this._isHiding=!1,s.A.find(".vg-tooltip.show")||document.body.classList.remove(La),g.A.trigger(this._element,ka))}),this._tooltip,!1,this._params.animation.delay))}),this._params.delay.hide))}dispose(){this._clearTimeouts(),this._removeWindowListeners(),this._tooltip&&(this._tooltip.remove(),this._tooltip=null);const t=this._element.dataset.vgOriginalTitle;t&&this._element.setAttribute("title",t),super.dispose()}_isShown(){return!!this._element&&this._element.classList.contains(Ia)}_createTooltip(){if(this._tooltip)return;const t=this._getTitle();if(!t)return;const e=`vg-tooltip-${(0,r.PR)()}`,i=document.createElement("div");i.id=e,i.className=`vg-tooltip ${this._params.placement} ${this._params.custom.class||""}`,i.setAttribute("role",this._params.popover?"dialog":"tooltip"),this._params.popover&&i.classList.add("vg-tooltip-popover");const n=document.createElement("div");if(n.classList.add("vg-tooltip-inner"),this._params.content){const e=document.createElement("div");e.classList.add("vg-tooltip-inner--title");const i=document.createElement("div");i.classList.add("vg-tooltip-inner--content"),this._params.html?(e.innerHTML=t,i.innerHTML=this._params.content):(e.textContent=t,i.textContent=this._params.content),n.append(e),n.append(i)}else this._params.html?n.innerHTML=t:n.textContent=t;const a=document.createElement("div");a.classList.add("vg-tooltip-arrow"),n.append(a),i.append(n);const o="body"===this._params.container?document.body:s.A.find(this._params.container);o&&(o.append(i),this._element.setAttribute("aria-describedby",e),this._tooltip=i,this._animation(this._tooltip,Va.NAME_KEY,this._params.animation))}_getTitle(){return this._params.title||this._element.dataset.vgTitle||this._element.dataset.vgOriginalTitle||""}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.setAttribute("data-vg-original-title",t),this._element.removeAttribute("title"))}_setPlacement(){this._tooltip&&(new kt({reference:this._element,drop:this._tooltip,placement:this._params.placement,offset:this._params.offset,autoFlip:this._params.autoFlip,overflowProtection:this._params.overflowProtection,fallbackPlacements:this._params.fallbackPlacements,clamp:!0,isMerge:!1})._setPlacement(),this._syncPlacementClass(),this._setArrowPlacement())}_setArrowPlacement(){if(!this._tooltip)return;const t=this._tooltip.querySelector(".vg-tooltip-inner"),e=this._tooltip.querySelector(".vg-tooltip-arrow");if(!t||!e)return;const i=this._tooltip.getAttribute("data-vg-placement")||this._params.placement,s=this._element.getBoundingClientRect(),r=t.getBoundingClientRect(),n=s.left+s.width/2,a=s.top+s.height/2,o=this._params.arrow.padding;if(e.style.left="",e.style.right="",e.style.top="",e.style.bottom="",i.startsWith("top")||i.startsWith("bottom")){let t=n-r.left;t=Math.max(o,Math.min(t,r.width-o)),e.style.left=`${t}px`,e.style.transform="translateX(-50%) rotate(45deg)",i.startsWith("top")?e.style.bottom="-4px":e.style.top="-4px"}if(i.startsWith("left")||i.startsWith("right")){let t=a-r.top;t=Math.max(o,Math.min(t,r.height-o)),e.style.top=`${t}px`,e.style.transform="translateY(-50%) rotate(45deg)",i.startsWith("left")?e.style.right="-4px":e.style.left="-4px"}}_syncPlacementClass(){if(!this._tooltip)return;const t=this._tooltip.getAttribute("data-vg-placement");this._tooltip.classList.remove(...Ba),t&&this._tooltip.classList.add(t)}_hideOpenedTooltips(){s.A.findAll(".vg-tooltip.show").forEach((t=>{const e=t.id,i=s.A.find(`[aria-describedby="${e}"]`);if(!i||i===this._element)return;const r=Va.getInstance(i);r?.hide()}))}_addWindowListeners(){window.addEventListener("resize",this._handleUpdate),window.addEventListener("scroll",this._handleUpdate,!0)}_removeWindowListeners(){window.removeEventListener("resize",this._handleUpdate),window.removeEventListener("scroll",this._handleUpdate,!0)}_clearTimeouts(){this._showTimeout&&(clearTimeout(this._showTimeout),this._showTimeout=null),this._hideTimeout&&(clearTimeout(this._hideTimeout),this._hideTimeout=null)}}const qa=()=>s.A.findAll(Da).map((t=>Va.getInstance(t))).filter(Boolean);g.A.on(document,$a,(t=>{"Escape"===t.key&&qa().forEach((t=>{t._params.keyboard&&t._isShown()&&t.hide()}))})),g.A.on(document,Ha,(t=>{qa().forEach((e=>{e._params.closeOnOutsideClick&&(e._params.trigger.includes("click")||e._params.popover)&&e._isShown()&&(e._tooltip?.contains(t.target)||e._element.contains(t.target)||e.hide())}))})),g.A.on(document,Na,xa,(function(){const t=Va.getOrCreateInstance(this);t._params.trigger.includes("hover")&&t.show(this)})),g.A.on(document,za,xa,(function(){const t=Va.getOrCreateInstance(this);t._params.trigger.includes("hover")&&t.hide()})),g.A.on(document,Oa,xa,(function(t){const e=Va.getOrCreateInstance(this);e._params.popover&&(e._params.trigger="click"),e._params.trigger.includes("click")&&(t.preventDefault(),e.toggle(this))})),g.A.on(document,Oa,Pa,(function(t){t.preventDefault();const e=Va.getOrCreateInstance(this);e._params.popover=!0,e._params.trigger="click",e.toggle(this)}));const Ua=Va;(new class{constructor(){this._modules=new Map}register(...t){const e=t.flatMap((t=>Array.isArray(t)?t:t?[t]:[]));for(const t of e){const e=String(t?.NAME||"").trim();if(!e)throw new Error("VGApp.register() ожидает модуль со статическим NAME.");this._modules.set(e,t)}return this}boot(t={}){for(const[e,i]of this._modules){if("function"!=typeof i?.boot)continue;const s=this._resolveModuleConfig(e,t);i.boot(s)}return this}get(t){return this._modules.get(String(t).trim())}has(t){return this._modules.has(String(t).trim())}_resolveModuleConfig(t,e){if(e&&"object"==typeof e)return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0}}).register(ft,Tt,Zt,Ee,qi,vi,is,_s,Ss,V,Os,or,Er,Fr,Fn,$n,Jn,Aa,Ii.A,Ua)})(),i.r(s),s})()));
2
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.vgapp=e():t.vgapp=e()}(this,()=>(()=>{"use strict";var t={571(t,e,i){i.d(e,{A:()=>_});var s=i(381),r=i(829),n=i(911),a=i(667),o=i(647),l=i(810);class d{static get DEFAULTS(){return{enable:!1,in:"animate__fadeIn",out:"animate__fadeOut",duration:500}}constructor(t,e,i={}){this._element=t,this._nameKey=e,this._params=(0,s._v)(d.DEFAULTS,i),this._params.enable&&(0,s.vq)(t)&&(this._classes={animated:"animate__animated",duration:"animate__fast"},this._init())}_init(){const{classList:t}=this._element;t.add(this._classes.animated,this._classes.duration),t.contains("fade")&&t.remove("fade"),this._setupEventListeners()}_setupEventListeners(){o.A.on(this._element,`${this._nameKey}.show`,this._handleShow.bind(this),null),o.A.on(this._element,`${this._nameKey}.shown`,this._handleShown.bind(this),null),o.A.on(this._element,`${this._nameKey}.hide`,this._handleHide.bind(this),null),o.A.on(this._element,`${this._nameKey}.hidden`,this._handleHidden.bind(this),null)}_handleShow(){const{classList:t}=this._element,{in:e,out:i}=this._params;t.contains(i)&&t.remove(i),t.add(e)}_handleShown(){this._element.classList.add(this._classes.animated)}_handleHide(){const{classList:t}=this._element,{in:e,out:i}=this._params;t.contains(e)&&t.remove(e),t.add(i)}_handleHidden(){const{classList:t}=this._element,{in:e,out:i}=this._params;[...t].filter(t=>t.startsWith("animate__")).forEach(e=>t.remove(e)),t.add(this._classes.animated,this._classes.duration)}dispose(){o.A.off(this._element,`${this._nameKey}.show`,null,null),o.A.off(this._element,`${this._nameKey}.shown`,null,null),o.A.off(this._element,`${this._nameKey}.hide`,null,null),o.A.off(this._element,`${this._nameKey}.hidden`,null,null),[...this._element.classList].filter(t=>t.startsWith("animate__")).forEach(t=>this._element.classList.remove(t)),this._element=null}}const h=d;var c=i(11),u=i(601);const _=class{constructor(t){if(t){if(this._element=r.A.find(t),!this._element)throw new Error("Товарищ! Первый параметр не должен быть пустым!");this._params={},this._isLoaded=!1,n.A.set(this._element,this.constructor.NAME_KEY,this)}}_getParams(t,e){return new a.A(e,t).get()}dispose(){n.A.remove(this._element,this.constructor.NAME_KEY),o.A.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_route(t){if("function"!=typeof t)return this._requestRoute(t);let e=null,i=this._params.ajax.timeout||0;if(this._isLoaded)return;const n=t=>{"string"==typeof t?e&&(e.innerHTML=t):(0,s.Gv)(t)&&!(0,s.ze)(t)&&Object.values(t).forEach(t=>{"string"==typeof t&&e&&(e.innerHTML=t)})};if(!this._params.hasOwnProperty("ajax"))return;if(!this._params.ajax.route)return;!1 in this._params.ajax&&(this._params.ajax.method="get"),"target"in this._params.ajax&&this._params.ajax.target&&(e=r.A.find(this._params.ajax.target)),"loader"in this._params.ajax&&this._params.ajax.loader&&"output"in this._params.ajax&&this._params.ajax.output&&n((0,u.A)("string").div({class:"vg-loader"}));let a=(i,r)=>{"loader"in this._params.ajax&&this._params.ajax.loader&&n(""),"once"in this._params.ajax&&this._params.ajax.once&&(this._isLoaded=!0),"output"in this._params.ajax&&this._params.ajax.output&&n("response"in i?(0,s.OM)(i.response):i),(0,s.g7)(t,[r,i,e])};const o=new c.A;let l={onSuccess:t=>{a(t,"success")},onError:t=>{a(t,"error")}};setTimeout(()=>{"get"===this._params.ajax.method.toLowerCase()&&o.get(this._params.ajax.route,l),"post"===this._params.ajax.method.toLowerCase()&&o.post(this._params.ajax.route,this._params.ajax.data,l),"delete"===this._params.ajax.method.toLowerCase()&&o.delete(this._params.ajax.route,l)},i)}_requestRoute(t={}){const e=this._normalizeRouteRequestOptions(t);return c.A.requestRoute(e)}_buildRouteUrl(t={},e="",i={}){const s=this._normalizeRouteRequestOptions(Object.assign({},i,{params:t,route:e||i.route||""}));return c.A.buildRouteUrl(s.route,{params:s.params,baseParams:s.baseParams})}_normalizeRouteRequestOptions(t={}){const e=this._params&&(0,s.Gv)(this._params.request)?this._params.request:{},i=this._params&&(0,s.Gv)(this._params.ajax)?this._params.ajax:{},r=(0,s.Gv)(t)?t:{};return{route:String(r.route||r.endpoint||e.route||i.route||"").trim(),method:String(r.method||e.method||i.method||"GET").toUpperCase().trim()||"GET",credentials:String(r.credentials||e.credentials||"same-origin").trim()||"same-origin",headers:(0,s._v)({Accept:"application/json","X-Requested-With":"XMLHttpRequest"},(0,s.Gv)(e.headers)?e.headers:{},(0,s.Gv)(r.headers)?r.headers:{}),baseParams:(0,s._v)({},(0,s.Gv)(e.params)?e.params:{},(0,s.Gv)(r.baseParams)?r.baseParams:{},(0,s.Gv)(r.paramsBase)?r.paramsBase:{}),params:(0,s.Gv)(r.params)?r.params:{},body:void 0!==r.body?r.body:void 0!==r.data?r.data:null,signal:r.signal||null,responseType:String(r.responseType||r.parse||"auto").toLowerCase().trim()||"auto"}}_dismissElement(){let t=(0,l.z)("cross"),e=this._element.querySelector(".vg-btn-close");e&&(e.querySelector("svg")||e.insertAdjacentHTML("beforeend",t))}_queueCallback(t,e,i=!0,r){(0,s.dO)(t,e,i,r)}_animation(t,e,i={}){new h(t,e,i)}static getInstance(t){return n.A.get(r.A.find(t),this.NAME_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,(0,s.ze)(e)?{}:e)}static boot(t={}){if("function"==typeof this.initAll)return this.initAll(t);if("function"!=typeof this.init)return null;if(t&&Object.prototype.hasOwnProperty.call(t,"element")){const{element:e,...i}=t;return this.init(e,i)}return null}static get DATA_KEY(){return`vg.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}}},810(t,e,i){i.d(e,{P:()=>d,z:()=>l});var s=i(647),r=i(381),n=i(829);const a={pdf:"file-pdf",doc:"file-word",docx:"file-word",odt:"file-word",rtf:"file-word",xls:"file-exel",xlsx:"file-exel",xlsm:"file-exel",ods:"file-exel",csv:"file-exel",zip:"file-zip",rar:"file-zip","7z":"file-zip",tar:"file-zip",gz:"file-zip",tgz:"file-zip",txt:"file-text",md:"file-text",log:"file-text",json:"file-text",xml:"file-text",yml:"file-text",yaml:"file-text",php:"file-php",png:"file-image",jpg:"file-image",jpeg:"file-image",gif:"file-image",webp:"file-image",svg:"file-image",bmp:"file-image",tif:"file-image",tiff:"file-image",heic:"file-image",heif:"file-image",avif:"file-image",mp3:"file-audio",wav:"file-audio",ogg:"file-audio",flac:"file-audio",aac:"file-audio",m4a:"file-audio",mp4:"file-video",webm:"file-video",mov:"file-video",mkv:"file-video",avi:"file-video"},o=t=>{if(!t)return"";const e=String(t).toLowerCase().split("#")[0].split("?")[0].split("/").pop()||"";return e.includes(".")&&e.split(".").pop()||""},l=t=>((t,e={})=>{const i=e[t];if(i)return i;const s=e[(t=>{const{type:e,ext:i}=(t=>{if(!t)return{type:"",ext:""};if("object"==typeof t){const e=String(t.type||"").toLowerCase(),i=String(t.name||t.path||t.url||"").toLowerCase();return{type:e,ext:o(i)}}return{type:"",ext:o(t)}})(t);return"application/pdf"===e?"file-pdf":e.includes("word")?"file-word":e.includes("excel")||e.includes("spreadsheet")?"file-exel":e.includes("zip")||e.includes("compressed")?"file-zip":e.startsWith("text/")?"file-text":e.startsWith("image/")?"file-image":e.startsWith("audio/")?"file-audio":e.startsWith("video/")?"file-video":a[i]||"file-generic"})(t)];return s||e["file-generic"]||""})(t,{minus:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-dash" viewBox="0 0 16 16"><path d="M4 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7A.5.5 0 0 1 4 8"/></svg>',plus:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-plus" viewBox="0 0 16 16"><path d="M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4"/></svg>',"dots-six-vertical":'<svg viewBox="64 64 896 896" focusable="false" data-icon="holder" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M300 276.5a56 56 0 1056-97 56 56 0 00-56 97zm0 284a56 56 0 1056-97 56 56 0 00-56 97zM640 228a56 56 0 10112 0 56 56 0 00-112 0zm0 284a56 56 0 10112 0 56 56 0 00-112 0zM300 844.5a56 56 0 1056-97 56 56 0 00-56 97zM640 796a56 56 0 10112 0 56 56 0 00-112 0z"></path></svg>',chevron:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 12.392L8.74146 9.13354L7.0918 10.7832L11.1751 14.8665C11.3939 15.0853 11.6906 15.2081 12 15.2081C12.3093 15.2081 12.606 15.0853 12.8248 14.8665L16.9081 10.7832L15.2585 9.13354L12 12.392Z" fill="black"/></svg>',danger:'<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M36 4.5C53.3953 4.5 67.5 18.6047 67.5 36C67.5 53.3953 53.3953 67.5 36 67.5C18.6047 67.5 4.5 53.3953 4.5 36C4.5 18.6047 18.6047 4.5 36 4.5ZM44.9961 23.8237C44.9944 23.8242 44.9931 23.825 44.9902 23.8279L36 32.818L27.0098 23.8279C27.0069 23.825 27.0056 23.8242 27.0039 23.8237C27.0023 23.8232 27.0006 23.8232 26.999 23.8237C26.9975 23.8242 26.9961 23.825 26.9932 23.8279L23.8278 26.9932C23.825 26.9961 23.8243 26.9975 23.8237 26.9991C23.8232 27.0007 23.8232 27.0024 23.8237 27.004L23.8244 27.0056C23.8253 27.0071 23.8265 27.0085 23.8279 27.0098L32.818 36L23.8279 44.9903C23.825 44.9931 23.8242 44.9945 23.8237 44.9961C23.8232 44.9977 23.8232 44.9995 23.8237 45.0011C23.8242 45.0026 23.825 45.0039 23.8279 45.0068L26.9932 48.1723C26.9961 48.1751 26.9975 48.1758 26.9991 48.1764C27.0007 48.1769 27.0024 48.1769 27.004 48.1764C27.0056 48.1759 27.0069 48.1751 27.0098 48.1722L36 39.1819L44.9903 48.1721C44.9931 48.175 44.9945 48.1758 44.9961 48.1763C44.9977 48.1768 44.9995 48.1768 45.0011 48.1763C45.0026 48.1758 45.0039 48.175 45.0068 48.1721L48.1723 45.0068C48.1751 45.0039 48.1758 45.0025 48.1764 45.0009C48.1769 44.9993 48.1769 44.9976 48.1764 44.996L48.1757 44.9944C48.1747 44.9929 48.1736 44.9915 48.1722 44.9902L39.1819 36L48.1721 27.0098C48.175 27.0069 48.1758 27.0056 48.1763 27.0039C48.1768 27.0023 48.1768 27.0006 48.1763 26.999C48.1758 26.9975 48.175 26.9961 48.1721 26.9932L45.0068 23.8278C45.0039 23.825 45.0025 23.8243 45.0009 23.8237C44.9993 23.8232 44.9977 23.8232 44.9961 23.8237Z" fill="#000000"/></svg>',success:'<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M36 4.5C18.6047 4.5 4.5 18.6047 4.5 36C4.5 53.3953 18.6047 67.5 36 67.5C53.3953 67.5 67.5 53.3953 67.5 36C67.5 18.6047 53.3953 4.5 36 4.5ZM49.6055 25.7133L34.7977 46.2445C34.5907 46.5334 34.3179 46.7688 34.0018 46.9312C33.6857 47.0935 33.3354 47.1782 32.9801 47.1782C32.6247 47.1782 32.2745 47.0935 31.9584 46.9312C31.6423 46.7688 31.3695 46.5334 31.1625 46.2445L22.3945 34.0945C22.1273 33.7219 22.3945 33.2016 22.8516 33.2016H26.1492C26.8664 33.2016 27.5484 33.5461 27.9703 34.1367L32.9766 41.0836L44.0297 25.7555C44.4516 25.1719 45.1266 24.8203 45.8508 24.8203H49.1484C49.6055 24.8203 49.8727 25.3406 49.6055 25.7133Z" fill="#000000"/></svg>',waiting:'<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M51 10.02C55.5248 12.6326 59.2888 16.3816 61.9194 20.8959C64.5501 25.4103 65.9561 30.5334 65.9983 35.7581C66.0405 40.9828 64.7174 46.1279 62.1601 50.6841C59.6027 55.2404 55.8997 59.0497 51.4177 61.735C46.9357 64.4203 41.8301 65.8885 36.6063 65.9942C31.3825 66.1 26.2216 64.8395 21.6347 62.3378C17.0477 59.836 13.1936 56.1796 10.454 51.7306C7.71439 47.2816 6.18423 42.1942 6.015 36.972L6 36L6.015 35.028C6.18301 29.847 7.69064 24.7979 10.3909 20.373C13.0912 15.9481 16.892 12.2984 21.4227 9.77969C25.9534 7.26098 31.0594 5.95923 36.243 6.00136C41.4266 6.04348 46.5108 7.42804 51 10.02ZM36 18C35.2652 18.0001 34.556 18.2699 34.0069 18.7582C33.4578 19.2465 33.107 19.9193 33.021 20.649L33 21V36L33.027 36.393C33.0954 36.9135 33.2992 37.407 33.618 37.824L33.879 38.124L42.879 47.124L43.161 47.37C43.6871 47.7782 44.3341 47.9998 45 47.9998C45.6659 47.9998 46.3129 47.7782 46.839 47.37L47.121 47.121L47.37 46.839C47.7782 46.3129 47.9998 45.6659 47.9998 45C47.9998 44.3341 47.7782 43.6872 47.37 43.161L47.121 42.879L39 34.755V21L38.979 20.649C38.893 19.9193 38.5422 19.2465 37.9931 18.7582C37.444 18.2699 36.7348 18.0001 36 18Z" fill="black"/></svg>',warning:'<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M36.5 5C44.8543 5 52.8665 8.31874 58.7739 14.2261C64.6813 20.1335 68 28.1457 68 36.5C68 44.8543 64.6813 52.8665 58.7739 58.7739C52.8665 64.6813 44.8543 68 36.5 68C28.1457 68 20.1335 64.6813 14.2261 58.7739C8.31874 52.8665 5 44.8543 5 36.5C5 28.1457 8.31874 20.1335 14.2261 14.2261C20.1335 8.31874 28.1457 5 36.5 5ZM36.5 18.5C35.9287 18.4995 35.3635 18.6181 34.8406 18.8484C34.3178 19.0786 33.8487 19.4154 33.4633 19.8372C33.0779 20.259 32.7848 20.7565 32.6025 21.298C32.4203 21.8395 32.353 22.413 32.405 22.982L34.0475 41.009C34.1112 41.6151 34.397 42.1761 34.8499 42.5839C35.3028 42.9917 35.8906 43.2173 36.5 43.2173C37.1094 43.2173 37.6972 42.9917 38.1501 42.5839C38.603 42.1761 38.8888 41.6151 38.9525 41.009L40.5905 22.982C40.6424 22.4134 40.5753 21.8403 40.3933 21.2991C40.2114 20.7579 39.9186 20.2606 39.5337 19.8389C39.1488 19.4171 38.6803 19.0803 38.1579 18.8498C37.6356 18.6192 37.0709 18.5001 36.5 18.5ZM36.5 54.5C37.4548 54.5 38.3705 54.1207 39.0456 53.4456C39.7207 52.7705 40.1 51.8548 40.1 50.9C40.1 49.9452 39.7207 49.0295 39.0456 48.3544C38.3705 47.6793 37.4548 47.3 36.5 47.3C35.5452 47.3 34.6295 47.6793 33.9544 48.3544C33.2793 49.0295 32.9 49.9452 32.9 50.9C32.9 51.8548 33.2793 52.7705 33.9544 53.4456C34.6295 54.1207 35.5452 54.5 36.5 54.5Z" fill="#000000"/></svg>',info:'<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M36 4.5C18.6047 4.5 4.5 18.6047 4.5 36C4.5 53.3953 18.6047 67.5 36 67.5C53.3953 67.5 67.5 53.3953 67.5 36C67.5 18.6047 53.3953 4.5 36 4.5ZM33.75 20.8125C33.75 20.5031 34.0031 20.25 34.3125 20.25H37.6875C37.9969 20.25 38.25 20.5031 38.25 20.8125V39.9375C38.25 40.2469 37.9969 40.5 37.6875 40.5H34.3125C34.0031 40.5 33.75 40.2469 33.75 39.9375V20.8125ZM36 51.75C35.1168 51.732 34.2759 51.3685 33.6577 50.7375C33.0395 50.1065 32.6932 49.2584 32.6932 48.375C32.6932 47.4916 33.0395 46.6435 33.6577 46.0125C34.2759 45.3815 35.1168 45.018 36 45C36.8832 45.018 37.7241 45.3815 38.3423 46.0125C38.9605 46.6435 39.3068 47.4916 39.3068 48.375C39.3068 49.2584 38.9605 50.1065 38.3423 50.7375C37.7241 51.3685 36.8832 51.732 36 51.75Z" fill="#000000"/></svg>',dots:'<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M10 17C11.1046 17 12 16.1046 12 15C12 13.8954 11.1046 13 10 13C8.89543 13 8 13.8954 8 15C8 16.1046 8.89543 17 10 17Z" fill="black"/><path d="M10 12C11.1046 12 12 11.1046 12 10C12 8.89543 11.1046 8 10 8C8.89543 8 8 8.89543 8 10C8 11.1046 8.89543 12 10 12Z" fill="black"/><path d="M10 7C11.1046 7 12 6.10457 12 5C12 3.89543 11.1046 3 10 3C8.89543 3 8 3.89543 8 5C8 6.10457 8.89543 7 10 7Z" fill="black"/></svg>',cross:'<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M15.3149 0.340332C15.4478 0.20752 15.6027 0.118978 15.7798 0.074707C15.9569 0.0249023 16.134 0.0249023 16.311 0.074707C16.4881 0.118978 16.6431 0.20752 16.7759 0.340332C16.9142 0.473145 17.0055 0.630859 17.0498 0.813477C17.0941 0.99056 17.0941 1.16764 17.0498 1.34473C17.0055 1.52181 16.917 1.67676 16.7842 1.80957L1.80127 16.8008C1.67399 16.9281 1.52181 17.0111 1.34473 17.0498C1.16764 17.0941 0.987793 17.0941 0.805176 17.0498C0.628092 17.0111 0.470378 16.9253 0.332031 16.7925C0.199219 16.6597 0.110677 16.502 0.0664062 16.3193C0.0221354 16.1423 0.0221354 15.9652 0.0664062 15.7881C0.110677 15.611 0.196452 15.4588 0.32373 15.3315L15.3149 0.340332ZM16.7842 15.3232C16.917 15.4561 17.0028 15.6082 17.0415 15.7798C17.0858 15.9569 17.0858 16.134 17.0415 16.311C17.0028 16.4937 16.9142 16.6541 16.7759 16.7925C16.6431 16.9253 16.4881 17.0138 16.311 17.0581C16.134 17.1024 15.9569 17.1024 15.7798 17.0581C15.6027 17.0138 15.4478 16.9253 15.3149 16.7925L0.32373 1.80127C0.201986 1.67952 0.116211 1.53011 0.0664062 1.35303C0.0221354 1.17594 0.0221354 0.996094 0.0664062 0.813477C0.116211 0.630859 0.204753 0.473145 0.332031 0.340332C0.464844 0.20752 0.622559 0.118978 0.805176 0.074707C0.987793 0.0304362 1.16488 0.0304362 1.33643 0.074707C1.51351 0.118978 1.66846 0.204753 1.80127 0.332031L16.7842 15.3232Z" fill="#000"/></svg>',"eye-open":'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z"/></svg>',"eye-hide":'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zm151 118.3C226 97.7 269.5 80 320 80c65.2 0 118.8 29.6 159.9 67.7C518.4 183.5 545 226 558.6 256c-12.6 28-36.6 66.8-70.9 100.9l-53.8-42.2c9.1-17.6 14.2-37.5 14.2-58.7c0-70.7-57.3-128-128-128c-32.2 0-61.7 11.9-84.2 31.5l-46.1-36.1zM394.9 284.2l-81.5-63.9c4.2-8.5 6.6-18.2 6.6-28.3c0-5.5-.7-10.9-2-16c.7 0 1.3 0 2 0c44.2 0 80 35.8 80 80c0 9.9-1.8 19.4-5.1 28.2zm9.4 130.3C378.8 425.4 350.7 432 320 432c-65.2 0-118.8-29.6-159.9-67.7C121.6 328.5 95 286 81.4 256c8.3-18.4 21.5-41.5 39.4-64.8L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5l-41.9-33zM192 256c0 70.7 57.3 128 128 128c13.3 0 26.1-2 38.2-5.8L302 334c-23.5-5.4-43.1-21.2-53.7-42.3l-56.1-44.2c-.2 2.8-.3 5.6-.3 8.5z"/></svg>',trash:'<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.5013 3.33332H14.918C14.5193 1.39465 12.8139 0.0025 10.8346 0H9.16793C7.18867 0.0025 5.48328 1.39465 5.08461 3.33332H2.50129C2.04105 3.33332 1.66797 3.70641 1.66797 4.16664C1.66797 4.62687 2.04105 5 2.50129 5H3.33461V15.8333C3.33738 18.1334 5.20125 19.9973 7.50129 20H12.5013C14.8013 19.9973 16.6652 18.1334 16.668 15.8333V5H17.5013C17.9615 5 18.3346 4.62691 18.3346 4.16668C18.3346 3.70645 17.9615 3.33332 17.5013 3.33332ZM9.16797 14.1667C9.16797 14.6269 8.79488 15 8.33465 15C7.87437 15 7.50129 14.6269 7.50129 14.1667V9.16668C7.50129 8.70645 7.87437 8.33336 8.33461 8.33336C8.79484 8.33336 9.16793 8.70645 9.16793 9.16668V14.1667H9.16797ZM12.5013 14.1667C12.5013 14.6269 12.1282 15 11.668 15C11.2077 15 10.8346 14.6269 10.8346 14.1667V9.16668C10.8346 8.70645 11.2077 8.33336 11.668 8.33336C12.1282 8.33336 12.5013 8.70645 12.5013 9.16668V14.1667ZM6.81047 3.33332C7.16492 2.33523 8.10883 1.66793 9.16797 1.66664H10.8346C11.8938 1.66793 12.8377 2.33523 13.1921 3.33332H6.81047Z" fill="black" fill-opacity="0.5"/></svg>',spinner:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_290_5000)"><path d="M14.6414 8.58333C14.5128 10.1032 13.8685 11.5335 12.8153 12.6368C11.7621 13.7401 10.3634 14.4502 8.85109 14.6493C7.33883 14.8483 5.80396 14.5244 4.50113 13.7311C3.19831 12.9379 2.20584 11.7231 1.68838 10.2882C1.17092 8.85338 1.15958 7.28474 1.65623 5.84255C2.15289 4.40037 3.12769 3.17133 4.41891 2.35934C5.71013 1.54735 7.24015 1.20123 8.75514 1.37839C10.2701 1.55555 11.679 2.24534 12.748 3.33333H10.6667C10.4899 3.33333 10.3203 3.40357 10.1953 3.5286C10.0703 3.65362 10 3.82319 10 4C10 4.17681 10.0703 4.34638 10.1953 4.47141C10.3203 4.59643 10.4899 4.66667 10.6667 4.66667H13.4287C13.757 4.66649 14.0718 4.536 14.3039 4.30387C14.5361 4.07174 14.6665 3.75695 14.6667 3.42867V0.666667C14.6667 0.489856 14.5965 0.320286 14.4715 0.195262C14.3464 0.0702379 14.1769 0 14 0C13.8232 0 13.6537 0.0702379 13.5286 0.195262C13.4036 0.320286 13.3334 0.489856 13.3334 0.666667V2.052C11.9925 0.853819 10.2866 0.142989 8.4917 0.0344742C6.69675 -0.0740408 4.91768 0.426105 3.44222 1.45402C1.96675 2.48194 0.881175 3.97752 0.361055 5.69888C-0.159065 7.42024 -0.0833125 9.26672 0.57606 10.9397C1.23543 12.6127 2.43987 14.0143 3.99457 14.9179C5.54928 15.8215 7.36334 16.1742 9.14336 15.9191C10.9234 15.6639 12.5653 14.8157 13.8035 13.5117C15.0417 12.2077 15.8039 10.5242 15.9667 8.73333C15.9753 8.6405 15.9645 8.54688 15.9349 8.45846C15.9054 8.37003 15.8577 8.28873 15.795 8.21974C15.7323 8.15075 15.6559 8.09559 15.5707 8.05775C15.4854 8.01992 15.3933 8.00025 15.3 8C15.1374 7.99804 14.9799 8.05669 14.8581 8.16452C14.7364 8.27236 14.6591 8.42165 14.6414 8.58333Z" fill="black" fill-opacity="0.35"/></g><defs><clipPath id="clip0_290_5000"><rect width="16" height="16" fill="white"/></clipPath></defs></svg>',check:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.29448 19L3 12.8378L4.57362 11.2973L9.29448 15.9189L19.4264 6L21 7.54054L9.29448 19Z" fill="black"/></svg>',"cloud-dot":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14.1401 13.925C14.2399 13.9266 14.3378 13.8983 14.4213 13.8438C14.5049 13.7893 14.5702 13.711 14.6089 13.6191C14.6476 13.5272 14.6579 13.4258 14.6385 13.3279C14.6192 13.2301 14.5709 13.1402 14.5001 13.07L12.0001 10.57L9.50011 13.07C9.4182 13.1657 9.3754 13.2887 9.38026 13.4145C9.38512 13.5404 9.43728 13.6597 9.52633 13.7488C9.61538 13.8378 9.73475 13.89 9.86058 13.8949C9.98642 13.8997 10.1095 13.8569 10.2051 13.775L11.5001 12.5V18.625C11.5001 18.7576 11.5528 18.8848 11.6466 18.9786C11.7403 19.0723 11.8675 19.125 12.0001 19.125C12.1327 19.125 12.2599 19.0723 12.3537 18.9786C12.4474 18.8848 12.5001 18.7576 12.5001 18.625V12.5L13.7851 13.785C13.8803 13.8768 14.0079 13.9271 14.1401 13.925Z" fill="black"/><path d="M18.46 9.71996C18.0211 9.77884 17.5751 9.7551 17.145 9.64996V9.76496L17.105 10.125L17.43 10.275C18.0502 10.5605 18.5545 11.0491 18.8595 11.6601C19.1645 12.271 19.2519 12.9677 19.1074 13.6351C18.9628 14.3024 18.5949 14.9005 18.0645 15.3305C17.5341 15.7605 16.8728 15.9966 16.19 16H13.5V17H16.19C17.0395 16.9958 17.8657 16.7214 18.5488 16.2163C19.2319 15.7112 19.7364 15.0017 19.9893 14.1907C20.2422 13.3797 20.2303 12.5092 19.9553 11.7054C19.6804 10.9016 19.1566 10.2062 18.46 9.71996Z" fill="black"/><path d="M4.80029 12.19C4.80848 11.2 5.19728 10.251 5.88612 9.53986C6.57495 8.82869 7.51101 8.40981 8.50029 8.37003H8.83529L8.95029 8.05503C9.2604 7.2496 9.81028 6.55878 10.5256 6.07591C11.241 5.59305 12.0873 5.34142 12.9503 5.35503C13.4051 5.35535 13.8572 5.42619 14.2903 5.56503C14.3299 5.23197 14.414 4.90573 14.5403 4.59503C14.0252 4.43613 13.4893 4.35523 12.9503 4.35503C11.9414 4.3468 10.9516 4.63029 10.1 5.1714C9.24844 5.7125 8.57138 6.48816 8.15029 7.40503C6.96363 7.53241 5.86506 8.09111 5.06315 8.97505C4.26125 9.85898 3.81186 11.0066 3.80029 12.2C3.8016 12.8321 3.92748 13.4577 4.17073 14.0411C4.41398 14.6245 4.76984 15.1543 5.21794 15.6001C5.66605 16.0459 6.19763 16.3989 6.78229 16.6392C7.36695 16.8794 7.99321 17.002 8.62529 17H10.5003V16H8.62529C7.61384 15.9987 6.64396 15.5974 5.92735 14.8836C5.21074 14.1698 4.80557 13.2015 4.80029 12.19Z" fill="black"/><path class="dot" d="M18 8.5C19.3807 8.5 20.5 7.38071 20.5 6C20.5 4.61929 19.3807 3.5 18 3.5C16.6193 3.5 15.5 4.61929 15.5 6C15.5 7.38071 16.6193 8.5 18 8.5Z" fill="black"/></svg>',"file-generic":'<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111Z" fill="black"/></svg>',"file-exel":'<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111ZM64.2625 72.5125L56.5375 59.7125C56.2625 59.2625 55.775 58.9875 55.25 58.9875H50.45C50.1625 58.9875 49.8875 59.0625 49.65 59.225C48.95 59.6625 48.7375 60.5875 49.1875 61.3L59.475 77.6L49.05 94.2C48.9084 94.4277 48.8301 94.6891 48.8234 94.9571C48.8166 95.2252 48.8816 95.4902 49.0116 95.7247C49.1416 95.9592 49.3319 96.1547 49.5628 96.291C49.7937 96.4273 50.0569 96.4995 50.325 96.5H54.6375C55.1625 96.5 55.6375 96.225 55.9125 95.7875L63.75 83.1L71.5375 95.775C71.8125 96.225 72.3 96.4875 72.8125 96.4875H77.5C77.7875 96.4875 78.0625 96.4 78.3125 96.25C79.0125 95.8 79.2125 94.875 78.7625 94.175L68.2625 77.875L78.925 61.3125C79.0693 61.0855 79.1502 60.824 79.1591 60.5551C79.1681 60.2863 79.1048 60.0199 78.9759 59.7838C78.847 59.5477 78.6572 59.3505 78.4262 59.2126C78.1952 59.0748 77.9315 59.0013 77.6625 59H73.2C72.675 59 72.1875 59.275 71.9125 59.725L64.2625 72.5125Z" fill="black"/></svg>',"file-word":'<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111ZM66.0125 59H61.9875C61.3 59 60.7 59.4625 60.5375 60.1375L54.325 85L48.5625 60.1625C48.4 59.4875 47.8 59 47.1 59H42.675C42.4451 59.0004 42.2183 59.0535 42.0121 59.1553C41.806 59.2571 41.6259 59.4048 41.4858 59.5872C41.3458 59.7695 41.2494 59.9816 41.2042 60.207C41.159 60.4324 41.1661 60.6652 41.225 60.8875L50.5 95.3875C50.675 96.0375 51.275 96.5 51.95 96.5H55.95C56.625 96.5 57.225 96.05 57.4 95.3875L64 70.7625L70.6 95.3875C70.775 96.0375 71.375 96.5 72.05 96.5H76.025C76.7 96.5 77.3 96.05 77.475 95.3875L86.775 60.8875C86.8334 60.6653 86.8401 60.4326 86.7947 60.2074C86.7493 59.9822 86.6529 59.7703 86.5129 59.5881C86.3729 59.4059 86.1931 59.2582 85.9872 59.1562C85.7813 59.0543 85.5548 59.0009 85.325 59H80.875C80.175 59 79.575 59.4875 79.4125 60.1625L73.6875 85.05L67.4625 60.1375C67.3 59.4625 66.7 59 66.0125 59Z" fill="black"/></svg>',"file-pdf":'<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M66.4125 71.8L66.45 71.625C67.175 68.6375 68.0875 64.9125 67.375 61.5375C66.9 58.875 64.9375 57.8375 63.2625 57.7625C61.2875 57.675 59.525 58.8 59.0875 60.4375C58.2625 63.4375 59 67.5375 60.35 72.7625C58.65 76.8125 55.9375 82.7 53.95 86.2C50.25 88.1125 45.2875 91.0625 44.55 94.7875C44.4 95.475 44.575 96.35 44.9875 97.1375C45.45 98.0125 46.1875 98.6875 47.05 99.0125C47.425 99.15 47.875 99.2625 48.4 99.2625C50.6 99.2625 54.1625 97.4875 58.9125 89.3375C59.6375 89.1 60.3875 88.85 61.1125 88.6C64.5125 87.45 68.0375 86.25 71.225 85.7125C74.75 87.6 78.7625 88.8125 81.4875 88.8125C84.1875 88.8125 85.25 87.2125 85.65 86.25C86.35 84.5625 86.0125 82.4375 84.875 81.3C83.225 79.675 79.2125 79.25 72.9625 80.025C69.8875 78.15 67.875 75.6 66.4125 71.8ZM52.7 90.7875C50.9625 93.3125 49.65 94.575 48.9375 95.125C49.775 93.5875 51.4125 91.9625 52.7 90.7875ZM63.65 61.35C64.3 62.4625 64.2125 65.825 63.7125 67.525C63.1 65.0375 63.0125 61.5125 63.375 61.1C63.475 61.1125 63.5625 61.1875 63.65 61.35ZM63.45 76.4125C64.7875 78.725 66.475 80.7125 68.3375 82.1875C65.6375 82.8 63.175 83.8125 60.975 84.7125C60.45 84.925 59.9375 85.1375 59.4375 85.3375C61.1 82.325 62.4875 78.9125 63.45 76.4125ZM82.9 84.6C82.9125 84.625 82.925 84.6625 82.85 84.7125H82.825L82.8 84.75C82.7 84.8125 81.675 85.4125 77.2625 83.675C82.3375 83.4375 82.8875 84.5875 82.9 84.6ZM106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111Z" fill="black"/></svg>',"file-zip":'<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M37 49H45V57H37V49ZM37 72.75V92.75H53V72.75H45V65H37V72.75ZM47 78.75V86.75H43V78.75H47ZM45 41H53V49H45V41ZM37 33H45V41H37V33ZM45 57H53V65H45V57ZM45 25H53V33H45V25ZM106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H37V25H45V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111Z" fill="black"/></svg>',"file-text":'<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111ZM63 77.25H40C39.45 77.25 39 77.7 39 78.25V84.25C39 84.8 39.45 85.25 40 85.25H63C63.55 85.25 64 84.8 64 84.25V78.25C64 77.7 63.55 77.25 63 77.25ZM39 61.25V67.25C39 67.8 39.45 68.25 40 68.25H88C88.55 68.25 89 67.8 89 67.25V61.25C89 60.7 88.55 60.25 88 60.25H40C39.45 60.25 39 60.7 39 61.25Z" fill="black"/></svg>',"file-image":'<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M69.1375 63.6375L59.4125 76.0375L54.275 69.4875C54.1815 69.368 54.0619 69.2713 53.9255 69.2048C53.7891 69.1384 53.6393 69.1038 53.4875 69.1038C53.3357 69.1038 53.1859 69.1384 53.0495 69.2048C52.9131 69.2713 52.7935 69.368 52.7 69.4875L40.225 85.3875C40.1096 85.5349 40.038 85.7118 40.0183 85.8979C39.9987 86.0841 40.0319 86.272 40.114 86.4402C40.1962 86.6084 40.324 86.7501 40.4829 86.8491C40.6418 86.9481 40.8253 87.0004 41.0125 87H87C87.8375 87 88.3 86.0375 87.7875 85.3875L70.725 63.6375C70.6302 63.5178 70.5096 63.4211 70.3721 63.3546C70.2347 63.2881 70.0839 63.2536 69.9313 63.2536C69.7786 63.2536 69.6278 63.2881 69.4904 63.3546C69.3529 63.4211 69.2323 63.5178 69.1375 63.6375ZM45 55.25C45 56.5761 45.5268 57.8479 46.4645 58.7855C47.4021 59.7232 48.6739 60.25 50 60.25C51.3261 60.25 52.5979 59.7232 53.5355 58.7855C54.4732 57.8479 55 56.5761 55 55.25C55 53.9239 54.4732 52.6521 53.5355 51.7145C52.5979 50.7768 51.3261 50.25 50 50.25C48.6739 50.25 47.4021 50.7768 46.4645 51.7145C45.5268 52.6521 45 53.9239 45 55.25ZM106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111Z" fill="black"/></svg>',"file-audio":'<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111Z" fill="black"/><path d="M64.6781 93.0344C62.701 95.0114 60.2677 96 57.3781 96C54.4885 96 52.0552 95.0114 50.0781 93.0344C48.1011 91.0573 47.1125 88.624 47.1125 85.7344C47.1125 82.8448 48.1011 80.4115 50.0781 78.4344C52.0552 76.4573 54.4885 75.4688 57.3781 75.4688C58.4458 75.4657 59.4541 75.598 60.4031 75.8657C61.3521 76.1333 62.2448 76.5714 63.0813 77.1797V64.0625C63.0843 62.7728 63.5223 61.69 64.3953 60.814C65.2682 59.938 66.351 59.5 67.6438 59.5H76.7688C78.0615 59.5 79.1443 59.938 80.0172 60.814C80.8902 61.69 81.3282 62.7728 81.3313 64.0625C81.3343 65.3522 80.8978 66.435 80.0218 67.311C79.1458 68.187 78.0615 68.625 76.7688 68.625H67.6438V85.7344C67.6438 88.624 66.6552 91.0573 64.6781 93.0344Z" fill="black"/></svg>',"file-video":'<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111Z" fill="black"/><path d="M44.2566 71.7109C44.2566 70.0637 44.911 68.4839 46.0758 67.3191C47.2405 66.1544 48.8203 65.5 50.4676 65.5H64.5457C66.1929 65.5 67.7727 66.1544 68.9375 67.3191C70.1023 68.4839 70.7566 70.0637 70.7566 71.7109V85.7891C70.7566 87.4363 70.1023 89.0161 68.9375 90.1809C67.7727 91.3456 66.1929 92 64.5457 92H50.4676C48.8203 92 47.2405 91.3456 46.0758 90.1809C44.911 89.0161 44.2566 87.4363 44.2566 85.7891V71.7109ZM79.4552 89.8187L72.4129 84.956V72.5391L79.4552 67.6763C81.3765 66.348 84 67.726 84 70.0613V87.4354C84 89.7707 81.3782 91.1454 79.4552 89.8187Z" fill="black"/></svg>',download:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5"/><path d="M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708z"/></svg>',play:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M10.804 8 5 4.633v6.734zm.792-.696a.802.802 0 0 1 0 1.392l-6.363 3.692C4.713 12.69 4 12.345 4 11.692V4.308c0-.653.713-.998 1.233-.696z"/></svg>',pause:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M6.25 5C5.56 5 5 5.56 5 6.25v3.5a1.25 1.25 0 1 0 2.5 0v-3.5C7.5 5.56 6.94 5 6.25 5m3.5 0c-.69 0-1.25.56-1.25 1.25v3.5a1.25 1.25 0 1 0 2.5 0v-3.5C11 5.56 10.44 5 9.75 5"/></svg>'}),d=(t,e="hide")=>{const i=`click.dismiss.${t.EVENT_KEY}`,a=t.NAME;s.A.on(document,i,`[data-vg-dismiss="${a}"]`,function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),(0,r.d6)(this))return;const s=n.A.getSelectorFromElement(this)||this.closest(`.vg-${a}`);t.getOrCreateInstance(s)[e]()})}},355(t,e,i){i.d(e,{default:()=>o});var s=i(829),r=i(381),n=i(11),a=i(483);const o=class{constructor(t,e={}){this._vg=t,this._params={handle:".file",itemSelector:"li.file",route:null,method:"POST",toast:!0,...e},!e.itemSelector&&e.handle&&(this._params.itemSelector=`li${e.handle}`),this._params.route||console.warn("VGFilesSortable: Не указан маршрут `route` для сохранения порядка."),this._params.lists?.length?this._list=this._params.lists.map(t=>s.A.find("."+t,this._vg._element)).find(t=>t):this._list=this._vg._nodes.list,(0,r.vq)(this._list)?(this._draggedItem=null,this._boundOnDragStart=this._onDragStart.bind(this),this._boundOnDragEnd=this._onDragEnd.bind(this),this._boundOnDragOver=this._onDragOver.bind(this),this._boundOnDrop=this._onDrop.bind(this),this._init()):console.error("VGFilesSortable: Не найден контейнер списка файлов")}_init(){this._enableDraggableItems(),this._setupEvents(),this._vg._triggerCallback("onSortableInit")}_enableDraggableItems(){this._list.querySelectorAll(this._params.itemSelector).forEach(t=>{t.setAttribute("draggable","true");const e=t.querySelector("img");e&&e.setAttribute("draggable","false")})}_setupEvents(){this._list.addEventListener("dragstart",this._boundOnDragStart),this._list.addEventListener("dragend",this._boundOnDragEnd),this._list.addEventListener("dragover",this._boundOnDragOver),this._list.addEventListener("drop",this._boundOnDrop)}_onDragStart(t){if(!t.target.closest(this._params.handle))return;const e=t.target.closest(this._params.itemSelector)||t.target.closest("li");e&&(this._draggedItem=e,t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain","vgsortable"),e.classList.add("dragging"),requestAnimationFrame(()=>e.classList.add("dragging-transparent")))}_onDragEnd(t){this._draggedItem&&(this._draggedItem.classList.remove("dragging","dragging-transparent"),this._draggedItem=null,this._saveOrder())}_onDragOver(t){if(!this._draggedItem)return;t.preventDefault(),t.dataTransfer.dropEffect="move";const e=t.target.closest(this._params.itemSelector)||t.target.closest("li");if(!e||e===this._draggedItem)return;const i=e.getBoundingClientRect(),s=i.height/2;t.clientY-i.top<s?this._list.insertBefore(this._draggedItem,e):this._list.insertBefore(this._draggedItem,e.nextSibling)}_onDrop(t){if(this._draggedItem)return t.preventDefault(),t.stopPropagation(),!1}_saveOrder(){const t=[...new Set(this._getUploadedIds())];t.length&&this._params.route&&(new n.A).post(this._params.route,{ids:t},{onSuccess:t=>a.A.run(t.response.message)})}_getUploadedIds(){return Array.from(this._list.querySelectorAll("[data-id]")).map(t=>(0,r.OM)(t.getAttribute("data-id"))||null).filter(t=>null!==t)}destroy(){this._list.removeEventListener("dragstart",this._boundOnDragStart),this._list.removeEventListener("dragend",this._boundOnDragEnd),this._list.removeEventListener("dragover",this._boundOnDragOver),this._list.removeEventListener("drop",this._boundOnDrop),this._draggedItem=null}}},483(t,e,i){i.d(e,{A:()=>s});const s=i(614).A},614(t,e,i){i.d(e,{A:()=>k});var s=i(571),r=i(647),n=i(810),a=i(546),o=i(381),l=i(829);const d={enable:!1,selector:".vg-toast-wrapper",threshold:4,resizeEdgeSize:8,debug:!1},h=class{constructor(t,e,i={}){this._modalElement=t,this._dialogElement=e,this._options=this._normalizeOptions(i),this._pointerId=null,this._dragTarget=null,this._isDragging=!1,this._startX=0,this._startY=0,this._currentX=0,this._currentY=0,this._dialogStartLeft=0,this._dialogStartTop=0,this._dialogWidth=0,this._dialogHeight=0,this._isEnabled=!1,this._previousUserSelect="",this._previousTransition="",this._previousWillChange="",this._initialRect=null,this._lockedIframes=[],this._debugElement=null,this._onPointerMove=this._onPointerMove.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onPointerDown=this._onPointerDown.bind(this),this._onNativeDragStart=this._onNativeDragStart.bind(this)}setOptions(t={}){this._options=this._normalizeOptions(t,this._options),this._updateDebugOverlay()}enable(){this._dialogElement&&!this._isEnabled&&(this._updateDebugOverlay(),this._dialogElement.addEventListener("pointerdown",this._onPointerDown),this._isEnabled=!0)}disable(){this._dialogElement&&this._isEnabled&&(this._dialogElement.removeEventListener("pointerdown",this._onPointerDown),document.removeEventListener("pointermove",this._onPointerMove),document.removeEventListener("pointerup",this._onPointerUp),document.removeEventListener("pointercancel",this._onPointerUp),document.removeEventListener("dragstart",this._onNativeDragStart,!0),this._dialogElement.style.touchAction="",document.body.style.userSelect=this._previousUserSelect,this._pointerId=null,this._dragTarget=null,this._isDragging=!1,this._initialRect=null,this._unlockEmbeddedFrames(),this._restoreDragStyles(),delete this._modalElement.dataset.vgToastDragging,this._setDebugVisibility(!1),this._isEnabled=!1)}syncPosition(){if(!this._isEnabled)return;if(!this._isPreparedForInteraction())return;const t=this._dialogElement.getBoundingClientRect(),e=this._dialogElement.offsetWidth||t.width,i=this._dialogElement.offsetHeight||t.height,s=Number.parseFloat(this._dialogElement.style.left),r=Number.parseFloat(this._dialogElement.style.top),n=Number.isFinite(s)?s:t.left,a=Number.isFinite(r)?r:t.top,o=Math.max(0,window.innerWidth-e),l=Math.max(0,window.innerHeight-i),d=Math.min(o,Math.max(0,n)),h=Math.min(l,Math.max(0,a));this._dialogElement.style.left=`${d}px`,this._dialogElement.style.top=`${h}px`,this._updateDebugValues("synced")}_onPointerDown(t){if(0!==t.button)return;const e=this._resolveDragArea(t.target);e&&this._dialogElement.contains(e)&&(this._isPointerOnResizeEdge(t)||t.target.closest('input, textarea, select, button, a, [contenteditable="true"]')||e&&e.closest('[data-vg-dismiss="toast"]')||(this._pointerId=t.pointerId,this._dragTarget=t.target,this._isDragging=!1,t.preventDefault(),this._previousUserSelect=document.body.style.userSelect,document.body.style.userSelect="none",this._initialRect=this._dialogElement.getBoundingClientRect(),this._dialogStartLeft=this._initialRect.left,this._dialogStartTop=this._initialRect.top,this._dialogWidth=this._initialRect.width,this._dialogHeight=this._initialRect.height,this._startX=t.clientX,this._startY=t.clientY,this._currentX=t.clientX,this._currentY=t.clientY,this._lockEmbeddedFrames(),this._modalElement.dataset.vgToastDragging="true",this._setDebugVisibility(!0),this._updateDebugValues("armed"),document.addEventListener("dragstart",this._onNativeDragStart,!0),this._dialogElement&&this._dialogElement.setPointerCapture&&this._dialogElement.setPointerCapture(t.pointerId),document.addEventListener("pointermove",this._onPointerMove),document.addEventListener("pointerup",this._onPointerUp),document.addEventListener("pointercancel",this._onPointerUp)))}_onPointerMove(t){if(t.pointerId===this._pointerId){if(this._currentX=t.clientX,this._currentY=t.clientY,!this._isDragging){const e=this._currentX-this._startX,i=this._currentY-this._startY;if(Math.hypot(e,i)<this._options.threshold)return;this._isDragging=!0,this._dialogElement.style.touchAction="none",this._applyDragStyles(),this._preparePosition(this._initialRect),t.preventDefault(),this._updateDebugValues("dragging")}this._applyDragPosition()}}_onPointerUp(t){t.pointerId===this._pointerId&&(document.removeEventListener("pointermove",this._onPointerMove),document.removeEventListener("pointerup",this._onPointerUp),document.removeEventListener("pointercancel",this._onPointerUp),document.removeEventListener("dragstart",this._onNativeDragStart,!0),this._isDragging&&this._applyDragPosition(),this._dialogElement.style.touchAction="",document.body.style.userSelect=this._previousUserSelect,this._dialogElement&&this._dialogElement.releasePointerCapture&&this._dialogElement.releasePointerCapture(t.pointerId),this._pointerId=null,this._dragTarget=null,this._isDragging=!1,this._initialRect=null,this._unlockEmbeddedFrames(),this._restoreDragStyles(),delete this._modalElement.dataset.vgToastDragging,this._setDebugVisibility(this._options.debug),this._updateDebugValues("idle"))}_preparePosition(t=null){if(!this._dialogElement)return;const e=t||this._dialogElement.getBoundingClientRect();this._dialogElement.style.position="fixed",this._dialogElement.style.margin="0",this._dialogElement.style.left=`${e.left}px`,this._dialogElement.style.top=`${e.top}px`,this._dialogElement.style.width=`${e.width}px`,this._dialogElement.style.height=`${e.height}px`,this._dialogElement.style.transform="none",this._dialogElement.style.translate="none"}_isPreparedForInteraction(){return"fixed"===this._dialogElement.style.position&&"none"===this._dialogElement.style.transform}_isPointerOnResizeEdge(t){const e=this._dialogElement.getBoundingClientRect(),i=t.clientX-e.left,s=t.clientY-e.top,r=this._options.resizeEdgeSize,n=s>=0&&s<=r,a=s<=e.height&&s>=e.height-r,o=i>=0&&i<=r,l=i<=e.width&&i>=e.width-r;return n||a||o||l}_applyDragPosition(){if(null===this._pointerId||!this._isDragging)return;const t=this._currentX-this._startX,e=this._currentY-this._startY,i=Math.max(0,window.innerWidth-this._dialogWidth),s=Math.max(0,window.innerHeight-this._dialogHeight),r=Math.min(i,Math.max(0,this._dialogStartLeft+t)),n=Math.min(s,Math.max(0,this._dialogStartTop+e));this._dialogElement.style.left=`${r}px`,this._dialogElement.style.top=`${n}px`,this._updateDebugValues("dragging")}_onNativeDragStart(t){null!==this._pointerId&&t.preventDefault()}_applyDragStyles(){this._previousTransition=this._dialogElement.style.transition,this._previousWillChange=this._dialogElement.style.willChange,this._dialogElement.style.transition="none",this._dialogElement.style.willChange="left, top"}_restoreDragStyles(){this._dialogElement.style.transition=this._previousTransition,this._dialogElement.style.willChange=this._previousWillChange}_lockEmbeddedFrames(){if(!this._dialogElement||this._lockedIframes.length)return;const t=this._dialogElement.querySelectorAll("iframe");for(const e of t)this._lockedIframes.push({element:e,pointerEvents:e.style.pointerEvents}),e.style.pointerEvents="none"}_unlockEmbeddedFrames(){if(this._lockedIframes.length){for(const t of this._lockedIframes)t.element.style.pointerEvents=t.pointerEvents;this._lockedIframes=[]}}_normalizeOptions(t,e=d){const i={...e,...t},s=Number(i.threshold),r=Number(i.resizeEdgeSize),n="string"==typeof i.selector&&i.selector.trim()?i.selector:d.selector;return{...i,selector:n,threshold:Number.isFinite(s)&&s>=0?s:d.threshold,resizeEdgeSize:Number.isFinite(r)&&r>0?r:d.resizeEdgeSize,debug:Boolean(i.debug)}}_resolveDragArea(t){try{return t.closest(this._options.selector)}catch(e){return t.closest(d.selector)}}_updateDebugOverlay(){this._options.debug?(this._debugElement||(this._debugElement=document.createElement("div"),this._debugElement.style.position="absolute",this._debugElement.style.left="170px",this._debugElement.style.bottom="8px",this._debugElement.style.zIndex="7",this._debugElement.style.padding="4px 6px",this._debugElement.style.borderRadius="4px",this._debugElement.style.background="rgba(0, 0, 0, 0.72)",this._debugElement.style.color="#fff",this._debugElement.style.fontSize="11px",this._debugElement.style.lineHeight="1.3",this._debugElement.style.pointerEvents="none",this._dialogElement.append(this._debugElement)),this._setDebugVisibility(!0),this._updateDebugValues(this._isDragging?"dragging":"idle")):this._setDebugVisibility(!1)}_setDebugVisibility(t){this._debugElement&&(this._debugElement.style.display=t?"block":"none")}_updateDebugValues(t="idle"){if(!this._debugElement||!this._options.debug)return;const e=this._dialogElement.getBoundingClientRect();this._debugElement.textContent=`drag:${t} x:${Math.round(e.left)} y:${Math.round(e.top)} w:${Math.round(e.width)} h:${Math.round(e.height)}`}},c={enable:!1,minWidth:300,minHeight:160,edgeSize:8,debug:!1},u={n:"ns-resize",s:"ns-resize",e:"ew-resize",w:"ew-resize",ne:"nesw-resize",sw:"nesw-resize",nw:"nwse-resize",se:"nwse-resize"},_=class{constructor(t,e,i={}){this._modalElement=t,this._dialogElement=e,this._contentElement=this._dialogElement?this._dialogElement.querySelector(".vg-toast-wrapper"):null,this._options=this._normalizeOptions(i),this._pointerId=null,this._direction="",this._startX=0,this._startY=0,this._currentX=0,this._currentY=0,this._startWidth=0,this._startHeight=0,this._startLeft=0,this._startTop=0,this._startRight=0,this._startBottom=0,this._isEnabled=!1,this._observer=null,this._syncFrameId=null,this._resizeFrameId=null,this._lockedIframes=[],this._debugElement=null,this._previousMaxWidth="",this._previousMaxHeight="",this._previousPointerEvents="",this._previousMinHeight="",this._previousOverflow="",this._previousTransition="",this._previousWillChange="",this._previousContentHeight="",this._previousContentMaxHeight="",this._previousContentOverflow="",this._onPointerDown=this._onPointerDown.bind(this),this._onPointerMove=this._onPointerMove.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onPointerLeave=this._onPointerLeave.bind(this),this._applyResizePosition=this._applyResizePosition.bind(this)}setOptions(t={}){this._options=this._normalizeOptions(t,this._options),this._updateDebugOverlay()}enable(){this._dialogElement&&!this._isEnabled&&(this._updateDebugOverlay(),this._modalElement.addEventListener("pointermove",this._onPointerMove),this._modalElement.addEventListener("pointerdown",this._onPointerDown),this._modalElement.addEventListener("pointerleave",this._onPointerLeave),this._startObserveSizeChanges(),this._isEnabled=!0)}disable(){this._isEnabled&&(this._modalElement.removeEventListener("pointermove",this._onPointerMove),this._modalElement.removeEventListener("pointerdown",this._onPointerDown),this._modalElement.removeEventListener("pointerleave",this._onPointerLeave),document.removeEventListener("pointermove",this._onPointerMove),document.removeEventListener("pointerup",this._onPointerUp),document.removeEventListener("pointercancel",this._onPointerUp),this._cancelResizeFrame(),this._stopObserveSizeChanges(),this._pointerId=null,this._direction="",this._dialogElement.style.cursor="",delete this._modalElement.dataset.vgToastResizing,this._unlockEmbeddedFrames(),this._restoreResizeStyles(),this._setDebugVisibility(!1),this._isEnabled=!1)}syncToViewport(){if(this._modalElement&&"true"===this._modalElement.dataset.vgToastDragging)return;if(!this._isPreparedForInteraction())return;const t=this._dialogElement.getBoundingClientRect(),e=this._dialogElement.offsetWidth||t.width,i=this._dialogElement.offsetHeight||t.height,s=Number.parseFloat(this._dialogElement.style.left),r=Number.parseFloat(this._dialogElement.style.top),n=Number.isFinite(s)?s:t.left,a=Number.isFinite(r)?r:t.top,o=window.innerWidth,l=window.innerHeight,d=Math.max(this._options.minWidth,Math.min(e,o)),h=Math.max(this._options.minHeight,Math.min(i,l)),c=Math.max(0,window.innerWidth-d),u=Math.max(0,window.innerHeight-h),_=Math.min(c,Math.max(0,n)),m=Math.min(u,Math.max(0,a));Math.abs(e-d)>.5&&(this._dialogElement.style.width=`${d}px`),Math.abs(i-h)>.5&&(this._dialogElement.style.height=`${h}px`),this._dialogElement.style.left=`${_}px`,this._dialogElement.style.top=`${m}px`,this._updateDebugValues()}_onPointerDown(t){if(0!==t.button)return;if(t.defaultPrevented)return;const e=this._getDirectionFromPointer(t);if(!e)return;t.preventDefault(),this._pointerId=t.pointerId,this._direction=e;const i=this._dialogElement.getBoundingClientRect();this._applyResizeStyles(),this._preparePosition(i),this._startX=t.clientX,this._startY=t.clientY,this._currentX=t.clientX,this._currentY=t.clientY,this._startWidth=i.width,this._startHeight=i.height,this._startLeft=i.left,this._startTop=i.top,this._startRight=i.right,this._startBottom=i.bottom,this._lockEmbeddedFrames(),this._modalElement.dataset.vgToastResizing="true",this._setDebugVisibility(!0),this._updateDebugValues(),document.addEventListener("pointermove",this._onPointerMove),document.addEventListener("pointerup",this._onPointerUp),document.addEventListener("pointercancel",this._onPointerUp)}_onPointerMove(t){if(null===this._pointerId){const e=this._getDirectionFromPointer(t);return void(this._dialogElement.style.cursor=e?u[e]:"")}t.pointerId===this._pointerId&&(this._currentX=t.clientX,this._currentY=t.clientY,null===this._resizeFrameId&&(this._resizeFrameId=window.requestAnimationFrame(this._applyResizePosition)))}_applyResizePosition(){if(this._resizeFrameId=null,null===this._pointerId)return;const t=this._currentX-this._startX,e=this._currentY-this._startY;let i=this._startWidth,s=this._startHeight,r=this._startLeft,n=this._startTop;if(this._direction.includes("e")){const e=Math.max(this._options.minWidth,window.innerWidth-this._startLeft);i=Math.min(e,Math.max(this._options.minWidth,this._startWidth+t))}if(this._direction.includes("s")){const t=Math.max(this._options.minHeight,window.innerHeight-this._startTop);s=Math.min(t,Math.max(this._options.minHeight,this._startHeight+e))}if(this._direction.includes("w")){const e=this._startRight-this._options.minWidth;r=Math.min(e,Math.max(0,this._startLeft+t)),i=this._startRight-r}if(this._direction.includes("n")){const t=this._startBottom-this._options.minHeight;n=Math.min(t,Math.max(0,this._startTop+e)),s=this._startBottom-n}this._dialogElement.style.left=`${r}px`,this._dialogElement.style.top=`${n}px`,this._dialogElement.style.width=`${i}px`,this._dialogElement.style.height=`${s}px`,this._updateDebugValues()}_onPointerUp(t){t.pointerId===this._pointerId&&(document.removeEventListener("pointermove",this._onPointerMove),document.removeEventListener("pointerup",this._onPointerUp),document.removeEventListener("pointercancel",this._onPointerUp),this._cancelResizeFrame(),this._applyResizePosition(),this._pointerId=null,this._direction="",delete this._modalElement.dataset.vgToastResizing,this._unlockEmbeddedFrames(),this._setDebugVisibility(this._options.debug),this._updateDebugValues())}_onPointerLeave(){null===this._pointerId&&(this._dialogElement.style.cursor="")}_getDirectionFromPointer(t){const e=this._dialogElement.getBoundingClientRect(),i=t.clientX-e.left,s=t.clientY-e.top,r=this._options.edgeSize;if(!(i>=0&&i<=e.width&&s>=0&&s<=e.height))return"";const n=s>=0&&s<=r,a=s<=e.height&&s>=e.height-r,o=i>=0&&i<=r,l=i<=e.width&&i>=e.width-r;return n&&o?"nw":n&&l?"ne":a&&o?"sw":a&&l?"se":n?"n":a?"s":o?"w":l?"e":""}_preparePosition(t){this._dialogElement.style.position="fixed",this._dialogElement.style.margin="0",this._dialogElement.style.left=`${t.left}px`,this._dialogElement.style.top=`${t.top}px`,this._dialogElement.style.width=`${t.width}px`,this._dialogElement.style.height=`${t.height}px`,this._dialogElement.style.transform="none",this._dialogElement.style.translate="none"}_isPreparedForInteraction(){return"fixed"===this._dialogElement.style.position&&"none"===this._dialogElement.style.transform}_startObserveSizeChanges(){"undefined"==typeof ResizeObserver||this._observer||(this._observer=new ResizeObserver(()=>{null===this._pointerId&&(this._modalElement&&"true"===this._modalElement.dataset.vgToastDragging||null===this._syncFrameId&&(this._syncFrameId=window.requestAnimationFrame(()=>{this._syncFrameId=null,this.syncToViewport()})))}),this._observer.observe(this._dialogElement))}_stopObserveSizeChanges(){this._observer&&(this._observer.disconnect(),this._observer=null),null!==this._syncFrameId&&(window.cancelAnimationFrame(this._syncFrameId),this._syncFrameId=null)}_applyResizeStyles(){this._previousMaxWidth=this._dialogElement.style.maxWidth,this._previousMaxHeight=this._dialogElement.style.maxHeight,this._previousPointerEvents=this._dialogElement.style.pointerEvents,this._previousMinHeight=this._dialogElement.style.minHeight,this._previousOverflow=this._dialogElement.style.overflow,this._previousTransition=this._dialogElement.style.transition,this._previousWillChange=this._dialogElement.style.willChange,this._dialogElement.style.maxWidth="none",this._dialogElement.style.maxHeight="none",this._dialogElement.style.pointerEvents="auto",this._dialogElement.style.minHeight=`${this._options.minHeight}px`,this._dialogElement.style.overflow="hidden",this._dialogElement.style.transition="none",this._dialogElement.style.willChange="left, top, width, height",this._contentElement&&(this._previousContentHeight=this._contentElement.style.height,this._previousContentMaxHeight=this._contentElement.style.maxHeight,this._previousContentOverflow=this._contentElement.style.overflow,this._contentElement.style.height="100%",this._contentElement.style.maxHeight="100%",this._contentElement.style.overflow="auto")}_restoreResizeStyles(){this._dialogElement.style.maxWidth=this._previousMaxWidth,this._dialogElement.style.maxHeight=this._previousMaxHeight,this._dialogElement.style.pointerEvents=this._previousPointerEvents,this._dialogElement.style.minHeight=this._previousMinHeight,this._dialogElement.style.overflow=this._previousOverflow,this._dialogElement.style.transition=this._previousTransition,this._dialogElement.style.willChange=this._previousWillChange,this._contentElement&&(this._contentElement.style.height=this._previousContentHeight,this._contentElement.style.maxHeight=this._previousContentMaxHeight,this._contentElement.style.overflow=this._previousContentOverflow)}_normalizeOptions(t,e=c){const i={...e,...t},s=Number(i.minWidth),r=Number(i.minHeight),n=Number(i.edgeSize);return{...i,minWidth:Number.isFinite(s)&&s>0?s:c.minWidth,minHeight:Number.isFinite(r)&&r>0?r:c.minHeight,edgeSize:Number.isFinite(n)&&n>0?n:c.edgeSize,debug:Boolean(i.debug)}}_cancelResizeFrame(){null!==this._resizeFrameId&&(window.cancelAnimationFrame(this._resizeFrameId),this._resizeFrameId=null)}_lockEmbeddedFrames(){if(!this._dialogElement||this._lockedIframes.length)return;const t=this._dialogElement.querySelectorAll("iframe");for(const e of t)this._lockedIframes.push({element:e,pointerEvents:e.style.pointerEvents}),e.style.pointerEvents="none"}_unlockEmbeddedFrames(){if(this._lockedIframes.length){for(const t of this._lockedIframes)t.element.style.pointerEvents=t.pointerEvents;this._lockedIframes=[]}}_updateDebugOverlay(){this._options.debug?(this._debugElement||(this._debugElement=document.createElement("div"),this._debugElement.style.position="absolute",this._debugElement.style.left="8px",this._debugElement.style.bottom="8px",this._debugElement.style.zIndex="6",this._debugElement.style.padding="4px 6px",this._debugElement.style.borderRadius="4px",this._debugElement.style.background="rgba(0, 0, 0, 0.72)",this._debugElement.style.color="#fff",this._debugElement.style.fontSize="11px",this._debugElement.style.lineHeight="1.3",this._debugElement.style.pointerEvents="none",this._dialogElement.append(this._debugElement)),this._setDebugVisibility(!0),this._updateDebugValues()):this._setDebugVisibility(!1)}_setDebugVisibility(t){this._debugElement&&(this._debugElement.style.display=t?"block":"none")}_updateDebugValues(){if(!this._debugElement||!this._options.debug)return;const t=this._dialogElement.getBoundingClientRect();this._debugElement.textContent=`w:${Math.round(t.width)} h:${Math.round(t.height)} x:${Math.round(t.left)} y:${Math.round(t.top)}`}},m="vg.toast",p="vg-toast-open",g="show",f="shown",b="vg-toast-effect-",v={none:"",fade:`${b}fade`,zoom:`${b}zoom`,blur:`${b}blur`,"slide-up":`${b}slide-up`,"slide-down":`${b}slide-down`},y=`${m}.hide`,w=`${m}.hidden`,S=`${m}.show`,C=`${m}.shown`,A=`${m}.loaded`,E=`keydown.dismiss.${m}`,x=`click.${m}.data.api`,P=`pointerdown.interaction.${m}`,L=`pointerup.interaction.${m}`,I=`pointercancel.interaction.${m}`,M={success:"success",error:"danger",warning:"warning",info:"info"},D={static:!0,placement:"bottom center",autohide:!1,delay:3e3,enableClickToast:!0,enableButtonClose:!1,keyboard:!0,theme:"dark",type:null,stack:{enable:!0,max:5},drag:{enable:!1,selector:".vg-toast-wrapper",threshold:4,resizeEdgeSize:8,debug:!1},resize:{enable:!1,edgeSize:8,minWidth:220,minHeight:64,debug:!1},animation:{enable:!0,in:"animate__backInUp",out:"animate__backOutDown",delay:300,effect:"none"},ajax:{route:"",target:"",method:"get",loader:!1,once:!1,output:!0}};class T extends s.A{constructor(t,e={}){super(t,e),this._interactionDefaults={drag:{enable:!1,selector:".vg-toast-wrapper",threshold:4,resizeEdgeSize:8,debug:!1},resize:{enable:!1,edgeSize:8,minWidth:220,minHeight:64,debug:!1}},this._params=this._getParams(t,(0,o._v)(D,e)),this._dragHandler=new h(this._element,this._element),this._resizeHandler=new _(this._element,this._element),this._interactionConfig=this._resolveInteractionConfig(),this._dragHandler.setOptions(this._interactionConfig.drag),this._resizeHandler.setOptions(this._interactionConfig.resize),this._animation(this._element,T.NAME_KEY,this._params.animation),this._applyAnimationEffects(),this._dismissElement(),this._addEventListeners(),this._timeout=null,this._hideTimeout=null,this._isHiding=!1}static get NAME(){return"toast"}static get NAME_KEY(){return m}static run(t,e={},i){return T.build(t,e,i)}static build(t,e,i){const s=e&&"object"==typeof e?e:{},r=Object.prototype.hasOwnProperty.call(s,"autohide");(e=(0,o._v)(D,{static:!1,autohide:!0},s)).static&&!r&&(e.autohide=!1);const l="vg-toast-"+(0,o.PR)(),d=document.createElement("div");d.classList.add("vg-toast"),d.id=l,e.theme&&d.classList.add(`vg-toast-${e.theme}`),e.placement&&e.placement.split(" ").forEach(t=>d.classList.add(t));const h=document.createElement("div");if(h.classList.add("vg-toast-wrapper"),e.type){const t=M[e.type],i=t?(0,n.z)(t):"";if(i){const t=document.createElement("div");t.classList.add("vg-toast-icon");const e=a.A.toSafeHtmlString(i),s=document.createRange().createContextualFragment(e).firstElementChild;s&&t.append(s),h.append(t)}}const c=document.createElement("div");c.classList.add("vg-toast-content");const u=document.createElement("div");if(u.classList.add("vg-toast-body"),"string"==typeof t)u.innerHTML=t,c.append(u);else if(Array.isArray(t)){if(t.length>1){const e=document.createElement("div");e.classList.add("vg-toast-header"),e.innerHTML=t[0],c.append(e)}u.innerHTML=t[1],c.append(u)}if(h.append(c),e.enableButtonClose){d.classList.add("vg-toast-has-button");const t=document.createElement("div");t.classList.add("vg-toast-button"),t.innerHTML='<button class="vg-btn-close" data-vg-dismiss="toast"></button>',h.append(t)}d.append(h),document.body.append(d);const _=T.getOrCreateInstance(d,e);return e.animation&&(_._animation(d,T.NAME_KEY,e.animation),_._applyAnimationEffects()),(0,o.g7)(i,[_]),_.show(),_}toggle(t){return this._isShown()?this.hide():this.show(t)}show(t){if((0,o.d6)(this._element))return;const e=this._element;this._clearTimeout(),this._clearHideTimeout(),this._isHiding=!1,this._disableInteractionHandlers(),this._params=this._getParams(t||{},this._params),this._route((t,i)=>{this._element===e&&r.A.trigger(e,A,{stats:t,data:i})}),r.A.trigger(e,S,{relatedTarget:t}).defaultPrevented||(e.classList.remove(f),e.classList.add(g),document.body.classList.add(p),this._setPlacement(),this._queueCallback(()=>{this._element!==e||this._isHiding||(e.classList.add(f),this._toggleInteractionHandlers(),this._syncInteractiveBounds(),this._scheduleHide(),r.A.trigger(e,C,{relatedTarget:t}))},e,!0,this._params.animation.delay))}hide(){if((0,o.d6)(this._element)||this._isHiding)return;const t=this._element;this._clearTimeout(),this._clearHideTimeout(),r.A.trigger(t,y).defaultPrevented||(this._isHiding=!0,t.classList.remove(f),this._disableInteractionHandlers(),this._hideTimeout=setTimeout(()=>{this._hideTimeout=null,this._element===t&&(t.classList.remove(g),this._params.stack.enable&&this._setPlacement(),this._queueCallback(()=>{if(this._element!==t)return;l.A.find(".vg-toast.show")||document.body.classList.remove(p);const e=!this._params.static;this._isHiding=!1,r.A.trigger(t,w),this._element===t&&e&&this.dispose()},t,!1,this._params.animation.delay))},this._params.animation.delay))}dispose(){this._element&&(this._clearTimeout(),this._clearHideTimeout(),this._disableInteractionHandlers(),this._params.static||this._element.remove(),super.dispose())}_scheduleHide(){this._clearTimeout(),this._params.autohide&&(this._timeout=setTimeout(()=>this.hide(),this._params.delay))}_isShown(){return!!this._element&&this._element.classList.contains(g)}_enableStack(){const t=this._params.placement.includes("top")?"top":"bottom",e=l.A.findAll(`.vg-toast.show.${t}`).filter(t=>{const e=T.getInstance(t);return e?._params.stack.enable});if(!this._params.stack.enable)return e.filter(t=>t!==this._element).forEach(t=>T.getInstance(t).hide()),[{el:this._element,top:0}];e.length>=this._params.stack.max&&e.slice(0,e.length-this._params.stack.max+1).forEach(t=>T.getInstance(t).hide());const i=e.filter(t=>t!==this._element).reduce((t,e)=>t+e.clientHeight,0);return e.includes(this._element)?e.map((t,i)=>({el:t,top:e.slice(0,i).reduce((t,e)=>t+e.clientHeight,0)})):[{el:this._element,top:i}]}_setPlacement(){const t=this._enableStack(),e=this._params.placement.includes("top"),i=e?"top":"bottom",s=l.A.findAll(`.vg-toast.show.${i}`).filter(t=>{const e=T.getInstance(t);return e?._params.stack.enable}),r=s.length?s:t.map(t=>t.el);let n=0;r.forEach(t=>{const i=T.getInstance(t),s=i?._params.placement||this._params.placement,r=s.includes("center"),a=s.includes("left"),o=s.includes("right"),l=t.style;l.left="",l.right="",l.top="",l.bottom="",l.transform="",l.translate="",r?(l.left="50%",l.translate="-50% 0"):a?l.left="0":o?l.right="0":(l.left="50%",l.translate="-50% 0"),e?l.top=n+"px":l.bottom=n+"px",n+=t.offsetHeight})}_toggleInteractionHandlers(){this._interactionConfig=this._resolveInteractionConfig(),this._dragHandler.setOptions(this._interactionConfig.drag),this._resizeHandler.setOptions(this._interactionConfig.resize),this._interactionConfig.drag.enable?this._dragHandler.enable():this._dragHandler.disable(),this._interactionConfig.resize.enable?this._resizeHandler.enable():this._resizeHandler.disable()}_disableInteractionHandlers(){this._dragHandler.disable(),this._resizeHandler.disable()}_syncInteractiveBounds(){this._interactionConfig.resize.enable&&this._resizeHandler.syncToViewport(),this._interactionConfig.drag.enable&&this._dragHandler.syncPosition()}_resolveInteractionConfig(){return{drag:this._normalizeInteractionParams(this._params.drag,this._interactionDefaults.drag),resize:this._normalizeInteractionParams(this._params.resize,this._interactionDefaults.resize)}}_normalizeInteractionParams(t,e){if("boolean"==typeof t)return{...e,enable:t};if(t&&"object"==typeof t){const i=Object.prototype.hasOwnProperty.call(t,"enable");return{...e,...t,enable:!i||Boolean(t.enable)}}return{...e}}_applyAnimationEffects(){const t=this._element.classList;[...t].filter(t=>t.startsWith(b)).forEach(e=>t.remove(e)),this._resolveAnimationEffectClasses(this._params.animation?.effect).forEach(e=>t.add(e))}_resolveAnimationEffectClasses(t){const e=(Array.isArray(t)?t:[t]).filter(Boolean).map(t=>this._resolveAnimationEffectClass(t)).filter(Boolean);return Array.from(new Set(e))}_resolveAnimationEffectClass(t){if("string"!=typeof t)return"";const e=t.trim().toLowerCase();return e?Object.prototype.hasOwnProperty.call(v,e)?v[e]:t.trim():""}_clearTimeout(){this._timeout&&(clearTimeout(this._timeout),this._timeout=null)}_clearHideTimeout(){this._hideTimeout&&(clearTimeout(this._hideTimeout),this._hideTimeout=null)}_addEventListeners(){this._params.keyboard&&r.A.on(document,E,t=>{"Escape"===t.key&&this._isShown()&&this.hide()}),this._params.enableClickToast&&(this._element.classList.add("vg-toast-pointer"),r.A.on(document,x,`#${this._element.id}`,()=>{this.hide()})),r.A.on(this._element,P,()=>{this._clearTimeout()});const t=()=>{this._isShown()&&this._scheduleHide()};r.A.on(this._element,L,t),r.A.on(this._element,I,t)}}(0,n.P)(T),r.A.on(document,x,'[data-vg-toggle="toast"]',function(t){const e=l.A.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),(0,o.d6)(this)||(this.setAttribute("aria-expanded","true"),r.A.one(e,w,()=>{this.setAttribute("aria-expanded","false")}),T.getOrCreateInstance(e).toggle(this))});const k=T},11(t,e,i){i.d(e,{A:()=>r});var s=i(381);const r=class{static _toRouteQueryParamValue(t){return Array.isArray(t)?t.map(t=>String(t||"").trim()).filter(t=>""!==t).join(","):t}static buildRouteUrl(t,e={}){const i=String(t||"").trim();if(!i)throw new Error("Request endpoint is empty");const r=(0,s.Gv)(e.baseParams)?e.baseParams:{},n=(0,s.Gv)(e.params)?e.params:{},a=new URL(i,window.location.origin),o={...r,...n};return Object.keys(o).forEach(t=>{const e=this._toRouteQueryParamValue(o[t]);null!=e&&""!==e&&a.searchParams.set(t,String(e))}),a}static async requestRoute(t={}){const e=String(t.method||"GET").toUpperCase().trim()||"GET",i=(0,s.Gv)(t.headers)?{...t.headers}:{},r=String(t.credentials||"same-origin").trim()||"same-origin",n=(0,s.Gv)(t.baseParams)?t.baseParams:{},a=(0,s.Gv)(t.params)?t.params:{},o=void 0!==t.body&&null!==t.body,l="GET"===e||"HEAD"===e,d=String(t.route||t.endpoint||"").trim(),h=this.buildRouteUrl(d,{baseParams:n,params:l?a:{}}),c={method:e,credentials:r,headers:i,signal:t.signal||void 0};if(!l&&o){const e=t.body;"undefined"!=typeof FormData&&e instanceof FormData?(delete c.headers["Content-Type"],c.body=e):"string"==typeof e?(c.headers["Content-Type"]||(c.headers["Content-Type"]="application/json"),c.body=e):(c.headers["Content-Type"]||(c.headers["Content-Type"]="application/json"),c.body=JSON.stringify(e))}const u=await fetch(h.toString(),c),_=String(u.headers.get("content-type")||"").toLowerCase(),m="json"===t.responseType||"text"!==t.responseType&&_.includes("application/json"),p=await(async()=>{if(m)try{return await u.json()}catch(t){return await u.text()}return u.text()})();if(!u.ok){const t=p&&"object"==typeof p&&p.error&&"object"==typeof p.error?p.error:{},e="string"==typeof p&&p.trim()?p:u.statusText,i=String(t.message||e||"Request failed"),s=new Error(i);throw s.status=u.status,s.code=t.code||"REQUEST_FAILED",s.details=Array.isArray(t.details)?t.details:[],s.requestId=t.request_id||u.headers.get("X-Request-Id")||"",s.response=p,s}return p}constructor(t={}){this.baseUrl=t.baseUrl||"",this.defaultHeaders={"X-Requested-With":"XMLHttpRequest",...t.headers},this.withCredentials=t.withCredentials||!1,this.csrfToken=t._token||this._getCsrfToken()}_getCsrfToken(){const t=document.querySelector('meta[name="csrf-token"]');return t?t.getAttribute("content"):(console.warn('CSRF-токен не найден в <meta name="csrf-token">'),"")}request(t,{method:e="GET",body:i=null,headers:r={},signal:n=null,onProgress:a=null,onSuccess:o=s.lQ,onError:l=s.lQ,onUploadStart:d=s.lQ,onUploadEnd:h=s.lQ}={}){const c=this.baseUrl+t,u=i instanceof FormData,_={...this.defaultHeaders,...r},m="GET"===e.toUpperCase();return m&&(i=null),m||u||!this.csrfToken||(i||(i={}),"object"!=typeof i||Array.isArray(i)||(i._token=this.csrfToken)),u||"Content-Type"in r||(_["Content-Type"]="application/json"),u||a?this._makeXHR({method:e,url:c,body:i,headers:_,signal:n,onProgress:a,onSuccess:o,onError:l,onUploadStart:d,onUploadEnd:h}):this._makeFetch({url:c,method:e,body:m?void 0:this._serializeBody(i),headers:_,signal:n,withCredentials:this.withCredentials,onSuccess:o,onError:l})}_makeFetch({url:t,method:e,body:i,headers:r,signal:n,withCredentials:a,onSuccess:o,onError:l}){const d={method:e,headers:r,signal:n,credentials:a?"include":"same-origin",...void 0!==i&&{body:i}};fetch(t,d).then(t=>{const e=t.headers.get("content-type"),i=e&&e.includes("application/json");if(!t.ok)return Promise.reject((0,s.OM)({code:t.status,response:i?t.json().catch(()=>t.text()):t.text()}));let r={code:t.status};return r.response=i?t.json():t.text(),r}).then(t=>{t&&t.response instanceof Promise?t.response.then(e=>o({...t,response:e}),()=>{}):o(t)}).catch(t=>{"AbortError"!==t.name&&(t&&t.response instanceof Promise?t.response.then(e=>{l({...t,response:e})},()=>{l({...t,response:"Request failed"})}):l(t))})}_makeXHR({method:t,url:e,body:i,headers:r,signal:n,onProgress:a,onSuccess:o,onError:l,onUploadStart:d,onUploadEnd:h}){const c=new XMLHttpRequest;return c.open(t,e,!0),c.withCredentials=this.withCredentials,Object.keys(r).forEach(t=>{"content-type"===t.toLowerCase()&&i instanceof FormData||c.setRequestHeader(t,r[t])}),a&&c.upload.addEventListener("progress",t=>{t.lengthComputable&&a(Math.round(t.loaded/t.total*100),t)}),c.onload=()=>{if(c.status>=200&&c.status<300){const t={code:c.status,response:(0,s.OM)(c.responseText)};o(t)}else{const t=(0,s.OM)({code:c.status,response:c.responseText||`HTTP ${c.status}`});l(t)}h()},c.onerror=()=>{l((0,s.OM)({code:0,response:"Network Error"})),h()},c.ontimeout=()=>{l((0,s.OM)({code:0,response:"Request Timeout"})),h()},n&&n.addEventListener("abort",()=>{c.abort()}),d(),c.send(i),c}get(t,e={}){return this.request(t,{method:"GET",...e})}post(t,e,i={}){return this.request(t,{method:"POST",body:e,...i})}put(t,e,i={}){return this.request(t,{method:"PUT",body:e,...i})}delete(t,e={}){return this.request(t,{method:"DELETE",...e})}patch(t,e,i={}){return this.request(t,{method:"PATCH",body:e,...i})}_serializeBody(t){if(t&&!(t instanceof FormData))return JSON.stringify(t)}}},667(t,e,i){i.d(e,{A:()=>a});var s=i(381),r=i(23);class n{constructor(t,e=null){this._params=this.merge(t,e)}get(){return this._params}fromElement(t){return(0,s.vq)(t)?r.p.get(t):{}}static stringToNestedObject(t,e){return t.split("-").reduceRight((t,e)=>({[e]:t}),e)}merge(t,e){let i=(0,s._v)(t,this.fromElement(e));return Object.keys(i).forEach(t=>{if("params"===t&&(i=(0,s._v)(i,i.params),delete i.params),t.includes("-")){const e=n.stringToNestedObject(t,i[t]);i=(0,s._v)(i,e),delete i[t]}}),i}}const a=n},546(t,e,i){i.d(e,{A:()=>l});const s=new Set(["svg","g","path","line","polyline","polygon","circle","ellipse","rect","defs","symbol","title","use"]),r=new Set(["xmlns","viewbox","width","height","fill","stroke","stroke-width","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-dasharray","stroke-dashoffset","opacity","transform","class","x","y","x1","y1","x2","y2","cx","cy","r","rx","ry","points","d","role","focusable","aria-hidden","href","xlink:href"]);function n(t){return String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function a(t,e=s,i=r){if(!t)return null;if(t.nodeType===Node.TEXT_NODE)return document.createTextNode(t.textContent||"");if(t.nodeType!==Node.ELEMENT_NODE)return null;const n=t.tagName.toLowerCase();if(!e.has(n))return null;const o=document.createElementNS("http://www.w3.org/2000/svg",n);return Array.from(t.attributes||[]).forEach(t=>{const e=t.name.toLowerCase(),s=t.value||"";i.has(e)&&!e.startsWith("on")&&("href"!==e&&"xlink:href"!==e||!s||s.startsWith("#"))&&o.setAttribute(e,s)}),Array.from(t.childNodes||[]).forEach(t=>{const s=a(t,e,i);s&&o.append(s)}),o}function o(t,{allowedSvgTags:e=s,allowedSvgAttrs:i=r}={}){if(null==t)return"";const o=String(t).trim();if(!o)return"";if(!o.includes("<"))return n(o);const l=document.createElement("template");return l.innerHTML=o,Array.from(l.content.childNodes).map(t=>a(t,e,i)).filter(Boolean).map(t=>t.nodeType===Node.TEXT_NODE?n(t.textContent||""):t.nodeType===Node.ELEMENT_NODE?t.outerHTML:"").join("")||n(o)}const l=class{static toSafeHtmlString(t,e){return o(t,e)}}},601(t,e,i){i.d(e,{A:()=>n});var s=i(810);class r{constructor(t="string"){this.mode=t,this.document="undefined"!=typeof document?document:null,this.tags={selfClosing:["img","input","br","hr","meta","link","area","base","col","command","embed","keygen","param","source","track","wbr"]}}setMode(t){return this.mode=t,this}element(t,e={},i=null,s={}){return"dom"===this.mode&&this.document?this._createDomElement(t,e,i,s):this._createHtmlString(t,e,i,s)}_createDomElement(t,e,i,s={}){const r=this.document.createElement(t);return this._setDomAttributes(r,e),null===i||this.tags.selfClosing.includes(t)||(Array.isArray(i)?i.forEach(t=>{"string"==typeof t?r.appendChild(this.document.createTextNode(t)):t instanceof Node&&r.appendChild(t)}):i instanceof Node?r.appendChild(i):"isHTML"in s&&s.isHTML?r.innerHTML=i:r.textContent=i),r}_setDomAttributes(t,e){e&&Object.entries(e).forEach(([e,i])=>{null!=i&&!1!==i&&(!0===i?t.setAttribute(e,""):t.setAttribute(e,String(i)))})}_createHtmlString(t,e,i,s=!1){const r=this._attributesToString(e);if(this.tags.selfClosing.includes(t))return`<${t}${r}>`;const n=null!==i?this._contentToString(i):"";return""===t?`${n}`:`<${t}${r}>${n}</${t}>`}_contentToString(t){return Array.isArray(t)?t.map(t=>t instanceof Node?this._nodeToString(t):String(t)).join(""):t instanceof Node?this._nodeToString(t):String(t)}_nodeToString(t){return t.outerHTML?t.outerHTML:String(t)}_attributesToString(t){if(!t||0===Object.keys(t).length)return"";const e=Object.entries(t).map(([t,e])=>null==e||!1===e?"":!0===e?t:`${t}="${String(e).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}"`).filter(t=>""!==t);return e.length?" "+e.join(" "):""}div(t={},e="",i={}){return this.element("div",t,e,i)}span(t={},e="",i={}){return this.element("span",t,e,i)}i(t={},e="",i={}){return this.element("i",t,e,i)}p(t={},e="",i={}){return this.element("p",t,e,i)}a(t,e="",i={},s={}){return this.element("a",{href:t,...i},e,s)}img(t,e="",i={}){return this.element("img",{src:t,alt:e,...i})}input(t,e="text",i="",s={}){return this.element("input",{type:e,name:t,value:i,...s})}button(t="",e="button",i={},s={}){return this.element("button",{type:e,...i},t,s)}form(t="",e="post",i={},s="",r={}){return this.element("form",{action:t,method:e,...i},s,r)}label(t,e,i={},s={}){return this.element("label",{for:t,...i},e,s)}textarea(t,e="",i={}){return this.element("textarea",{name:t,...i},e)}ul(t=[],e={},i=!1){let s=[];return s=i?t:t.map(t=>this.element("li",{},t)),this.element("ul",e,s)}li(t={},e,i){return this.element("li",t,e,i)}ol(t=[],e={}){const i=t.map(t=>this.element("li",{},t));return this.element("ol",e,i)}h4(t={},e="",i={}){return this.element("h4",t,e,i)}table(t=[],e=[],i={}){const s=t.map(t=>this.element("th",{},t)),r=this.element("tr",{},s),n=this.element("thead",{},r),a=e.map(t=>{const e=t.map(t=>this.element("td",{},t));return this.element("tr",{},e)}),o=this.element("tbody",{},a);return this.element("table",i,[n,o])}csrfToken(t){return this.element("input",{type:"hidden",name:"_token",value:t})}method(t){return this.element("input",{type:"hidden",name:"_method",value:t})}withEvents(t,e={}){return t instanceof Node&&"dom"===this.mode&&Object.entries(e).forEach(([e,i])=>{t.addEventListener(e,i)}),t}addClass(t,e){if(t instanceof Node&&"dom"===this.mode)t.classList.add(e);else if("string"==typeof t){const i=t.match(/<(\w+)([^>]*)>/);if(i){const[s,r,n]=i,a=this._addClassToAttributes(n,e);return t.replace(s,`<${r}${a}>`)}}return t}_addClassToAttributes(t,e){const i=t.match(/class="([^"]*)"/);if(i){const s=i[1],r=s?`${s} ${e}`:e;return t.replace(/class="[^"]*"/,`class="${r}"`)}return`${t} class="${e}"`}component(t,e={},i={}){const r={eye:t=>{const e=t.type||"open",i=this.element("",{},(0,s.z)(`eye-${e}`));return this.span({"data-vg-toggle":"pass","data-bs-toggle":"tooltip",title:"Скрыть",class:t.class||""},[i])},alert:t=>{const e=t.type||"info";return this.div({class:`alert alert-${e}`,role:"alert"},t.content||"")},card:t=>{const e=t.header?this.div({class:"card-header"},t.header):"",i=this.div({class:"card-body"},t.body||""),s=t.footer?this.div({class:"card-footer"},t.footer):"";return this.div({class:"card"},[e,i,s])}};return r[t]?r[t](e):this.div({class:`component-${t}`},"")}}const n=function(t="string"){const e=new r(t);return new Proxy(e,{get:(t,e)=>e in t?t[e].bind(t):function(i={},s="",r={}){return t.element(e,i,s,r)}})}},911(t,e,i){i.d(e,{A:()=>n});const s=new Map;function r(t){return s.has(t)?s.get(t):null}const n={set(t,e,i){r(t)||function(t){const e=new Map;s.set(t,e)}(t);const n=r(t);if(n.size>0&&!n.has(e)){const t=Array.from(n.keys())[0];return void console.error(`VGApp не допускает более одного экземпляра для каждого элемента. Связанный экземпляр: ${t}.`)}n.set(e,i)},get(t,e){const i=r(t);return i&&i.get(e)||null},remove(t,e){const i=r(t);i&&(i.delete(e),0===i.size&&s.delete(t))}}},647(t,e,i){i.d(e,{A:()=>v});const s=/[^.]*(?=\..*)\.|.*/,r=/\..*/,n=/::\d+$/,a={mouseenter:"mouseover",mouseleave:"mouseout"},o=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","submit","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","popstate","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]),l={};let d=1;const h=(t,e=null)=>(t.uidEvent||(t.uidEvent=e?`${e}::${d++}`:d++),t.uidEvent),c=t=>{const e=h(t);return l[e]=l[e]||{},l[e]},u=(t,e,i)=>{const s="string"==typeof e,n=s?i:e||i;let l=t.replace(r,"");return a[l]&&(l=a[l]),o.has(l)||(l=t),[s,n,l]},_=(t,e,i,r,n)=>{if("string"!=typeof e||!t)return;const[a,o,l]=u(e,i,r),d=c(t),_=d[l]||={},p=m(_,o,a?i:null);if(p)return void(p.oneOff=p.oneOff&&n);let g=a?((t,e,i,s)=>{const r=function(r){const n=Array.from(t.querySelectorAll(e));for(let a=r.target;a&&a!==t;a=a.parentNode)if(n.includes(a))return f(r,{delegateTarget:a}),s&&b.off(t,r.type,e,i),i.apply(a,[r])};return r.delegationSelector=e,r.callable=i,r.oneOff=s,r.uidEvent=null,r})(t,i,o,n):((t,e,i)=>{const s=function(s){return f(s,{delegateTarget:t}),i&&b.off(t,s.type,e),e.apply(t,[s])};return s.delegationSelector=null,s.callable=e,s.oneOff=i,s.uidEvent=null,s})(t,o,n);const v=h(g,e.replace(s,""));g.uidEvent=v,_[v]=g,t.addEventListener(l,g,a)},m=(t,e,i)=>Object.values(t).find(t=>t.callable===e&&t.delegationSelector===i),p=(t,e,i,s,r)=>{const n=m(e[i],s,r);n&&(t.removeEventListener(i,n,Boolean(r)),delete e[i][n.uidEvent])},g=(t,e,i,s)=>{const r=e[i]||{};for(const[n,a]of Object.entries(r))n.includes(s)&&p(t,e,i,a.callable,a.delegationSelector)},f=(t,e={})=>{for(const[i,s]of Object.entries(e))try{t[i]=s}catch{Object.defineProperty(t,i,{configurable:!0,get:()=>s})}return t},b={on(t,e,i,s){_(t,e,i,s,!1)},one(t,e,i,s){_(t,e,i,s,!0)},off(t,e,i,s){if("string"!=typeof e||!t)return;const[r,a,o]=u(e,i,s),l=c(t),d=e.startsWith("."),h=o!==e;if(d){for(const i of Object.keys(l))g(t,l,i,e.slice(1));return}const _=l[o]||{};if(void 0===a)for(const[i,s]of Object.entries(_)){const r=i.replace(n,"");h&&!e.includes(r)||p(t,l,o,s.callable,s.delegationSelector)}else p(t,l,o,a,r?i:null)},trigger(t,e,i){if("string"!=typeof e||!t)return null;const s=f(new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:i}),i);return t.dispatchEvent(s),s}},v=b},23(t,e,i){i.d(e,{p:()=>r,x:()=>n});var s=i(381);const r={get(t,e="data",i=!0){if(!(0,s.vq)(t))return{};if("all"===e)return Array.from(t.attributes).reduce((t,e)=>(t[e.name]=e.value,t),{});if("data"===e){const e=new Set(["data-vg-toggle","data-vg-target","data-vg-dismiss","data-vg-loaded"]),r={};return Array.from(t.attributes).filter(t=>t.name.startsWith("data-")).forEach(t=>{if(!e.has(t.name)){const e=i?t.name.slice(5):t.name;r[e]=(0,s.OM)(t.value)}}),r}return t.getAttribute(e)},has:(t,e)=>(0,s.vq)(t)&&t.hasAttribute(e),set(t,e,i){(0,s.vq)(t)&&e&&t.setAttribute(e,i)},remove(t,e){(0,s.vq)(t)&&e&&t.removeAttribute(e)},hide(t){(0,s.vq)(t)&&(t.style.display="none")},show(t,e="block"){(0,s.vq)(t)&&(t.style.display=e)}},n={remove(t,e){if(!(0,s.vq)(t)||!e)return;const i=Array.isArray(e)?e:e.split(" ").filter(Boolean);t.classList.remove(...i)},add(t,e,i=!1){if(!e)return;const r=Array.isArray(e)?e:e.split(" ").filter(Boolean);if(i)return r.join(" ");(0,s.vq)(t)&&t.classList.add(...r)},toggle(t,e,i=!0){(0,s.vq)(t)&&e&&t.classList.toggle(e,!!i)},replace(t,e,i){(0,s.vq)(t)&&e&&i&&t.classList.replace(e,i)},has:(t,e)=>(0,s.vq)(t)&&t.classList.contains(e)}},829(t,e,i){i.d(e,{A:()=>n});var s=i(381);const r=t=>{const e=t.getAttribute("data-vg-target");if(e&&"#"!==e)return e.trim();const i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;const s=i.includes("#")&&!i.startsWith("#")?`#${i.split("#")[1]}`:i;return"#"!==s?s.trim():null},n={find(t,e=document.documentElement){if((0,s.vq)(t))return t;try{return e.querySelector(t)}catch(e){return console.warn("Invalid selector:",t,e),null}},findID(t,e=document){try{if("string"!=typeof t||""===t.trim())return null;const i=(e&&9===e.nodeType?e:e?.ownerDocument||document).getElementById(t);if(i)return e&&9!==e.nodeType?e.contains(i)?i:null:i;const s=e&&9===e.nodeType?e.documentElement:e;if(!s||"function"!=typeof s.querySelector)return null;const r=(t=>t&&window.CSS?.escape?CSS.escape(t):t.replace(/([:.#[]])/g,"\\$1"))(t);return s.querySelector(`#${r}`)}catch(e){return console.warn("Invalid ID in findID:",t,e),null}},findAll(t,e=document.documentElement){try{return Array.from(e.querySelectorAll(t))}catch(e){return console.warn("Invalid selector in findAll:",t,e),[]}},getSelectorFromElement(t){const e=r(t);return e&&this.find(e)?e:null},getElementFromSelector(t){const e=r(t);return e?this.find(e):null},getMultipleElementsFromSelector(t){const e=r(t);return e?this.findAll(e):[]},parents(t,e){const i=[];let s=t.parentElement?.closest(e);for(;s;)i.push(s),s=s.parentElement?.closest(e);return i},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]}}},381(t,e,i){i.d(e,{Ff:()=>v,Gv:()=>r,OM:()=>d,PR:()=>b,V6:()=>a,V8:()=>w,Xb:()=>S,_v:()=>h,d6:()=>o,dO:()=>_,g7:()=>c,iq:()=>y,lQ:()=>f,qm:()=>g,vq:()=>s,zN:()=>l,ze:()=>n});const s=t=>t?.nodeType===Node.ELEMENT_NODE,r=t=>t&&"object"==typeof t,n=t=>{if(!r(t))return!0;for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0},a=t=>{if(s(t))return t;if(t?.jquery)return t[0]||null;if("string"==typeof t&&""!==t.trim())try{return document.querySelector(t)}catch(e){return console.warn("Invalid selector:",t),null}return null},o=t=>!s(t)||!!t.classList.contains("disabled")||(void 0!==t.disabled?!!t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),l=t=>{if(!s(t)||0===t.getClientRects().length)return!1;if("hidden"===getComputedStyle(t).visibility)return!1;const e=t.closest("details:not([open])");if(!e)return!0;const i=t.closest("summary");return!(!i||i.parentNode!==e)},d=t=>{if("true"===t)return!0;if("false"===t)return!1;if("null"===t)return null;if(""===t)return null;if("number"==typeof t||t===Number(t))return Number(t);if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch{return t}},h=(...t)=>{const e=t=>t&&"object"==typeof t;return t.reduce((t,i)=>e(i)?(Object.keys(i).forEach(s=>{const r=t[s],n=i[s];Array.isArray(r)&&Array.isArray(n)?t[s]=r.concat(n):e(r)&&e(n)?t[s]=h(r,n):t[s]=n}),t):t,{})},c=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,u="transitionend",_=(t,e,i=!0,s)=>{if(!e)return void c(t);if(!i)return void c(t);const r=s??m(e)+5;let n=!1;const a=i=>{i.target===e&&(n=!0,e.removeEventListener(u,a),c(t))};e.addEventListener(u,a),setTimeout(()=>{n||p(e)},r)},m=t=>{if(!t)return 0;const{transitionDuration:e,transitionDelay:i}=getComputedStyle(t),s=e.split(", "),r=i.split(", ");return 1e3*((Number.parseFloat(s[0])||0)+(Number.parseFloat(r[0])||0))},p=t=>{t&&t.dispatchEvent(new Event(u))},g=t=>{t.offsetHeight},f=()=>{},b=(t=7)=>{let e="";for(let i=0;i<t;i++)e+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(Math.floor(62*Math.random()));return e},v=(t,e=!0)=>{const i="q w e r t y u i o p [ ] a s d f g h j k l ; ' z x c v b n m , .".split(" "),s="й ц у к е н г ш щ з х ъ ф ы в а п р о л д ж э я ч с м и т ь б ю".split(" "),r=e?i:s,n=e?s:i;let a=t;for(let t=0;t<r.length;t++){const e=r[t],i=n[t],s=r[t].toUpperCase(),o=n[t].toUpperCase();a=a.split(e).join(i).split(s).join(o)}return a},y=(t,e,i,s)=>{const r=t.length;let n=t.indexOf(e);return-1===n?i||!s?t[0]:t[r-1]:(n+=i?1:-1,s&&(n=(n%r+r)%r),t[Math.max(0,Math.min(n,r-1))])},w=()=>"rtl"===document.documentElement.dir;function S(){const t=navigator.userAgent,e=/Android|iPhone|iPad|iPod/i.test(t),i="ontouchstart"in window||navigator.maxTouchPoints>0,s=window.innerWidth<768,r=window.devicePixelRatio>=2;return e||i&&s&&r||function(){const t=navigator.userAgent,e=navigator.platform;if(!(/iPad/.test(t)||"MacIntel"===e&&navigator.maxTouchPoints>1))return{isiPadPro:!1};const i=window.screen.width*window.devicePixelRatio,s=window.screen.height*window.devicePixelRatio;return{isiPadPro:[{width:2048,height:2732},{width:1668,height:2388},{width:1668,height:2224}].some(t=>i===t.width&&s===t.height||i===t.height&&s===t.width),screenWidth:i,screenHeight:s,userAgent:t,platform:e}}().isiPadPro}}},e={};function i(s){var r=e[s];if(void 0!==r)return r.exports;var n=e[s]={exports:{}};return t[s](n,n.exports,i),n.exports}i.d=(t,e)=>{for(var s in e)i.o(e,s)&&!i.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var s={};return(()=>{var t=i(571),e=i(23),s=i(829),r=i(381);const n=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",a=".sticky-top",o="padding-right",l="margin-right",d=class{constructor(){}get _element(){return document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}isOverflowing(){return this.getWidth()>0}hide(){if(this.isOverflowing()&&!(0,r.Xb)()){const t=this.getWidth();this._disableOverflow(),this._setStyle(n,o,t,e=>e+t),this._setStyle(a,l,t,e=>e-t),this._setStyle(this._element,o,t,e=>e+t)}else(0,r.Xb)()&&this._disableOverflow()}reset(){this._resetStyle(this._element,"overflow"),this._resetStyle(this._element,o),this._resetStyle(n,o),this._resetStyle(a,l)}_disableOverflow(){this._saveInitialStyle(this._element,"overflow"),this._element.style.overflow="hidden"}_setStyle(t,e,i,s){this._applyToElements(t,t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+i)return;this._saveInitialStyle(t,e);const r=getComputedStyle(t).getPropertyValue(e),n=Number.parseFloat(r)||0;t.style.setProperty(e,`${s(n)}px`)})}_resetStyle(t,i){this._applyToElements(t,t=>{const s=e.p.get(t,i);null!==s?(e.p.remove(t,i),t.style.setProperty(i,s)):t.style.removeProperty(i)})}_saveInitialStyle(t,i){if(null!==e.p.get(t,i))return;const s=t.style.getPropertyValue(i);e.p.set(t,i,s)}_applyToElements(t,e){(0,r.vq)(t)?e(t):s.A.findAll(t,this._element).forEach(e)}};var h=i(601);const c="vg-backdrop",u="fade",_="show";class m{static get _rootEl(){return document.body}static _scrollbar=new d;static _backdrop=null;static show(t){this._backdrop||(this._backdrop=this._rootEl.querySelector(`.${c}`)),this._backdrop&&this._backdrop.remove(),this._append(),(0,r.g7)(t)}static hide(t){this._backdrop||(this._backdrop=this._rootEl.querySelector(`.${c}`)),this._backdrop&&this._destroy().then(r.g7.bind(null,t))}static _append(){const t=(0,h.A)("dom");this._backdrop=t.div({class:c}),this._rootEl.appendChild(this._backdrop),requestAnimationFrame(()=>{e.x.add(this._backdrop,_),setTimeout(()=>{e.x.add(this._backdrop,u)},150)})}static _destroy(){return new Promise(t=>{e.x.remove(this._backdrop,u),setTimeout(()=>{e.x.remove(this._backdrop,_),this._backdrop.remove(),this._backdrop=null,this._scrollbar.reset(),t()},150)})}}const p=m;var g=i(647),f=i(810);const b={enable:!1,selector:".vg-modal-content",threshold:4,resizeEdgeSize:8,debug:!1},v=class{constructor(t,e,i={}){this._modalElement=t,this._dialogElement=e,this._options=this._normalizeOptions(i),this._pointerId=null,this._dragTarget=null,this._isDragging=!1,this._startX=0,this._startY=0,this._currentX=0,this._currentY=0,this._dialogStartLeft=0,this._dialogStartTop=0,this._dialogWidth=0,this._dialogHeight=0,this._isEnabled=!1,this._previousUserSelect="",this._previousTransition="",this._previousWillChange="",this._initialRect=null,this._lockedIframes=[],this._debugElement=null,this._onPointerMove=this._onPointerMove.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onPointerDown=this._onPointerDown.bind(this),this._onNativeDragStart=this._onNativeDragStart.bind(this)}setOptions(t={}){this._options=this._normalizeOptions(t,this._options),this._updateDebugOverlay()}enable(){this._dialogElement&&!this._isEnabled&&(this._updateDebugOverlay(),this._dialogElement.addEventListener("pointerdown",this._onPointerDown),this._isEnabled=!0)}disable(){this._dialogElement&&this._isEnabled&&(this._dialogElement.removeEventListener("pointerdown",this._onPointerDown),document.removeEventListener("pointermove",this._onPointerMove),document.removeEventListener("pointerup",this._onPointerUp),document.removeEventListener("pointercancel",this._onPointerUp),document.removeEventListener("dragstart",this._onNativeDragStart,!0),this._dialogElement.style.touchAction="",document.body.style.userSelect=this._previousUserSelect,this._pointerId=null,this._dragTarget=null,this._isDragging=!1,this._initialRect=null,this._unlockEmbeddedFrames(),this._restoreDragStyles(),delete this._modalElement.dataset.vgModalDragging,this._setDebugVisibility(!1),this._isEnabled=!1)}syncPosition(){if(!this._isEnabled)return;if(!this._isPreparedForInteraction())return;const t=this._dialogElement.getBoundingClientRect(),e=this._dialogElement.offsetWidth||t.width,i=this._dialogElement.offsetHeight||t.height,s=Number.parseFloat(this._dialogElement.style.left),r=Number.parseFloat(this._dialogElement.style.top),n=Number.isFinite(s)?s:t.left,a=Number.isFinite(r)?r:t.top,o=Math.max(0,window.innerWidth-e),l=Math.max(0,window.innerHeight-i),d=Math.min(o,Math.max(0,n)),h=Math.min(l,Math.max(0,a));this._dialogElement.style.left=`${d}px`,this._dialogElement.style.top=`${h}px`,this._updateDebugValues("synced")}_onPointerDown(t){if(0!==t.button)return;const e=this._resolveDragArea(t.target);e&&this._dialogElement.contains(e)&&(this._isPointerOnResizeEdge(t)||t.target.closest('input, textarea, select, button, a, [contenteditable="true"]')||e&&e.closest('[data-vg-dismiss="modal"]')||(this._pointerId=t.pointerId,this._dragTarget=t.target,this._isDragging=!1,t.preventDefault(),this._previousUserSelect=document.body.style.userSelect,document.body.style.userSelect="none",this._initialRect=this._dialogElement.getBoundingClientRect(),this._dialogStartLeft=this._initialRect.left,this._dialogStartTop=this._initialRect.top,this._dialogWidth=this._initialRect.width,this._dialogHeight=this._initialRect.height,this._startX=t.clientX,this._startY=t.clientY,this._currentX=t.clientX,this._currentY=t.clientY,this._lockEmbeddedFrames(),this._modalElement.dataset.vgModalDragging="true",this._setDebugVisibility(!0),this._updateDebugValues("armed"),document.addEventListener("dragstart",this._onNativeDragStart,!0),this._dialogElement&&this._dialogElement.setPointerCapture&&this._dialogElement.setPointerCapture(t.pointerId),document.addEventListener("pointermove",this._onPointerMove),document.addEventListener("pointerup",this._onPointerUp),document.addEventListener("pointercancel",this._onPointerUp)))}_onPointerMove(t){if(t.pointerId===this._pointerId){if(this._currentX=t.clientX,this._currentY=t.clientY,!this._isDragging){const e=this._currentX-this._startX,i=this._currentY-this._startY;if(Math.hypot(e,i)<this._options.threshold)return;this._isDragging=!0,this._dialogElement.style.touchAction="none",this._applyDragStyles(),this._preparePosition(this._initialRect),t.preventDefault(),this._updateDebugValues("dragging")}this._applyDragPosition()}}_onPointerUp(t){t.pointerId===this._pointerId&&(document.removeEventListener("pointermove",this._onPointerMove),document.removeEventListener("pointerup",this._onPointerUp),document.removeEventListener("pointercancel",this._onPointerUp),document.removeEventListener("dragstart",this._onNativeDragStart,!0),this._isDragging&&this._applyDragPosition(),this._dialogElement.style.touchAction="",document.body.style.userSelect=this._previousUserSelect,this._dialogElement&&this._dialogElement.releasePointerCapture&&this._dialogElement.releasePointerCapture(t.pointerId),this._pointerId=null,this._dragTarget=null,this._isDragging=!1,this._initialRect=null,this._unlockEmbeddedFrames(),this._restoreDragStyles(),delete this._modalElement.dataset.vgModalDragging,this._setDebugVisibility(this._options.debug),this._updateDebugValues("idle"))}_preparePosition(t=null){if(!this._dialogElement)return;const e=t||this._dialogElement.getBoundingClientRect();this._dialogElement.style.position="fixed",this._dialogElement.style.margin="0",this._dialogElement.style.left=`${e.left}px`,this._dialogElement.style.top=`${e.top}px`,this._dialogElement.style.width=`${e.width}px`,this._dialogElement.style.height=`${e.height}px`,this._dialogElement.style.transform="none"}_isPreparedForInteraction(){return"fixed"===this._dialogElement.style.position&&"none"===this._dialogElement.style.transform}_isPointerOnResizeEdge(t){const e=this._dialogElement.getBoundingClientRect(),i=t.clientX-e.left,s=t.clientY-e.top,r=this._options.resizeEdgeSize,n=s>=0&&s<=r,a=s<=e.height&&s>=e.height-r,o=i>=0&&i<=r,l=i<=e.width&&i>=e.width-r;return n||a||o||l}_applyDragPosition(){if(null===this._pointerId||!this._isDragging)return;const t=this._currentX-this._startX,e=this._currentY-this._startY,i=Math.max(0,window.innerWidth-this._dialogWidth),s=Math.max(0,window.innerHeight-this._dialogHeight),r=Math.min(i,Math.max(0,this._dialogStartLeft+t)),n=Math.min(s,Math.max(0,this._dialogStartTop+e));this._dialogElement.style.left=`${r}px`,this._dialogElement.style.top=`${n}px`,this._updateDebugValues("dragging")}_onNativeDragStart(t){null!==this._pointerId&&t.preventDefault()}_applyDragStyles(){this._previousTransition=this._dialogElement.style.transition,this._previousWillChange=this._dialogElement.style.willChange,this._dialogElement.style.transition="none",this._dialogElement.style.willChange="left, top"}_restoreDragStyles(){this._dialogElement.style.transition=this._previousTransition,this._dialogElement.style.willChange=this._previousWillChange}_lockEmbeddedFrames(){if(!this._dialogElement||this._lockedIframes.length)return;const t=this._dialogElement.querySelectorAll("iframe");for(const e of t)this._lockedIframes.push({element:e,pointerEvents:e.style.pointerEvents}),e.style.pointerEvents="none"}_unlockEmbeddedFrames(){if(this._lockedIframes.length){for(const t of this._lockedIframes)t.element.style.pointerEvents=t.pointerEvents;this._lockedIframes=[]}}_normalizeOptions(t,e=b){const i={...e,...t},s=Number(i.threshold),r=Number(i.resizeEdgeSize),n="string"==typeof i.selector&&i.selector.trim()?i.selector:b.selector;return{...i,selector:n,threshold:Number.isFinite(s)&&s>=0?s:b.threshold,resizeEdgeSize:Number.isFinite(r)&&r>0?r:b.resizeEdgeSize,debug:Boolean(i.debug)}}_resolveDragArea(t){try{return t.closest(this._options.selector)}catch(e){return t.closest(b.selector)}}_updateDebugOverlay(){this._options.debug?(this._debugElement||(this._debugElement=document.createElement("div"),this._debugElement.style.position="absolute",this._debugElement.style.left="170px",this._debugElement.style.bottom="8px",this._debugElement.style.zIndex="7",this._debugElement.style.padding="4px 6px",this._debugElement.style.borderRadius="4px",this._debugElement.style.background="rgba(0, 0, 0, 0.72)",this._debugElement.style.color="#fff",this._debugElement.style.fontSize="11px",this._debugElement.style.lineHeight="1.3",this._debugElement.style.pointerEvents="none",this._dialogElement.append(this._debugElement)),this._setDebugVisibility(!0),this._updateDebugValues(this._isDragging?"dragging":"idle")):this._setDebugVisibility(!1)}_setDebugVisibility(t){this._debugElement&&(this._debugElement.style.display=t?"block":"none")}_updateDebugValues(t="idle"){if(!this._debugElement||!this._options.debug)return;const e=this._dialogElement.getBoundingClientRect();this._debugElement.textContent=`drag:${t} x:${Math.round(e.left)} y:${Math.round(e.top)} w:${Math.round(e.width)} h:${Math.round(e.height)}`}},y={enable:!1,minWidth:300,minHeight:160,edgeSize:8,debug:!1},w={n:"ns-resize",s:"ns-resize",e:"ew-resize",w:"ew-resize",ne:"nesw-resize",sw:"nesw-resize",nw:"nwse-resize",se:"nwse-resize"},S=class{constructor(t,e,i={}){this._modalElement=t,this._dialogElement=e,this._contentElement=this._dialogElement?this._dialogElement.querySelector(".vg-modal-content"):null,this._options=this._normalizeOptions(i),this._pointerId=null,this._direction="",this._startX=0,this._startY=0,this._currentX=0,this._currentY=0,this._startWidth=0,this._startHeight=0,this._startLeft=0,this._startTop=0,this._startRight=0,this._startBottom=0,this._isEnabled=!1,this._observer=null,this._syncFrameId=null,this._resizeFrameId=null,this._lockedIframes=[],this._debugElement=null,this._previousMaxWidth="",this._previousMaxHeight="",this._previousPointerEvents="",this._previousMinHeight="",this._previousOverflow="",this._previousTransition="",this._previousWillChange="",this._previousContentHeight="",this._previousContentMaxHeight="",this._previousContentOverflow="",this._onPointerDown=this._onPointerDown.bind(this),this._onPointerMove=this._onPointerMove.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onPointerLeave=this._onPointerLeave.bind(this),this._applyResizePosition=this._applyResizePosition.bind(this)}setOptions(t={}){this._options=this._normalizeOptions(t,this._options),this._updateDebugOverlay()}enable(){this._dialogElement&&!this._isEnabled&&(this._updateDebugOverlay(),this._modalElement.addEventListener("pointermove",this._onPointerMove),this._modalElement.addEventListener("pointerdown",this._onPointerDown),this._modalElement.addEventListener("pointerleave",this._onPointerLeave),this._startObserveSizeChanges(),this._isEnabled=!0)}disable(){this._isEnabled&&(this._modalElement.removeEventListener("pointermove",this._onPointerMove),this._modalElement.removeEventListener("pointerdown",this._onPointerDown),this._modalElement.removeEventListener("pointerleave",this._onPointerLeave),document.removeEventListener("pointermove",this._onPointerMove),document.removeEventListener("pointerup",this._onPointerUp),document.removeEventListener("pointercancel",this._onPointerUp),this._cancelResizeFrame(),this._stopObserveSizeChanges(),this._pointerId=null,this._direction="",this._dialogElement.style.cursor="",delete this._modalElement.dataset.vgModalResizing,this._unlockEmbeddedFrames(),this._restoreResizeStyles(),this._setDebugVisibility(!1),this._isEnabled=!1)}syncToViewport(){if(this._modalElement&&"true"===this._modalElement.dataset.vgModalDragging)return;if(!this._isPreparedForInteraction())return;const t=this._dialogElement.getBoundingClientRect(),e=this._dialogElement.offsetWidth||t.width,i=this._dialogElement.offsetHeight||t.height,s=Number.parseFloat(this._dialogElement.style.left),r=Number.parseFloat(this._dialogElement.style.top),n=Number.isFinite(s)?s:t.left,a=Number.isFinite(r)?r:t.top,o=window.innerWidth,l=window.innerHeight,d=Math.max(this._options.minWidth,Math.min(e,o)),h=Math.max(this._options.minHeight,Math.min(i,l)),c=Math.max(0,window.innerWidth-d),u=Math.max(0,window.innerHeight-h),_=Math.min(c,Math.max(0,n)),m=Math.min(u,Math.max(0,a));Math.abs(e-d)>.5&&(this._dialogElement.style.width=`${d}px`),Math.abs(i-h)>.5&&(this._dialogElement.style.height=`${h}px`),this._dialogElement.style.left=`${_}px`,this._dialogElement.style.top=`${m}px`,this._updateDebugValues()}_onPointerDown(t){if(0!==t.button)return;if(t.defaultPrevented)return;const e=this._getDirectionFromPointer(t);if(!e)return;t.preventDefault(),this._pointerId=t.pointerId,this._direction=e;const i=this._dialogElement.getBoundingClientRect();this._applyResizeStyles(),this._preparePosition(i),this._startX=t.clientX,this._startY=t.clientY,this._currentX=t.clientX,this._currentY=t.clientY,this._startWidth=i.width,this._startHeight=i.height,this._startLeft=i.left,this._startTop=i.top,this._startRight=i.right,this._startBottom=i.bottom,this._lockEmbeddedFrames(),this._modalElement.dataset.vgModalResizing="true",this._setDebugVisibility(!0),this._updateDebugValues(),document.addEventListener("pointermove",this._onPointerMove),document.addEventListener("pointerup",this._onPointerUp),document.addEventListener("pointercancel",this._onPointerUp)}_onPointerMove(t){if(null===this._pointerId){const e=this._getDirectionFromPointer(t);return void(this._dialogElement.style.cursor=e?w[e]:"")}t.pointerId===this._pointerId&&(this._currentX=t.clientX,this._currentY=t.clientY,null===this._resizeFrameId&&(this._resizeFrameId=window.requestAnimationFrame(this._applyResizePosition)))}_applyResizePosition(){if(this._resizeFrameId=null,null===this._pointerId)return;const t=this._currentX-this._startX,e=this._currentY-this._startY;let i=this._startWidth,s=this._startHeight,r=this._startLeft,n=this._startTop;if(this._direction.includes("e")){const e=Math.max(this._options.minWidth,window.innerWidth-this._startLeft);i=Math.min(e,Math.max(this._options.minWidth,this._startWidth+t))}if(this._direction.includes("s")){const t=Math.max(this._options.minHeight,window.innerHeight-this._startTop);s=Math.min(t,Math.max(this._options.minHeight,this._startHeight+e))}if(this._direction.includes("w")){const e=this._startRight-this._options.minWidth;r=Math.min(e,Math.max(0,this._startLeft+t)),i=this._startRight-r}if(this._direction.includes("n")){const t=this._startBottom-this._options.minHeight;n=Math.min(t,Math.max(0,this._startTop+e)),s=this._startBottom-n}this._dialogElement.style.left=`${r}px`,this._dialogElement.style.top=`${n}px`,this._dialogElement.style.width=`${i}px`,this._dialogElement.style.height=`${s}px`,this._updateDebugValues()}_onPointerUp(t){t.pointerId===this._pointerId&&(document.removeEventListener("pointermove",this._onPointerMove),document.removeEventListener("pointerup",this._onPointerUp),document.removeEventListener("pointercancel",this._onPointerUp),this._cancelResizeFrame(),this._applyResizePosition(),this._pointerId=null,this._direction="",delete this._modalElement.dataset.vgModalResizing,this._unlockEmbeddedFrames(),this._setDebugVisibility(this._options.debug),this._updateDebugValues())}_onPointerLeave(){null===this._pointerId&&(this._dialogElement.style.cursor="")}_getDirectionFromPointer(t){const e=this._dialogElement.getBoundingClientRect(),i=t.clientX-e.left,s=t.clientY-e.top,r=this._options.edgeSize;if(!(i>=0&&i<=e.width&&s>=0&&s<=e.height))return"";const n=s>=0&&s<=r,a=s<=e.height&&s>=e.height-r,o=i>=0&&i<=r,l=i<=e.width&&i>=e.width-r;return n&&o?"nw":n&&l?"ne":a&&o?"sw":a&&l?"se":n?"n":a?"s":o?"w":l?"e":""}_preparePosition(t){this._dialogElement.style.position="fixed",this._dialogElement.style.margin="0",this._dialogElement.style.left=`${t.left}px`,this._dialogElement.style.top=`${t.top}px`,this._dialogElement.style.width=`${t.width}px`,this._dialogElement.style.height=`${t.height}px`,this._dialogElement.style.transform="none"}_isPreparedForInteraction(){return"fixed"===this._dialogElement.style.position&&"none"===this._dialogElement.style.transform}_startObserveSizeChanges(){"undefined"==typeof ResizeObserver||this._observer||(this._observer=new ResizeObserver(()=>{null===this._pointerId&&(this._modalElement&&"true"===this._modalElement.dataset.vgModalDragging||null===this._syncFrameId&&(this._syncFrameId=window.requestAnimationFrame(()=>{this._syncFrameId=null,this.syncToViewport()})))}),this._observer.observe(this._dialogElement))}_stopObserveSizeChanges(){this._observer&&(this._observer.disconnect(),this._observer=null),null!==this._syncFrameId&&(window.cancelAnimationFrame(this._syncFrameId),this._syncFrameId=null)}_applyResizeStyles(){this._previousMaxWidth=this._dialogElement.style.maxWidth,this._previousMaxHeight=this._dialogElement.style.maxHeight,this._previousPointerEvents=this._dialogElement.style.pointerEvents,this._previousMinHeight=this._dialogElement.style.minHeight,this._previousOverflow=this._dialogElement.style.overflow,this._previousTransition=this._dialogElement.style.transition,this._previousWillChange=this._dialogElement.style.willChange,this._dialogElement.style.maxWidth="none",this._dialogElement.style.maxHeight="none",this._dialogElement.style.pointerEvents="auto",this._dialogElement.style.minHeight=`${this._options.minHeight}px`,this._dialogElement.style.overflow="hidden",this._dialogElement.style.transition="none",this._dialogElement.style.willChange="left, top, width, height",this._contentElement&&(this._previousContentHeight=this._contentElement.style.height,this._previousContentMaxHeight=this._contentElement.style.maxHeight,this._previousContentOverflow=this._contentElement.style.overflow,this._contentElement.style.height="100%",this._contentElement.style.maxHeight="100%",this._contentElement.style.overflow="auto")}_restoreResizeStyles(){this._dialogElement.style.maxWidth=this._previousMaxWidth,this._dialogElement.style.maxHeight=this._previousMaxHeight,this._dialogElement.style.pointerEvents=this._previousPointerEvents,this._dialogElement.style.minHeight=this._previousMinHeight,this._dialogElement.style.overflow=this._previousOverflow,this._dialogElement.style.transition=this._previousTransition,this._dialogElement.style.willChange=this._previousWillChange,this._contentElement&&(this._contentElement.style.height=this._previousContentHeight,this._contentElement.style.maxHeight=this._previousContentMaxHeight,this._contentElement.style.overflow=this._previousContentOverflow)}_normalizeOptions(t,e=y){const i={...e,...t},s=Number(i.minWidth),r=Number(i.minHeight),n=Number(i.edgeSize);return{...i,minWidth:Number.isFinite(s)&&s>0?s:y.minWidth,minHeight:Number.isFinite(r)&&r>0?r:y.minHeight,edgeSize:Number.isFinite(n)&&n>0?n:y.edgeSize,debug:Boolean(i.debug)}}_cancelResizeFrame(){null!==this._resizeFrameId&&(window.cancelAnimationFrame(this._resizeFrameId),this._resizeFrameId=null)}_lockEmbeddedFrames(){if(!this._dialogElement||this._lockedIframes.length)return;const t=this._dialogElement.querySelectorAll("iframe");for(const e of t)this._lockedIframes.push({element:e,pointerEvents:e.style.pointerEvents}),e.style.pointerEvents="none"}_unlockEmbeddedFrames(){if(this._lockedIframes.length){for(const t of this._lockedIframes)t.element.style.pointerEvents=t.pointerEvents;this._lockedIframes=[]}}_updateDebugOverlay(){this._options.debug?(this._debugElement||(this._debugElement=document.createElement("div"),this._debugElement.style.position="absolute",this._debugElement.style.left="8px",this._debugElement.style.bottom="8px",this._debugElement.style.zIndex="6",this._debugElement.style.padding="4px 6px",this._debugElement.style.borderRadius="4px",this._debugElement.style.background="rgba(0, 0, 0, 0.72)",this._debugElement.style.color="#fff",this._debugElement.style.fontSize="11px",this._debugElement.style.lineHeight="1.3",this._debugElement.style.pointerEvents="none",this._dialogElement.append(this._debugElement)),this._setDebugVisibility(!0),this._updateDebugValues()):this._setDebugVisibility(!1)}_setDebugVisibility(t){this._debugElement&&(this._debugElement.style.display=t?"block":"none")}_updateDebugValues(){if(!this._debugElement||!this._options.debug)return;const t=this._dialogElement.getBoundingClientRect();this._debugElement.textContent=`w:${Math.round(t.width)} h:${Math.round(t.height)} x:${Math.round(t.left)} y:${Math.round(t.top)}`}},C="vg.modal",A='.vg-modal.show:not([data-vg-persistent="true"])',E="vg-modal-open",x="show",P="vg-modal-static",L=`${C}.hide`,I=`${C}.hidden`,M=`${C}.show`,D=`${C}.shown`,T=`${C}.resize`,k=`${C}.loaded`,F=`keydown.dismiss.${C}`,R=`hidePrevented.${C}`,O=`click.${C}.data.api`,N=`mousedown.dismiss${C}`,z=`click.dismiss${C}`,H=`DOMContentLoaded.${C}.data.api`,$=`popstate.${C}.data.api`;class B extends t.A{constructor(t,e={}){super(t,e),this._interactionDefaults={drag:{enable:!1,selector:".vg-modal-content",threshold:4,resizeEdgeSize:8,debug:!1},resize:{enable:!1,edgeSize:8,minWidth:300,minHeight:160,debug:!1}},this._params=this._getParams(t,(0,r._v)({backdrop:!0,persistent:!1,focus:!0,keyboard:!0,fields:[],hash:!1,centered:!1,dismiss:!0,resize:{enable:!1,edgeSize:8,minWidth:300,minHeight:160,debug:!1},state:{enable:!0,key:""},drag:{enable:!1,selector:".vg-modal-content",threshold:4,resizeEdgeSize:8,debug:!1},sizes:{width:"",height:""},ajax:{route:"",target:"",method:"get",loader:!1,once:!1,output:!0},animation:{enable:!1,in:"animate__rollIn",out:"animate__rollOut",delay:100,duration:800},classes:{general:"vg-modal",dialog:"vg-modal-dialog",content:"vg-modal-content",header:"vg-modal-header",title:"vg-modal-title",body:"vg-modal-body",footer:"vg-modal-footer"}},e)),this._button=null,this._dialog=s.A.find(".vg-modal-dialog",this._element),this._content=s.A.find(".vg-modal-content",this._dialog),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new d,this._dragHandler=new v(this._element,this._dialog),this._resizeHandler=new S(this._element,this._dialog),this._interactionConfig=this._resolveInteractionConfig(),this._dragHandler.setOptions(this._interactionConfig.drag),this._resizeHandler.setOptions(this._interactionConfig.resize),this._addEventListeners(),this._dismissElement(),this._params.animation.delay=this._params.animation.enable?this._params.animation.delay:0,this._animation(this._element,B.NAME_KEY,this._params.animation),this._params.persistent?this._element.setAttribute("data-vg-persistent","true"):this._element.removeAttribute("data-vg-persistent")}static get NAME(){return"modal"}static get NAME_KEY(){return C}static init(t,e,i){B.build(t,e,i)}static build(t,i,s){if("string"!=typeof t)return;let n=document.createElement("div");n.classList.add("vg-modal"),n.classList.add("fade"),n.id=t;let a=document.createElement("div");a.classList.add("vg-modal-dialog"),"centered"in i&&i.centered&&a.classList.add("vg-modal-dialog-centered");let o=document.createElement("div");if(o.classList.add("vg-modal-content"),"dismiss"in i&&i.dismiss){let i=document.createElement("button");e.p.set(i,"type","button"),e.p.set(i,"data-vg-dismiss","modal"),e.p.set(i,"data-vg-target","#"+t),e.p.set(i,"aria-label","close"),i.classList.add("vg-btn-close"),o.append(i)}let l=document.createElement("div");l.classList.add("vg-modal-body"),o.append(l),a.append(o),n.append(a),document.body.append(n);const d=B.getOrCreateInstance(n,i);return"animation"in i&&d._animation(n,B.NAME_KEY,i.animation),"sizes"in d._params&&d._params.sizes.width&&n.style.setProperty("--vg-modal-width",d._params.sizes.width),"sizes"in d._params&&d._params.sizes.height&&(a.style.height=d._params.sizes.height),(0,r.g7)(s,[d]),d}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){if(!(0,r.d6)(this._element)){if(this._params.ajax.route&&this._params.ajax.target&&!this._params.ajax.once){const t=s.A.find(this._params.ajax.target,this._element);t&&(t.innerHTML="")}g.A.trigger(this._element,M,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._params.hash&&(window.history.pushState(null,"vg-sidebar-open","#"+this._element.id),g.A.on(window,$,()=>{this.hide()})),this._scrollBar.hide(),document.body.classList.add(E),this._addFieldsInModal(t),this._adjustDialog(),this._params.backdrop?p.show(()=>{const e=s.A.find(".vg-backdrop");e&&g.A.one(e,"mousedown.vg.backdrop",()=>{this.hide()}),this._showElement(t)}):this._showElement(t))}}hide(t=[],e=!1){this._isShown&&!this._isTransitioning&&(g.A.trigger(this._element,L).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,setTimeout(()=>{this._element.classList.remove(x),this._queueCallback(()=>this._hideModal(t,e),this._element,this._isAnimatedFade())},this._params.animation.delay)))}_hideModal(t,e){if(!e){if(this._saveInteractionState(),this._disableInteractionHandlers(),this._element.style.display="none",this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,s.A.findAll(A).filter(t=>t!==this._element).length||t.length)return void g.A.trigger(this._element,I);if(document.body.classList.remove(E),this._params.hash&&history.pushState("",document.title,window.location.pathname+window.location.search),!this._params.backdrop)return this._resetAdjustments(),this._scrollBar.reset(),void g.A.trigger(this._element,I);p.hide(()=>{this._resetAdjustments(),this._scrollBar.reset(),g.A.trigger(this._element,I)})}}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=s.A.find(".vg-modal-body",this._dialog);e&&(e.scrollTop=0),(0,r.qm)(this._element),this._element.classList.add(x),this._toggleInteractionHandlers(),this._queueCallback(()=>{this._isTransitioning=!1,g.A.trigger(this._element,D,{relatedTarget:t}),this._syncInteractiveBounds(),this._params=this._getParams(t,this._params),this._restoreInteractionState(),this._syncInteractiveBounds(),this._route((e,i)=>{g.A.trigger(this._element,k,{stats:e,data:i,relatedTarget:t}),this._syncInteractiveBounds()})},this._dialog,this._isAnimatedFade())}_bindInteractionHandlers(){this._dragHandler.setOptions(this._interactionConfig.drag),this._resizeHandler.setOptions(this._interactionConfig.resize)}_toggleInteractionHandlers(){this._interactionConfig=this._resolveInteractionConfig(),this._bindInteractionHandlers(),this._interactionConfig.drag.enable?this._dragHandler.enable():this._dragHandler.disable(),this._interactionConfig.resize.enable?this._resizeHandler.enable():this._resizeHandler.disable()}_disableInteractionHandlers(){this._dragHandler.disable(),this._resizeHandler.disable()}_syncInteractiveBounds(){this._interactionConfig.resize.enable&&this._resizeHandler.syncToViewport(),this._interactionConfig.drag.enable&&this._dragHandler.syncPosition()}_resolveInteractionConfig(){return{drag:this._normalizeInteractionParams(this._params.drag,this._interactionDefaults.drag),resize:this._normalizeInteractionParams(this._params.resize,this._interactionDefaults.resize)}}_normalizeInteractionParams(t,e){if("boolean"==typeof t)return{...e,enable:t};if(t&&"object"==typeof t){const i=Object.prototype.hasOwnProperty.call(t,"enable");return{...e,...t,enable:!i||Boolean(t.enable)}}return{...e}}_getStateConfig(){return this._normalizeStateParams(this._params.state)}_normalizeStateParams(t,e={enable:!0,key:""}){if("boolean"==typeof t)return{...e,enable:t};if(t&&"object"==typeof t){const i=Object.prototype.hasOwnProperty.call(t,"enable"),s="string"==typeof t.key?t.key.trim():"";return{...e,...t,key:s,enable:!i||Boolean(t.enable)}}return{...e}}_getStateStorageKey(t=this._getStateConfig()){return t.enable?"string"==typeof t.key&&t.key.trim()?t.key.trim():this._element&&this._element.id?`vg.modal.state:${window.location.pathname}:${this._element.id}`:"":""}_captureInteractionState(){const t=this._dialog?this._dialog.style:null,e=this._content||s.A.find(".vg-modal-content",this._dialog),i=e?e.style:null;return{dialog:t?{position:t.position,margin:t.margin,left:t.left,top:t.top,width:t.width,height:t.height,transform:t.transform,maxWidth:t.maxWidth,maxHeight:t.maxHeight,minHeight:t.minHeight,overflow:t.overflow,pointerEvents:t.pointerEvents,transition:t.transition,willChange:t.willChange}:{},content:i?{height:i.height,maxHeight:i.maxHeight,overflow:i.overflow}:{}}}_applyInteractionState(t){if(!t||"object"!=typeof t)return;const e=t.dialog&&"object"==typeof t.dialog?t.dialog:{},i=t.content&&"object"==typeof t.content?t.content:{};this._dialog&&Object.keys(e).forEach(t=>{this._dialog.style[t]=e[t]||""});const r=this._content||s.A.find(".vg-modal-content",this._dialog);r&&Object.keys(i).forEach(t=>{r.style[t]=i[t]||""})}_saveInteractionState(){const t=this._getStateConfig(),e=this._getStateStorageKey(t);if(t.enable&&e&&"undefined"!=typeof window&&window.localStorage)try{window.localStorage.setItem(e,JSON.stringify(this._captureInteractionState()))}catch(t){}}_restoreInteractionState(){const t=this._getStateConfig(),e=this._getStateStorageKey(t);if(!t.enable||!e||"undefined"==typeof window||!window.localStorage)return!1;try{const t=window.localStorage.getItem(e);if(!t)return!1;const i=JSON.parse(t);return this._applyInteractionState(i),!0}catch(t){return!1}}_isAnimatedFade(){return this._element.classList.contains("fade")}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=(0,r.V8)()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=(0,r.V8)()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}_addEventListeners(){g.A.on(document,F,t=>{"Escape"===t.key&&(this._params.keyboard?this.hide():this._triggerBackdropTransition())}),g.A.on(window,T,()=>{this._isShown&&!this._isTransitioning&&(this._adjustDialog(),this._syncInteractiveBounds())}),g.A.on(this._element,N,t=>{g.A.one(this._element,z,e=>{this._element===t.target&&this._element===e.target&&("static"!==this._params.backdrop?this._params.backdrop&&this.hide():this._triggerBackdropTransition())})})}_triggerBackdropTransition(){if(g.A.trigger(this._element,R).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(P)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(P),this._queueCallback(()=>{this._element.classList.remove(P),this._queueCallback(()=>{this._element.style.overflowY=e},this._dialog)},this._dialog))}_addFieldsInModal(t){this._params=this._getParams(t,this._params),this._params.fields.length&&this._params.fields.forEach(t=>{if(!1 in t&&!1 in t)return;let i=s.A.findAll("[data-"+t.name+"]",this._element);if(i.length)for(const s of i)switch(s.tagName){case"INPUT":s.value=t.value;break;case"FORM":s.action=t.value;break;case"IMG":e.p.set(s,"src",t.value);break;default:s.innerHTML=t.value}})}}(0,f.P)(B),g.A.on(document,O,'[data-vg-toggle="modal"]',function(t){const e=s.A.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),g.A.one(e,M,t=>{t.defaultPrevented});const i=s.A.find(A);if(i){const t=B.getInstance(i);t&&!t._params.persistent&&t.hide([i])}B.getOrCreateInstance(e).toggle(this)}),g.A.on(document,H,function(){let t=window.location.hash.slice(1);if(t){let e=s.A.find("#"+t);if(e&&e.classList.contains("vg-modal")){if((0,r.d6)(e))return;B.getOrCreateInstance(e).toggle()}}});const j=B,V=j,q=JSON.parse('{"errors":{"400":"Неверный запрос","401":"Не авторизован","403":"Запрещено","404":"Не найдено","413":"Слишком большой запрос","419":"Проблемы с токеном CSRF","422":"Неверный запрос","500":"Внутренняя ошибка сервера","504":"Превышено время ожидания","went_wrong":"Что-то пошло не так, повторите позже"},"form-sender":{"bootstrap_not_found":"VGApp не удалось найти bootstrap, модалки не будут закрыты, попробуйте сделать это через коллбек afterSend."},"files":{"is-count":"Превышен лимит по количеству файлов","is-sizes":"Превышен размер файл","is-types":"Недопустимый тип файла","is-total-size":"Превышен максимально разрешённый размер для выбранных файлов","titles":"Удаление файлов","title":"Удаление файлa","descriptions":"Вы действительно хотите удалить все загруженные файлы с сервера?","description":"Вернуть будет невозможно","drop-active":"Отпустите, чтобы загрузить"},"filepreview":{"audio_title":"Аудио файл","image_title":"Просмотр изображения","image_thumbnail_alt":"Миниатюра изображения","text_title":"Просмотр текста","video_title":"Просмотр видео","pdf_title":"Просмотр PDF","office_title":"Просмотр документа","archive_title":"Просмотр архива","loading_text":"Загрузка...","loading_archive":"Загрузка архива...","loading_entry":"Загрузка файла из архива...","cannot_open_file":"Не удалось открыть файл","cannot_open_archive":"Не удалось открыть архив","cannot_preview_entry":"Не удалось открыть вложение","office_fallback":"Если встроенный превью не работает, скачайте файл.","invalid_zip":"Некорректный ZIP-файл","central_directory_not_found":"Центральный каталог не найден","archive_buffer_missing":"Буфер архива не доступен","entry_corrupted":"Файл в архиве поврежден","compression_not_supported":"Метод сжатия не поддерживается","deflate_not_supported":"Браузер не поддерживает распаковку Deflate","unknown_error":"Неизвестная ошибка","empty_file":"(пустой файл)","archive_empty_unsupported":"Архив пустой или не поддерживается.","archive_type_dir":"папка","archive_type_file":"файл","archive_table_name":"Имя","archive_table_type":"Тип","archive_table_packed":"Сжатый","archive_table_size":"Размер","archive_table_preview":"Превью","pdf_page":"Страница","pdf_zoom":"Масштаб"},"alert":{"title":"Заголовок по умолчанию","description":"Описание текущего действия","reason":"Алерт уже открыт"},"select":{"loading":"Загрузка"}}'),U=JSON.parse('{"errors":{"title":"Ошибка","titles":"Ошибки"},"select":{"search":"Поиск..."}}'),W=JSON.parse('{"alert":{"agree":"Да, согласен","cancel":"Отмена"},"files":{"agree":"Да","cancel":"Нет"},"filepreview":{"open_audio":"Открыть плеер","open_image":"Открыть изображение","open_text":"Открыть текст","open_video":"Открыть видео","open_archive":"Открыть архив","open_pdf":"Открыть PDF","open_office":"Открыть документ","download":"Скачать","preview":"Превью","prev":"Назад","next":"Вперед","zoom_in":"Увеличить","zoom_out":"Уменьшить"},"loadmore":{"send":"Загружаю...","show":"Показываю...","text-ajax":"Загрузить еще","text-more":"Показать еще"},"rollup":{"less":"Свернуть","show":"Показать","more":" еще "},"select":{"load-more":"Загрузить еще"}}'),K=JSON.parse('{"errors":{"400":"Bad Request","401":"Unauthorized","403":"Forbidden","404":"Not Found","413":"Payload Too Large","419":"Problems with the CSRF token","422":"Unprocessable Entity","500":"Internal Server Error","504":"Gateway Timeout","went_wrong":"Something went wrong, please repeat later"},"form-sender":{"bootstrap_not_found":"VGApp could not find bootstrap, the modals will not be closed, try to do this through the afterSend callback."},"files":{"is-count":"Exceeded the limit on the number of files","is-sizes":"File size exceeded","is-types":"Invalid file type","is-total-size":"The maximum allowed size for the selected files has been exceeded","titles":"Deleting files","title":"Deleting file","descriptions":"Do you really want to delete all uploaded files from the server?","description":"It will not be possible to return it","drop-active":"Release to upload"},"filepreview":{"audio_title":"Audio file","image_title":"Image preview","image_thumbnail_alt":"Image thumbnail","text_title":"Text preview","video_title":"Video preview","pdf_title":"PDF preview","office_title":"Office preview","archive_title":"Archive preview","loading_text":"Loading...","loading_archive":"Loading archive...","loading_entry":"Loading entry...","cannot_open_file":"Cannot open file","cannot_open_archive":"Cannot open archive","cannot_preview_entry":"Cannot preview entry","office_fallback":"If embedded preview is unavailable, download the file.","invalid_zip":"Invalid ZIP file","central_directory_not_found":"Central directory not found","archive_buffer_missing":"Archive buffer is missing","entry_corrupted":"Archive entry is corrupted","compression_not_supported":"Compression method is not supported","deflate_not_supported":"Deflate decompression is not supported by the browser","unknown_error":"Unknown error","empty_file":"(empty file)","archive_empty_unsupported":"Archive is empty or unsupported.","archive_type_dir":"dir","archive_type_file":"file","archive_table_name":"Name","archive_table_type":"Type","archive_table_packed":"Packed","archive_table_size":"Size","archive_table_preview":"Preview","pdf_page":"Page","pdf_zoom":"Zoom"},"alert":{"title":"Default header","description":"Description of the current action","reason":"Alert already open"},"select":{"loading":"Loading"}}'),Y=JSON.parse('{"errors":{"title":"Error","titles":"Errors"},"select":{"search":"Search..."}}'),G=JSON.parse('{"alert":{"agree":"Yeah, I agree","cancel":"Cancel"},"files":{"agree":"Yeah, I agree","cancel":"Cancel"},"filepreview":{"open_audio":"Open player","open_image":"Open image","open_text":"Open text","open_video":"Open video","open_archive":"Open archive","open_pdf":"Open PDF","open_office":"Open document","download":"Download","preview":"Preview","prev":"Prev","next":"Next","zoom_in":"Zoom +","zoom_out":"Zoom -"},"loadmore":{"send":"Uploading...","show":"I\'m showing you...","text-ajax":"Upload more","text-more":"Show more"},"rollup":{"less":"Roll up","show":"Show","more":" more "},"select":{"load-more":"Upload more"}}'),X={ru:(0,r.OM)({messages:q,titles:U,buttons:W}),en:(0,r.OM)({messages:K,titles:Y,buttons:G})};class Z{constructor(t="en"){this.lang=t}get(){return X[this.lang]||X.en}}function J(t="en",e,i){const s=new Z(t).get();return s[e]?.[i]||{}}function Q(t,e){return J(t,"titles",e)}function tt(t,e){return J(t,"messages",e)}function et(t,e){return J(t,"buttons",e)}var it=i(667);const st="vg-alert",rt="data-vg-alert-agree",nt="data-vg-alert-cancel",at="alert",ot="vg.alert";let lt=!1;class dt{constructor(t={},e="ru"){this.lang=e,this._defaultParams={render:{type:"modal",dismiss:!1},ajax:{route:"",target:"",method:"get",loader:!1,once:!1,output:!0},modal:{centered:!1,backdrop:!0,overflow:!0,keyboard:!0,dismiss:!0,animation:{enable:!1,in:"animate__rollIn",out:"animate__rollOut",delay:300,duration:700}},mode:"confirm",theme:"danger",buttons:{},message:{}},this._elementsDefault={buttons:{agree:{element:"",tag:"button",type:"button",attr:{},toggle:rt,class:["btn"],text:et(this.lang,at).agree},cancel:{element:"",tag:"button",type:"button",attr:{},toggle:nt,class:["btn"],text:et(this.lang,at).cancel}},message:{title:tt(this.lang,at).title,description:tt(this.lang,at).description},icons:{danger:(0,f.z)("danger"),warning:(0,f.z)("warning"),success:(0,f.z)("success"),info:(0,f.z)("info")}},this._params=this._setParams(t)}static get NAME(){return at}static get NAME_KEY(){return ot}static boot(){return this._bindDataApi(),null}static call(t={},e="ru"){const i=new dt(t,e);if(lt)return Promise.reject({accepted:!1,reason:tt(i.lang,ot).reason});lt=!0;const{element:r,render:n,type:a}=(()=>{if("overlay"===i._params.render.type){const t=i._buildOverlay();return{element:t.element,render:t.render,type:"overlay"}}if("modal"===i._params.render.type){const t=i._buildModal();return{element:t._element,render:t,type:"modal"}}})();"modal"===a&&n.show();const o=s.A.find(`[${rt}]`,r),l=s.A.find(`[${nt}]`,r);return new Promise((t,e)=>{const s=(t=!0)=>{"modal"!==a?"overlay"===a&&(r.remove(),i._params.render.dismiss&&t&&n.hide()):n.hide()},d=e=>{e.preventDefault(),u(),t({accepted:!0,timestamp:new Date}),s()},h=t=>{t.preventDefault(),u(),e({accepted:!1,timestamp:new Date}),s(!1)},c=t=>{"Enter"===t.key&&o&&(t.preventDefault(),d(t)),"Escape"===t.key&&(t.preventDefault(),h(t))},u=()=>{lt=!1,document.removeEventListener("keydown",c),o&&o.removeEventListener("click",d),l&&l.removeEventListener("click",h)};"confirm"===i._params.mode&&(o&&o.addEventListener("click",d),l&&l.addEventListener("click",h)),"info"===i._params.mode&&l&&l.addEventListener("click",h),document.addEventListener("keydown",c),"modal"===a&&r.addEventListener("vg.modal.hide",()=>{u(),e({accepted:!1,timestamp:new Date})},{once:!0}),r.focus()})}static confirm(t,e={}){let i="ru";"lang"in e&&(i=e.lang||"ru",delete e.lang);const s=new dt(e,i);"confirm"===s._params.mode&&gt.getOrCreateInstance(t,s._params).run(dt)}static _bindDataApi(){this._isDataApiBound||(this._isDataApiBound=!0,g.A.on(document,ct,ht,function(t){t.preventDefault();const e=t.target;(0,r.zN)(e)&&(0,r.vq)(e)&&dt.confirm(e,{buttons:{agree:{class:["btn-primary"]},cancel:{class:["btn-outline-primary"]}}})}))}_setParams(t){const e=(0,r._v)(this._defaultParams,t);return e.buttons=(0,r._v)(this._elementsDefault.buttons,e.buttons),e.message=(0,r._v)(this._elementsDefault.message,e.message),e.icon=this._elementsDefault.icons[e.theme],e}_buildModal(){const t=`${st}-${(0,r.PR)()}`;return V.build(t,this._params.modal,t=>{t._element.classList.add(`${st}-modal`),s.A.find(".vg-modal-body",t._element).append(this._buildContent())})}_buildContent(){const t=(0,h.A)("dom");let i=null;this._params.icon&&(i=t.div({class:`${st}-content--icon`},this._params.icon,{isHTML:!0}));const s=document.createElement("div");return e.x.add(s,"vg-alert-buttons"),"confirm"===this._params.mode&&(this._createButton(s,"cancel"),this._createButton(s,"agree")),"info"===this._params.mode&&this._createButton(s,"cancel"),t.div({class:`${st}-wrapper ${st}-${this._params.theme}`},[t.div({class:`${st}-content`},[i,t.div({class:`${st}-content--message`},[t.div({class:`${st}-content--title`},this._params.message.title),t.div({class:`${st}-content--description`},this._params.message.description)])]),s])}_buildOverlay(){const t=this._params.relatedTarget.closest([".vg-modal",".vg-sidebar"].join(", ")),e=V.getOrCreateInstance(t),i=s.A.find(".vg-modal-content",e._element)||t,r=document.createElement("div");return r.className=`${st}-overlay`,r.append(this._buildContent()),i.append(r),{element:r,render:e}}_createButton(t,e){const i=this._params.buttons[e];if(!i||i.element)return void t.insertAdjacentHTML("beforeend",i?.element||"");if(!i.tag)return;let s=null,n=[...new Set(i.class)].join(" "),a=(0,r._v)({class:n},i.attr);"button"===i.tag?s=(0,h.A)("dom").button(i.text,i.type,a):"a"===i.tag&&(s=(0,h.A)("dom").a("#",i.text,a)),s&&(s.setAttribute(i.toggle,"true"),t.appendChild(s))}}const ht=`[data-vg-toggle="${at}"]`,ct=`click.${ot}.data.api`,ut=`${ot}.loaded`,_t=`${ot}.accept`,mt=`${ot}.reject`,pt=`${ot}.finally`;class gt extends t.A{constructor(t,e={}){super(t),this._params=this._getParams(t,(0,r._v)({},e))}static get NAME(){return at}static get NAME_KEY(){return ot}run(t){"confirm"===this._params.mode&&(this._params.relatedTarget=this._element,t.call(this._params).then(t=>t.accepted?this._params.ajax.route?this._ajax():t:Promise.reject(t)).then(t=>{g.A.trigger(this._element,_t,{vgalert:t})}).catch(t=>{g.A.trigger(this._element,mt,{vgalert:t})}).finally(()=>{g.A.trigger(this._element,pt,{vgalert:"finally"})}))}_ajax(){return new Promise(t=>{this._route((e,i)=>{g.A.trigger(this._element,ut,{stats:e,data:i}),t({status:e,data:i})})})}}dt._isDataApiBound=!1;const ft=dt,bt="vg.collapse",vt="show",yt="vg-collapse",wt="vg-collapsing",St=`:scope .${yt} .${yt}`,Ct='[data-vg-toggle="collapse"]',At=`${bt}.hide`,Et=`${bt}.hidden`,xt=`${bt}.show`,Pt=`${bt}.shown`,Lt=`${bt}.loaded`,It=`click.${bt}.data.api`;class Mt extends t.A{constructor(t,e={}){super(t,e),this._params=this._getParams(t,(0,r._v)({toggle:!0,parent:null,ajax:{route:"",target:"",method:"get",loader:!1,once:!0,output:!0}},e)),this._params.parent=(0,r.V6)(this._params.parent)||null,this._isTransitioning=!1,this._triggerArray=[];const i=s.A.findAll(Ct);for(const t of i){const e=s.A.getSelectorFromElement(t),i=s.A.findAll(e).filter(t=>t===this._element);null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._params.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._params.toggle&&this.toggle()}static get NAME(){return"collapse"}static get NAME_KEY(){return bt}toggle(t){return this._isShown()?this.hide():this.show(t)}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._params.parent&&(t=this._getFirstLevelChildren(".vg-collapse.show, .vg-collapse.vg-collapsing").filter(t=>t!==this._element).map(t=>Mt.getOrCreateInstance(t,{toggle:!1}))),t.length&&t[0]._isTransitioning)return;if(g.A.trigger(this._element,xt).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(yt),this._element.classList.add(wt),this._element.style[e]="0",this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(wt),this._element.classList.add(yt,vt),this._element.style[e]="",this._route((t,e)=>{g.A.trigger(this._element,Lt,{stats:t,data:e})}),g.A.trigger(this._element,Pt)},this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(g.A.trigger(this._element,At).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,(0,r.qm)(this._element),this._element.classList.add(wt),this._element.classList.remove(yt,vt);for(const t of this._triggerArray){const e=s.A.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(wt),this._element.classList.add(yt),g.A.trigger(this._element,Et)},this._element,!0)}dispose(){super.dispose()}_isShown(t=this._element){return t.classList.contains(vt)}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)this._changeStateButton(i,e)}_initializeChildren(){if(!this._params.parent)return;const t=this._getFirstLevelChildren(Ct);for(const e of t){const t=s.A.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=s.A.findAll(St,this._params.parent);return s.A.findAll(t,this._params.parent).filter(t=>!e.includes(t))}_changeStateButton(t,i){t.classList.toggle("vg-collapsed",!i),t.setAttribute("aria-expanded",i),t.innerHTML=e.p.get(t,`data-${i?"hide":"show"}-text`)||t.innerHTML}_getDimension(){return this._element.classList.contains("vg-collapse-horizontal")?"width":"height"}}g.A.on(document,It,Ct,function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault(),s.A.getMultipleElementsFromSelector(this).forEach(function(t){Mt.getOrCreateInstance(t,{toggle:!1}).toggle()})});const Dt=Mt,Tt=Dt,kt=class{constructor(t){this.reference=t.reference,this.drop=t.drop,this.offset=t.offset||[0,0],this.boundary=t.boundary||"viewport",this.autoFlip=!1!==t.autoFlip,this.overflowProtection=!1!==t.overflowProtection,this.placement=t.placement||"bottom",this.fallbackPlacements=t.fallbackPlacements||[],this.clamp=!0===t.clamp,this.clampPadding=t.clampPadding??8,this.isMerge=!1!==t.isMerge}_getPlacementRect(t){return t.getBoundingClientRect()}_getViewportRect(){const t=document.documentElement;return{width:t.clientWidth,height:t.clientHeight,left:0,top:0,right:t.clientWidth,bottom:t.clientHeight}}_getOverflowConstraints(){const t=this._getPlacementRect(this.reference),e=this._getPlacementRect(this.drop),i=this._getViewportRect(),[s,r]=this.offset;let n=this.placement;if(this.overflowProtection){const a=[this.placement,...this.fallbackPlacements];let o=null;for(const n of a){const a=this._calculatePosition(n,t,e,s,r),l=this._calculateOverflow(a,e,i);if((!o||l<o.overflow)&&(o={placement:n,position:a,overflow:l},0===l))break}n=o.placement;const l=this.clamp?this._clampPosition(o.position,e,i):o.position;this._setStyles(l)}else{const a=this._calculatePosition(n,t,e,s,r),o=this.clamp?this._clampPosition(a,e,i):a;this._setStyles(o)}this.drop.setAttribute("data-vg-placement",n)}_calculatePosition(t,e,i,s=0,r=0){let n,a;switch(t){case"top":n=e.top-i.height-r,a=e.left+(e.width-i.width)/2;break;case"top-start":n=e.top-i.height-r,a=e.left+s;break;case"top-end":n=e.top-i.height-r,a=e.right-i.width-s;break;case"bottom":n=e.bottom+r,a=e.left+(e.width-i.width)/2;break;case"bottom-start":default:n=e.bottom+r,a=e.left+s;break;case"bottom-end":n=e.bottom+r,a=e.right-i.width-s;break;case"left":n=e.top+(e.height-i.height)/2,a=e.left-i.width-s;break;case"left-start":n=e.top+r,a=e.left-i.width-s;break;case"left-end":n=e.bottom-i.height-r,a=e.left-i.width-s;break;case"right":n=e.top+(e.height-i.height)/2,a=e.right+s;break;case"right-start":n=e.top+r,a=e.right+s;break;case"right-end":n=e.bottom-i.height-r,a=e.right+s}return{top:n,left:a}}_calculateOverflow(t,e,i){let s=0;return t.left<i.left&&(s+=i.left-t.left),t.top<i.top&&(s+=i.top-t.top),t.left+e.width>i.right&&(s+=t.left+e.width-i.right),t.top+e.height>i.bottom&&(s+=t.top+e.height-i.bottom),s}_clampPosition(t,e,i){const s=this.clampPadding,r=i.bottom-e.height-s,n=i.right-e.width-s;return{top:Math.min(Math.max(t.top,i.top+s),r),left:Math.min(Math.max(t.left,i.left+s),n)}}_setStyles(t){t&&this.drop&&(this.isMerge?(0,r._v)(this.drop.style,{position:"absolute",top:`${t.top+window.pageYOffset}px`,left:`${t.left+window.pageXOffset}px`,margin:"0"}):(this.drop.style.position="absolute",this.drop.style.top=`${t.top+window.pageYOffset}px`,this.drop.style.left=`${t.left+window.pageXOffset}px`,this.drop.style.margin="0"))}_setPlacement(){this._getOverflowConstraints()}},Ft="vg.dropdown",Rt="show",Ot="fade",Nt="open",zt="vg-dropdown-content",Ht='[data-vg-toggle="dropdown"]',$t=`${Ft}.hide`,Bt=`${Ft}.hidden`,jt=`${Ft}.show`,Vt=`${Ft}.shown`,qt=`${Ft}.loaded`,Ut=`keyup.${Ft}.data.api`,Wt=`keydown.${Ft}.data.api`,Kt=`click.${Ft}.data.api`,Yt=`mouseover.${Ft}.data.api`,Gt=`mouseout.${Ft}.data.api`;class Xt extends t.A{constructor(t,e){super(t,e),this._params=this._getParams(t,(0,r._v)({placement:"auto",hover:!1,ajax:{route:"",target:"",method:"get",loader:!1,once:!1,output:!0},animation:{fade:!0,enable:!1,in:"animate__flipInY",out:"animate__flipOutY",delay:300}},e));const i=s.A.getElementFromSelector(this._element);this._parent=this._element.parentNode,this._drop=i||s.A.find(`.${zt}`,this._parent),this._drop&&(this._isPlacement=!1,this.isFade=this._params.animation.fade,this.isAnimation=this._params.animation.enable,this._params.animation.delay=this.isAnimation?this._params.animation.delay:0,this._animation(this._drop,Xt.NAME_KEY,this._params.animation))}static get NAME(){return"dropdown"}static get NAME_KEY(){return Ft}toggle(){return this._isShown()?this.hide():this.show()}show(){if((0,r.d6)(this._element)||this._isShown())return;const t={relatedTarget:this._element};g.A.trigger(this._drop,jt,t).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>{g.A.on(t,"mouseover",r.lQ)}),this._element.setAttribute("aria-expanded","true"),this._element.classList.add(Rt),this._drop.classList.add(Rt),this._setPlacement(),this._queueCallback(()=>{this._route((t,e)=>{g.A.trigger(this._element,qt,{stats:t,data:e})}),this.isFade?this._drop.classList.add(Ot):this.isAnimation||this._drop.classList.add(Nt),g.A.trigger(this._drop,Vt,t)},this._drop,this.isAnimation||this.isFade,50))}hide(){!(0,r.d6)(this._element)&&this._isShown()&&this._completeHide({relatedTarget:this._element})}dispose(){super.dispose()}_isShown(){return this._element.classList.contains(Rt)}_completeHide(t){g.A.trigger(this._drop,$t,t).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>{g.A.off(t,"mouseover",r.lQ)}),this._element.classList.remove(Rt),this._element.setAttribute("aria-expanded","false"),this.isFade?this._drop.classList.remove(Ot):this.isAnimation||this._drop.classList.remove(Nt),setTimeout(()=>{this._queueCallback(()=>{this._drop.classList.remove(Rt),g.A.trigger(this._drop,Bt,t)},this._drop,this.isAnimation||this.isFade)},this._params.animation.delay))}_setPlacement(){if(this._drop){if(!this._isPlacement){let t="bottom-start",e=!1,i=!1;"auto"===this._params.placement?(e=!0,i=!0):t=this._params.placement,new kt({reference:this._element,drop:this._drop,placement:t,boundary:"clippingParents",autoFlip:e,overflowProtection:i,fallbackPlacements:["top-start","bottom-end","top-end"]})._setPlacement()}this._isPlacement=!0}}static init(t,e={}){const i=Xt.getOrCreateInstance(t,e);if(i._params.hover&&!(0,r.Xb)()){let t=null;g.A.on(i._parent,Yt,e=>{if(t)return;Xt.hideOpenToggles(e);const s=e.target.closest(".vg-dropdown");s&&i._parent.contains(s)&&(t=s,i.show())}),g.A.on(i._parent,Gt,e=>{if(!t)return;let s=e.relatedTarget;for(;s&&s!==t;)s=s.parentNode;s!==t&&(t=null,i._completeHide({relatedTarget:i._element}))})}return g.A.on(document,Ut,Ht,Xt.keydownHandler),g.A.on(document,Wt,`.${zt}`,Xt.keydownHandler),g.A.on(document,Ut,Xt.clearDrops),g.A.on(document,Kt,Xt.clearDrops),g.A.on(t,Kt,t=>{t.preventDefault(),i.toggle()}),i}static hideOpenToggles(t){const e=s.A.findAll(`${Ht}:not(.disabled):not(:disabled).${Rt}`);for(const i of e){const e=Xt.getInstance(i);if(!e)continue;if(t.target.closest(`.${zt}`)===e._drop)return;if((t.composedPath?.()||[]).includes(e._element))continue;const s={relatedTarget:e._element};"click"===t.type&&(s.clickEvent=t),e._completeHide(s)}}static keydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,r=["ArrowUp","ArrowDown"].includes(t.key);if(!r&&!i)return;if(e&&!i)return;t.preventDefault();const n=this.matches(Ht)?this:s.A.find(Ht,t.delegateTarget?.parentNode);if(!n)return;const a=Xt.getOrCreateInstance(n);r?(t.stopPropagation(),a.show()):a._isShown()&&(t.stopPropagation(),a.hide(),n.focus())}static clearDrops(t){2===t.button||"keyup"===t.type&&"Tab"!==t.key||Xt.hideOpenToggles(t)}}const Zt=Xt,Jt={_getFixedColumnsConfigRaw(){const t=(this._params&&this._params.fixed&&"object"==typeof this._params.fixed?this._params.fixed:{}).columns,e=this._element?this._element.getAttribute("data-fixed-columns"):null,i=null!=e&&""!==String(e).trim()?e:t;return String(i||"").trim()},_hasFixedColumnsConfig(){return""!==this._getFixedColumnsConfigRaw()||(this._element&&this._element.tHead?Array.from(this._element.tHead.querySelectorAll("th")):[]).some(t=>{const e=String(t.getAttribute("data-fixed")||"").toLowerCase().trim(),i=String(t.getAttribute("data-fixed-column")||"").toLowerCase().trim();return"left"===e||"right"===e||"left"===i||"right"===i})},_buildFixedColumnsStateMap(t){const e=new Map,i=Array.isArray(t&&t.left)?t.left:[],s=Array.isArray(t&&t.right)?t.right:[];return i.forEach(t=>{Number.isInteger(t)&&t>=0&&e.set(t,"left")}),s.forEach(t=>{Number.isInteger(t)&&t>=0&&!e.has(t)&&e.set(t,"right")}),e},_collectFixedColumnsTransitions(t){const e=this._fixedColumnsLastStateMap instanceof Map?this._fixedColumnsLastStateMap:new Map,i=[];return t.forEach((t,s)=>{e.get(s)!==t&&i.push({index:s,side:t})}),this._fixedColumnsLastStateMap=t,i},_applyFixedColumnsLayout(){if(!this._element)return;const t=Boolean(this._fixedColumnsSuppressed),e=this._element.tHead?Array.from(this._element.tHead.querySelectorAll("th")):[],i=this._getFixedColumnsByHeaders(e,{parseTableAttr:!0,fallbackByPosition:!0}),s=t?{left:[],right:[]}:this._applyMobileFixedColumnsGuard(this._element,i),r=s.left.length>0||s.right.length>0;this._element.classList.toggle("table-fixed-cols",r),this._parent&&this._parent.classList.toggle("table-fixed-cols",r);const n=this._collectFixedColumnsTransitions(this._buildFixedColumnsStateMap(s));this._applyFixedColumnsToTable(this._element,s,{includeBody:!0,emitAction:!0,transitionedColumns:n}),this._toggleFixedColumnsScrollBinding(r);const a=this._cloneStickyState&&this._cloneStickyState.table?this._cloneStickyState.table:null;if(a){const t=a.tHead?Array.from(a.tHead.querySelectorAll("th")):[],e=this._getFixedColumnsByHeaders(t,{parseTableAttr:!1,fallbackByPosition:!1}),i=r?this._applyMobileFixedColumnsGuard(a,e):{left:[],right:[]};this._applyFixedColumnsToTable(a,i,{includeBody:!1,emitAction:!1})}this._rebuildFixedColumnsCellsCache(),this._syncFixedColumnsScroll({immediate:!0})},_applyMobileFixedColumnsGuard(t,e){const i={left:Array.isArray(e&&e.left)?e.left.slice():[],right:Array.isArray(e&&e.right)?e.right.slice():[]};if(!this._isTouchDevice())return i;const s=this._getViewportWidthMetrics(),r=s?s.effectiveWidth:t?t.getBoundingClientRect().width:0;if(!(r>0&&r<=768))return i;const n=i.left.concat(i.right);if(n.length<=0)return i;if(n.length>1)return{left:[],right:[]};const a=t&&t.tHead?Array.from(t.tHead.querySelectorAll("th")):[],o=n[0],l=Number.isInteger(o)&&o>=0&&o<a.length?a[o]:null;return l&&(l.getBoundingClientRect().width||0)>.5*r?{left:[],right:[]}:i},_getFixedColumnsByHeaders(t,e={}){const i=Array.isArray(t)?t:[],s=!1!==e.parseTableAttr,r=!1!==e.fallbackByPosition,n=new Map,a=new Set,o=new Set,l=[];if(i.forEach((t,e)=>{const i=String(t.getAttribute("data-field")||"").trim();""!==i&&n.set(i,e)}),i.forEach((t,e)=>{const i=String(t.getAttribute("data-fixed")||"").toLowerCase().trim(),r=String(t.getAttribute("data-fixed-column")||"").toLowerCase().trim(),n="left"===i||"right"===i?i:"left"===r||"right"===r?r:"";if("left"===n)a.add(e);else if("right"===n)o.add(e);else if(!s){const i=String(t.getAttribute("data-fixed-side")||"").toLowerCase().trim();"left"===i?a.add(e):"right"===i&&o.add(e)}}),s&&this._element){const t=this._getFixedColumnsConfigRaw();""!==t&&t.split(";").map(t=>t.trim()).filter(Boolean).forEach(t=>{const e=t.match(/^(left|right)\s*:\s*(.+)$/i),s=e?e[1].toLowerCase():"";(e?e[2]:t).split(",").map(t=>t.trim()).filter(Boolean).forEach(t=>{const e=n.has(t)?n.get(t):Number.parseInt(t,10);!Number.isInteger(e)||e<0||e>=i.length||("left"===s?a.add(e):"right"===s?o.add(e):l.push(e))})})}l.forEach(t=>{a.has(t)||o.has(t)||(t<=Math.max(0,i.length-1-t)||!r?a.add(t):o.add(t))});return{left:Array.from(a).sort((t,e)=>t-e),right:Array.from(o).filter(t=>!a.has(t)).sort((t,e)=>t-e)}},_applyFixedColumnsToTable(t,e,i={}){if(!t)return;const s=!1!==i.includeBody,r=!1!==i.emitAction,n=Array.isArray(i.transitionedColumns)?i.transitionedColumns:[],a=[];t.tHead&&a.push(t.tHead),s&&t.tBodies&&t.tBodies.length&&a.push(...Array.from(t.tBodies)),s&&t.tFoot&&a.push(t.tFoot);const o=[];a.forEach(t=>{o.push(...Array.from(t.rows||[]))});const l=e&&(e.left.length>0||e.right.length>0);if(o.forEach(t=>{Array.from(t.cells||[]).forEach(t=>{t.removeAttribute("data-fixed-side"),t.removeAttribute("data-fixed-edge"),t.removeAttribute("data-fixed-shift"),t.removeAttribute("data-fixed-shadow"),t.removeAttribute("data-fixed-overlap"),t.style.removeProperty("z-index"),t.style.removeProperty("transform")})}),!l)return;const d=t.tHead?Array.from(t.tHead.querySelectorAll("th")):[],h=t.getBoundingClientRect(),c=this._getViewportWidthMetrics(),u=c?c.effectiveWidth:h.width,_={};d.forEach((t,e)=>{const i=t.getBoundingClientRect();_[e]={width:Math.max(0,i.width),left:Math.max(0,i.left-h.left),height:Math.max(0,i.height),top:Math.max(0,i.top-h.top)}});const m={};let p=0;e.left.forEach(t=>{const e=_[t]?_[t].width:0;m[t]=p,p+=e});const g={};let f=0;e.right.slice().sort((t,e)=>e-t).forEach(t=>{const e=_[t]?_[t].width:0;g[t]=f,f+=e});const b=e.left.length?e.left[e.left.length-1]:-1,v=e.right.length?e.right[0]:-1;o.forEach(t=>{const i=t.parentElement&&"THEAD"===t.parentElement.tagName?6:2;e.left.forEach(e=>{const s=t.cells&&t.cells[e]?t.cells[e]:null;if(!s)return;const r=_[e]||{left:0},n=m[e]-r.left;s.setAttribute("data-fixed-side","left"),s.setAttribute("data-fixed-shift",String(n)),s.style.zIndex=String(i),e===b&&s.setAttribute("data-fixed-edge","right")}),e.right.forEach(e=>{const s=t.cells&&t.cells[e]?t.cells[e]:null;if(!s)return;const r=_[e]||{left:0,width:0},n=u-g[e]-r.width-r.left;s.setAttribute("data-fixed-side","right"),s.setAttribute("data-fixed-shift",String(n)),s.style.zIndex=String(i),e===v&&s.setAttribute("data-fixed-edge","left")})}),r&&"function"==typeof this._emitAction&&n.length&&n.forEach(t=>{const e=Number.isInteger(t&&t.index)?t.index:-1,i=!t||"left"!==t.side&&"right"!==t.side?"":t.side,s=e>=0&&e<d.length?d[e]:null;if(!s||!i)return;const r=_[e]||{left:0,width:0,top:0,height:0},n=r.width||0,a=r.height||0,o="left"===i?m[e]||0:Math.max(0,u-(g[e]||0)-n),l="right"===i?g[e]||0:Math.max(0,u-o-n),c=r.top||0,p=Math.max(0,h.height-c-a),f=String(s.getAttribute("data-field")||"").trim(),b=o-(r.left||0),v=Number.parseFloat(s.getAttribute("data-fixed-shift")||""),y=Number.isFinite(v)?v:b,w=this._tableViewport&&this._tableViewport.scrollLeft||0,S=Date.now();this._emitAction("columnfixed",{columnIndex:e,side:i,phase:"fixed",field:f,column:{index:e,side:i,field:f,width:n,height:a,element:s},offsets:{left:o,right:l,top:c,bottom:p},shift:{base:y,current:y+w,scrollLeft:w},fixedAt:{timestamp:S,iso:new Date(S).toISOString()}})})},_toggleFixedColumnsScrollBinding(t){if(this._tableViewport){if(t&&!this._fixedColumnsScrollBound)return this._tableViewport.addEventListener("scroll",this._boundFixedColumnsScroll,{passive:!0}),void(this._fixedColumnsScrollBound=!0);!t&&this._fixedColumnsScrollBound&&(this._tableViewport.removeEventListener("scroll",this._boundFixedColumnsScroll),this._fixedColumnsScrollBound=!1),t||this._resetFixedColumnsScrollSyncState()}else this._resetFixedColumnsScrollSyncState()},_resetFixedColumnsScrollSyncState(){this._fixedColumnsSyncFrame&&"undefined"!=typeof window&&"function"==typeof window.cancelAnimationFrame&&window.cancelAnimationFrame(this._fixedColumnsSyncFrame),this._fixedColumnsSyncFrame=0,this._fixedColumnsLastScrollLeft=0,this._fixedColumnsLastAppliedScrollLeft=Number.NaN,this._fixedColumnsLastShadowStateKey="",this._fixedColumnsCellsCache=[],this._fixedColumnsShadowTargetsCache=[],this._fixedColumnsLastStateMap=new Map},_rebuildFixedColumnsCellsCache(){const t=[this._element];this._cloneStickyState&&this._cloneStickyState.table&&t.push(this._cloneStickyState.table);const e=t.filter(Boolean);this._fixedColumnsCellsCache=e.map(t=>Array.from(t.querySelectorAll("[data-fixed-side][data-fixed-shift]")).map(t=>{const e=Number.parseFloat(t.getAttribute("data-fixed-shift")||"0");return{cell:t,baseShift:Number.isFinite(e)?e:0}})).filter(t=>t.length>0),this._fixedColumnsShadowTargetsCache=e.map(t=>({table:t,edges:Array.from(t.querySelectorAll("[data-fixed-edge]")),fixedCells:Array.from(t.querySelectorAll("[data-fixed-side]"))})).filter(t=>t.edges.length>0||t.fixedCells.length>0),this._fixedColumnsLastAppliedScrollLeft=Number.NaN,this._fixedColumnsLastShadowStateKey=""},_syncFixedColumnsScroll(t={}){if(!this._tableViewport)return;const e=this._tableViewport.scrollLeft||0;this._fixedColumnsLastScrollLeft=e;const i=Boolean(t&&t.immediate);(i||this._fixedColumnsLastAppliedScrollLeft!==e)&&(i||"undefined"==typeof window||"function"!=typeof window.requestAnimationFrame?this._flushFixedColumnsScrollSync(e):this._fixedColumnsSyncFrame||(this._fixedColumnsSyncFrame=window.requestAnimationFrame(()=>{this._fixedColumnsSyncFrame=0,this._flushFixedColumnsScrollSync(this._fixedColumnsLastScrollLeft)})))},_flushFixedColumnsScrollSync(t){this._fixedColumnsCellsCache.length||this._rebuildFixedColumnsCellsCache(),this._fixedColumnsCellsCache.forEach(e=>{e.forEach(({cell:e,baseShift:i})=>{if(!e||!e.isConnected)return;const s=i+t;e.style.transform=`translate3d(${s}px, 0px, 0px)`})}),this._fixedColumnsLastAppliedScrollLeft=t,this._syncFixedColumnsShadows()},_syncFixedColumnsShadows(){Array.isArray(this._fixedColumnsShadowTargetsCache)&&this._fixedColumnsShadowTargetsCache.length||this._rebuildFixedColumnsCellsCache();const t=Array.isArray(this._fixedColumnsShadowTargetsCache)?this._fixedColumnsShadowTargetsCache:[];if(!t.length)return;const e=this._tableViewport,i=Boolean(e&&e.scrollWidth>e.clientWidth+1),s=e&&e.scrollLeft||0,r=e?Math.max(0,e.scrollWidth-e.clientWidth):0,n=i&&s>0,a=i&&s<r-1,o=`${n?1:0}:${a?1:0}`;this._fixedColumnsLastShadowStateKey!==o&&(this._fixedColumnsLastShadowStateKey=o,t.forEach(({edges:t,fixedCells:e})=>{t.forEach(t=>{const e=String(t.getAttribute("data-fixed-edge")||"").toLowerCase().trim();"right"===e&&n||"left"===e&&a?t.setAttribute("data-fixed-shadow","1"):t.removeAttribute("data-fixed-shadow")}),e.forEach(t=>{const e=String(t.getAttribute("data-fixed-side")||"").toLowerCase().trim();"left"===e&&n||"right"===e&&a?t.setAttribute("data-fixed-overlap","1"):t.removeAttribute("data-fixed-overlap")})}))}},Qt=Jt,te={_ensureTableViewport(t=null){if(!this._parent||!this._element)return;let e=this._element.parentElement&&this._element.parentElement.classList.contains("vgdt-table-viewport")?this._element.parentElement:null;e||(e=Array.from(this._parent.children||[]).find(t=>t&&t.classList&&t.classList.contains("vgdt-table-viewport"))||null),e||(e=document.createElement("div"),e.className="vgdt-table-viewport",t===this._parent?this._parent.insertBefore(e,this._element):this._parent.appendChild(e)),this._element.parentElement!==e&&e.appendChild(this._element),this._tableViewport=e},_bindViewportPan(){const t=this._tableViewport;if(!t)return;if(this._panState&&this._panState.viewport===t)return;if(this._panState&&this._panState.viewport){const t=this._panState.viewport;t.removeEventListener("pointerdown",this._panState.onPointerDown),t.removeEventListener("pointermove",this._panState.onPointerMove),t.removeEventListener("pointerup",this._panState.onPointerUp),t.removeEventListener("pointercancel",this._panState.onPointerCancel),t.classList.remove("vgdt-pan-enabled","is-panning")}const e={viewport:t,active:!1,moved:!1,pointerId:null,startX:0,startY:0,startScrollLeft:0,startScrollTop:0,onPointerDown:null,onPointerMove:null,onPointerUp:null,onPointerCancel:null},i=()=>{e.active=!1,e.moved=!1,e.pointerId=null,t.classList.remove("is-panning")};e.onPointerDown=i=>{if(!i||!i.isPrimary)return;if("mouse"===i.pointerType&&0!==i.button)return;if(!i.shiftKey)return;const s=i.target;s&&s.closest('button, a, input, select, textarea, [role="button"], [data-sort-arrow]')||(e.active=!0,e.moved=!1,e.pointerId=i.pointerId,e.startX=i.clientX,e.startY=i.clientY,e.startScrollLeft=t.scrollLeft,e.startScrollTop=t.scrollTop,t.classList.add("is-panning"),"function"==typeof t.setPointerCapture&&t.setPointerCapture(i.pointerId))},e.onPointerMove=i=>{if(!e.active||i.pointerId!==e.pointerId)return;const s=i.clientX-e.startX,r=i.clientY-e.startY;!e.moved&&(Math.abs(s)>4||Math.abs(r)>4)&&(e.moved=!0),t.scrollLeft=e.startScrollLeft-s,t.scrollTop=e.startScrollTop-r,e.moved&&i.cancelable&&i.preventDefault()},e.onPointerUp=s=>{if(s.pointerId===e.pointerId){if("function"==typeof t.releasePointerCapture)try{t.releasePointerCapture(s.pointerId)}catch(t){}i()}},e.onPointerCancel=t=>{t.pointerId===e.pointerId&&i()},t.classList.add("vgdt-pan-enabled"),t.addEventListener("pointerdown",e.onPointerDown),t.addEventListener("pointermove",e.onPointerMove),t.addEventListener("pointerup",e.onPointerUp),t.addEventListener("pointercancel",e.onPointerCancel),this._panState=e,"undefined"!=typeof window&&(window.removeEventListener("resize",this._boundPanHintResize),window.addEventListener("resize",this._boundPanHintResize)),this._updatePanHintVisibility()},_ensurePanHintNode(){if(this._panHintNode||!this._parent)return;const t=document.createElement("div");t.className="vgdt-pan-hint";const e=this._getTableMessage("shiftDragHint","Hold Shift and drag to scroll the table."),i=this._getTableMessage("shiftDragHintClose","Close hint");t.innerHTML=`<span class="vgdt-pan-hint__text">${this._escapeHtml(e)}</span><button type="button" class="vgdt-pan-hint__close" data-pan-hint-dismiss aria-label="${this._escapeHtml(i)}">&times;</button>`,t.hidden=!0,t.addEventListener("click",this._boundPanHintDismiss);const s=this._tableViewport&&this._tableViewport.parentElement===this._parent?this._tableViewport:this._element;this._parent.insertBefore(t,s),this._panHintNode=t},_handlePanHintDismiss(t){const e=t?t.target:null,i=e instanceof Element?e:e&&e.parentElement?e.parentElement:null;i&&i.closest("[data-pan-hint-dismiss]")&&(t&&"function"==typeof t.preventDefault&&t.preventDefault(),this._storePanHintDismissedAt(Date.now()),this._panHintNode&&(this._panHintNode.hidden=!0))},_updatePanHintVisibility(){if(!this._panHintNode||!this._tableViewport)return;const t=this._tableViewport.scrollWidth||0,e=this._tableViewport.clientWidth||0;if(!(Math.max(0,t-e)>1))return void(this._panHintNode.hidden=!0);const i=!this._isTouchDevice()&&!this._isPanHintDismissed();this._panHintNode.hidden=!i},_getPanHintDismissDays(){const t=this._params&&this._params.panHint&&"object"==typeof this._params.panHint?this._params.panHint:{},e=this._element?this._element.getAttribute("data-pan-hint-dismiss-days"):null,i=null!==e?e:t.dismissDays,s=Number.parseInt(i,10);return Number.isFinite(s)&&s>0?s:60},_getPanHintDismissStorageKey(){if("function"==typeof this._getPerPageStorageKey)return`${this._getPerPageStorageKey()}:panHintDismissedAt`;const t=this._element&&this._element.id?String(this._element.id).trim():"";return t?`vgdt:panHint:${t}`:`vgdt:panHint:${window.location.pathname}`},_readPanHintDismissedAt(){if("undefined"==typeof window||!window.localStorage)return 0;try{const t=Number.parseInt(window.localStorage.getItem(this._getPanHintDismissStorageKey()),10);return Number.isFinite(t)&&t>0?t:0}catch(t){return 0}},_storePanHintDismissedAt(t){if("undefined"==typeof window||!window.localStorage)return;const e=Number.isFinite(t)&&t>0?Math.floor(t):Date.now();try{window.localStorage.setItem(this._getPanHintDismissStorageKey(),String(e))}catch(t){}},_clearPanHintDismissedAt(){if("undefined"!=typeof window&&window.localStorage)try{window.localStorage.removeItem(this._getPanHintDismissStorageKey())}catch(t){}},_isPanHintDismissed(){const t=this._readPanHintDismissedAt();if(!t)return!1;const e=24*this._getPanHintDismissDays()*60*60*1e3;if(!Number.isFinite(e)||e<=0)return!1;const i=t+e;return Date.now()<=i||(this._clearPanHintDismissedAt(),!1)},_isTouchDevice(){if("undefined"==typeof window||"undefined"==typeof navigator)return!1;const t=Number.isFinite(navigator.maxTouchPoints)&&navigator.maxTouchPoints>0,e="function"==typeof window.matchMedia&&(window.matchMedia("(pointer: coarse)").matches||window.matchMedia("(any-pointer: coarse)").matches),i="function"==typeof window.matchMedia&&(window.matchMedia("(hover: none)").matches||window.matchMedia("(any-hover: none)").matches),s="ontouchstart"in window;return t||e||i||s},_moveTableClassesToWrapper(t){if(!t||!this._element)return;const e=Array.from(this._element.classList||[]);e.length&&e.forEach(e=>{"vg-dynamic-table"!==e&&t.classList.add(e),this._element.classList.remove(e)})}},ee=te;function ie(t,e=0){const i=Number.parseInt(t,10);return Number.isFinite(i)&&i>=0?i:e}function se(t,e=!1){if(null==t)return e;const i=String(t).toLowerCase().trim();return"true"===i||"1"===i||"false"!==i&&"0"!==i&&Boolean(t)}function re(t,e=!0){if(null==t)return e;const i=String(t).toLowerCase().trim();return"false"!==i&&"0"!==i}function ne(t,e=document){const i=String(t||"").trim();if(!i||!e||"function"!=typeof e.querySelector)return null;try{return e.querySelector(i)}catch(t){return null}}const ae={_renderSummary(t={}){if(!this._isSummaryEnabled()||!this._summaryNode||!this._isRemote)return;const e=Number.parseInt(t.total,10),i=Number.isFinite(e)&&e>=0?e:0,s=this._getI18nSection("summary"),r=`${s.foundLabel&&String(s.foundLabel).trim()||"Found"}: ${i}`,n=this._getActiveCriteria().map(t=>`<span class="vgdt-summary__chip"><b>${this._escapeHtml(t.label)}:</b> ${this._escapeHtml(t.value)}</span>`).join("");this._summaryNode.innerHTML=`\n <div class="vgdt-summary__row">\n <span class="vgdt-summary__count">${this._escapeHtml(r)}</span>\n ${n?`<div class="vgdt-summary__chips">${n}</div>`:""}\n </div>\n `,this._summaryNode.hidden=!1},_isSummaryEnabled(){const t=this._params.summary||{};return void 0!==t.enable&&null!==t.enable?se(t.enable,!1):re(this._element.getAttribute("data-summary-enable"),!1)},_getActiveCriteria(){const t=[],e=this._getSearchParamName(),i=String(this._remoteParams[e]||"").trim();if(""!==i){const e=this._getI18nSection("summary"),s=e.searchLabel&&String(e.searchLabel).trim()||"Search";t.push({label:s,value:i})}return Object.keys(this._remoteParams||{}).forEach(i=>{if(i===e)return;const s=String(this._remoteParams[i]||"").trim();if(""===s)return;const r=this._getFilterLabelByParam(i)||i;t.push({label:r,value:s})}),t},_getFilterLabelByParam(t){const e=this._getFiltersFormSelector();if(!e)return"";(this._filtersFormCacheSelector!==e||!this._filtersFormCacheNode||!this._filtersFormCacheNode.isConnected)&&(this._filtersFormCacheSelector=e,this._filtersFormCacheNode=ne(e),this._filtersLabelCache={});const i=this._filtersFormCacheNode;if(!i)return"";const s=this._filtersLabelCache&&"object"==typeof this._filtersLabelCache?this._filtersLabelCache:{};if(this._filtersLabelCache=s,Object.prototype.hasOwnProperty.call(s,t))return s[t];const r=this._params.filters||{},n=String(r.fieldAttr||"data-filter-field").trim()||"data-filter-field",a=String(r.partAttr||"data-filter-part").trim()||"data-filter-part",o=String(t||"").trim(),l=/_op$/i.test(o),d=o.replace(/_op$/i,""),h=l?`[${n}="${d}"][${a}="operator"]`:`[${n}="${d}"]`,c=i.querySelector(h);if(!c)return s[t]="","";const u=c.closest(".field"),_=u?u.querySelector(".field__label"):null;if(_){const e=String(_.textContent||"").trim();return s[t]=e,e}return s[t]="",""},_getFooterCell(){if(!this._isFooterEnabled())return null;const t=this._element.tFoot||this._element.querySelector("tfoot");return t&&t.rows&&t.rows.length&&(t.querySelector("[data-vgdt-footer]")||t.rows[0].cells[0])||null},_clearFooter(){const t=this._getFooterCell();t&&(t.innerHTML="")},_renderFooterFromCurrentState(){if(!this._isFooterEnabled())return;if(this._isRemote)return;const t=this._getVisibleRows().map(t=>this._mapDomRowToRecord(t));this._renderFooterStats(t,null)},_renderFooterFromRows(t,e){this._isFooterEnabled()&&this._isRemote&&this._renderFooterStats(Array.isArray(t)?t:[],e||null)},_getVisibleRows(){const t=this._getBody();return Array.from(t.rows||[]).filter(t=>!t.hidden)},_mapDomRowToRecord(t){const e={};return this._fields.forEach((i,s)=>{const r=t&&t.cells&&t.cells[s]?t.cells[s]:null;e[i]=r?String(r.textContent||"").trim():""}),e},_renderFooterStats(t,e){if(!this._isFooterEnabled())return;const i=this._getFooterCell();if(!i)return;const s=Array.isArray(t)?t:[],r=s.length;let n=0,a=0,o=0,l=0;s.forEach(t=>{const e=this._extractNumber(t.price);Number.isFinite(e)&&(n+=e);const i=this._extractNumber(t.stock);Number.isFinite(i)&&(a+=i);const s=this._extractNumber(t.rating);Number.isFinite(s)&&(o+=s,l+=1)});const d=l>0?o/l:0,h=this._getI18nSection("summary"),c=h.visibleRowsLabel&&String(h.visibleRowsLabel).trim()||"Rows on page",u=h.pagePriceSumLabel&&String(h.pagePriceSumLabel).trim()||"Price sum",_=h.pageStockSumLabel&&String(h.pageStockSumLabel).trim()||"Total stock",m=h.pageAvgRatingLabel&&String(h.pageAvgRatingLabel).trim()||"Average rating",p=h.foundLabel&&String(h.foundLabel).trim()||"Found",g=e&&Object.prototype.hasOwnProperty.call(e,"total")?Number.parseInt(e.total,10):NaN,f=Number.isFinite(g)&&g>=0?`<span class="vgdt-foot__item"><b>${this._escapeHtml(p)}:</b> ${g}</span>`:"",b=Number.isFinite(n)?n:0,v=Number.isFinite(a)?a:0,y=Number.isFinite(d)?d:0;i.innerHTML=`\n <div class="vgdt-foot">\n <span class="vgdt-foot__item"><b>${this._escapeHtml(c)}:</b> ${r}</span>\n ${f}\n <span class="vgdt-foot__item"><b>${this._escapeHtml(u)}:</b> ${b.toFixed(2)} RUB</span>\n <span class="vgdt-foot__item"><b>${this._escapeHtml(_)}:</b> ${Math.round(v)}</span>\n <span class="vgdt-foot__item"><b>${this._escapeHtml(m)}:</b> ${y.toFixed(2)}</span>\n </div>\n `},_isFooterEnabled(){const t=this._params.footer||{};return void 0!==t.enable&&null!==t.enable?se(t.enable,!1):re(this._element.getAttribute("data-footer-enable"),!1)},_applyFooterVisibility(){const t=this._element.tFoot||this._element.querySelector("tfoot");t&&(t.hidden=!this._isFooterEnabled())},_formatFieldValue(t,e){if("price"===t){const t=Number.parseFloat(e);return Number.isFinite(t)?`${t.toFixed(2)} RUB`:""}return"category"!==t||null!=e&&""!==e?null==e?"":String(e):"-"},_escapeHtml:t=>String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")},oe=ae,le={_renderLoadingSkeleton(){const t=this._getBody(),e=this._getRenderedColumnsCount(),i=this._getCurrentColumnWidthsPx(),s=this._getSkeletonRowsCount(),r=this._getSkeletonRowHeightPx(),n=Number.isFinite(r)&&r>0?`height:${r}px;--vgdt-skeleton-row-height:${r}px;`:"",a=Array.from({length:s}).map((t,s)=>{const r=Array.from({length:e}).map((t,e)=>{const s=Number.isFinite(i[e])?Math.round(i[e]):0;return`<td${s>0?` style="width:${s}px;min-width:${s}px;max-width:${s}px;"`:""}><div class="skeleton-cell"><div class="skeleton-line"></div></div></td>`}).join("");return`<tr class="skeleton-row" style="${n}--skeleton-delay:${(.08*s).toFixed(2)}s">${r}</tr>`}).join("");t.innerHTML=a,this._updatePanHintVisibility(),this._refreshStickyAndFixedLayout()},_getRenderedColumnsCount(){const t=this._getHeaderCells().length,e=this._fields.length,i=Math.max(t,e);return i>0?i:1},_getCurrentColumnWidthsPx(){const t=this._getHeaderCells().map(t=>{if(!t||"function"!=typeof t.getBoundingClientRect)return 0;const e=t.getBoundingClientRect();return e&&Number.isFinite(e.width)&&e.width>0?e.width:0});if(t.some(t=>t>0))return t;const e=this._getBody(),i=e&&e.rows&&e.rows.length?e.rows[0]:null;return i&&i.cells&&i.cells.length?Array.from(i.cells).map(t=>{if(!t||"function"!=typeof t.getBoundingClientRect)return 0;const e=t.getBoundingClientRect();return e&&Number.isFinite(e.width)&&e.width>0?e.width:0}):[]},_getSkeletonRowsCount(){const t=this._getPerPageControlValue();if(Number.isFinite(t)&&t>0)return t;const e=this._params.loading||{},i=Number.parseInt(e.skeleton,10);if(Number.isFinite(i)&&i>0)return i;const s=this._getRenderedDataRows();if(s.length>0)return s.length;const r=Number.parseInt(this._pageState&&this._pageState.perPage,10);if(Number.isFinite(r)&&r>0)return r;const n=this._params.pagination||{},a=Number.parseInt(n.perPage,10);return Number.isFinite(a)&&a>0?a:10},_getPerPageControlValue(){if(!this._parent)return NaN;const t=this._parent.querySelector("[data-per-page]");if(!t)return NaN;const e=Number.parseInt(t.value,10);return Number.isFinite(e)?this._clampPerPage(e,10):NaN},_getSkeletonRowHeightPx(){const t=this._getRenderedDataRows();if(!t.length)return null;const e=t[0].getBoundingClientRect();return!e||!Number.isFinite(e.height)||e.height<=0?null:Math.round(e.height)},_getRenderedDataRows(){const t=this._getBody();return Array.from(t.rows||[]).filter(t=>!(!t||t.classList.contains("skeleton-row")||t.querySelector("[data-table-state]")))}},de={_getRemoteRouteRequestConfig(t=""){const e=this._params.request||{},i=this._element.getAttribute("data-request-method"),s=this._element.getAttribute("data-request-credentials"),r=this._element.getAttribute("data-request-params");let n={};if(null!==r&&""!==String(r).trim())try{const t=JSON.parse(r);t&&"object"==typeof t&&!Array.isArray(t)&&(n=t)}catch(t){n={}}return{route:t||this._getRemoteDataRoute(),method:null!==i?i:e.method,credentials:null!==s?s:e.credentials,headers:e.headers&&"object"==typeof e.headers?Object.assign({},e.headers):{Accept:"application/json"},baseParams:Object.assign({},e.params&&"object"==typeof e.params?e.params:{},n),responseType:"json"}},_isRemoteCacheEnabled(){const t=this._params.request||{},e=t.cache&&"object"==typeof t.cache?t.cache:{},i=this._element.getAttribute("data-request-cache-enable");if(null!==i)return this._isTruthy(i);const s=e.enable;return null==s||Boolean(s)},_getRemoteCacheTtlMs(){const t=this._params.request||{},e=t.cache&&"object"==typeof t.cache?t.cache:{},i=this._element.getAttribute("data-request-cache-ttl"),s=null!==i?i:e.ttl,r=Number.parseInt(s,10);return Number.isFinite(r)&&r>0?r:3e4},_getRemoteCacheMaxEntries(){const t=this._params.request||{},e=t.cache&&"object"==typeof t.cache?t.cache:{},i=this._element.getAttribute("data-request-cache-max"),s=null!==i?i:e.max,r=Number.parseInt(s,10);return Number.isFinite(r)&&r>0?r:30},_getRemoteCacheKey(t,e={}){const i=Object.keys(e||{}).sort().map(t=>{const i=e[t],s=Array.isArray(i)?i.join(","):String(null==i?"":i);return`${encodeURIComponent(t)}=${encodeURIComponent(s)}`}).join("&");return`${String(t||"").trim()}?${i}`},_readRemoteCache(t,e={}){if(!this._isRemoteCacheEnabled())return null;if(!this._remotePageCache||"function"!=typeof this._remotePageCache.get)return null;const i=this._getRemoteCacheKey(t,e),s=this._remotePageCache.get(i);if(!s||"object"!=typeof s)return null;const r=this._getRemoteCacheTtlMs(),n=Date.now()-Number(s.ts||0);return!Number.isFinite(n)||n<0||n>r?(this._remotePageCache.delete(i),null):(s.lastUsedAt=Date.now(),s.response)},_writeRemoteCache(t,e={},i){if(!this._isRemoteCacheEnabled())return;if(!this._remotePageCache||"function"!=typeof this._remotePageCache.set)return;const s=this._getRemoteCacheKey(t,e);this._remotePageCache.set(s,{ts:Date.now(),lastUsedAt:Date.now(),response:i});const r=this._getRemoteCacheMaxEntries();if(this._remotePageCache.size<=r)return;const n=Array.from(this._remotePageCache.entries());for(n.sort((t,e)=>Number(t[1]&&t[1].lastUsedAt||0)-Number(e[1]&&e[1].lastUsedAt||0));this._remotePageCache.size>r&&n.length;){const t=n.shift();t&&this._remotePageCache.delete(t[0])}},_applyRemoteResponse(t,e,i,s=null,r={}){const n=this._extractRemoteRows(t),a=this._extractRemoteMeta(t),o=Boolean(r.fromCache),l=r.requestContext&&"object"==typeof r.requestContext?r.requestContext:null,d=String(a&&(a.request_id||a.requestId)||l&&l.requestId||"").trim();this._lastRemoteMeta=a,this._renderSummary(a);const h=this._extractRemoteViewRowsHtml(t);this._renderRemoteViewIfConfigured(h,n)||this._renderRemoteRows(n),this._renderFooterFromRows(n,a),this._updatePanHintVisibility(),this._refreshStickyAndFixedLayout();const c=this._normalizePositiveInt(a.page,e),u=this._clampPerPage(a.per_page,i),_=this._normalizePositiveInt(a.pages,1);this._pageState={page:c,perPage:u},this._storePage(c),this._storePerPage(u);const m="string"==typeof a.sort?a.sort.trim():this._sortState.field,p=a&&"string"==typeof a.dir?a.dir:this._sortState.dir;if(m){const t=this._parseSortsFromStrings(m,p);this._sortState=Object.assign({},this._sortState,{field:t[0]?t[0].field:m,dir:t[0]?t[0].dir:this._normalizeSortDir(p),sorts:t}),this._sortable&&this._sortable.setState({sorts:this._sortState.sorts})}this._pagination&&this._pagination.setMeta({page:c,perPage:u,totalPages:_}),"function"==typeof s&&s({page:c,perPage:u,totalPages:_}),this._syncUrlState();const g={rows:Array.isArray(n)?n.slice():[],total:this._normalizePositiveInt(a&&a.total,Array.isArray(n)?n.length:0),serverMeta:Object.assign({},a||{}),raw:t},f=l&&l.sent?Object.assign({},l.sent):{},b=l&&"string"==typeof l.trigger?String(l.trigger).toLowerCase().trim():"",v=l&&l.filtersState&&"object"==typeof l.filtersState?this._normalizeFiltersEventState(l.filtersState):null;if("filterschange"===b&&this._isFiltersEmitFullContextEnabled()){const e=this._normalizeFiltersEventState({filters:f.filters||{},params:f.params||{}}),i=v||e,s=this._isSearchActiveFromParams(f.params||{});this._emitAction("filterschange",{filters:Object.assign({},i.filters||{}),params:Object.assign({},i.params||{}),fields:Array.isArray(i.fields)?i.fields.slice():[],meta:Object.assign({},i.meta||{}),phase:"response",isFiltered:this._isFilteredState(i)||s,isSearched:s,requestId:d,fromCache:o,sent:f,received:g,response:t,serverMeta:Object.assign({},g.serverMeta||{})})}this._emitAction("requestsuccess",{requestId:d,mode:"remote",responsemode:this._getRemoteResponseMode(),sent:f,received:g,fromCache:o}),this._emitAction("dataloaded",{requestId:d,page:c,perPage:u,totalPages:_,rows:n,view:h,meta:a,fromCache:o,sent:f,received:g}),this._emitAction("afterrender",{requestId:d,renderedCount:Array.isArray(n)?n.length:0,total:g.total,sent:f,received:g}),this._emitAction("statesync",{requestId:d,state:{page:c,perPage:u,sorts:this._getNormalizedSorts(this._sortState.sorts),filters:Object.assign({},this._activeFilters||{}),params:Object.assign({},this._remoteParams||{})},sent:f,received:g}),Array.isArray(n)&&0!==n.length||this._emitAction("emptyresult",{requestId:d,reason:"no_matches",sent:f,received:g})},_buildRemoteRequestParams(t,e){const i=this._params.sortable||{},s={page:t,per_page:e};if(Object.assign(s,this._remoteParams),"data"!==this._getRemoteResponseMode()){const t=this._getRemoteViewParamName(),e=this._getRemoteViewParamValue();t&&e&&!Object.prototype.hasOwnProperty.call(s,t)&&(s[t]=e);const i=this._getRemoteFieldsParamName();i&&this._fields.length&&!Object.prototype.hasOwnProperty.call(s,i)&&(s[i]=this._fields.join(","))}if(i.enable&&this._sortState.field){const t="sort",e="dir",i=this._getNormalizedSorts(this._sortState.sorts);i.length>0?(s[t]=i.map(t=>t.field).join(","),s[e]=i.map(t=>t.dir).join(",")):(s[t]=this._sortState.field,s[e]=this._sortState.dir)}return s},exportRemote(t="csv",e={}){if(!this._isRemote)return"";const i=this._params.request||{},s="xlsx"===String(t||"csv").toLowerCase().trim()?"xlsx":"csv",r=this._normalizePositiveInt(void 0!==e.page?e.page:this._pageState.page,1),n=this._clampPerPage(void 0!==e.perPage?e.perPage:this._pageState.perPage,this._getInitialPerPage()),a=this._buildRemoteRequestParams(r,n);a.format=s;const o=this._mapRemoteRequestParams(a),l=String(e.endpoint||i.export&&i.export.route||this._element.getAttribute("data-request-export-route")||this._getRemoteDataRoute()).trim()||this._getRemoteDataRoute(),d=this._buildRouteUrl(o,l,this._getRemoteRouteRequestConfig(l)).toString();return!1!==e.open&&"undefined"!=typeof window&&"function"==typeof window.open&&window.open(d,"_blank","noopener"),this._emitAction("export",{format:s,page:r,perPage:n,endpoint:l,url:d}),d},async _loadRemotePage(t,e,i=null,s=null){if(!this._isRemote)return;const r=this._normalizePositiveInt(t,1),n=this._clampPerPage(e,this._getInitialPerPage()),a=++this._requestToken,o=`req-${Date.now()}-${a}`,l=this._buildRemoteRequestParams(r,n),d=this._mapRemoteRequestParams(l),h=this._getRemoteDataRoute(),c=this._params.filters||{};!1!==(c.transport&&"object"==typeof c.transport?c.transport:{}).includeMeta&&(d.request_id=o,d.responsemode=this._getRemoteResponseMode());const u={filters:Object.assign({},this._activeFilters||{}),sort:this._getNormalizedSorts(this._sortState.sorts||[]),page:r,perPage:n,params:Object.assign({},this._remoteParams||{}),urlState:this._collectUrlState(),requestPayload:Object.assign({},d),endpoint:h},_=s&&"string"==typeof s.trigger?String(s.trigger).toLowerCase().trim():"",m=s&&s.filtersState&&"object"==typeof s.filtersState?this._normalizeFiltersEventState(s.filtersState):null,p={requestId:o,sent:u,trigger:_,filtersState:m};this._activeRemoteRequestId=o;const g=this._readRemoteCache(h,d);if("filterschange"===_&&this._isFiltersEmitFullContextEnabled()){const t=m||this._normalizeFiltersEventState({filters:u.filters||{},params:u.params||{}}),e=this._isSearchActiveFromParams(u.params||{});this._emitAction("filterschange",{filters:Object.assign({},t.filters||{}),params:Object.assign({},t.params||{}),fields:Array.isArray(t.fields)?t.fields.slice():[],meta:Object.assign({},t.meta||{}),phase:"request",isFiltered:this._isFilteredState(t)||e,isSearched:e,requestId:o,fromCache:Boolean(g),sent:u,table:null})}this._requestAbortController&&"function"==typeof this._requestAbortController.abort&&this._requestAbortController.abort();const f=g?null:"function"==typeof AbortController?new AbortController:null;this._requestAbortController=f;const b=Date.now();this._emitAction("beforeload",{requestId:o,page:r,perPage:n,params:Object.assign({},this._remoteParams),sent:u}),g||this._renderLoadingSkeleton();try{const t=g||await this._route(Object.assign({},this._getRemoteRouteRequestConfig(h),{route:h,method:"GET",params:d,signal:f?f.signal:void 0,responseType:"json"}));if(g||await this._waitMinLoadingDelay(b),a!==this._requestToken)return void this._emitAction("staleresponse",{requestId:o,activeRequestId:String(this._activeRemoteRequestId||""),sent:u});g||this._writeRemoteCache(h,d,t),this._applyRemoteResponse(t,r,n,i,{fromCache:Boolean(g),requestContext:p})}catch(t){if(t&&"AbortError"===t.name)return;if(await this._waitMinLoadingDelay(b),a!==this._requestToken)return void this._emitAction("staleresponse",{requestId:o,activeRequestId:String(this._activeRemoteRequestId||""),sent:u});this._renderSummary({total:0}),this._clearFooter();const e=this._getTableMessage("stateError","Failed to load data.");if("undefined"!=typeof console&&"function"==typeof console.error&&console.error("VGDynamicTable: remote data load failed",t),this._renderStateRow(e,"error"),this._refreshStickyAndFixedLayout(),this._emitAction("error",{requestId:o,page:r,perPage:n,error:t,message:e,sent:u}),this._emitAction("requesterror",{requestId:o,mode:"remote",responsemode:this._getRemoteResponseMode(),sent:u,error:{message:String(t&&t.message||e),code:String(t&&t.code||"REQUEST_FAILED"),status:t&&t.status?t.status:0,details:t&&Array.isArray(t.details)?t.details.slice():[]}}),p&&"filterschange"===String(p.trigger||"").toLowerCase().trim()&&this._isFiltersEmitFullContextEnabled()){const i=p.filtersState&&"object"==typeof p.filtersState?this._normalizeFiltersEventState(p.filtersState):this._normalizeFiltersEventState({filters:u.filters||{},params:u.params||{}}),s=this._isSearchActiveFromParams(u.params||{});this._emitAction("filterschange",{filters:Object.assign({},i.filters||{}),params:Object.assign({},i.params||{}),fields:Array.isArray(i.fields)?i.fields.slice():[],meta:Object.assign({},i.meta||{}),phase:"error",isFiltered:this._isFilteredState(i)||s,isSearched:s,requestId:o,sent:u,error:{message:String(t&&t.message||e),code:String(t&&t.code||"REQUEST_FAILED"),status:t&&t.status?t.status:0,details:t&&Array.isArray(t.details)?t.details.slice():[]}})}}finally{this._requestAbortController===f&&(this._requestAbortController=null)}},_getRemoteResponseMode(){const t=this._params.request||{},e=this._element.getAttribute("data-request-responsemode"),i=null!==e?e:t.responsemode,s=String(i||"data").toLowerCase().trim();return"view"===s||"auto"===s?s:"data"},_getRemoteViewParamName(){const t=this._params.request||{},e=this._element.getAttribute("data-request-viewparam"),i=null!==e?e:t.viewparam;return String(i||"").trim()||""},_getRemoteViewParamValue(){const t=this._params.request||{},e=this._element.getAttribute("data-request-viewvalue"),i=null!==e?e:t.viewvalue;return String(i||"").trim()||""},_getRemoteFieldsParamName(){const t=this._params.request||{},e=this._element.getAttribute("data-request-fieldsparam"),i=null!==e?e:t.fieldsparam;return String(i||"").trim()||""},_getRemoteDataRoute(){return this._getFiltersRoute()||this._getRoute()},_getRequestParamMap(){const t=(this._params.request||{}).parammap;if(t&&"object"==typeof t&&!Array.isArray(t))return t;const e=this._element.getAttribute("data-request-parammap")||"";if(!e)return{};try{const t=JSON.parse(e);if(t&&"object"==typeof t&&!Array.isArray(t))return t}catch(t){return{}}return{}},_mapRemoteRequestParams(t={}){const e=Object.assign({},this._getAutoFilterRequestParamMap(t),this._getRequestParamMap()),i={};return Object.keys(t||{}).forEach(s=>{const r=Object.prototype.hasOwnProperty.call(e,s)?String(e[s]||"").trim():s;i[r||s]=t[s]}),i},_getAutoFilterRequestParamMap(t={}){const e=t&&"object"==typeof t?t:{},i="function"==typeof this._getFilterFieldKeys?this._getFilterFieldKeys():[];if(!Array.isArray(i)||!i.length)return{};const s="function"==typeof this._getFiltersUrlPrefix?String(this._getFiltersUrlPrefix()||"").trim():"";if(!s)return{};const r={};return i.forEach(t=>{const i=String(t||"").trim();if(!i)return;const n="function"==typeof this._prefixFilterParamKey?this._prefixFilterParamKey(i,s):i.startsWith(s)?i:`${s}${i}`;Object.prototype.hasOwnProperty.call(e,i)&&(r[i]=n);const a=`${i}_op`,o="function"==typeof this._prefixFilterParamKey?this._prefixFilterParamKey(a,s):a.startsWith(s)?a:`${s}${a}`;Object.prototype.hasOwnProperty.call(e,a)&&(r[a]=o)}),r},_getRequestPath(t){const e=this._params.request||{};if("data"===t){const t=this._element.getAttribute("data-request-datapath"),i=null!==t?t:e.datapath;return String(i||"").trim()}if("meta"===t){const t=this._element.getAttribute("data-request-metapath"),i=null!==t?t:e.metapath;return String(i||"").trim()}if("view"===t){const t=this._element.getAttribute("data-request-viewpath"),i=null!==t?t:e.viewpath;return String(i||"").trim()}return""},_readPath(t,e){if(!t||"object"!=typeof t)return;const i=String(e||"").trim();if(!i)return;const s=i.split(".").map(t=>String(t||"").trim()).filter(Boolean);if(!s.length)return;let r=t;for(let t=0;t<s.length;t+=1){if(!r||"object"!=typeof r||!Object.prototype.hasOwnProperty.call(r,s[t]))return;r=r[s[t]]}return r},_extractRemoteRows(t){const e=this._readPath(t,this._getRequestPath("data"));return Array.isArray(e)?e:Array.isArray(t&&t.data)?t.data:[]},_extractRemoteMeta(t){const e=this._readPath(t,this._getRequestPath("meta"));return e&&"object"==typeof e&&!Array.isArray(e)?e:t&&"object"==typeof t&&t.meta&&"object"==typeof t.meta?t.meta:{}},_extractRemoteViewRowsHtml(t){if(!t||"object"!=typeof t)return"";const e=this._readPath(t,this._getRequestPath("view"));if("string"==typeof e)return e;if("string"==typeof t.view)return t.view;const i=t.view&&"object"==typeof t.view?t.view:null;return i&&"string"==typeof i.tbody?i.tbody:i&&"string"==typeof i.rows?i.rows:"string"==typeof t.tbody?t.tbody:""},_renderRemoteViewIfConfigured(t,e){const i=this._getRemoteResponseMode(),s="string"==typeof t&&""!==t.trim();if(!("view"===i||"auto"===i&&s))return!1;if(!s){if(Array.isArray(e)&&e.length)return!1;const t=this._getTableMessage("stateEmpty","Ничего нет");return this._renderStateRow(t,"empty"),!0}const r=this._getBody();return r.innerHTML=t,this._hasRenderableRowsInBody(r)?(this._setFixedColumnsSuppressed(!1),this._clearStateMode(),!0):(this._renderStateRow(this._getTableMessage("stateEmpty","Ничего нет"),"empty"),!0)},async _waitMinLoadingDelay(t){const e=this._params.loading||{},i=Math.max(0,Number.parseInt(e.minDelay,10)||0);if(i<=0)return;const s=i-(Date.now()-t);s<=0||await new Promise(t=>setTimeout(t,s))}},he=de,ce={_syncUrlState(){if(!this._isFiltersUrlStateEnabled()||!this._isFiltersUrlStateWriteOnChange())return;if("undefined"==typeof window||!window.history||!window.location)return;let t;try{t=new URL(window.location.href)}catch(t){return void this._emitAction("urlstateerror",{source:"write",error:t})}const e=this._collectUrlState();this._getManagedUrlStateKeys().forEach(e=>{t.searchParams.delete(e)}),Object.keys(e).forEach(i=>{const s=function(t){return Array.isArray(t)?t.map(t=>String(t||"").trim()).filter(t=>""!==t).join(","):t}(e[i]);null!=s&&""!==s&&t.searchParams.set(i,String(s))});const i=`${t.pathname}${t.search}${t.hash}`;if(i===`${window.location.pathname}${window.location.search}${window.location.hash}`)return;const s=this._getUrlStateMode();"push"===s?window.history.pushState({},"",i):window.history.replaceState({},"",i),this._emitAction("urlstatewrite",{mode:s,state:Object.assign({},e),url:i})},_collectUrlState(){const t={},e=this._getFiltersUrlStateConfig(),i=this._getFiltersUrlPrefix(),s=this._getSearchParamName();if(s&&Object.prototype.hasOwnProperty.call(this._remoteParams||{},s)&&(t[s]=this._remoteParams[s]),this._getFilterFieldKeys().forEach(e=>{const s=e,r=`${e}_op`,n=this._prefixFilterParamKey(s,i),a=this._prefixFilterParamKey(r,i);Object.prototype.hasOwnProperty.call(this._remoteParams||{},s)&&(t[n]=this._remoteParams[s]),Object.prototype.hasOwnProperty.call(this._remoteParams||{},r)&&(t[a]=this._remoteParams[r])}),this._isPaginationEnabled()){const i=this._normalizePositiveInt(this._pageState.page,1),s=this._normalizePositiveInt(this._params.pagination.perPage,10),r=this._normalizePositiveInt(this._pageState.perPage,s);t[String(e.pageKey||"page")]=i,t[String(e.perPageKey||"perPage")]=r}if(this._params.sortable&&this._params.sortable.enable){const i=this._getNormalizedSorts(this._sortState.sorts||[]).filter(t=>""!==String(t.field||"").trim()).map(t=>`${t.field}:${this._normalizeSortDir(t.dir)}`);i.length>0&&(t[String(e.sortKey||"sort")]=i.join(","))}return t},_getManagedUrlStateKeys(){const t=new Set,e=this._getFiltersUrlStateConfig(),i=this._getFiltersUrlPrefix();return t.add(this._getSearchParamName()),this._getFilterFieldKeys().forEach(e=>{t.add(this._prefixFilterParamKey(e,i)),t.add(this._prefixFilterParamKey(`${e}_op`,i))}),this._isPaginationEnabled()&&(t.add(String(e.pageKey||"page")),t.add(String(e.perPageKey||"perPage"))),this._params.sortable&&this._params.sortable.enable&&t.add(String(e.sortKey||"sort")),Array.from(t).filter(Boolean)},_isUrlStateEnabled(){return this._isFiltersUrlStateEnabled()},_getUrlStateMode(){const t=this._getFiltersUrlStateConfig(),e=this._element.getAttribute("data-filters-urlstate-history-mode");return"push"===String(null!==e?e:t.historyMode||"replace").toLowerCase().trim()?"push":"replace"},_isUrlStateIncludePagination(){return this._isPaginationEnabled()},_isUrlStateIncludeSort(){return Boolean(this._params.sortable&&this._params.sortable.enable)},_bindPopState(){this._isRemote&&this._isFiltersUrlStateEnabled()&&"undefined"!=typeof window&&window.addEventListener&&this._isUrlStatePopStateEnabled()&&(window.removeEventListener("popstate",this._boundPopState),window.addEventListener("popstate",this._boundPopState))},async _handlePopState(){if(!this._isRemote)return;this._remoteParams=this._getInitialRemoteParams(),this._sortState=this._getInitialSortState(),this._sortable&&this._sortable.setState({sorts:this._sortState.sorts}),this._syncControlsFromState();const t=this._getInitialPage(),e=this._getInitialPerPage();this._pageState={page:t,perPage:e},this._pagination&&this._pagination.setMeta({page:t,perPage:e});const i=this._getFiltersRequestMetaIfActive();await this._loadRemotePage(t,e,null,i)},_syncControlsFromState(){const t=this._getSearchParamName(),e=this._getSearchInputSelector();if(e){const i=this._getSearchInputNode(e);i&&(i.value=String(this._remoteParams[t]||""))}this._filters&&"function"==typeof this._filters.setValues&&this._filters.setValues(this._getInitialFilterValues(),{emit:!1})},_isUrlStatePopStateEnabled(){return re(this._element.getAttribute("data-filters-urlstate-listen-popstate"),!0)},_getInitialRemoteParams(){const t=(this._params.request||{}).params||{},e={},i=new Set(["page","per_page","sort","dir"]);if(Object.keys(t).forEach(s=>{if(i.has(s))return;const r=t[s];null!=r&&""!==r&&(e[s]=r)}),!this._isFiltersUrlStateEnabled()||!this._isFiltersUrlStateReadOnInit())return e;const s=this._getFiltersUrlStateConfig(),r=this._getFiltersUrlPrefix(),n=this._getUrlParams(),a=this._getSearchParamName(),o=this._getFilterFieldKeys();if(a&&n.has(a)){const t=String(n.get(a)||"").trim();t?e[a]=t:delete e[a]}o.forEach(t=>{const i=this._prefixFilterParamKey(t,r),s=this._prefixFilterParamKey(`${t}_op`,r);if(n.has(i)){const s=String(n.get(i)||"").trim();s?e[t]=s.includes(",")?s.split(",").map(t=>String(t||"").trim()).filter(Boolean):s:delete e[t]}if(n.has(s)){const i=String(n.get(s)||"").trim();i?e[`${t}_op`]=i:delete e[`${t}_op`]}});const l=String(s.sortKey||"sort");if(n.has(l)){const t=String(n.get(l)||"").trim();if(t){const i=t.split(",").map(t=>String(t||"").trim()).filter(Boolean),s=[],r=[];i.forEach(t=>{const e=t.split(":").map(t=>String(t||"").trim()).filter(Boolean);e.length&&(s.push(e[0]),r.push("desc"===e[1]?"desc":"asc"))}),s.length&&(e.sort=s.join(","),e.dir=r.join(","))}}return this._emitAction("urlstateread",{state:Object.assign({},e)}),e},_prefixFilterParamKey(t,e){const i=String(t||"").trim();if(!i)return"";const s=String(e||"").trim();return!s||i.startsWith(s)?i:`${s}${i}`},_getUrlParams(){try{return new URLSearchParams(window.location.search||"")}catch(t){return this._emitAction("urlstateerror",{source:"read",error:t}),new URLSearchParams}},_getSearchParamName(){const t=this._params.search||{},e=this._element.getAttribute("data-search-param")||"";return String(t.param||e||"q").trim()||"q"},_getFilterFieldKeys(){const t=this._getFiltersFormNode();if(!t)return[];if(Array.isArray(this._filterParamKeysCache))return this._filterParamKeysCache.slice();const e=this._params.filters||{},i=String(e.fieldAttr||"data-filter-field").trim()||"data-filter-field",s=new Set;return Array.from(t.querySelectorAll(`[${i}]`)).forEach(t=>{const e=String(t.getAttribute(i)||"").trim();e&&s.add(e)}),this._filterParamKeysCache=Array.from(s),this._filterParamKeysCache.slice()},_getInitialFilterValues(){const t=this._getFilterFieldKeys();if(!t.length)return{};const e={};return t.forEach(t=>{Object.prototype.hasOwnProperty.call(this._remoteParams,t)&&(e[t]=this._remoteParams[t]),Object.prototype.hasOwnProperty.call(this._remoteParams,`${t}_op`)&&(e[`${t}_op`]=this._remoteParams[`${t}_op`])}),e},_getFiltersFormSelector(){const t=this._params.filters||{};if("string"==typeof t.form)return String(t.form).trim();const e=this._element.getAttribute("data-filters-form")||"";return String(e).trim()},_getFiltersFormNode(){const t=(this._params.filters||{}).form;if(t&&1===t.nodeType)return(this._filtersFormCacheNode!==t||""!==this._filtersFormCacheSelector)&&(this._filtersFormCacheSelector="",this._filtersFormCacheNode=t,this._filterParamKeysCache=null),t.isConnected?this._filtersFormCacheNode:null;const e=this._getFiltersFormSelector();return e?((this._filtersFormCacheSelector!==e||!this._filtersFormCacheNode||!this._filtersFormCacheNode.isConnected)&&(this._filtersFormCacheSelector=e,this._filtersFormCacheNode=ne(e),this._filterParamKeysCache=null),this._filtersFormCacheNode):(this._filtersFormCacheSelector="",this._filtersFormCacheNode=null,this._filterParamKeysCache=null,null)},_getFiltersUrlStateConfig(){const t=this._params.filters||{};return t.urlState&&"object"==typeof t.urlState?t.urlState:{}},_getFiltersUrlPrefix(){const t=this._getFiltersUrlStateConfig(),e=this._element.getAttribute("data-filters-urlstate-prefix"),i=null!==e?e:t.paramPrefix;return String(i||"f.").trim()||"f."},_isFiltersUrlStateEnabled(){const t=this._getFiltersUrlStateConfig(),e=this._element.getAttribute("data-filters-urlstate-enable");return se(null!==e?e:t.enable,!1)},_isFiltersUrlStateReadOnInit(){const t=this._getFiltersUrlStateConfig(),e=this._element.getAttribute("data-filters-urlstate-read-on-init");return re(null!==e?e:t.readOnInit,!0)},_isFiltersUrlStateWriteOnChange(){const t=this._getFiltersUrlStateConfig(),e=this._element.getAttribute("data-filters-urlstate-write-on-change");return re(null!==e?e:t.writeOnChange,!0)}},ue=ce,_e={_renderRemoteRows(t){const e=this._getBody();if(!t.length){const t=this._getTableMessage("stateEmpty","Ничего нет");return void this._renderStateRow(t,"empty")}this._setFixedColumnsSuppressed(!1),this._clearStateMode(),e.innerHTML=t.map(t=>`<tr>${this._fields.map(e=>{const i=t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]:"",s=this._formatFieldValue(e,i);return`<td>${this._escapeHtml(s)}</td>`}).join("")}</tr>`).join(""),this._updatePanHintVisibility()},_renderStateRow(t,e){const i=this._getBody(),s=this._getRenderedColumnsCount(),r="error"===e?`<div class="vgdt-state-actions"><button type="button" class="vgdt-state-reset" data-state-retry>${this._escapeHtml(this._getTableMessage("retry","Retry"))}</button></div>`:"",n=this._buildStateIllustrationMarkup(e);i.innerHTML=`<tr><td colspan="${s}" data-table-state="${e}"><div class="vgdt-state">${n}<div class="vgdt-state-text">${this._escapeHtml(t)}</div>${r}</div></td></tr>`;const a=i.querySelector("[data-table-state]");this._setFixedColumnsSuppressed(!0),this._setStateMode(e),this._ensureStateRowVisible(a),this._announce(t),this._clearFooter(),this._updatePanHintVisibility(),this._refreshStickyAndFixedLayout()},_hasRenderableRowsInBody:t=>!!(t&&t.rows&&t.rows.length)&&Array.from(t.rows).some(t=>{const e=Array.from(t.cells||[]);return!!e.length&&e.some(t=>!!t&&(""!==String(t.textContent||"").trim()||t.children.length>0))}),_setFixedColumnsSuppressed(t){this._fixedColumnsSuppressed=Boolean(t)},_setStateMode(t){this._parent&&this._parent.setAttribute("data-state-mode",String(t||""))},_clearStateMode(){this._parent&&this._parent.removeAttribute("data-state-mode")},_buildStateIllustrationMarkup(t){const e="error"===t?"data-state-error-illustration":"data-state-empty-illustration",i=(this._params.state&&"object"==typeof this._params.state?this._params.state:{})["error"===t?"errorIllustration":"emptyIllustration"]||"",s=this._element?this._element.getAttribute(e):"",r=String(i||s||"").trim();if(!r)return'<div class="vgdt-state-illustration" aria-hidden="true"></div>';const n=this._extractInlineSvgMarkup(r);if(n)return`<div class="vgdt-state-illustration" aria-hidden="true">${n}</div>`;const a="error"===t?"Error":"Empty";return`<div class="vgdt-state-illustration"><img src="${this._escapeHtml(r)}" alt="${a}" loading="lazy"></div>`},_extractInlineSvgMarkup(t){const e=String(t||"").trim();if(!e)return"";if(/^<svg[\s>]/i.test(e))return e;const i=this._decodeHtmlEntities(e);return/^<svg[\s>]/i.test(i)?i:""},_decodeHtmlEntities:t=>String(t||"").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/&amp;/g,"&"),_ensureStateRowVisible(t){if(!t)return;const e=this._getStateBlockMinHeight();if(t.style.minHeight=`${e}px`,this._tableViewport&&(this._tableViewport.scrollTop=0,this._tableViewport.scrollLeft=0),"undefined"==typeof window)return;const i=t.getBoundingClientRect(),s=window.innerHeight||0;(i.top<0||s>0&&i.bottom>s)&&t.scrollIntoView({block:"center",inline:"nearest"})},_getStateBlockMinHeight(){if("undefined"==typeof window)return 180;const t=window.innerHeight||0,e=(window.innerWidth||0)<=768?.52:.34,i=t>0?Math.round(t*e):0;return Math.max(160,i)},_bindTableStateActions(){this._element.addEventListener("click",t=>{if(t.target.closest("[data-state-reset]"))return t.preventDefault(),void this._resetFiltersAndSearch();t.target.closest("[data-state-retry]")&&(t.preventDefault(),this._reloadCurrentPage())})},_resetFiltersAndSearch(){if(!this._isRemote)return;this._remoteParams={},this._activeFilters={},this._sortState=Object.assign({},this._sortState,{field:"",dir:"asc",columnIndex:-1,sorts:[]}),this._sortable&&this._sortable.setState({sorts:[]});const t=this._getSearchInputSelector();if(t){const e=this._getSearchInputNode(t);e&&(e.value="")}this._filters&&"function"==typeof this._filters.setValues&&this._filters.setValues({},{emit:!1});const e=this._pageState.perPage||this._normalizePositiveInt(this._params.pagination.perPage,10);this._pageState={page:1,perPage:e},this._emitAction("reset",{page:1,perPage:e}),this._loadRemotePage(1,e)},_reloadCurrentPage(){if(!this._isRemote)return;const t=this._pageState.page||1,e=this._pageState.perPage||this._normalizePositiveInt(this._params.pagination.perPage,10);this._loadRemotePage(t,e)},_hasActiveRemoteFilters(){return!!this._isRemote&&Object.keys(this._remoteParams||{}).length>0},_ensureLiveRegion(){if(this._liveRegion||!this._parent)return;const t=document.createElement("div");t.className="vgdt-live-region",t.setAttribute("aria-live","polite"),t.setAttribute("aria-atomic","true"),this._parent.appendChild(t),this._liveRegion=t},_announce(t){this._liveRegion&&(this._liveRegion.textContent=String(t||""))}},me={theme:"auto",locale:"ru",i18n:{ru:{pagination:{perPageLabel:"Строк на странице",perPageOptionSuffix:"на страницу",prevLabel:"Назад",nextLabel:"Вперед",quickJumpButtonLabel:"Перейти"},table:{loading:"Загрузка данных...",empty:"Нет данных.",error:"Не удалось загрузить данные.",retry:"Повторить",shiftDragHint:"Зажмите Shift и тяните мышью для прокрутки таблицы."},sortable:{ascLabel:"Сортировка по возрастанию",descLabel:"Сортировка по убыванию"},summary:{foundLabel:"Найдено",searchLabel:"Поиск",visibleRowsLabel:"Строк на странице",pagePriceSumLabel:"Сумма цен",pageStockSumLabel:"Суммарный остаток",pageAvgRatingLabel:"Средний рейтинг"}},en:{pagination:{perPageLabel:"Rows per page",perPageOptionSuffix:"page",prevLabel:"Prev",nextLabel:"Next",quickJumpButtonLabel:"Go"},table:{loading:"Loading data...",empty:"No data available.",error:"Failed to load data.",retry:"Retry",shiftDragHint:"Hold Shift and drag to scroll the table."},sortable:{ascLabel:"Sort ascending",descLabel:"Sort descending"},summary:{foundLabel:"Found",searchLabel:"Search",visibleRowsLabel:"Rows on page",pagePriceSumLabel:"Price sum",pageStockSumLabel:"Total stock",pageAvgRatingLabel:"Average rating"}}},data:[],fixed:{columns:""},views:{storage:{key:""}},request:{route:"",method:"GET",credentials:"same-origin",headers:{Accept:"application/json"},params:{},parammap:{},responsemode:"data",datapath:"data",metapath:"meta",viewpath:"view.tbody",viewparam:"view",viewvalue:"rows",fieldsparam:"fields",cache:{enable:!0,ttl:3e4,max:30},export:{route:""}},pagination:{enable:!1,page:1,perPage:10,per:10,maxPerPage:100,max:100,persistPage:!0,persistPerPage:!0,persist:{page:!0,per:!0},storageKey:"",pageStorageKey:"",storage:{key:""},pageStorage:{storage:{key:""}},totalPages:null,position:"bottom",align:"left",renderMode:"auto",ellipsis:!0,ellipsisAfter:5,maxVisiblePages:5,showPerPage:!0,showPerPageLabel:!1,scrollToTop:!0,scrollToWindowTop:!1,quickJump:!1,quickJumpButtonLabel:"Перейти",perPageOptions:[10,25,50,100],onChange:null,onPerPageChange:null},sortable:{enable:!0,initialField:"",initialDir:"asc",multi:!1,multiWithShift:!0,fields:[],hideUnsortedArrows:!0,isColumnSortable:()=>!0},columnReorder:{enable:!1,persist:!1,storageKey:""},columnResize:{enable:!1,minWidth:80,maxWidth:600},virtual:{enable:!1,rowHeight:44,overscan:8,threshold:500},expandable:{enable:!1,idAttr:"data-expand-id",parentAttr:"data-expand-parent-id",toggleSelector:"[data-expand-toggle]",collapsed:!0},loading:{minDelay:500,skeleton:10},summary:{enable:!1},footer:{enable:!1},state:{errorIllustration:'<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="36" stroke="currentColor" stroke-opacity="0.32" stroke-width="4"/><path d="M50 30V56" stroke="currentColor" stroke-opacity="0.7" stroke-width="6" stroke-linecap="round"/><circle cx="50" cy="68" r="4" fill="currentColor" fill-opacity="0.7"/></svg>',emptyIllustration:'<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="18" y="24" width="64" height="52" rx="8" stroke="currentColor" stroke-opacity="0.32" stroke-width="4"/><path d="M30 40H70M30 50H62M30 60H54" stroke="currentColor" stroke-opacity="0.55" stroke-width="4" stroke-linecap="round"/><circle cx="72" cy="68" r="10" stroke="currentColor" stroke-opacity="0.6" stroke-width="4"/><path d="M79 75L86 82" stroke="currentColor" stroke-opacity="0.6" stroke-width="4" stroke-linecap="round"/></svg>'},panHint:{dismiss:60,dismissDays:60},stickyHeader:{enable:!1,top:0,max:0},search:{enable:!1,debounce:300,param:"q",input:""},filters:{enable:!1,form:"",debounce:300,apply:"auto",button:{apply:"[data-filter-apply]",reset:"[data-filter-reset]"},route:"",fieldAttr:"data-filter-field",partAttr:"data-filter-part",typeAttr:"data-filter-type",valueAttr:"data-filter-value",operatorAttr:"data-filter-operator",defaultOperator:"eq",resetPageOnChange:!0,skipEmpty:!0,trimValues:!0,emitFullContext:!0,urlState:{enable:!1,readOnInit:!0,writeOnChange:!0,historyMode:"replace",paramPrefix:"f.",pageKey:"page",perPageKey:"perPage",sortKey:"sort"},transport:{payloadKey:"filters",includeMeta:!0,includeUrlState:!0},response:{rowsPath:"data.rows",totalPath:"data.total",metaPath:"meta",appliedFiltersPath:"meta.appliedFilters"}},urlState:{enable:!1,mode:"replace",include:{pagination:!1,sort:!1},listen:{popstate:!1}},editable:{enable:!1,rowReorder:!0,rowReorderMode:"row",rowReorderHandleSelector:"[data-row-reorder-handle]"},callbacks:{onInit:null,onBeforeLoad:null,onDataLoaded:null,onError:null,onRequestSuccess:null,onRequestError:null,onStaleResponse:null,onUrlStateRead:null,onUrlStateWrite:null,onUrlStateError:null,onEmptyResult:null,onAfterRender:null,onStateSync:null,onSortChange:null,onPageChange:null,onPerPageChange:null,onSearch:null,onFiltersChange:null,onReset:null,onRowCheck:null,onCheckAll:null,onRowReorder:null,onExport:null,onViewChange:null,onRowExpand:null,onRowCollapse:null,onRowToggle:null,onColumnReorder:null,onColumnResize:null,onColumnFixed:null},events:{enable:!0,prefix:"vgdt",bubbles:!0},persistence:{enable:!1,storageKey:"",theme:!1,locale:!1,filtersApply:!1}},pe=class{constructor(t,e={}){if(!(t&&t instanceof Element))throw new Error("Pagination requires a valid root element");this._root=t,this._params=Object.assign({},{markupSelector:"[data-vgdt-pagination], .vgdt-pagination",perPageOptionSuffix:"page",showPerPageLabel:!1,perPageLabel:"Строк на странице",prevLabel:"Назад",nextLabel:"Вперед",quickJumpButtonLabel:"Перейти",container:null,maxPerPage:100},e),this._maxPerPage=this._resolveMaxPerPage(),this._state={page:this._normalizeInt(this._params.page,1),perPage:this._normalizePerPage(this._params.perPage,10),totalPages:this._normalizeInt(this._params.totalPages,1)},this._containers=[],this._lastMarkupByContainer=new WeakMap,this._boundContainerClick=this._handleContainerClick.bind(this),this._boundContainerChange=this._handleContainerChange.bind(this),this._boundContainerKeyDown=this._handleContainerKeyDown.bind(this),this._boundContainerFocusIn=this._handleContainerFocusIn.bind(this),this._boundContainerBlur=this._handleContainerBlur.bind(this),this._dropdownInstances=new WeakMap}init(){this._containers=this._resolveContainers(),this._containers.length&&(this._render(),this._bindEvents())}setMeta(t={}){let e=!1;if(void 0!==t.page){const i=this._normalizeInt(t.page,this._state.page);i!==this._state.page&&(this._state.page=i,e=!0)}if(void 0!==t.perPage){const i=this._normalizePerPage(t.perPage,this._state.perPage);i!==this._state.perPage&&(this._state.perPage=i,e=!0)}if(void 0!==t.totalPages){const i=this._normalizeInt(t.totalPages,this._state.totalPages);i!==this._state.totalPages&&(this._state.totalPages=i,e=!0)}const i=this._clampPage(this._state.page);i!==this._state.page&&(this._state.page=i,e=!0),e&&this._render()}_resolveContainers(){const t=this._resolveRenderMode(),e=this._findMarkupContainers();return"markup"===t||"auto"===t&&e.length?e:this._createClassContainers()}_resolveRenderMode(){const t=(this._params.renderMode||this._params.render||"auto").toString().toLowerCase();return"class"===t?"class":"markup"===t?"markup":"auto"}_findMarkupContainers(){if(this._params.container instanceof Element)return[this._params.container];if("string"==typeof this._params.container&&this._params.container.trim()){const t=this._root.querySelector(this._params.container);if(t)return[t]}const t=Array.from(this._root.querySelectorAll(this._params.markupSelector||".vgdt-pagination"));if(!t.length)return[];const e=(this._params.position||"bottom").toString().toLowerCase();if("both"===e)return t;const i=t.find(t=>t.dataset.position===e);return i?[i]:[t[0]]}_createClassContainers(){const t=(this._params.position||"bottom").toString().toLowerCase(),e=this._root.querySelector("table"),i=e?e.closest(".vgdt-table-viewport")||e:null,s=[],r=t=>{const e=`vgdt-pagination vgdt-pagination--${t}`;let r=this._root.querySelector(`.vgdt-pagination--${t}[data-pagination-generated="1"]`);r||(r=document.createElement("div"),r.className=e,r.dataset.position=t,r.dataset.paginationGenerated="1",i&&i.parentElement===this._root?"top"===t?this._root.insertBefore(r,i):i.nextSibling?this._root.insertBefore(r,i.nextSibling):this._root.appendChild(r):this._root.appendChild(r)),s.push(r)};return"top"!==t&&"both"!==t||r("top"),"bottom"!==t&&"both"!==t||r("bottom"),s}_bindEvents(){this._containers.forEach(t=>{t.removeEventListener("click",this._boundContainerClick),t.removeEventListener("change",this._boundContainerChange),t.removeEventListener("keydown",this._boundContainerKeyDown),t.removeEventListener("focusin",this._boundContainerFocusIn),t.removeEventListener("focusout",this._boundContainerBlur),t.addEventListener("click",this._boundContainerClick),t.addEventListener("change",this._boundContainerChange),t.addEventListener("keydown",this._boundContainerKeyDown),t.addEventListener("focusin",this._boundContainerFocusIn),t.addEventListener("focusout",this._boundContainerBlur)})}_handleContainerClick(t){const e=t.target.closest("[data-per-page-option]");if(e){t.preventDefault();const i=this._findPerPageInputFromNode(e),s=e.getAttribute("data-per-page-option")||"";return i&&(i.value=this._formatPerPageDisplay(s)),this._applyPerPage(s),void this._hidePerPageDropdownFromNode(e)}const i=t.target.closest("[data-per-page]");if(i){t.preventDefault(),t.stopPropagation();const e=this._findPerPageToggleFromNode(i),s=this._getOrCreatePerPageDropdown(e);return void(s&&"function"==typeof s.toggle?s.toggle():s&&"function"==typeof s.show&&s.show())}const s=t.target.closest("[data-page-jump]");if(s){const t=s.closest(".vgdt-pagination__jump"),e=t?t.querySelector("[data-page-jump-input]"):null;return void this._jumpToPage(e?e.value:"")}const r=t.target.closest("[data-page]");if(!r)return;const n=r.dataset.page;"prev"!==n?"next"!==n?"ellipsis-prev"!==n?"ellipsis-next"!==n?this._setPage(this._normalizeInt(n,this._state.page),"page"):this._setPage(this._getEllipsisTargetPage("next"),"ellipsis"):this._setPage(this._getEllipsisTargetPage("prev"),"ellipsis"):this._setPage(this._state.page+1,"next"):this._setPage(this._state.page-1,"prev")}_handleContainerKeyDown(t){if("Escape"===t.key){const e=t.target.closest("[data-per-page]");if(e)return this._hidePerPageDropdownFromNode(e),void e.blur()}if("Enter"!==t.key)return;const e=t.target.closest("[data-per-page]");if(e)return t.preventDefault(),this._applyPerPage(e.value),void(e.value=this._formatPerPageDisplay(this._state.perPage));const i=t.target.closest("[data-page-jump-input]");i&&(t.preventDefault(),this._jumpToPage(i.value))}_handleContainerChange(t){const e=t.target.closest("[data-per-page]");e&&(this._applyPerPage(e.value),e.value=this._formatPerPageDisplay(this._state.perPage))}_handleContainerFocusIn(t){const e=t.target.closest("[data-per-page]");e&&(e.value=String(this._normalizePerPage(e.value,this._state.perPage)))}_handleContainerBlur(t){const e=t.target.closest("[data-per-page]");if(!e)return;const i=t.relatedTarget instanceof Element?t.relatedTarget:null,s=e.closest(".vgdt-pagination__per-page-control");s&&i&&s.contains(i)||(this._applyPerPage(e.value),e.value=this._formatPerPageDisplay(this._state.perPage))}_applyPerPage(t){const e=this._normalizePerPage(t,this._state.perPage),i=e!==this._state.perPage,s=1!==this._state.page;(i||s)&&(this._state.perPage=e,this._state.page=1,this._render(),this._emitChange(i,"per-page"))}_setPage(t,e="page"){const i=this._clampPage(t);i!==this._state.page&&(this._state.page=i,this._render(),this._emitChange(!1,e))}_emitChange(t,e="page"){const i={page:this._state.page,perPage:this._state.perPage,totalPages:this._state.totalPages,perPageChanged:Boolean(t),source:e},s=this._params.onChange;"function"==typeof s&&s(i);const r=this._params.onPerPageChange;t&&"function"==typeof r&&r(i),this._root.dispatchEvent(new CustomEvent("vgdt:pagination:change",{bubbles:!0,detail:i}))}_render(){const t=this._buildPages(),e=this._buildMarkup(t);this._containers.forEach(t=>{(this._lastMarkupByContainer.get(t)||"")!==e&&(t.innerHTML=e,this._lastMarkupByContainer.set(t,e),this._initPerPageDropdown(t))})}_buildMarkup(t){const e=this._resolveAlign(),i=this._resolveAlignStyle(e),s=this._state.page<=1?"disabled":"",r=this._state.page>=this._state.totalPages?"disabled":"",n=this._params.showPerPage?this._buildPerPageMarkup():"",a=this._shouldShowQuickJump()?this._buildQuickJumpMarkup():"";return`\n\t\t\t<div class="vgdt-pagination__inner vgdt-pagination__inner--${e}" style="display:flex;align-items:center;justify-content:${i};gap:12px;flex-wrap:wrap;">\n\t\t\t\t${n}\n\t\t\t\t<nav class="vgdt-pagination__pages" aria-label="Pagination">\n\t\t\t\t\t<button type="button" class="vgdt-page vgdt-page--prev" data-page="prev" ${s}>${this._params.prevLabel}</button>\n\t\t\t\t\t${t.map(t=>this._buildPageItem(t)).join("")}\n\t\t\t\t\t<button type="button" class="vgdt-page vgdt-page--next" data-page="next" ${r}>${this._params.nextLabel}</button>\n\t\t\t\t</nav>\n\t\t\t\t${a}\n\t\t\t</div>\n\t\t`}_buildPerPageMarkup(){const t=this._normalizePerPageOptions();return`\n\t\t\t<label class="vgdt-pagination__per-page">\n\t\t\t\t${this._isPerPageLabelVisible()?`<span>${this._params.perPageLabel}</span>`:""}\n\t\t\t\t<div class="vgdt-pagination__per-page-control vg-dropdown">\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype="text"\n\t\t\t\t\t\tmin="1"\n\t\t\t\t\t\tmax="${this._maxPerPage}"\n\t\t\t\t\t\tstep="1"\n\t\t\t\t\t\tinputmode="numeric"\n\t\t\t\t\t\tdata-per-page\n\t\t\t\t\t\tdata-toggle="dropdown"\n\t\t\t\t\t\tvalue="${this._formatPerPageDisplay(this._state.perPage)}"\n\t\t\t\t\t\taria-label="${this._params.perPageLabel}"\n\t\t\t\t\t\taria-haspopup="true"\n\t\t\t\t\t>\n\t\t\t\t\t<span class="vgdt-pagination__per-page-chevron" aria-hidden="true">\n\t\t\t\t\t\t<svg viewBox="0 0 20 20" focusable="false" aria-hidden="true">\n\t\t\t\t\t\t\t<path d="M5 7.5L10 12.5L15 7.5" />\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</span>\n\t\t\t\t\t<div class="vg-dropdown-content vgdt-pagination__per-page-dropdown">\n\t\t\t\t\t\t<div class="vg-dropdown-container">\n\t\t\t\t\t\t\t${t.map(t=>`<button type="button" class="vgdt-pagination__per-page-option" data-per-page-option="${t}">${this._formatPerPageDisplay(t)}</button>`).join("")}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</label>\n\t\t`}_isPerPageLabelVisible(){const t=this._root?this._root.querySelector("table"):null,e=t?t.getAttribute("data-pagination-show-per-page-label"):null;if(null!==e){const t=String(e).toLowerCase().trim();return"false"!==t&&"0"!==t}return Boolean(this._params.showPerPageLabel)}_buildPageItem(t){if(t&&"object"==typeof t&&"ellipsis"===t.type){const e="prev"===t.direction,i=e?"ellipsis-prev":"ellipsis-next",s=e?"&laquo;":"&raquo;",r=this._getEllipsisTargetPage(t.direction),n=Math.abs(r-this._state.page);return`<button type="button" class="vgdt-page vgdt-page--ellipsis" data-page="${i}" aria-label="${e?`Go back ${n} page${n>1?"s":""}`:`Go forward ${n} page${n>1?"s":""}`}"><span class="vgdt-ellipsis-dots" aria-hidden="true">...</span><span class="vgdt-ellipsis-chevron" aria-hidden="true">${s}</span></button>`}const e=t===this._state.page?"is-active":"";return`<button type="button" class="vgdt-page ${e}" data-page="${t}" aria-current="${e?"page":"false"}">${t}</button>`}_buildQuickJumpMarkup(){return`\n\t\t\t<div class="vgdt-pagination__jump">\n\t\t\t\t<input\n\t\t\t\t\ttype="number"\n\t\t\t\t\tmin="1"\n\t\t\t\t\tmax="${this._state.totalPages}"\n\t\t\t\t\tstep="1"\n\t\t\t\t\tinputmode="numeric"\n\t\t\t\t\tdata-page-jump-input\n\t\t\t\t\tvalue="${this._state.page}"\n\t\t\t\t>\n\t\t\t\t<button type="button" class="vgdt-page vgdt-page--jump" data-page-jump>${this._params.quickJumpButtonLabel||"Go"}</button>\n\t\t\t</div>\n\t\t`}_buildPages(){const t=this._state.totalPages,e=this._clampPage(this._state.page),i=Math.max(1,this._normalizeInt(this._params.maxVisiblePages,5));if(!(Boolean(this._params.ellipsis)&&t>this._normalizeInt(this._params.ellipsisAfter,5))||t<=i+2)return this._range(1,t);const s=i;let r=Math.max(2,e-Math.floor(s/2)),n=Math.min(t-1,r+s-1);r=Math.max(2,n-s+1);const a=[1];r>2&&a.push({type:"ellipsis",direction:"prev"});for(let t=r;t<=n;t+=1)a.push(t);return n<t-1&&a.push({type:"ellipsis",direction:"next"}),a.push(t),a}_findPerPageInputFromNode(t){const e=t?t.closest(".vgdt-pagination__per-page-control"):null;return e?e.querySelector("[data-per-page]"):null}_findPerPageToggleFromNode(t){const e=t?t.closest(".vgdt-pagination__per-page-control"):null;return e?e.querySelector('[data-per-page][data-toggle="dropdown"]'):null}_getOrCreatePerPageDropdown(t){if(!t)return null;let e=this._dropdownInstances.get(t);return e||(e=Zt.getOrCreateInstance(t,{placement:"auto",hover:!1,animation:{fade:!0,enable:!1,delay:120}}),this._dropdownInstances.set(t,e),e)}_initPerPageDropdown(t){const e=t.querySelector('.vgdt-pagination__per-page-control [data-toggle="dropdown"]');e&&this._getOrCreatePerPageDropdown(e)}_hidePerPageDropdownFromNode(t){const e=this._findPerPageToggleFromNode(t);if(!e)return;const i=this._dropdownInstances.get(e);i&&"function"==typeof i.hide&&i.hide()}_shouldShowQuickJump(){if(this._state.totalPages<=1)return!1;const t=this._params.quickJump;if(!0===t||"true"===t)return!0;if(!1===t||"false"===t)return!1;const e=this._normalizeInt(this._params.ellipsisAfter,5);return this._state.totalPages>e}_resolveAlign(){const t=(this._params.align||"left").toString().toLowerCase();return"center"===t||"right"===t||"between"===t?t:"left"}_resolveAlignStyle(t){return"center"===t?"center":"right"===t?"flex-end":"between"===t?"space-between":"flex-start"}_normalizePerPageOptions(){const t=this._params.perPageOptions,e=(Array.isArray(t)?t:[10,25,50,100]).map(t=>this._normalizeInt(t,0)).filter(t=>t>0&&t<=this._maxPerPage);return e.length?(e.includes(this._state.perPage)||e.push(this._state.perPage),Array.from(new Set(e)).sort((t,e)=>t-e)):[this._state.perPage]}_resolveMaxPerPage(){const t=this._params.maxPerPage;return this._normalizeInt(t,100)}_normalizePerPage(t,e){const i=this._normalizeInt(t,e);return Math.min(i,this._maxPerPage)}_getPerPageOptionSuffix(){const t=this._params.perPageOptionSuffix,e=String(t||"").trim();if(e)return e;const i=String(this._params.perPageLabel||"").toLowerCase();return/[а-яё]/i.test(i)?"на страницу":"page"}_formatPerPageDisplay(t){return`${this._normalizeInt(t,this._state.perPage)} / ${this._getPerPageOptionSuffix()}`}_clampPage(t){const e=this._normalizeInt(t,1);return Math.max(1,Math.min(e,this._state.totalPages))}_normalizeInt(t,e){const i=Number.parseInt(t,10);return Number.isFinite(i)&&i>0?i:e}_jumpToPage(t){const e=this._normalizeInt(t,this._state.page);this._setPage(e,"jump")}_getEllipsisTargetPage(t){const e=this._buildPages().filter(t=>Number.isInteger(t)&&t>1&&t<this._state.totalPages);if(!e.length)return"prev"===t?1:this._state.totalPages;const i=e[0],s=e[e.length-1];return"prev"===t?this._clampPage(i-1):this._clampPage(s+1)}_range(t,e){const i=[];for(let s=t;s<=e;s+=1)i.push(s);return i}},ge=class{constructor(t,e={}){this._table=t,this._options=Object.assign({initialField:"",initialDir:"asc",directions:["asc","desc"],ascLabel:"Сортировка по возрастанию",descLabel:"Сортировка по убыванию",isColumnSortable:null,onChange:null,multiSort:!1,multiSortWithShift:!0,hideUnsortedArrows:!1},e),this._headers=[],this._sorts=[],this._headerControls=new WeakMap,this._boundClick=this._handleClick.bind(this),this._boundKeyDown=this._handleKeyDown.bind(this)}init(){this._headers=this._getHeaders(),this._headers.length&&(this._syncControlsVisibilityMode(),this._headers.forEach((t,e)=>{this._isSortable(t,e)?(t.dataset.sortable="1",t.tabIndex=0,t.setAttribute("role","button"),t.setAttribute("aria-sort","none"),this._decorateHeader(t)):t.setAttribute("aria-sort","none")}),this._table.addEventListener("click",this._boundClick),this._table.addEventListener("keydown",this._boundKeyDown),this._applyInitialState())}setState(t={}){if(Array.isArray(t.sorts)){const e=this._normalizeSorts(t.sorts);return void this._setSorts(e,!1)}const e=this._resolveIndex(t);e<0?this._setSorts([],!1):this._isSortable(this._headers[e],e)&&this._setSorts([{index:e,dir:this._normalizeDir(t.dir)}],!1)}refresh(t={}){this._headers=this._getHeaders(),this._headers.length&&(this._syncControlsVisibilityMode(),this._headers.forEach((t,e)=>{if(!this._isSortable(t,e))return t.removeAttribute("data-sortable"),t.removeAttribute("data-sort-direction"),t.removeAttribute("data-sort-priority"),void t.setAttribute("aria-sort","none");t.dataset.sortable="1",t.tabIndex=0,t.setAttribute("role","button"),t.hasAttribute("aria-sort")||t.setAttribute("aria-sort","none"),this._decorateHeader(t)}),Array.isArray(t.sorts)?this._setSorts(this._normalizeSorts(t.sorts),!1):this._setSorts(this._normalizeSorts(this._sorts),!1))}_applyInitialState(){const t=this._resolveIndex({field:this._options.initialField,columnIndex:-1});t<0||!this._isSortable(this._headers[t],t)?this._setSorts([],!1):this._setSorts([{index:t,dir:this._normalizeDir(this._options.initialDir)}],!1)}_getHeaders(){const t=this._table.tHead||this._table.querySelector("thead");return t&&t.rows.length?Array.from(t.rows[0].cells):[]}_isSortable(t,e){return"function"!=typeof this._options.isColumnSortable||Boolean(this._options.isColumnSortable(t,e))}_handleClick(t){const e=t.target.closest("th");if(!e||!this._table.contains(e))return;const i=this._headers.indexOf(e);if(i<0||!this._isSortable(e,i))return;const s=t.target.closest("[data-sort-arrow]"),r=this._isMultiMode(t);if(s&&e.contains(s)){const t=this._normalizeDir(s.getAttribute("data-sort-arrow"));return void this._applyColumnDirection(i,t,r,!0)}this._cycleColumn(i,r)}_handleKeyDown(t){if("Enter"!==t.key&&" "!==t.key)return;const e=t.target.closest("th");if(!e||!this._table.contains(e))return;const i=this._headers.indexOf(e);i<0||!this._isSortable(e,i)||(t.preventDefault(),this._cycleColumn(i,this._isMultiMode(t)))}_isMultiMode(t){return!!this._options.multiSort&&(!this._options.multiSortWithShift||Boolean(t&&t.shiftKey))}_cycleColumn(t,e){const i=this._sorts.find(e=>e.index===t)||null,s=this._getDirections(),r=s[0],n=s[1]||r;i?i.dir!==r?this._removeColumnDirection(t,e,!0):this._applyColumnDirection(t,n,e,!0):this._applyColumnDirection(t,r,e,!0)}_applyColumnDirection(t,e,i,s){let r=this._sorts.slice();r=r.filter(e=>e.index!==t),i||(r=[]),r.push({index:t,dir:this._normalizeDir(e)}),this._setSorts(r,s)}_removeColumnDirection(t,e,i){let s=this._sorts.slice();s=s.filter(e=>e.index!==t),e||(s=[]),this._setSorts(s,i)}_setSorts(t,e){this._sorts=this._normalizeSorts(t);const i=new Map;if(this._sorts.forEach((t,e)=>{i.set(t.index,{dir:t.dir,priority:e+1})}),this._headers.forEach((t,e)=>{const s=i.has(e)?i.get(e):null;if(!this._isSortable(t,e))return t.removeAttribute("data-sort-direction"),t.removeAttribute("data-sort-priority"),void t.setAttribute("aria-sort","none");const r=this._getHeaderControls(t),n=r.controlsNode,a=r.ascButton,o=r.descButton,l=Boolean(this._options.hideUnsortedArrows&&!s);n&&(n.hidden=l),s?(t.dataset.sortDirection=s.dir,t.dataset.sortPriority=String(s.priority),t.setAttribute("aria-sort","asc"===s.dir?"ascending":"descending"),a&&a.setAttribute("aria-pressed","asc"===s.dir?"true":"false"),o&&o.setAttribute("aria-pressed","desc"===s.dir?"true":"false")):(t.removeAttribute("data-sort-direction"),t.removeAttribute("data-sort-priority"),t.setAttribute("aria-sort","none"),a&&a.setAttribute("aria-pressed","false"),o&&o.setAttribute("aria-pressed","false"))}),this._syncSortedColumnsHighlight(),!e||"function"!=typeof this._options.onChange)return;const s=this._sorts[0]||null;this._options.onChange({field:s?this._getFieldByIndex(s.index):"",dir:s?s.dir:this._normalizeDir(this._options.initialDir),columnIndex:s?s.index:-1,sorts:this._sorts.map(t=>({field:this._getFieldByIndex(t.index),dir:t.dir,columnIndex:t.index}))})}_normalizeSorts(t){const e=[],i=new Set;return(Array.isArray(t)?t:[]).forEach(t=>{const s=Number.parseInt(t.index??t.columnIndex,10);!Number.isInteger(s)||s<0||s>=this._headers.length||this._isSortable(this._headers[s],s)&&(i.has(s)||(i.add(s),e.push({index:s,dir:this._normalizeDir(t.dir)})))}),e}_syncSortedColumnsHighlight(){const t=this._getAllRows();t.length&&(t.forEach(t=>{Array.from(t.cells||[]).forEach(t=>{t.removeAttribute("data-sorted-column"),t.removeAttribute("data-sorted-priority")})}),this._sorts.forEach((e,i)=>{t.forEach(t=>{const s=t.cells&&t.cells[e.index]?t.cells[e.index]:null;s&&(s.setAttribute("data-sorted-column","1"),s.setAttribute("data-sorted-priority",String(i+1)))})}))}_getAllRows(){const t=[];return["tHead","tBodies","tFoot"].forEach(e=>{const i=this._table[e];i&&("tBodies"!==e?t.push(...Array.from(i.rows||[])):Array.from(i).forEach(e=>{t.push(...Array.from(e.rows||[]))}))}),t}_decorateHeader(t){if(t.querySelector(".vgdt-sort-controls"))return void this._headerControls.delete(t);const e=document.createElement("span");for(e.className="vgdt-sort-label";t.firstChild;)e.appendChild(t.firstChild);const i=document.createElement("span");i.className="vgdt-sort-controls",i.innerHTML=`\n <button type="button" class="vgdt-sort-arrow vgdt-sort-arrow--asc" data-sort-arrow="asc" aria-label="${this._escapeAttr(this._options.ascLabel)}" aria-pressed="false">&#9650;</button>\n <button type="button" class="vgdt-sort-arrow vgdt-sort-arrow--desc" data-sort-arrow="desc" aria-label="${this._escapeAttr(this._options.descLabel)}" aria-pressed="false">&#9660;</button>\n `,e.appendChild(i),t.appendChild(e),this._headerControls.delete(t)}_getHeaderControls(t){if(this._headerControls.has(t))return this._headerControls.get(t);const e={controlsNode:t.querySelector(".vgdt-sort-controls"),ascButton:t.querySelector('[data-sort-arrow="asc"]'),descButton:t.querySelector('[data-sort-arrow="desc"]')};return this._headerControls.set(t,e),e}_getFieldByIndex(t){const e=this._headers[t];return e?(e.getAttribute("data-field")||"").trim():""}_resolveIndex(t={}){const e=(t.field||"").toString().trim();if(e){const t=this._headers.findIndex(t=>(t.getAttribute("data-field")||"").trim()===e);if(t>=0)return t}const i=Number.parseInt(t.columnIndex,10);return Number.isInteger(i)&&i>=0&&i<this._headers.length?i:-1}_normalizeDir(t){const e=String(t).toLowerCase(),i=this._getDirections();return i.includes(e)?e:i[0]}_getDirections(){const t=(Array.isArray(this._options.directions)?this._options.directions:["asc","desc"]).map(t=>String(t).toLowerCase().trim()).filter(t=>"asc"===t||"desc"===t);return t.length?Array.from(new Set(t)):["asc","desc"]}_syncControlsVisibilityMode(){this._options.hideUnsortedArrows?this._table.setAttribute("data-sort-hide-unsorted-arrows","1"):this._table.removeAttribute("data-sort-hide-unsorted-arrows")}_escapeAttr(t){return String(t).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}},fe=class{constructor(t,e={}){this._table=t,this._params=e&&"object"==typeof e?e:{},this._collapsed=new Set,this._boundClick=this._handleClick.bind(this),this._initialized=!1}init(){this._isEnabled()&&!this._initialized&&(this._table.addEventListener("click",this._boundClick),this._initialized=!0,this.refresh())}destroy(){this._initialized&&(this._table.removeEventListener("click",this._boundClick),this._initialized=!1)}refresh(){if(!this._isEnabled())return;const t=this._getRows();if(!t.length)return;this._resetExpandHidden(t),this._rememberBaseVisibility(t);const e=this._getIdAttr(),i=this._getParentAttr(),s=new Map,r=new Map,n=new Map;t.forEach((t,a)=>{const o=`row-${a+1}`,l=String(t.getAttribute(e)||o).trim()||o;t.setAttribute(e,l),s.set(l,t);const d=String(t.getAttribute(i)||"").trim();r.set(l,d),d&&(n.has(d)||n.set(d,[]),n.get(d).push(l))});const a=new Map,o=t=>{if(a.has(t))return a.get(t);const e=String(r.get(t)||"").trim();if(!e)return a.set(t,0),0;if(!s.has(e)||e===t)return a.set(t,0),0;const i=Math.max(0,o(e)+1);return a.set(t,i),i},l=t=>{let e=String(r.get(t)||"").trim();for(;e;){if(this._collapsed.has(e))return!0;e=String(r.get(e)||"").trim()}return!1};s.forEach((t,e)=>{const i=o(e);t.setAttribute("data-expand-depth",String(i)),t.style.setProperty("--vgdt-expand-depth",String(i));const s=n.has(e)&&n.get(e).length>0,r="1"===t.getAttribute("data-expand-seeded");s&&!r&&(this._isInitiallyCollapsed(t)&&this._collapsed.add(e),t.setAttribute("data-expand-seeded","1")),this._syncToggleNode(t,e,s);const a="1"===t.getAttribute("data-expand-base-hidden"),d=l(e),h=a||d;t.hidden=h,d?t.setAttribute("data-expand-hidden","1"):t.removeAttribute("data-expand-hidden")})}_handleClick(t){const e=this._getToggleSelector(),i=t.target||null,s=i&&3===i.nodeType?i.parentElement:i,r=s&&s.closest?s.closest(e):null;if(!r||!this._table.contains(r))return;t.preventDefault();const n=r.closest("tr");if(!n)return;const a=String(n.getAttribute(this._getIdAttr())||"").trim();if(!a)return;const o=!this._collapsed.has(a);o?this._collapsed.add(a):this._collapsed.delete(a),this.refresh();const l={id:a,collapsed:o,row:n};"function"==typeof this._params.onToggle&&this._params.onToggle(l)}_syncToggleNode(t,e,i){const s=this._getToggleSelector();let r=t.querySelector(s);if(!r&&i){const e=t.cells&&t.cells[0]?t.cells[0]:null;e&&(r=document.createElement("button"),r.type="button",r.className="vgdt-expand-toggle",r.setAttribute("data-expand-toggle","1"),e.prepend(r))}if(!r)return;r.style.marginInlineEnd="10px",r.style.cursor="pointer";const n=r.nextSibling;if(n&&3===n.nodeType&&/^\s/.test(String(n.textContent||""))||r.after(document.createTextNode(" ")),r.setAttribute("data-expand-toggle",e),r.setAttribute("aria-expanded",this._collapsed.has(e)?"false":"true"),r.hidden=!i,!i)return;const a=this._collapsed.has(e);r.textContent=a?"+":"−"}_getRows(){const t=this._table.tBodies&&this._table.tBodies[0];return t?Array.from(t.rows).filter(t=>!t.querySelector("[data-table-state]")):[]}_resetExpandHidden(t){t.forEach(t=>{"1"===t.getAttribute("data-expand-hidden")&&(t.hidden=!1,t.removeAttribute("data-expand-hidden"))})}_rememberBaseVisibility(t){t.forEach(t=>{t.setAttribute("data-expand-base-hidden",t.hidden?"1":"0")})}_isInitiallyCollapsed(t){const e=t.getAttribute("data-expand-collapsed");return null!==e?this._isTruthy(e):Boolean(this._params.collapsed)}_isEnabled(){return Boolean(this._params.enable)}_getIdAttr(){return String(this._params.idAttr||"data-expand-id").trim()||"data-expand-id"}_getParentAttr(){return String(this._params.parentAttr||"data-expand-parent-id").trim()||"data-expand-parent-id"}_getToggleSelector(){return String(this._params.toggleSelector||"[data-expand-toggle]").trim()||"[data-expand-toggle]"}_isTruthy(t){const e=String(t||"").toLowerCase().trim();return""!==e&&"0"!==e&&"false"!==e&&"off"!==e&&"no"!==e}},be=class{constructor(t={}){this._options=Object.assign({enabled:!0,debounceMs:300,inputSelector:"",param:"q",onSearch:null},t),this._input=null,this._timer=null,this._boundInput=this._handleInput.bind(this),this._boundKeyDown=this._handleKeyDown.bind(this)}init(){if(!this._options.enabled)return;const t=String(this._options.inputSelector||"").trim();if(!t)return;const e=ne(t);e&&(this._input=e,this._input.addEventListener("input",this._boundInput),this._input.addEventListener("keydown",this._boundKeyDown))}destroy(){this._input&&(this._input.removeEventListener("input",this._boundInput),this._input.removeEventListener("keydown",this._boundKeyDown),this._input=null,clearTimeout(this._timer),this._timer=null)}_handleInput(){clearTimeout(this._timer),this._timer=setTimeout(()=>{this._emit()},ie(this._options.debounceMs,300))}_handleKeyDown(t){"Enter"===t.key&&(t.preventDefault(),clearTimeout(this._timer),this._emit())}_emit(){"function"==typeof this._options.onSearch&&this._input&&this._options.onSearch({value:this._input.value.trim(),param:String(this._options.param||"q")})}},ve=class{constructor(t={}){this._options=Object.assign({enabled:!0,formSelector:"",formNode:null,debounceMs:300,applyMode:"auto",button:{apply:"[data-filter-apply]",reset:"[data-filter-reset]"},fieldAttr:"data-filter-field",partAttr:"data-filter-part",typeAttr:"data-filter-type",valueAttr:"data-filter-value",operatorAttr:"data-filter-operator",defaultOperator:"eq",skipEmpty:!0,trimValues:!0,emitOnInit:!1,initialValues:{},onChange:null,onReset:null},t),this._form=null,this._timer=null,this._controls=[],this._boundInput=this._handleInput.bind(this),this._boundChange=this._handleChange.bind(this),this._boundClick=this._handleClick.bind(this),this._boundSubmit=this._handleSubmit.bind(this)}init(){if(!this._options.enabled)return;const t=this._resolveFormNode();t&&(this._form=t,this._syncCachedNodes(),this._form.addEventListener("input",this._boundInput),this._form.addEventListener("change",this._boundChange),this._form.addEventListener("click",this._boundClick),this._form.addEventListener("submit",this._boundSubmit),this.setValues(this._options.initialValues||{},{emit:!1}),this._options.emitOnInit&&this._emit())}destroy(){this._form&&(this._form.removeEventListener("input",this._boundInput),this._form.removeEventListener("change",this._boundChange),this._form.removeEventListener("click",this._boundClick),this._form.removeEventListener("submit",this._boundSubmit),this._form=null,clearTimeout(this._timer),this._timer=null,this._controls=[])}getState(){return this._collectState()}getValues(){return this._collectState().params}getFields(){const t=new Set;return this._getControls().forEach(e=>{const i=this._getField(e);i&&t.add(i)}),Array.from(t)}setValues(t={},e={}){this._form&&(this._getControls().forEach(e=>{const i=this._getField(e);if(!i)return;const s="operator"===this._getPart(e)?`${i}_op`:i,r=Object.prototype.hasOwnProperty.call(t,s)?t[s]:"";this._setControlValue(e,r)}),e.emit&&this._emit())}_resolveFormNode(){if(this._options.formNode&&1===this._options.formNode.nodeType)return this._options.formNode;const t=String(this._options.formSelector||"").trim();return t?ne(t):null}_handleInput(t){if(!this._isFilterControl(t.target))return;if(this._isManualMode())return;const e=String(t.target.type||"").toLowerCase();"checkbox"!==e&&"radio"!==e&&"SELECT"!==t.target.tagName?(clearTimeout(this._timer),this._timer=setTimeout(()=>this._emit(),ie(this._options.debounceMs,300))):this._emit()}_handleChange(t){this._isFilterControl(t.target)&&(this._isManualMode()||(clearTimeout(this._timer),this._emit()))}_handleClick(t){if(!this._form)return;const e=this._options.button||{},i=String(e.apply||"[data-filter-apply]").trim(),s=String(e.reset||"[data-filter-reset]").trim();if(i&&t.target.closest(i))return t.preventDefault(),clearTimeout(this._timer),void this._emit();s&&t.target.closest(s)&&(t.preventDefault(),this._reset(),"function"==typeof this._options.onReset&&this._options.onReset(),clearTimeout(this._timer),this._emit())}_handleSubmit(t){this._isManualMode()&&(t.preventDefault(),clearTimeout(this._timer),this._emit())}_emit(){this._form&&"function"==typeof this._options.onChange&&this._options.onChange(this._collectState())}_collectState(){const t=new Map;this._getControls().forEach(e=>{const i=this._getField(e);if(!i)return;t.has(i)||t.set(i,{field:i,type:this._getType(e),operator:this._getStaticOperator(e),value:"",values:[]});const s=t.get(i),r=this._getPart(e),n=this._readControlValue(e),a=String(e.type||"").toLowerCase();if("operator"!==r)if("type"!==r){if("checkbox"!==a&&"radio"!==a||""!==n)return Array.isArray(n)?(s.values=n.slice(),void(s.value=s.values.join(","))):void(s.value=n)}else s.type=String(n||"").trim()||s.type||"text";else s.operator=String(n||"").trim()||s.operator||this._getDefaultOperator()});const e={},i={};return t.forEach((t,s)=>{const r=this._normalizeFilterItem(t);r&&(e[s]=r,r.values.length>0?i[s]=r.values.slice():i[s]=r.value,r.operator&&(i[`${s}_op`]=r.operator))}),{filters:e,params:i,fields:Object.keys(e),meta:{count:Object.keys(e).length}}}_normalizeFilterItem(t){const e=String(t.type||"text").trim()||"text",i=String(t.operator||this._getDefaultOperator()).trim();let s=t.value,r=Array.isArray(t.values)?t.values.slice():[];if(this._options.trimValues&&("string"==typeof s&&(s=s.trim()),r=r.map(t=>String(t||"").trim()).filter(t=>""!==t)),this._options.skipEmpty){const t=0===r.length,e=null==s||""===String(s);if(t&&e)return null}return{field:String(t.field||"").trim(),type:e,operator:i,value:null==s?"":s,values:r}}_setControlValue(t,e){const i=String(t.type||"").toLowerCase();if("checkbox"===i){const i=String(e||"").toLowerCase();return void(t.checked=i===String(t.value||"").toLowerCase()||"1"===i||"true"===i||"on"===i)}if("radio"!==i){if("SELECT"===t.tagName&&t.multiple){const i=Array.isArray(e)?e:String(e||"").split(","),s=new Set(i.map(t=>String(t||"").trim()).filter(t=>""!==t));return void Array.from(t.options||[]).forEach(t=>{t.selected=s.has(String(t.value||"").trim())})}t.value=String(e||"")}else t.checked=String(t.value||"")===String(e||"")}_readControlValue(t){if("SELECT"===t.tagName&&t.multiple)return Array.from(t.selectedOptions||[]).map(t=>String(t.value||"").trim()).filter(t=>""!==t);const e=String(t.type||"").toLowerCase();return"checkbox"===e?t.checked?t.value||"1":"":"radio"===e?t.checked&&t.value||"":String(t.value||"")}_syncCachedNodes(){if(!this._form)return void(this._controls=[]);const t=this._getFieldAttr();this._controls=Array.from(this._form.querySelectorAll(`[${t}]`)).filter(t=>this._isSupportedControl(t))}_getControls(){return this._form?(Array.isArray(this._controls)&&0!==this._controls.length||this._syncCachedNodes(),this._controls):[]}_reset(){this._getControls().forEach(t=>{const e=String(t.type||"").toLowerCase();if("checkbox"!==e&&"radio"!==e)return"SELECT"===t.tagName?t.multiple?void Array.from(t.options||[]).forEach(t=>{t.selected=!1}):void(t.selectedIndex=0):void(t.value="");t.checked=!1})}_getFieldAttr(){return String(this._options.fieldAttr||"data-filter-field").trim()||"data-filter-field"}_getPartAttr(){return String(this._options.partAttr||"data-filter-part").trim()||"data-filter-part"}_getTypeAttr(){return String(this._options.typeAttr||"data-filter-type").trim()||"data-filter-type"}_getValueAttr(){return String(this._options.valueAttr||"data-filter-value").trim()||"data-filter-value"}_getOperatorAttr(){return String(this._options.operatorAttr||"data-filter-operator").trim()||"data-filter-operator"}_getDefaultOperator(){return String(this._options.defaultOperator||"eq").trim()||"eq"}_getField(t){return String(t.getAttribute(this._getFieldAttr())||"").trim()}_getPart(t){const e=String(t.getAttribute(this._getPartAttr())||"value").toLowerCase().trim();return"operator"===e||"type"===e?e:"value"}_getType(t){return String(t.getAttribute(this._getTypeAttr())||"").toLowerCase().trim()||"text"}_getStaticOperator(t){return String(t.getAttribute(this._getOperatorAttr())||"").trim()||""}_isFilterControl(t){return Boolean(t&&this._isSupportedControl(t)&&"function"==typeof t.getAttribute&&""!==String(t.getAttribute(this._getFieldAttr())||"").trim())}_isSupportedControl(t){if(!t||"string"!=typeof t.tagName)return!1;const e=String(t.tagName||"").toUpperCase();return"INPUT"===e||"SELECT"===e||"TEXTAREA"===e}_isManualMode(){return"manual"===String(this._options.applyMode||"auto").toLowerCase().trim()}},ye="dynamicTable",we="vg."+ye,Se="vg-dynamic-table",Ce={init:"onInit",beforeload:"onBeforeLoad",dataloaded:"onDataLoaded",error:"onError",requestsuccess:"onRequestSuccess",requesterror:"onRequestError",staleresponse:"onStaleResponse",urlstateread:"onUrlStateRead",urlstatewrite:"onUrlStateWrite",urlstateerror:"onUrlStateError",emptyresult:"onEmptyResult",afterrender:"onAfterRender",statesync:"onStateSync",sortchange:"onSortChange",pagechange:"onPageChange",perpagechange:"onPerPageChange",search:"onSearch",filterschange:"onFiltersChange",reset:"onReset",export:"onExport",viewchange:"onViewChange",rowupdate:"onRowUpdate",rowupdateerror:"onRowUpdateError",bulkaction:"onBulkAction",rowdelete:"onRowDelete",rowcheck:"onRowCheck",checkall:"onCheckAll",selectionchange:"onSelectionChange",rowexpand:"onRowExpand",rowcollapse:"onRowCollapse",rowtoggle:"onRowToggle",rowreorder:"onRowReorder",rowreordererror:"onRowReorderError",columnreorder:"onColumnReorder",columnresize:"onColumnResize",columnfixed:"onColumnFixed"};class Ae extends t.A{constructor(t,e={}){super(t,e),this._params=this._getParams(t,(0,r._v)(me,e)),this._parent=null,this._tableViewport=null,this._pagination=null,this._rows=[],this._originalRows=[],this._requestToken=0,this._isRemote=!1,this._fields=[],this._isInitialized=!1,this._sortable=null,this._search=null,this._filters=null,this._sortState={field:"",dir:"asc",columnIndex:-1,sorts:[]},this._pageState={page:1,perPage:10},this._remoteParams={},this._activeFilters={},this._lastRemoteMeta={},this._liveRegion=null,this._summaryNode=null,this._panHintNode=null,this._cloneStickyState=null,this._boundPopState=this._handlePopState.bind(this),this._panState=null,this._boundPanHintResize=this._updatePanHintVisibility.bind(this),this._boundPanHintDismiss=this._handlePanHintDismiss.bind(this),this._boundCloneStickyResize=this._refreshStickyAndFixedLayout.bind(this),this._boundFixedColumnsScroll=this._syncFixedColumnsScroll.bind(this),this._fixedColumnsScrollBound=!1,this._fixedColumnsCellsCache=[],this._fixedColumnsSyncFrame=0,this._fixedColumnsLastScrollLeft=0,this._layoutResizeObserver=null,this._layoutRefreshFrame=0,this._layoutRefreshReasons=[],this._layoutRefreshScheduled=!1,this._requestAbortController=null,this._activeRemoteRequestId="",this._remotePageCache=new Map,this._fixedColumnsSuppressed=!1,this._searchInputCacheSelector="",this._searchInputCacheNode=null,this._filtersFormCacheSelector="",this._filtersFormCacheNode=null,this._filterParamKeysCache=null,this._columnReorderState={enabled:!1,fromIndex:-1,toIndex:-1,isDragging:!1},this._columnResizeState={enabled:!1,bound:!1,active:!1,index:-1,startX:0,startWidth:0,nextWidth:0,frame:0},this._virtualState={enabled:!1,bound:!1,lastPage:-1,lastPerPage:-1,start:0,end:0,page:-1,perPage:-1,frame:0,lastScrollTop:-1,rowHeight:44},this._virtualSpacers={top:null,bottom:null},this._boundVirtualScroll=this._handleVirtualScroll.bind(this),this._expandable=null}static get NAME(){return ye}static get NAME_KEY(){return we}static initAll(t={}){Array.from(s.A.findAll("[data-vg-table]")).forEach(e=>{(this.getInstance(e)||new this(e,t)).init()})}_emitAction(t,e={}){const i=String(t||"").trim();if(!i)return;const s=Object.assign({action:i,table:this._element,isRemote:this._isRemote},e),r=this._params.callbacks||{},n=i.toLowerCase(),a=Ce[n]||"",o=a?r[a]:null;"function"==typeof o&&o(s,this);const l=this._params.events||{};if(void 0!==l.enable&&!Boolean(l.enable)||"undefined"==typeof window||"function"!=typeof window.CustomEvent)return;const d=`${String(l.prefix||"vgdt").trim()||"vgdt"}:${n}`,h=void 0===l.bubbles||Boolean(l.bubbles);this._element.dispatchEvent(new CustomEvent(d,{detail:s,bubbles:h}))}updateRemoteParams(t={},e={}){if(!this._isRemote)return;const i=!(!e||!Object.prototype.hasOwnProperty.call(e,"replace"))&&Boolean(e.replace),s=!e||!Object.prototype.hasOwnProperty.call(e,"reload")||Boolean(e.reload),r=!e||!Object.prototype.hasOwnProperty.call(e,"resetPage")||Boolean(e.resetPage),n=e&&"string"==typeof e.trigger?String(e.trigger).toLowerCase().trim():"",a=e&&e.filtersState&&"object"==typeof e.filtersState?this._normalizeFiltersEventState(e.filtersState):null,o=t&&"object"==typeof t?t:{},l=i?{}:Object.assign({},this._remoteParams);if(Object.keys(o).forEach(t=>{const e=o[t];if(Array.isArray(e)){const i=e.map(t=>String(t||"").trim()).filter(t=>""!==t);return i.length?void(l[t]=i):void delete l[t]}null!=e&&""!==e?l[t]=e:delete l[t]}),this._remoteParams=l,!s)return void this._syncUrlState();const d=this._pageState.perPage||this._normalizePositiveInt(this._params.pagination.perPage,10),h=r?1:this._pageState.page||1;this._pageState={page:h,perPage:d},this._loadRemotePage(h,d,null,{trigger:n,filtersState:a})}setLocale(t){const e=String(t||"").toLowerCase().trim()||"ru";return this._params.locale=e,this._writePersistentState("locale",e),e}setFiltersApplyMode(t){const e=this._normalizeFiltersApplyMode(t);return this._params.filters&&"object"==typeof this._params.filters||(this._params.filters={}),this._params.filters.apply=e,this._writePersistentState("filtersApplyMode",e),this._isInitialized&&this._isRemote&&this._initFilters(),e}_getViewsStorageKey(){const t=String(this._element.getAttribute("data-views-storage-key")||"").trim();if(t)return t;const e=this._params.views&&"object"==typeof this._params.views?this._params.views:{},i=e.storage&&"object"==typeof e.storage?e.storage:{};return String(i.key||viewsoptions.storageKey||"").trim()||`${this._getPerPageStorageKey()}:views`}_readViewsStorage(){try{const t=String(window.localStorage.getItem(this._getViewsStorageKey())||"").trim();if(!t)return{};const e=JSON.parse(t);return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}catch(t){return{}}}_writeViewsStorage(t){try{window.localStorage.setItem(this._getViewsStorageKey(),JSON.stringify(t||{}))}catch(t){}}_getHiddenFields(){return this._getHeaderCells().filter(t=>"1"===String(t.getAttribute("data-hidden")||"")).map(t=>String(t.getAttribute("data-field")||"").trim()).filter(Boolean)}_setFieldHidden(t,e){const i=String(t||"").trim();if(!i)return;const s=this._getHeaderCells(),r=s.findIndex(t=>String(t.getAttribute("data-field")||"").trim()===i);if(r<0)return;const n=[];this._element.tHead&&n.push(this._element.tHead),this._element.tBodies&&this._element.tBodies.length&&n.push(...Array.from(this._element.tBodies)),this._element.tFoot&&n.push(this._element.tFoot),n.forEach(t=>{Array.from(t.rows||[]).forEach(t=>{const i=t.cells&&t.cells[r]?t.cells[r]:null;i&&(i.style.display=e?"none":"",e?i.setAttribute("data-hidden","1"):i.removeAttribute("data-hidden"))})});const a=s[r];a&&(e?a.setAttribute("data-hidden","1"):a.removeAttribute("data-hidden"))}getCurrentViewState(){return{filters:Object.assign({},this._remoteParams||{}),sorts:this._getNormalizedSorts(this._sortState.sorts||[]),perPage:this._pageState.perPage||this._getInitialPerPage(),columnOrder:this._getCurrentColumnOrder(),hiddenFields:this._getHiddenFields()}}listViews(){return Object.keys(this._readViewsStorage()).sort()}saveView(t){const e=String(t||"").trim();if(!e)return!1;const i=this._readViewsStorage();return i[e]=this.getCurrentViewState(),this._writeViewsStorage(i),this._emitAction("viewchange",{mode:"save",name:e,state:i[e]}),!0}applyView(t){const e=String(t||"").trim();if(!e)return!1;const i=this._readViewsStorage()[e];if(!i||"object"!=typeof i)return!1;(Array.isArray(i.columnOrder)?i.columnOrder.filter(Boolean):[]).forEach((t,e)=>{const i=this._findHeaderIndexByField(t);i<0||i===e||this._moveColumn(i,e)});const s=Array.isArray(i.hiddenFields)?i.hiddenFields:[],r=new Set(s.map(t=>String(t||"").trim()).filter(Boolean));this._getCurrentColumnOrder().forEach(t=>{this._setFieldHidden(t,r.has(t))});const n=this._getNormalizedSorts(i.sorts||[]);this._sortable&&this._sortable.setState({sorts:n});const a=n[0]||null;this._sortState=Object.assign({},this._sortState,{field:a?a.field:"",dir:a?a.dir:"asc",sorts:n});const o=this._clampPerPage(i.perPage,this._getInitialPerPage());if(this._pagination&&this._pagination.setMeta({page:1,perPage:o,totalPages:this._isRemote?this._normalizePositiveInt(this._lastRemoteMeta.pages,1):this._getTotalPages(o)}),this._pageState={page:1,perPage:o},this._isRemote){this._remoteParams=i.filters&&"object"==typeof i.filters?Object.assign({},i.filters):{},this._filters&&"function"==typeof this._filters.setValues&&this._filters.setValues(this._getInitialFilterValues(),{emit:!1});const t=this._getFiltersRequestMetaIfActive();this._loadRemotePage(1,o,null,t)}else this._renderPageRows(1,o);return this._afterColumnReorder(),this._emitAction("viewchange",{mode:"apply",name:e,state:i}),!0}deleteView(t){const e=String(t||"").trim();if(!e)return!1;const i=this._readViewsStorage();return!!Object.prototype.hasOwnProperty.call(i,e)&&(delete i[e],this._writeViewsStorage(i),this._emitAction("viewchange",{mode:"delete",name:e}),!0)}init(){if(this._isInitialized)return;const t=this._element.parentElement,e=this._element.closest(`.${Se}`);if(e&&e.contains(this._element))this._parent=e,this._parent&&(this._parent.classList.add(Se),this._moveTableClassesToWrapper(this._parent));else{const t=document.createElement("div");t.className=Se,this._moveTableClassesToWrapper(t),this._element.parentNode.insertBefore(t,this._element),t.appendChild(this._element),this._parent=t}if(!this._parent)return;this._ensureTableViewport(t),this._bindViewportPan(),this._restorePersistentState(),this._ensureLiveRegion(),this._ensureSummaryNode(),this._ensurePanHintNode(),this._applyFooterVisibility();const i=Boolean(this._params.sortable&&this._params.sortable.enable),s=this._isPaginationEnabled(),r=this._isCloneStickyHeaderEnabled(),n=!r&&this._isStickyHeaderEnabled();this._element.classList.toggle("table-sortable",i),this._element.classList.toggle("table-pagination",s),this._element.classList.toggle("table-sticky-head",n),this._element.classList.toggle("table-sticky-clone",r),this._parent.classList.toggle("table-sortable",i),this._parent.classList.toggle("table-pagination",s),this._parent.classList.toggle("table-sticky-head",n),this._parent.classList.toggle("table-sticky-clone",r),this._applyStickyHeader(n),this._applyCloneStickyHeader(r);const a=this._getRoute();if(this._isRemote=Boolean(a),this._fields=this._getFields(),this._sortState=this._getInitialSortState(),this._remoteParams=this._getInitialRemoteParams(),this._isInitialized=!0,this._isRemote||(this._rows=this._getTableRows(),this._originalRows=this._rows.slice()),this._initSorting(),this._initColumnReorder(),this._initColumnResize(),this._initExpandable(),this._initSearch(),this._initFilters(),this._bindTableStateActions(),this._bindPopState(),this._refreshStickyAndFixedLayout(),s)return this.setPagination(),void this._emitAction("init",{page:this._pageState.page,perPage:this._pageState.perPage});if(this._isRemote){const t=this._getInitialPage(),e=this._getInitialPerPage();this._pageState={page:t,perPage:e};const i=this._getFiltersRequestMetaIfActive();this._loadRemotePage(t,e,null,i)}else this._renderFooterFromCurrentState(),this._refreshExpandable();this._emitAction("init",{page:this._pageState.page,perPage:this._pageState.perPage})}setPagination(){if(this._isRemote)return void this._setRemotePagination();this._rows=this._getTableRows(),this._originalRows.length||(this._originalRows=this._rows.slice());const t=this._getInitialPage(),e=this._getInitialPerPage(),i=this._getTotalPages(e),s=Math.min(t,i);this._pageState={page:s,perPage:e};const r=this._params.pagination.onChange,n=this._params.pagination.onPerPageChange,a=this._getI18nSection("pagination"),o=Object.assign({},this._params.pagination,a,{page:s,perPage:e,maxPerPage:this._getMaxPerPage(),totalPages:i,onChange:t=>{const e=this._getTotalPages(t.perPage),i=Math.min(t.page,e);this._pageState={page:i,perPage:t.perPage},this._storePage(i),this._storePerPage(t.perPage),this._renderPageRows(i,t.perPage),this._pagination.setMeta({page:i,perPage:t.perPage,totalPages:e}),"ellipsis"!==t.source&&this._scrollToPaginationTop(),this._syncUrlState(),"function"==typeof r&&r(Object.assign({},t,{page:i,totalPages:e})),this._emitAction("pagechange",{page:i,perPage:t.perPage,totalPages:e,source:"local"})},onPerPageChange:t=>{"function"==typeof n&&n(t),this._emitAction("perpagechange",Object.assign({},t,{source:"local"}))}}),l=new pe(this._parent,o);l.init(),this._pagination=l,this._renderPageRows(s,e),this._renderFooterFromCurrentState()}_setRemotePagination(){const t=this._getInitialPage(),e=this._getInitialPerPage();this._pageState={page:t,perPage:e};const i=this._params.pagination.onChange,s=this._params.pagination.onPerPageChange,r=this._getI18nSection("pagination"),n=Object.assign({},this._params.pagination,r,{page:t,perPage:e,maxPerPage:this._getMaxPerPage(),totalPages:1,onChange:async t=>{this._pageState={page:t.page,perPage:t.perPage},this._storePage(t.page),this._storePerPage(t.perPage),"ellipsis"!==t.source&&this._scrollToPaginationTop(),await this._loadRemotePage(t.page,t.perPage,i);const e=this._normalizePositiveInt(this._lastRemoteMeta.pages,1);this._emitAction("pagechange",{page:t.page,perPage:t.perPage,totalPages:e,source:"remote"})},onPerPageChange:t=>{"function"==typeof s&&s(t),this._emitAction("perpagechange",Object.assign({},t,{source:"remote"}))}}),a=new pe(this._parent,n);a.init(),this._pagination=a;const o=this._getFiltersRequestMetaIfActive();this._loadRemotePage(t,e,null,o)}_getTableRows(){const t=this._element.tBodies&&this._element.tBodies[0];return t?Array.from(t.rows).filter(t=>"1"!==String(t.getAttribute("data-virtual-spacer")||"")):[]}_getTotalPages(t){return this._rows.length?Math.max(1,Math.ceil(this._rows.length/t)):1}_renderPageRows(t,e){if(!this._rows.length)return;const i=this._isVirtualEnabled(),s=(t-1)*e,r=s+e;this._rows.forEach((t,e)=>{t.hidden=e<s||e>=r}),i?(this._virtualState.lastPage=t,this._virtualState.lastPerPage=e,this._applyVirtualWindow(t,e)):this._teardownVirtualWindow(),this._refreshExpandable(),this._renderFooterFromCurrentState(),this._refreshStickyAndFixedLayout()}_isVirtualEnabled(){const t=this._params.virtual||{},e=this._element.getAttribute("data-virtual-enable");if(!(null!==e?this._isTruthy(e):Boolean(t.enable)))return!1;const i=this._element.getAttribute("data-virtual-threshold"),s=this._normalizePositiveInt(null!==i?i:t.threshold,500);return this._rows.length>=s}_initVirtualization(){this._tableViewport&&!this._virtualState.bound&&(this._tableViewport.addEventListener("scroll",this._boundVirtualScroll,{passive:!0}),this._virtualState.bound=!0)}_teardownVirtualizationBinding(){this._tableViewport&&this._virtualState.bound&&(this._tableViewport.removeEventListener("scroll",this._boundVirtualScroll),this._virtualState.bound=!1)}_handleVirtualScroll(){if(!this._isVirtualEnabled())return;if(this._virtualState.lastPage<=0||this._virtualState.lastPerPage<=0)return;const t=this._tableViewport&&this._tableViewport.scrollTop||0;t===this._virtualState.lastScrollTop&&0===this._virtualState.frame||(this._virtualState.lastScrollTop=t,this._virtualState.frame||("undefined"!=typeof window&&"function"==typeof window.requestAnimationFrame?this._virtualState.frame=window.requestAnimationFrame(()=>{this._virtualState.frame=0,this._applyVirtualWindow(this._virtualState.lastPage,this._virtualState.lastPerPage)}):this._applyVirtualWindow(this._virtualState.lastPage,this._virtualState.lastPerPage)))}_applyVirtualWindow(t,e){if(!this._isVirtualEnabled()||!this._tableViewport)return void this._teardownVirtualWindow();this._initVirtualization();const i=this._getBody();if(!i)return void this._teardownVirtualWindow();const s=this._params.virtual||{},r=this._resolveVirtualRowHeight(t,e,s),n=this._element.getAttribute("data-virtual-overscan"),a=Math.max(0,this._normalizePositiveInt(null!==n?n:s.overscan,8)),o=Math.max(1,Math.ceil((this._tableViewport.clientHeight||0)/r)),l=(t-1)*e,d=Math.min(l+e,this._rows.length),h=Math.floor((this._tableViewport.scrollTop||0)/r),c=Math.max(l,l+h-a),u=Math.min(d,l+h+o+a),_=Math.max(0,(c-l)*r),m=Math.max(0,(d-u)*r);if(this._virtualState.start===c&&this._virtualState.end===u&&this._virtualState.page===t&&this._virtualState.perPage===e)return void this._syncVirtualSpacers(i,c,u,_,m);const p=this._virtualState.page===t&&this._virtualState.perPage===e,g=this._virtualState.start,f=this._virtualState.end,b=p?Math.max(l,Math.min(g,c)):l,v=p?Math.min(d,Math.max(f,u)):d;for(let t=b;t<v;t+=1){const e=this._rows[t];e&&(e.hidden=t<c||t>=u)}this._syncVirtualSpacers(i,c,u,_,m),this._virtualState.start=c,this._virtualState.end=u,this._virtualState.page=t,this._virtualState.perPage=e,this._virtualState.rowHeight=r}_resolveVirtualRowHeight(t,e,i={}){const s=this._element.getAttribute("data-virtual-row-height");if(null!==s&&""!==String(s).trim())return Math.max(24,this._normalizePositiveInt(s,44));const r=this._normalizePositiveInt(i.rowheight,0),n=Math.max(0,(t-1)*e),a=Math.min(n+e,this._rows.length),o=this._measureVirtualRowHeight(n,a);if(o>0)return o;if(r>0)return Math.max(24,r);const l=this._normalizePositiveInt(this._virtualState.rowHeight,44);return Math.max(24,l)}_measureVirtualRowHeight(t,e){const i=[];for(let s=t;s<e;s+=1){const t=this._rows[s];if(!t||t.hidden)continue;const e=t.getBoundingClientRect(),r=Math.round(e&&e.height?e.height:0);if(r>0&&i.push(r),i.length>=6)break}if(!i.length)return 0;const s=i.reduce((t,e)=>t+e,0);return Math.max(24,Math.round(s/i.length))}_syncVirtualSpacers(t,e,i,s,r){const n=this._getRenderedColumnsCount(),a=this._ensureVirtualSpacer("top",n),o=this._ensureVirtualSpacer("bottom",n),l=this._rows[e]||null,d=this._rows[i]||null;this._updateVirtualSpacer(a,s,n),this._updateVirtualSpacer(o,r,n),l?t.insertBefore(a,l):a.parentElement||t.appendChild(a),d?t.insertBefore(o,d):t.appendChild(o)}_ensureVirtualSpacer(t,e){const i=this._virtualSpacers&&this._virtualSpacers[t]?this._virtualSpacers[t]:null;if(i&&i.isConnected)return this._syncVirtualSpacerColumns(i,e),i;const s=document.createElement("tr");s.setAttribute("data-virtual-spacer","1"),s.setAttribute("data-virtual-spacer-position",t),s.setAttribute("data-group-header","1"),s.setAttribute("aria-hidden","true");const r=document.createElement("td");return r.setAttribute("data-virtual-spacer-cell","1"),r.colSpan=Math.max(1,e),s.appendChild(r),this._virtualSpacers[t]=s,s}_syncVirtualSpacerColumns(t,e){t&&t.cells&&t.cells[0]&&(t.cells[0].colSpan=Math.max(1,e))}_updateVirtualSpacer(t,e,i){if(!t||!t.cells||!t.cells[0])return;const s=Math.max(0,Math.round(e));this._syncVirtualSpacerColumns(t,i),t.cells[0].style.height=`${s}px`,t.hidden=s<=0}_teardownVirtualWindow(){this._teardownVirtualizationBinding(),this._virtualState.frame&&"undefined"!=typeof window&&"function"==typeof window.cancelAnimationFrame&&window.cancelAnimationFrame(this._virtualState.frame),this._virtualState.start=0,this._virtualState.end=0,this._virtualState.page=-1,this._virtualState.perPage=-1,this._virtualState.frame=0,this._virtualState.lastScrollTop=-1,Object.keys(this._virtualSpacers||{}).forEach(t=>{const e=this._virtualSpacers[t];e&&e.parentElement&&e.parentElement.removeChild(e)})}_normalizePositiveInt(t,e){const i=Number.parseInt(t,10);return Number.isFinite(i)&&i>0?i:e}_getRoute(){const t=this._params.request||{},e=this._element.getAttribute("data-request-route");return String(t.route||e||"").trim()||this._getFiltersRoute()}_restorePersistentState(){const t=this._readPersistentState("locale");t&&(this._params.locale=String(t).toLowerCase().trim());const e=this._readPersistentState("filtersApplyMode");e&&(this._params.filters&&"object"==typeof this._params.filters||(this._params.filters={}),this._params.filters.apply=this._normalizeFiltersApplyMode(e))}_isPersistenceEnabled(t){const e=this._params.persistence||{},i=this._element.getAttribute("data-persistence-enable");if(!(null!==i?this._isTruthy(i):Boolean(e.enable)))return!1;const s={locale:"data-persistence-locale",filtersApplyMode:"data-persistence-filters-apply-mode"}[t];if(s){const t=this._element.getAttribute(s);if(null!==t)return this._isTruthy(t)}return Boolean(e[t])}_getPersistenceStorageKey(t){const e=this._params.persistence||{};return`${String(e.storageKey||this._element.getAttribute("data-persistence-storage-key")||"").trim()||this._getPerPageStorageKey().replace("perPage","state")}:${t}`}_readPersistentState(t){if(!this._isPersistenceEnabled(t))return"";try{return String(window.localStorage.getItem(this._getPersistenceStorageKey(t))||"")}catch(t){return""}}_writePersistentState(t,e){if(this._isPersistenceEnabled(t))try{window.localStorage.setItem(this._getPersistenceStorageKey(t),String(e??""))}catch(t){}}_isTruthy(t){const e=String(t).toLowerCase().trim();return"false"!==e&&"0"!==e&&""!==e}_getFields(){const t=Array.from(this._element.querySelectorAll("thead th[data-field]")).map(t=>(t.getAttribute("data-field")||"").trim()).filter(Boolean);return t.length?t:["sku","name","category","price","stock","rating"]}_getBody(){if(this._element.tBodies&&this._element.tBodies[0])return this._element.tBodies[0];const t=document.createElement("tbody");return this._element.appendChild(t),t}_getRemoteResponseMode(){const t=this._params.request||{},e=this._element.getAttribute("data-request-responsemode"),i=null!==e?e:t.responsemode,s=String(i||"data").toLowerCase().trim();return"view"===s||"auto"===s?s:"data"}_getRemoteViewParamName(){const t=this._params.request||{},e=this._element.getAttribute("data-request-viewparam"),i=null!==e?e:t.viewparam;return String(i||"").trim()||""}_getRemoteViewParamValue(){const t=this._params.request||{},e=this._element.getAttribute("data-request-viewvalue"),i=null!==e?e:t.viewvalue;return String(i||"").trim()||""}_getRemoteFieldsParamName(){const t=this._params.request||{},e=this._element.getAttribute("data-request-fieldsparam"),i=null!==e?e:t.fieldsparam;return String(i||"").trim()||""}_getRemoteDataRoute(){return this._getFiltersRoute()||this._getRoute()}_getRequestParamMap(){const t=(this._params.request||{}).parammap;if(t&&"object"==typeof t&&!Array.isArray(t))return t;const e=this._element.getAttribute("data-request-parammap")||"";if(!e)return{};try{const t=JSON.parse(e);if(t&&"object"==typeof t&&!Array.isArray(t))return t}catch(t){return{}}return{}}_mapRemoteRequestParams(t={}){const e=this._getRequestParamMap(),i={};return Object.keys(t||{}).forEach(s=>{const r=Object.prototype.hasOwnProperty.call(e,s)?String(e[s]||"").trim():s;i[r||s]=t[s]}),i}_getRequestPath(t){const e=this._params.request||{};if("data"===t){const t=this._element.getAttribute("data-request-datapath"),i=null!==t?t:e.datapath;return String(i||"").trim()}if("meta"===t){const t=this._element.getAttribute("data-request-metapath"),i=null!==t?t:e.metapath;return String(i||"").trim()}if("view"===t){const t=this._element.getAttribute("data-request-viewpath"),i=null!==t?t:e.viewpath;return String(i||"").trim()}return""}_readPath(t,e){if(!t||"object"!=typeof t)return;const i=String(e||"").trim();if(!i)return;const s=i.split(".").map(t=>String(t||"").trim()).filter(Boolean);if(!s.length)return;let r=t;for(let t=0;t<s.length;t+=1){if(!r||"object"!=typeof r||!Object.prototype.hasOwnProperty.call(r,s[t]))return;r=r[s[t]]}return r}_extractRemoteRows(t){const e=this._readPath(t,this._getRequestPath("data"));return Array.isArray(e)?e:Array.isArray(t&&t.data)?t.data:[]}_extractRemoteMeta(t){const e=this._readPath(t,this._getRequestPath("meta"));return e&&"object"==typeof e&&!Array.isArray(e)?e:t&&"object"==typeof t&&t.meta&&"object"==typeof t.meta?t.meta:{}}_extractRemoteViewRowsHtml(t){if(!t||"object"!=typeof t)return"";const e=this._readPath(t,this._getRequestPath("view"));if("string"==typeof e)return e;if("string"==typeof t.view)return t.view;const i=t.view&&"object"==typeof t.view?t.view:null;return i&&"string"==typeof i.tbody?i.tbody:i&&"string"==typeof i.rows?i.rows:"string"==typeof t.tbody?t.tbody:""}_renderRemoteViewIfConfigured(t,e){const i=this._getRemoteResponseMode(),s="string"==typeof t&&""!==t.trim();if(!("view"===i||"auto"===i&&s))return!1;if(!s){if(Array.isArray(e)&&e.length)return!1;const t=this._getTableMessage("stateEmpty","Ничего нет");return this._renderStateRow(t,"empty"),!0}const r=this._getBody();return r.innerHTML=t,this._hasRenderableRowsInBody(r)?(this._setFixedColumnsSuppressed(!1),this._clearStateMode(),!0):(this._renderStateRow(this._getTableMessage("stateEmpty","Ничего нет"),"empty"),!0)}_initSorting(){const t=this._params.sortable||{};if(!t.enable)return;const e=this._getI18nSection("sortable"),i=this._element.getAttribute("data-sort-multi"),s=null===i?Boolean(t.multi):"false"!==String(i).toLowerCase().trim(),r=this._element.getAttribute("data-sort-multi-with-shift"),n=null===r?void 0===t.multiWithShift||Boolean(t.multiWithShift):"false"!==String(r).toLowerCase().trim(),a=this._element.getAttribute("data-sort-hide-unsorted-arrows"),o=null===a?Boolean(t.hideUnsortedArrows):"false"!==String(a).toLowerCase().trim();this._sortable=new ge(this._element,{initialField:this._sortState.field,initialDir:this._sortState.dir,ascLabel:e.ascLabel,descLabel:e.descLabel,multiSort:s,multiSortWithShift:n,hideUnsortedArrows:o,isColumnSortable:(e,i)=>!!this._isHeaderSortableByConfig(e,i,t)&&("function"!=typeof t.isColumnSortable||Boolean(t.isColumnSortable(e))),onChange:t=>this._handleSortChange(t)}),this._sortable.init(),this._sortState.sorts&&this._sortState.sorts.length&&this._sortable.setState({sorts:this._sortState.sorts}),this._refreshStickyAndFixedLayout()}_initColumnReorder(){const t=this._isColumnReorderEnabled();this._columnReorderState.enabled=t,t&&(this._applyStoredColumnOrder(),this._syncColumnReorderHeaders(),this._bindColumnReorder())}_initColumnResize(){const t=this._isColumnResizeEnabled();this._columnResizeState.enabled=t,t&&(this._syncColumnResizeHeaders(),this._bindColumnResize())}_initExpandable(){if(!this._isExpandableEnabled())return this._expandable&&"function"==typeof this._expandable.destroy&&this._expandable.destroy(),void(this._expandable=null);const t=this._getExpandableConfig();this._expandable&&"function"==typeof this._expandable.destroy&&this._expandable.destroy(),this._expandable=new fe(this._element,Object.assign({},t,{onToggle:t=>{this._emitAction("rowtoggle",t),this._emitAction(t.collapsed?"rowcollapse":"rowexpand",t),this._renderFooterFromCurrentState(),this._refreshStickyAndFixedLayout()}})),this._expandable.init()}_refreshExpandable(){this._expandable&&"function"==typeof this._expandable.refresh&&this._expandable.refresh()}_isExpandableEnabled(){const t=this._params.expandable||{},e=this._element.getAttribute("data-expandable-enable");return null!==e?this._isTruthy(e):Boolean(t.enable)}_getExpandableConfig(){const t=this._params.expandable||{},e=this._element.getAttribute("data-expandable-id-attr"),i=this._element.getAttribute("data-expandable-parent-attr"),s=this._element.getAttribute("data-expandable-toggle-selector"),r=this._element.getAttribute("data-expandable-collapsed");return{enable:!0,idAttr:String(null!==e?e:t.idAttr||"data-expand-id").trim()||"data-expand-id",parentAttr:String(null!==i?i:t.parentAttr||"data-expand-parent-id").trim()||"data-expand-parent-id",toggleSelector:String(null!==s?s:t.toggleSelector||"[data-expand-toggle]").trim()||"[data-expand-toggle]",collapsed:null!==r?this._isTruthy(r):Boolean(t.collapsed)}}_isColumnResizeEnabled(){const t=this._params.columnResize||{},e=this._element.getAttribute("data-column-resize-enable");return null!==e?this._isTruthy(e):Boolean(t.enable)}_syncColumnResizeHeaders(){this._getHeaderCells().forEach(t=>{if(!t.querySelector("[data-col-resize-handle]")){const e=document.createElement("span");e.className="vgdt-col-resize-handle",e.setAttribute("data-col-resize-handle","1"),e.setAttribute("role","separator"),e.setAttribute("aria-hidden","true"),t.appendChild(e)}t.setAttribute("data-col-resize","1")})}_bindColumnResize(){if(this._columnResizeState.bound)return;const t=this._columnResizeState;t.onMouseDown=e=>{const i=e.target&&e.target.closest?e.target.closest("[data-col-resize-handle]"):null;if(!i)return;const s=i.closest("th"),r=this._findHeaderIndex(s);r<0||(e.preventDefault(),t.active=!0,t.index=r,t.startX=e.clientX,t.startWidth=Math.max(1,s.getBoundingClientRect().width||s.offsetWidth||1),this._element.classList.add("is-col-resizing"))},t.onMouseMove=e=>{if(!t.active||t.index<0)return;const i=this._params.columnResize||{},s=Math.max(40,this._normalizePositiveInt(i.minwidth,80)),r=Math.max(s,this._normalizePositiveInt(i.maxwidth,600));t.nextWidth=Math.min(r,Math.max(s,Math.round(t.startWidth+(e.clientX-t.startX)))),t.frame||("undefined"!=typeof window&&"function"==typeof window.requestAnimationFrame?t.frame=window.requestAnimationFrame(()=>{t.frame=0,!t.active||t.index<0||this._applyColumnWidth(t.index,t.nextWidth)}):this._applyColumnWidth(t.index,t.nextWidth))},t.onMouseUp=()=>{t.active&&(t.frame&&"undefined"!=typeof window&&"function"==typeof window.cancelAnimationFrame&&(window.cancelAnimationFrame(t.frame),t.frame=0),t.index>=0&&t.nextWidth>0&&this._applyColumnWidth(t.index,t.nextWidth),t.active=!1,t.index=-1,t.nextWidth=0,this._element.classList.remove("is-col-resizing"),this._refreshStickyAndFixedLayout(),this._emitAction("columnresize",{}))},this._element.addEventListener("mousedown",t.onMouseDown),document.addEventListener("mousemove",t.onMouseMove),document.addEventListener("mouseup",t.onMouseUp),t.bound=!0}_applyColumnWidth(t,e){const i=[];this._element.tHead&&i.push(this._element.tHead),this._element.tBodies&&this._element.tBodies.length&&i.push(...Array.from(this._element.tBodies)),this._element.tFoot&&i.push(this._element.tFoot),i.forEach(i=>{Array.from(i.rows||[]).forEach(i=>{const s=i.cells&&i.cells[t]?i.cells[t]:null;s&&(s.style.width=`${e}px`,s.style.minWidth=`${e}px`,s.style.maxWidth=`${e}px`)})})}_isColumnReorderEnabled(){const t=this._params.columnReorder||{},e=this._element.getAttribute("data-column-reorder-enable");if(null!==e){const t=String(e).toLowerCase().trim();return"false"!==t&&"0"!==t}return Boolean(t.enable)}_isColumnReorderPersistEnabled(){const t=this._params.columnReorder||{},e=this._element.getAttribute("data-column-reorder-persist");if(null!==e){const t=String(e).toLowerCase().trim();return"false"!==t&&"0"!==t}return Boolean(t.persist)}_getColumnReorderStorageKey(){const t=this._params.columnReorder||{},e=this._element.getAttribute("data-column-reorder-storage-key")||"";return String(t.storageKey||e).trim()||`${this._getPerPageStorageKey()}:columnOrder`}_bindColumnReorder(){this._columnReorderState.bound||(this._columnReorderState.onDragStart=t=>{const e=t.target&&t.target.closest?t.target.closest('th[data-col-reorder="1"]'):null;if(!e||!this._element.contains(e))return;if(this._isHeaderFixedForColumnReorder(e))return;const i=this._findHeaderIndex(e);if(!(i<0)&&(this._columnReorderState.fromIndex=i,this._columnReorderState.toIndex=i,this._columnReorderState.isDragging=!0,this._element.classList.add("is-col-dragging"),e.setAttribute("data-col-dragging","1"),t.dataTransfer)){t.dataTransfer.effectAllowed="move";try{t.dataTransfer.setData("text/plain",String(i))}catch(t){}}},this._columnReorderState.onDragOver=t=>{if(!this._columnReorderState.isDragging)return;const e=t.target&&t.target.closest?t.target.closest('th[data-col-reorder="1"]'):null;if(!e||!this._element.contains(e))return;if(this._isHeaderFixedForColumnReorder(e))return;t.preventDefault();const i=this._findHeaderIndex(e);i<0||(this._columnReorderState.toIndex=i,this._syncColumnDragOverMarker(i))},this._columnReorderState.onDrop=t=>{if(!this._columnReorderState.isDragging)return;t.preventDefault();const e=t.target&&t.target.closest?t.target.closest('th[data-col-reorder="1"]'):null;if(!e||!this._element.contains(e))return;if(this._isHeaderFixedForColumnReorder(e))return void this._resetColumnDragMarkers();const i=this._findHeaderIndex(e);if(i<0)return;const s=this._columnReorderState.fromIndex;this._resetColumnDragMarkers(),this._finalizeColumnReorder(s,i)},this._columnReorderState.onDragEnd=()=>{this._resetColumnDragMarkers()},this._element.addEventListener("dragstart",this._columnReorderState.onDragStart),this._element.addEventListener("dragover",this._columnReorderState.onDragOver),this._element.addEventListener("drop",this._columnReorderState.onDrop),this._element.addEventListener("dragend",this._columnReorderState.onDragEnd),this._columnReorderState.bound=!0)}_syncColumnReorderHeaders(){this._columnReorderState.enabled&&this._getHeaderCells().forEach(t=>{t.setAttribute("data-col-reorder","1");const e=this._isHeaderFixedForColumnReorder(t)?"false":"true";t.setAttribute("draggable",e)})}_syncColumnDragOverMarker(t){this._getHeaderCells().forEach((e,i)=>{i===t?e.setAttribute("data-col-drag-over","1"):e.removeAttribute("data-col-drag-over")}),(this._cloneStickyState&&this._cloneStickyState.head?Array.from(this._cloneStickyState.head.querySelectorAll("th")):[]).forEach((e,i)=>{i===t?e.setAttribute("data-col-drag-over","1"):e.removeAttribute("data-col-drag-over")})}_resetColumnDragMarkers(){this._getHeaderCells().forEach(t=>{t.removeAttribute("data-col-drag-over"),t.removeAttribute("data-col-dragging")}),(this._cloneStickyState&&this._cloneStickyState.head?Array.from(this._cloneStickyState.head.querySelectorAll("th")):[]).forEach(t=>{t.removeAttribute("data-col-drag-over"),t.removeAttribute("data-col-dragging")}),this._columnReorderState.fromIndex=-1,this._columnReorderState.toIndex=-1,this._columnReorderState.isDragging=!1,this._element.classList.remove("is-col-dragging")}_finalizeColumnReorder(t,e){!Number.isInteger(t)||!Number.isInteger(e)||t<0||e<0||t===e||(this._moveColumn(t,e),this._normalizeFixedColumnsOrder(),this._afterColumnReorder())}_moveColumn(t,e){const i=[];this._element.tHead&&i.push(this._element.tHead),this._element.tBodies&&this._element.tBodies.length&&i.push(...Array.from(this._element.tBodies)),this._element.tFoot&&i.push(this._element.tFoot),i.forEach(i=>{Array.from(i.rows||[]).forEach(i=>{const s=Array.from(i.cells||[]);if(t<0||t>=s.length||e<0||e>=s.length)return;const r=s[t],n=t<e?s[e].nextSibling:s[e];i.insertBefore(r,n||null)})})}_afterColumnReorder(){this._fields=this._getFields();const t=this._getNormalizedSorts(this._sortState.sorts||[]),e=t[0]||null;this._sortState={field:e?e.field:"",dir:e?e.dir:this._normalizeSortDir(this._sortState.dir),columnIndex:e?e.columnIndex:-1,sorts:t},this._sortable&&"function"==typeof this._sortable.refresh&&this._sortable.refresh({sorts:t}),this._syncColumnReorderHeaders(),this._refreshStickyAndFixedLayout(),this._syncUrlState(),this._storeColumnOrder();const i=this._getCurrentColumnOrder();this._emitAction("columnreorder",{order:i})}_getCurrentColumnOrder(){return this._getHeaderCells().map(t=>String(t.getAttribute("data-field")||"").trim()).filter(Boolean)}_storeColumnOrder(){if(!this._isColumnReorderPersistEnabled())return;const t=this._getCurrentColumnOrder();if(t.length)try{window.localStorage.setItem(this._getColumnReorderStorageKey(),t.join(","))}catch(t){}}_readStoredColumnOrder(){if(!this._isColumnReorderPersistEnabled())return[];try{const t=String(window.localStorage.getItem(this._getColumnReorderStorageKey())||"").trim();return t?t.split(",").map(t=>t.trim()).filter(Boolean):[]}catch(t){return[]}}_applyStoredColumnOrder(){const t=this._readStoredColumnOrder();if(!t.length)return;let e=!1;t.forEach((t,i)=>{const s=this._findHeaderIndexByField(t);s<0||s===i||(this._moveColumn(s,i),e=!0)}),this._normalizeFixedColumnsOrder()&&(e=!0),e&&this._afterColumnReorder()}_isHeaderFixedForColumnReorder(t){if(!t)return!1;const e=String(t.getAttribute("data-fixed-side")||"").toLowerCase().trim();if("left"===e||"right"===e)return!0;const i=String(t.getAttribute("data-fixed")||"").toLowerCase().trim(),s=String(t.getAttribute("data-fixed-column")||"").toLowerCase().trim();if("left"===i||"right"===i||"left"===s||"right"===s)return!0;const r=this._findHeaderIndex(t);if(r<0)return!1;const n=this._getFixedColumnsByHeaders(this._getHeaderCells(),{parseTableAttr:!0,fallbackByPosition:!0});return n.left.includes(r)||n.right.includes(r)}_normalizeFixedColumnsOrder(){const t=this._getHeaderCells();if(!t.length)return!1;const e=this._getFixedColumnsByHeaders(t,{parseTableAttr:!0,fallbackByPosition:!0});if(!e.left.length&&!e.right.length)return!1;const i=e.left.map(e=>t[e]).filter(Boolean),s=e.right.map(e=>t[e]).filter(Boolean);let r=!1,n=0;i.forEach(t=>{const e=this._findHeaderIndex(t);e>=0&&e!==n&&(this._moveColumn(e,n),r=!0),n+=1});let a=this._getHeaderCells().length-1;for(let t=s.length-1;t>=0;t-=1){const e=s[t],i=this._findHeaderIndex(e);i>=0&&i!==a&&(this._moveColumn(i,a),r=!0),a-=1}return r}_initSearch(){if(!this._isRemote)return;const t=this._params.search||{};if(!this._isSearchEnabled())return;const e=this._getSearchInputSelector();if(!e)return;const i=this._element.getAttribute("data-search-param")||"",s=String(t.param||i||"q").trim()||"q";if(Object.prototype.hasOwnProperty.call(this._remoteParams,s)){const t=this._getSearchInputNode(e);t&&t.value!==this._remoteParams[s]&&(t.value=this._remoteParams[s])}this._search&&"function"==typeof this._search.destroy&&this._search.destroy(),this._search=new be({enabled:!0,debounceMs:t.debounce,inputSelector:e,param:s,onSearch:({value:t,param:e})=>{const i={};i[e]=t;const s=this._getCurrentFiltersEventState(),r=this._isFiltersEmitFullContextEnabled(),n=this._isSearchedValue(t);this._emitAction("search",{param:e,value:t}),this._isRemote&&r||this._emitAction("filterschange",{filters:Object.assign({},s.filters||{}),params:Object.assign({},s.params||{}),fields:Array.isArray(s.fields)?s.fields.slice():[],meta:Object.assign({},s.meta||{}),phase:"change",isFiltered:this._isFilteredState(s)||n,isSearched:n}),this.updateRemoteParams(i,{replace:!1,resetPage:!0,reload:!0,trigger:r?"filterschange":"",filtersState:r?s:null})}}),this._search.init()}_getSearchInputSelector(){const t=this._params.search||{},e=this._element.getAttribute("data-search-input")||"";return String(t.input||e).trim()}_getSearchInputNode(t=""){const e=String(t||this._getSearchInputSelector()||"").trim();return e?((this._searchInputCacheSelector!==e||!this._searchInputCacheNode||!this._searchInputCacheNode.isConnected)&&(this._searchInputCacheSelector=e,this._searchInputCacheNode=document.querySelector(e)),this._searchInputCacheNode):(this._searchInputCacheSelector="",this._searchInputCacheNode=null,null)}_initFilters(){const t=this._params.filters||{};if(!this._isFiltersEnabled())return;const e=t.form&&1===t.form.nodeType?t.form:null,i=this._element.getAttribute("data-filters-form")||"",s=e?"":"string"==typeof t.form?String(t.form).trim():String(i).trim();if(!e&&!s)return;const r=this._element.getAttribute("data-filters-apply")||"",n=this._normalizeFiltersApplyMode(t.apply||r||"auto");this._writePersistentState("filtersApplyMode",n);const a=this._getInitialFilterValues(),o=t.button&&"object"==typeof t.button?t.button:{};this._filters&&"function"==typeof this._filters.destroy&&this._filters.destroy(),this._filters=new ve({enabled:!0,formSelector:s,formNode:e,debounceMs:t.debounce,applyMode:n,button:{apply:String(o.apply||this._element.getAttribute("data-filters-button-apply")||"[data-filter-apply]").trim(),reset:String(o.reset||this._element.getAttribute("data-filters-button-reset")||"[data-filter-reset]").trim()},fieldAttr:t.fieldAttr,partAttr:t.partAttr,typeAttr:t.typeAttr,valueAttr:t.valueAttr,operatorAttr:t.operatorAttr,defaultOperator:t.defaultOperator,skipEmpty:t.skipEmpty,trimValues:t.trimValues,initialValues:a,onReset:()=>{const t=this._getSearchInputSelector();if(!t)return;const e=this._getSearchInputNode(t);e&&(e.value="");const i=this._getSearchParamName();i&&delete this._remoteParams[i]},onChange:t=>{const e=this._normalizeFiltersEventState(t);this._activeFilters=Object.assign({},e.filters||{}),this._isRemote&&this._isFiltersEmitFullContextEnabled()||this._emitAction("filterschange",{filters:Object.assign({},e.filters||{}),params:Object.assign({},e.params||{}),fields:Array.isArray(e.fields)?e.fields.slice():[],meta:Object.assign({},e.meta||{}),phase:"change",isFiltered:this._isFilteredState(e)||this._isSearchActiveFromParams(this._remoteParams||{}),isSearched:this._isSearchActiveFromParams(this._remoteParams||{})}),this._handleFiltersStateChange(e)}}),this._filters.init()}_handleFiltersStateChange(t){const e=t&&t.params&&"object"==typeof t.params?t.params:{},i=this._buildFilterRemoteParamsPatch(e),s=this._params.filters||{},r=void 0===s.resetPageOnChange||Boolean(s.resetPageOnChange);if(this._isRemote){const e=this._isFiltersEmitFullContextEnabled();return void this.updateRemoteParams(i,{replace:!1,resetPage:r,reload:!0,trigger:e?"filterschange":"",filtersState:e?this._normalizeFiltersEventState(t):null})}if(this._remoteParams=Object.assign({},i),this._applyLocalFilters(),this._isPaginationEnabled()&&this._pagination){const t=this._pageState.perPage||this._normalizePositiveInt(this._params.pagination.perPage,10),e=r?1:this._pageState.page,i=this._getTotalPages(t),s=Math.max(1,Math.min(e,i));this._pageState={page:s,perPage:t},this._pagination.setMeta({page:s,perPage:t,totalPages:i}),this._renderPageRows(s,t)}else{const t=this._pageState.page||1,e=this._pageState.perPage||this._normalizePositiveInt(this._params.pagination.perPage,10);this._renderPageRows(t,e)}this._refreshStickyAndFixedLayout(),this._syncUrlState()}_buildFilterRemoteParamsPatch(t={}){const e=t&&"object"==typeof t?t:{},i={};return this._getFilterFieldKeys().forEach(t=>{const s=String(t||"").trim();if(!s)return;Object.prototype.hasOwnProperty.call(e,s)?i[s]=e[s]:i[s]="";const r=`${s}_op`;Object.prototype.hasOwnProperty.call(e,r)?i[r]=e[r]:i[r]=""}),Object.keys(e).forEach(t=>{Object.prototype.hasOwnProperty.call(i,t)||(i[t]=e[t])}),i}_normalizeFiltersEventState(t){const e=t&&"object"==typeof t?t:{},i=e.filters&&"object"==typeof e.filters?Object.assign({},e.filters):{},s=e.params&&"object"==typeof e.params?Object.assign({},e.params):{},r=Array.isArray(e.fields)?e.fields.slice().map(t=>String(t||"").trim()).filter(Boolean):Object.keys(i),n=Object.keys(s).map(t=>String(t||"").trim()).filter(t=>""!==t&&!/_op$/i.test(t)).filter(t=>this._isNonEmptyFilterParamValue(s[t])).map(t=>t.replace(/_value$/i,"")),a=Array.from(new Set(r.concat(n))),o=e.meta&&"object"==typeof e.meta?Object.assign({},e.meta):{};return Object.prototype.hasOwnProperty.call(o,"count")||(o.count=a.length),{filters:i,params:s,fields:a,meta:o}}_isFiltersEmitFullContextEnabled(){const t=this._params.filters||{},e=this._element.getAttribute("data-filters-emit-full-context");return null!==e?this._isTruthy(e):void 0===t.emitFullContext||null===t.emitFullContext||Boolean(t.emitFullContext)}_isFilteredState(t){const e=this._normalizeFiltersEventState(t);return e.fields.length>0||Object.keys(e.params||{}).some(t=>{const i=String(t||"").trim();return!(!i||/_op$/i.test(i))&&this._isNonEmptyFilterParamValue(e.params[i])})}_getCurrentFiltersEventState(){let t=null;if(this._filters&&"function"==typeof this._filters.getState&&(t=this._normalizeFiltersEventState(this._filters.getState()),this._activeFilters=Object.assign({},t.filters||{})),!t){const e=this._extractFilterParamsFromRemoteParams(this._remoteParams||{});t=this._normalizeFiltersEventState({filters:Object.assign({},this._activeFilters||{}),params:e})}return t}_extractFilterParamsFromRemoteParams(t={}){const e=t&&"object"==typeof t?t:{},i={},s=new Set;return this._getFilterFieldKeys().forEach(t=>s.add(t)),Object.keys(this._activeFilters||{}).forEach(t=>s.add(String(t||"").trim())),s.forEach(t=>{const s=String(t||"").trim();if(!s)return;Object.prototype.hasOwnProperty.call(e,s)&&(i[s]=e[s]);const r=`${s}_op`;Object.prototype.hasOwnProperty.call(e,r)&&(i[r]=e[r])}),i}_getFiltersRequestMetaIfActive(){const t=this._getCurrentFiltersEventState();return this._isFilteredState(t)?{trigger:"filterschange",filtersState:t}:null}_isNonEmptyFilterParamValue(t){return Array.isArray(t)?t.some(t=>""!==String(t||"").trim()):null!=t&&""!==String(t).trim()}_isSearchedValue(t){return this._isNonEmptyFilterParamValue(t)}_isSearchActiveFromParams(t={}){if(!this._isSearchEnabled())return!1;const e=t&&"object"==typeof t?t:{},i=this._getSearchParamName();return!(!i||!Object.prototype.hasOwnProperty.call(e,i))&&this._isSearchedValue(e[i])}_isSearchEnabled(){const t=this._params.search||{};if(void 0!==t.enable&&null!==t.enable){const e=String(t.enable).toLowerCase().trim();return"true"===e||"1"===e||"false"!==e&&"0"!==e&&Boolean(t.enable)}const e=this._element.getAttribute("data-search-enable");if(null!==e){const t=String(e).toLowerCase().trim();return"false"!==t&&"0"!==t}return!1}_isFiltersEnabled(){const t=this._params.filters||{};if(void 0!==t.enable&&null!==t.enable){const e=String(t.enable).toLowerCase().trim();return"true"===e||"1"===e||"false"!==e&&"0"!==e&&Boolean(t.enable)}const e=this._element.getAttribute("data-filters-enable");if(null!==e){const t=String(e).toLowerCase().trim();return"false"!==t&&"0"!==t}return!1}_normalizeFiltersApplyMode(t){return"manual"===String(t||"auto").toLowerCase().trim()?"manual":"auto"}_handleSortChange(t){const e=this._getNormalizedSorts(Array.isArray(t.sorts)?t.sorts:[]),i=e[0]||null;if(this._sortState={field:i?i.field:t.field||"",dir:i?i.dir:this._normalizeSortDir(t.dir),columnIndex:i&&Number.isInteger(i.columnIndex)?i.columnIndex:Number.isInteger(t.columnIndex)?t.columnIndex:-1,sorts:e},this._emitAction("sortchange",{sort:this._sortState.field,dir:this._sortState.dir,sorts:this._sortState.sorts.slice(),isRemote:this._isRemote}),this._isRemote){const t=this._pageState.perPage||this._normalizePositiveInt(this._params.pagination.perPage,10);return this._pageState={page:1,perPage:t},void this._loadRemotePage(1,t)}if(!this._sortState.sorts.length&&this._sortState.columnIndex<0?this._resetLocalRowsOrder():this._sortLocalRows(this._sortState.sorts.length?this._sortState.sorts:[{field:this._sortState.field,dir:this._sortState.dir,columnIndex:this._sortState.columnIndex}]),this._isPaginationEnabled()&&this._pagination){const t=this._pageState.perPage||this._normalizePositiveInt(this._params.pagination.perPage,10),e=this._getTotalPages(t);this._pageState={page:1,perPage:t},this._storePage(1),this._pagination.setMeta({page:1,perPage:t,totalPages:e}),this._renderPageRows(1,t)}this._refreshExpandable(),this._renderFooterFromCurrentState(),this._refreshStickyAndFixedLayout(),this._syncUrlState()}_sortLocalRows(t){this._rows.length||(this._rows=this._getTableRows());const e=this._getNormalizedSorts(t);if(!e.length||!this._rows.length)return;this._rows.sort((t,i)=>{for(let s=0;s<e.length;s+=1){const r=e[s],n="desc"===r.dir?-1:1,a=r.columnIndex;if(!Number.isInteger(a)||a<0)continue;const o=t.cells[a]?t.cells[a].textContent:"",l=i.cells[a]?i.cells[a].textContent:"",d=this._compareSortableValues(o,l)*n;if(0!==d)return d}return 0});const i=this._getBody();this._rows.forEach(t=>{i.appendChild(t)})}_resetLocalRowsOrder(){this._originalRows.length||(this._originalRows=this._getTableRows()),this._rows=this._originalRows.slice();const t=this._getBody();this._rows.forEach(e=>{t.appendChild(e)})}_applyLocalFilters(){this._originalRows.length||(this._originalRows=this._getTableRows());const t=this._activeFilters&&"object"==typeof this._activeFilters?this._activeFilters:{};if(!Object.keys(t).length)return this._rows=this._originalRows.slice(),void this._rows.forEach(t=>{t.hidden=!1});const e=this._getFieldIndexMap(),i=[];this._originalRows.forEach(s=>{const r=this._rowMatchesFilters(s,t,e);s.hidden=!r,r&&i.push(s)}),this._rows=i}_getFieldIndexMap(){const t={};return this._getHeaderCells().forEach((e,i)=>{const s=String(e.getAttribute("data-field")||"").trim();s&&(t[s]=i)}),t}_rowMatchesFilters(t,e,i){const s=Object.keys(e||{});for(let r=0;r<s.length;r+=1){const n=s[r],a=e[n];if(!a||"object"!=typeof a)continue;const o=String(a.field||n||"").trim(),l=Object.prototype.hasOwnProperty.call(i,o)?i[o]:-1;if(l<0)continue;const d=t.cells&&t.cells[l]?t.cells[l]:null,h=d?String(d.textContent||"").trim():"";if(!this._matchesFilterValue(h,a))return!1}return!0}_matchesFilterValue(t,e){const i=e.values&&e.values.length?e.values:e.value,s=String(e.operator||e.type||"eq").toLowerCase().trim(),r=String(t||"");if(Array.isArray(i)){const t=i.map(t=>String(t||"").toLowerCase().trim()).filter(Boolean);return!t.length||t.includes(r.toLowerCase().trim())}const n=String(i||"");if(""===n)return!0;const a=r.toLowerCase(),o=n.toLowerCase(),l=Number.parseFloat(r.replace(",",".")),d=Number.parseFloat(n.replace(",",".")),h=Number.isFinite(l)&&Number.isFinite(d);return"contains"===s?a.includes(o):"starts"===s?a.startsWith(o):"ends"===s?a.endsWith(o):"neq"===s?h?l!==d:a!==o:"gt"===s&&h?l>d:"gte"===s&&h?l>=d:"lt"===s&&h?l<d:"lte"===s&&h?l<=d:h?l===d:a===o}_compareSortableValues(t,e){const i=this._extractNumber(t),s=this._extractNumber(e),r=Number.isFinite(i),n=Number.isFinite(s);if(r&&n)return i-s;const a=String(t||"").trim(),o=String(e||"").trim();return a.localeCompare(o,"ru",{numeric:!0,sensitivity:"base"})}_extractNumber(t){const e=String(t||"").replace(/\u00A0/g,"").replace(/\s+/g,"").replace(",",".").replace(/[^\d.-]/g,"");return""===e||"-"===e||"."===e?NaN:Number.parseFloat(e)}_getInitialSortState(){const t=this._params.sortable||{},e=(this._params.request||{}).params||{},i=this._getUrlParams(),s="sort",r=String(t.initialField||i.get(s)||e[s]||this._element.getAttribute("data-sort")||"").trim(),n=t.initialDir||i.get("dir")||e.dir||this._element.getAttribute("data-dir")||"asc",a=this._normalizeSortDir(n),o=this._parseSortsFromStrings(r,n);return{field:r,dir:a,columnIndex:o[0]&&Number.isInteger(o[0].columnIndex)?o[0].columnIndex:-1,sorts:o}}_parseSortsFromStrings(t,e){const i=String(t||"").split(",").map(t=>t.trim()).filter(Boolean),s=String(e||"").split(",").map(t=>this._normalizeSortDir(t)),r=[];return i.forEach((t,e)=>{const i=this._findHeaderIndexByField(t);r.push({field:t,dir:s[e]||s[0]||"asc",columnIndex:i})}),this._getNormalizedSorts(r)}_getNormalizedSorts(t){const e=[];return(Array.isArray(t)?t:[]).forEach(t=>{const i=String(t&&t.field?t.field:"").trim(),s=Number.isInteger(t&&t.columnIndex)?t.columnIndex:Number.parseInt(t&&t.columnIndex,10),r=this._normalizeSortDir(t&&t.dir?t.dir:"asc");if(!i&&!Number.isInteger(s))return;const n=this._resolveHeaderForSort(i,s);if(!n)return;const a=this._findHeaderIndex(n);if(a<0)return;if(!this._isHeaderSortableByConfig(n,a,this._params.sortable||{}))return;const o=String(i||n.getAttribute("data-field")||"").trim();this._isRemote&&!o||e.some(t=>o&&t.field?t.field===o:t.columnIndex===a)||e.push({field:o,dir:r,columnIndex:a})}),e}_isHeaderSortableByConfig(t,e,i={}){if(!t)return!1;const s=t.getAttribute("data-sortable");if(null!==s){const t=String(s).toLowerCase().trim();if("false"===t||"0"===t)return!1}const r=this._getSortableFieldsWhitelist(i);if(r&&r.size>0){const e=String(t.getAttribute("data-field")||"").trim();if(!e||!r.has(e))return!1}return!this._isRemote||Boolean(String(t.getAttribute("data-field")||"").trim())}_getSortableFieldsWhitelist(t={}){const e=this._element.getAttribute("data-sort-fields"),i=null!==e?e:t.fields,s=this._normalizeSortableFields(i);return s.length?new Set(s):null}_normalizeSortableFields(t){return Array.isArray(t)?t.map(t=>String(t||"").trim()).filter(Boolean):String(t||"").split(",").map(t=>t.trim()).filter(Boolean)}_getHeaderCells(){const t=this._element.tHead||this._element.querySelector("thead");return t&&t.rows&&t.rows.length?Array.from(t.rows[0].cells||[]):[]}_findHeaderIndex(t){return t?this._getHeaderCells().indexOf(t):-1}_findHeaderIndexByField(t){const e=String(t||"").trim();return e?this._getHeaderCells().findIndex(t=>String(t.getAttribute("data-field")||"").trim()===e):-1}_resolveHeaderForSort(t,e){const i=this._getHeaderCells(),s=String(t||"").trim();if(s){const t=i.find(t=>String(t.getAttribute("data-field")||"").trim()===s);if(t)return t}return Number.isInteger(e)&&e>=0&&e<i.length?i[e]:null}_getInitialPage(){const t=this._normalizePositiveInt(this._getUrlParams().get("page"),0);if(t>0)return t;const e=(this._params.request||{}).params||{},i=this._normalizePositiveInt(e.page,0);if(i>0)return i;const s=this._readStoredPage();return s>0?s:this._normalizePositiveInt(this._params.pagination.page,1)}_getInitialPerPage(){const t=this._normalizePositiveInt(this._getUrlParams().get("per_page"),0);if(t>0)return this._clampPerPage(t,10);const e=(this._params.request||{}).params||{},i=this._normalizePositiveInt(e.per_page,0);if(i>0)return this._clampPerPage(i,10);const s=this._readStoredPerPage();if(s>0)return this._clampPerPage(s,10);const r=this._getConfiguredPerPage();return r>0?this._clampPerPage(r,10):this._clampPerPage(this._params.pagination.perPage,10)}_getConfiguredPerPage(){const t=this._element.getAttribute("data-pagination-per-page"),e=this._normalizePositiveInt(t,0);return e>0?e:this._normalizePositiveInt(this._params.pagination.perPage,0)}_getMaxPerPage(){const t=this._params.pagination||{},e=this._element.getAttribute("data-pagination-max-per-page"),i=this._normalizePositiveInt(e,0);if(i>0)return i;const s=this._normalizePositiveInt(t.maxPerPage,0);return s>0?s:100}_clampPerPage(t,e=10){const i=this._normalizePositiveInt(t,e),s=this._getMaxPerPage();return Math.max(1,Math.min(i,s))}_getFiltersRoute(){const t=this._params.filters||{},e=this._element.getAttribute("data-filters-route");return String(t.route||e||"").trim()}_isPerPagePersistenceEnabled(){const t=this._params.pagination||{},e=this._element.getAttribute("data-pagination-persist-per-page");if(null!==e){const t=String(e).toLowerCase().trim();return"false"!==t&&"0"!==t}return void 0===(t.persist||{}).perPage||null===(t.persist||{}).perPage||Boolean((t.persist||{}).perPage)}_isPagePersistenceEnabled(){const t=this._params.pagination||{},e=this._element.getAttribute("data-pagination-persist-page");if(null!==e){const t=String(e).toLowerCase().trim();return"false"!==t&&"0"!==t}return void 0===(t.persist||{}).page||null===(t.persist||{}).page||Boolean((t.persist||{}).page)}_getPerPageStorageKey(){const t=this._params.pagination||{},e=String((t.storage||{}).key||this._element.getAttribute("data-pagination-storage-key")||"").trim();if(e)return e;const i=String(this._element.id||"").trim();if(i)return`vgdt:perPage:${i}`;const s=String(this._getRoute()||"").trim();if(s)return`vgdt:perPage:${s}`;const r=String(this._element.getAttribute("data-vg-table")||"").trim();if(r)return`vgdt:perPage:${window.location.pathname}:${r}`;const n=Array.from(document.querySelectorAll("[data-vg-table]")).indexOf(this._element);return`vgdt:perPage:${window.location.pathname}:${n>=0?n:0}`}_getPageStorageKey(){const t=this._params.pagination||{};return String(((t.pageStorage||{}).storage||{}).key||this._element.getAttribute("data-pagination-page-storage-key")||"").trim()||`${this._getPerPageStorageKey()}:page`}_readStoredPage(){if(!this._isPagePersistenceEnabled())return 0;try{const t=window.localStorage.getItem(this._getPageStorageKey());return this._normalizePositiveInt(t,0)}catch(t){return 0}}_storePage(t){if(!this._isPagePersistenceEnabled())return;const e=this._normalizePositiveInt(t,0);if(!(e<=0))try{window.localStorage.setItem(this._getPageStorageKey(),String(e))}catch(t){}}_readStoredPerPage(){if(!this._isPerPagePersistenceEnabled())return 0;try{const t=window.localStorage.getItem(this._getPerPageStorageKey());return this._normalizePositiveInt(t,0)}catch(t){return 0}}_storePerPage(t){if(!this._isPerPagePersistenceEnabled())return;const e=this._normalizePositiveInt(t,0);if(!(e<=0))try{window.localStorage.setItem(this._getPerPageStorageKey(),String(e))}catch(t){}}_normalizeSortDir(t){return"desc"===String(t).split(",")[0].toLowerCase().trim()?"desc":"asc"}_isPaginationEnabled(){const t=this._params.pagination||{};if(void 0!==t.enable&&null!==t.enable){const e=String(t.enable).toLowerCase().trim();return"true"===e||"1"===e||"false"!==e&&"0"!==e&&Boolean(t.enable)}const e=this._element.getAttribute("data-pagination-enable");if(null!==e){const t=String(e).toLowerCase().trim();return"false"!==t&&"0"!==t}return!1}_isStickyHeaderEnabled(){const t=this._params.stickyHeader||{},e=this._element.getAttribute("data-sticky-header-enable");if(null!==e){const t=String(e).toLowerCase().trim();return"false"!==t&&"0"!==t}if(void 0!==t.enable&&null!==t.enable){const e=String(t.enable).toLowerCase().trim();return"true"===e||"1"===e||"false"!==e&&"0"!==e&&Boolean(t.enable)}return!1}_isCloneStickyHeaderEnabled(){return!(!this._parent||!this._parent.classList.contains("table-sticky"))||Boolean(this._element&&this._element.classList.contains("table-sticky"))}_refreshStickyAndFixedLayout(t={}){const e=Boolean(t&&t.immediate),i=String(t&&t.reason||"").trim();if(i&&(this._layoutRefreshReasons.push(i),this._layoutRefreshReasons.length>25&&this._layoutRefreshReasons.shift()),e||"undefined"==typeof window||"function"!=typeof window.requestAnimationFrame)return this._layoutRefreshFrame&&"undefined"!=typeof window&&"function"==typeof window.cancelAnimationFrame&&window.cancelAnimationFrame(this._layoutRefreshFrame),this._layoutRefreshFrame=0,this._layoutRefreshScheduled=!1,void this._refreshStickyAndFixedLayoutNow();this._layoutRefreshScheduled||(this._layoutRefreshScheduled=!0,this._layoutRefreshFrame=window.requestAnimationFrame(()=>{this._layoutRefreshFrame=0,this._layoutRefreshScheduled=!1,this._refreshStickyAndFixedLayoutNow()}))}_refreshStickyAndFixedLayoutNow(){this._layoutRefreshReasons=[],this._element&&this._element.isConnected&&(this._applyFixedColumnsLayout(),this._syncCloneStickyHeader(),this._updatePanHintVisibility())}_updateLayoutResizeBinding(){if("undefined"==typeof window)return;const t=this._isCloneStickyHeaderEnabled()||this._hasFixedColumnsConfig();window.removeEventListener("resize",this._boundCloneStickyResize),this._teardownLayoutResizeObserver(),t&&(window.addEventListener("resize",this._boundCloneStickyResize),this._setupLayoutResizeObserver())}_setupLayoutResizeObserver(){"undefined"!=typeof ResizeObserver&&(this._layoutResizeObserver||(this._layoutResizeObserver=new ResizeObserver(()=>{this._boundCloneStickyResize()})),this._getLayoutResizeTargets().forEach(t=>{this._layoutResizeObserver.observe(t)}))}_teardownLayoutResizeObserver(){this._layoutResizeObserver&&this._layoutResizeObserver.disconnect()}_getLayoutResizeTargets(){const t=new Set,e=e=>{e&&!t.has(e)&&t.add(e)};return e(this._parent),e(this._tableViewport),Array.from(t)}_getStickyHeaderOffsets(){const t=this._params.stickyHeader||{},e=this._element.getAttribute("data-sticky-header-top"),i=null!==e&&""!==String(e).trim()?e:t.top,s=Number.isFinite(Number.parseInt(i,10))?Number.parseInt(i,10):0,r=this._element.getAttribute("data-sticky-header-max"),n=null!==r&&""!==String(r).trim()?r:t.max,a=Number.isFinite(Number.parseInt(n,10))?Number.parseInt(n,10):0;return{top:Math.max(0,s),maxHeight:Math.max(0,a)}}_getCloneStickyHeaderOffsets(){return{top:this._readCssSizeVar("--vgdt-sticky-top",0),maxHeight:this._readCssSizeVar("--vgdt-sticky-max-height",0)}}_readCssSizeVar(t,e=0){const i=[this._parent,this._element,this._tableViewport].filter(Boolean);for(let e=0;e<i.length;e+=1){const s=i[e],r=window.getComputedStyle(s).getPropertyValue(t),n=this._resolveCssLengthToPx(r,s);if(Number.isFinite(n))return Math.max(0,n)}return Math.max(0,e)}_resolveCssLengthToPx(t,e=null){const i=String(t||"").trim();if(!i)return NaN;const s=Number.parseFloat(i);if(Number.isFinite(s))return s;if("undefined"==typeof document)return NaN;const r=e instanceof Element?e:document.body||document.documentElement;if(!r)return NaN;const n=document.createElement("div");n.style.position="absolute",n.style.visibility="hidden",n.style.pointerEvents="none",n.style.left="-99999px",n.style.top="0",n.style.height=i,r.appendChild(n);const a=window.getComputedStyle(n).height;r.removeChild(n);const o=Number.parseFloat(String(a||"").trim());return Number.isFinite(o)?o:NaN}_applyStickyHeader(t){if(!this._element)return;const e=this._getStickyHeaderOffsets();if(t){this._element.style.setProperty("--vgdt-sticky-top",`${e.top}px`);const t=this._tableViewport||this._parent;return void(t&&(e.maxHeight>0?(t.classList.add("table-sticky-scroll"),t.style.setProperty("--vgdt-sticky-max-height",`${e.maxHeight}px`)):(t.classList.remove("table-sticky-scroll"),t.style.removeProperty("--vgdt-sticky-max-height"))))}this._element.style.removeProperty("--vgdt-sticky-top");const i=this._tableViewport||this._parent;i&&(i.classList.remove("table-sticky-scroll"),i.style.removeProperty("--vgdt-sticky-max-height"))}_applyCloneStickyHeader(t){const e=this._tableViewport||this._parent,i=this._cloneStickyState;if(!t)return i&&i.viewport&&i.onScroll&&i.viewport.removeEventListener("scroll",i.onScroll),i&&i.headerWrap&&i.headerWrap.parentElement&&i.headerWrap.parentElement.removeChild(i.headerWrap),this._cloneStickyState=null,this._parent.style.removeProperty("--vgdt-sticky-clone-height"),e&&!this._isStickyHeaderEnabled()&&(e.classList.remove("table-sticky-scroll"),e.style.removeProperty("--vgdt-sticky-max-height")),void this._updateLayoutResizeBinding();if(!this._parent||!this._tableViewport||!this._element.tHead)return;const s=this._getCloneStickyHeaderOffsets();if(e&&(s.maxHeight>0?(e.classList.add("table-sticky-scroll"),e.style.setProperty("--vgdt-sticky-max-height",`${s.maxHeight}px`)):(e.classList.remove("table-sticky-scroll"),e.style.removeProperty("--vgdt-sticky-max-height"))),!this._cloneStickyState){const t=document.createElement("div");t.className="vgdt-sticky-clone";const e=document.createElement("table");e.className="vgdt-sticky-clone__table",this._element.classList.contains("table-sortable")&&e.classList.add("table-sortable");const i=document.createElement("thead");e.appendChild(i),t.appendChild(e),this._parent.insertBefore(t,this._tableViewport);const s={headerWrap:t,table:e,head:i,lastHeadHtml:"",cloneCells:[],viewport:this._tableViewport,onScroll:()=>{this._syncCloneStickyScroll()},onClick:t=>{this._forwardCloneStickyInteraction(t,"click")},onChange:t=>{this._forwardCloneStickyInteraction(t,"change")},onDragStart:t=>{this._forwardCloneStickyInteraction(t,"dragstart")},onDragOver:t=>{this._forwardCloneStickyInteraction(t,"dragover")},onDrop:t=>{this._forwardCloneStickyInteraction(t,"drop")},onDragEnd:t=>{this._forwardCloneStickyInteraction(t,"dragend")}};s.viewport.addEventListener("scroll",s.onScroll,{passive:!0}),s.head.addEventListener("click",s.onClick),s.head.addEventListener("change",s.onChange),s.head.addEventListener("dragstart",s.onDragStart),s.head.addEventListener("dragover",s.onDragOver),s.head.addEventListener("drop",s.onDrop),s.head.addEventListener("dragend",s.onDragEnd),this._cloneStickyState=s}this._updateLayoutResizeBinding(),this._syncCloneStickyHeader()}_syncCloneStickyHeader(){const t=this._cloneStickyState;if(!t||!this._element||!this._element.tHead)return;const e=this._element.tHead;if(!Array.from(e.rows||[]).length)return void(t.headerWrap.hidden=!0);this._element.classList.contains("table-sortable")?t.table.classList.add("table-sortable"):t.table.classList.remove("table-sortable");const i=this._element.getAttribute("data-sort-hide-unsorted-arrows");null!==i?t.table.setAttribute("data-sort-hide-unsorted-arrows",i):t.table.removeAttribute("data-sort-hide-unsorted-arrows");let s=!1;const r=e.innerHTML;t.lastHeadHtml!==r&&(t.head.innerHTML=r,this._sanitizeCloneStickyHeadIds(t.head),t.lastHeadHtml=r,t.cloneCells=Array.from(t.head.querySelectorAll("th")),s=!0);const n=Array.from(e.querySelectorAll("th")),a=Array.isArray(t.cloneCells)&&t.cloneCells.length?t.cloneCells:Array.from(t.head.querySelectorAll("th"));this._syncCloneStickySelectAllState(e,t.head);const o=this._element.getBoundingClientRect().width,l=this._getViewportWidthMetrics(),d=!!this._tableViewport&&this._tableViewport.scrollWidth>this._tableViewport.clientWidth+1;let h=o;l&&(h=!d||l.hasVerticalOverflow?o:Math.max(o,l.effectiveWidth));const c=`${Math.max(0,h)}px`;t.table.style.width!==c&&(t.table.style.width=c),t.headerWrap.style.width="100%";let u=0;if(n.forEach((t,e)=>{const i=a[e];if(!i)return;const s=t.getBoundingClientRect().width,r=Math.max(0,s),n=`${r}px`;i.style.width!==n&&(i.style.width=n),i.style.minWidth!==n&&(i.style.minWidth=n),i.style.maxWidth!==n&&(i.style.maxWidth=n),u+=r}),d&&a.length){const t=Math.max(0,h-u);if(t>1){const e=a[a.length-1],i=e.getBoundingClientRect().width,s=Math.max(0,i+t);e.style.width=`${s}px`,e.style.minWidth=`${s}px`,e.style.maxWidth=`${s}px`}}t.headerWrap.hidden=!1;const _=t.headerWrap.getBoundingClientRect().height;this._parent.style.setProperty("--vgdt-sticky-clone-height",`${Math.max(0,_)}px`),this._syncCloneStickyScroll(),s&&"function"==typeof this._rebuildFixedColumnsCellsCache&&(this._rebuildFixedColumnsCellsCache(),"function"==typeof this._syncFixedColumnsScroll&&this._syncFixedColumnsScroll({immediate:!0}))}_syncCloneStickySelectAllState(t,e){if(!t||!e||"function"!=typeof t.querySelector||"function"!=typeof e.querySelector)return;const i=t.querySelector("[data-select-all]"),s=e.querySelector("[data-select-all]");i&&s&&(s.checked=Boolean(i.checked),s.indeterminate=Boolean(i.indeterminate),s.disabled=Boolean(i.disabled))}_sanitizeCloneStickyHeadIds(t){if(!t||"function"!=typeof t.querySelectorAll)return;const e=Array.from(t.querySelectorAll("[id]"));if(!e.length)return;const i=new Map;if(e.forEach(t=>{const e=String(t.getAttribute("id")||"").trim();if(!e)return;const s=`${e}--vgdt-clone`;t.setAttribute("id",s),i.set(e,s)}),!i.size)return;const s=["for","headers","aria-labelledby","aria-describedby","aria-controls","aria-owns","aria-details"];Array.from(t.querySelectorAll("*")).forEach(t=>{s.forEach(e=>{const s=String(t.getAttribute(e)||"").trim();if(!s)return;const r=s.split(/\s+/).map(t=>i.get(t)||t).join(" ");r!==s&&t.setAttribute(e,r)})})}_syncCloneStickyScroll(){const t=this._cloneStickyState;if(!t||!t.viewport)return;if(!(t.viewport.scrollWidth>t.viewport.clientWidth+1))return 0!==t.viewport.scrollLeft&&(t.viewport.scrollLeft=0),void(t.table.style.transform="translateX(0px)");const e=t.viewport.scrollLeft||0;t.table.style.transform=`translateX(${-e}px)`}_getViewportWidthMetrics(){const t=this._tableViewport;if(!t)return null;const e=t.clientWidth||0,i=t.clientHeight||0,s=t.scrollHeight>i+1;return{clientWidth:e,effectiveWidth:e||t.offsetWidth||0,hasVerticalOverflow:s}}_forwardCloneStickyInteraction(t,e){const i=this._cloneStickyState;if(!(i&&this._element&&this._element.tHead&&t))return;const s=t.target instanceof Element?t.target:null;if(!s)return;const r=s.closest("th");if(!r)return;const n=Array.from(i.head.querySelectorAll("th")),a=Array.from(this._element.tHead.querySelectorAll("th")),o=n.indexOf(r),l=o>=0?a[o]:null;if(!l)return;if("dragstart"===e||"dragover"===e||"drop"===e||"dragend"===e){if(!this._columnReorderState.enabled)return;if("dragstart"===e){const e=this._findHeaderIndex(l);if(e<0||this._isHeaderFixedForColumnReorder(l))return;if(this._columnReorderState.fromIndex=e,this._columnReorderState.toIndex=e,this._columnReorderState.isDragging=!0,this._element.classList.add("is-col-dragging"),l.setAttribute("data-col-dragging","1"),r.setAttribute("data-col-dragging","1"),t.dataTransfer){t.dataTransfer.effectAllowed="move";try{t.dataTransfer.setData("text/plain",String(e))}catch(t){}}return}if("dragover"===e){if(!this._columnReorderState.isDragging||this._isHeaderFixedForColumnReorder(l))return;t.preventDefault();const e=this._findHeaderIndex(l);if(e<0)return;return this._columnReorderState.toIndex=e,void this._syncColumnDragOverMarker(e)}if("drop"===e){if(!this._columnReorderState.isDragging)return;if(t.preventDefault(),this._isHeaderFixedForColumnReorder(l))return void this._resetColumnDragMarkers();const e=this._findHeaderIndex(l);if(e<0)return void this._resetColumnDragMarkers();const i=this._columnReorderState.fromIndex;return this._resetColumnDragMarkers(),void this._finalizeColumnReorder(i,e)}return void this._resetColumnDragMarkers()}if("change"===e){const t=s.closest("[data-select-all]");if(!t)return;const e=l.querySelector("[data-select-all]");if(!e)return;return e.checked=Boolean(t.checked),e.dispatchEvent(new Event("change",{bubbles:!0})),void this._syncCloneStickyHeader()}if("click"===e&&s.closest("[data-select-all]"))return;const d=s.closest("[data-sort-arrow]");let h=l;if(d){const t=d.getAttribute("data-sort-arrow"),e=l.querySelector(`[data-sort-arrow="${t}"]`);e&&(h=e)}else if(s.closest("[data-select-all]")){const t=l.querySelector("[data-select-all]");t&&(h=t)}h.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window,shiftKey:Boolean(t.shiftKey),ctrlKey:Boolean(t.ctrlKey),altKey:Boolean(t.altKey),metaKey:Boolean(t.metaKey)})),this._syncCloneStickyHeader()}_renderRemoteRows(t){const e=this._getBody();if(!t.length){const t=this._getTableMessage("stateEmpty","Ничего нет");return void this._renderStateRow(t,"empty")}this._setFixedColumnsSuppressed(!1),this._clearStateMode(),e.innerHTML=t.map(t=>`<tr>${this._fields.map(e=>{const i=t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]:"",s=this._formatFieldValue(e,i);return`<td>${this._escapeHtml(s)}</td>`}).join("")}</tr>`).join(""),this._updatePanHintVisibility()}_renderStateRow(t,e){const i=this._getBody(),s=this._getRenderedColumnsCount(),r="error"===e?`<div class="vgdt-state-actions"><button type="button" class="vgdt-state-reset" data-state-retry>${this._escapeHtml(this._getTableMessage("retry","Повторить"))}</button></div>`:"",n=this._buildStateIllustrationMarkup(e);i.innerHTML=`<tr><td colspan="${s}" data-table-state="${e}"><div class="vgdt-state">${n}<div class="vgdt-state-text">${this._escapeHtml(t)}</div>${r}</div></td></tr>`;const a=i.querySelector("[data-table-state]");this._setFixedColumnsSuppressed(!0),this._setStateMode(e),this._ensureStateRowVisible(a),this._announce(t),this._clearFooter(),this._updatePanHintVisibility(),this._refreshStickyAndFixedLayout()}_scrollToPaginationTop(){if(!this._isPaginationScrollToTopEnabled())return;if(this._tableViewport&&(this._tableViewport.scrollTop=0,this._tableViewport.scrollLeft=0),"undefined"==typeof window||!this._parent)return;const t=this._getPaginationScrollTopTarget(),e=window.pageYOffset||window.scrollY||0;if(!Number.isFinite(t))return;if(Math.abs(t-e)<2)return;const i="function"==typeof window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;window.scrollTo({top:Math.max(0,Math.round(t)),behavior:i?"auto":"smooth"})}_getPaginationScrollTopTarget(){if(this._isPaginationScrollToWindowTopEnabled())return 0;const t=this._parent.getBoundingClientRect();return Number.isFinite(t.top)?t.top+(window.pageYOffset||window.scrollY||0):NaN}_isPaginationScrollToTopEnabled(){const t=(this._params.pagination||{}).scrollToTop;return null!=t&&Boolean(t)}_isPaginationScrollToWindowTopEnabled(){const t=(this._params.pagination||{}).scrollToWindowTop;return null!=t&&Boolean(t)}_getI18nSection(t){const e=this._params.i18n&&"object"==typeof this._params.i18n?this._params.i18n:{},i=me.i18n&&"object"==typeof me.i18n?me.i18n:{},s=String(this._params.locale||"ru").toLowerCase(),r=s.split("-")[0],n=i[s]||i[r]||i.ru||{},a=n[t]&&"object"==typeof n[t]?n[t]:{},o=e[s]||e[r],l=o&&"object"==typeof o&&o[t]&&"object"==typeof o[t]?o[t]:{};return Object.assign({},a,l)}_getTableMessage(t,e){const i=this._getI18nSection("table")[t];return"string"==typeof i&&i.trim()?i:e}async _waitMinLoadingDelay(t){const e=this._params.loading||{},i=Math.max(0,Number.parseInt(e.minDelay,10)||0);if(i<=0)return;const s=i-(Date.now()-t);s<=0||await new Promise(t=>setTimeout(t,s))}_ensureSummaryNode(){if(!this._isSummaryEnabled()||this._summaryNode||!this._parent)return;const t=document.createElement("div");t.className="vgdt-summary",t.hidden=!0;const e=this._tableViewport&&this._tableViewport.parentElement===this._parent?this._tableViewport:this._element;this._parent.insertBefore(t,e),this._summaryNode=t}}Object.assign(Ae.prototype,Qt,ee,oe,le,he,ue,_e),g.A.on(document,"DOMContentLoaded",()=>{Ae.initAll()});const Ee=Ae;var xe=i(911);const Pe='tbody tr:not([data-group-header="1"])',Le="[data-row-select]",Ie="[data-select-all]",Me={rowcheck:"onRowCheck",checkall:"onCheckAll",rowreorder:"onRowReorder"};class De{static _getInitStore(){return this.__initStore||(this.__initStore=new WeakSet),this.__initStore}static _getDragStore(){return this.__dragStore||(this.__dragStore=new WeakMap),this.__dragStore}static initAll(){Array.from(document.querySelectorAll("[data-vg-table]")).forEach(t=>{if(!this._isEditableEnabled(t))return;const e=this._getInitStore();if(e.has(t))return this._syncSelectAll(t),void this._syncRowReorder(t);e.add(t),this._bind(t),this._syncSelectAll(t),this._syncRowReorder(t)})}static _bind(t){t.addEventListener("change",e=>{const i=e.target.closest(Ie);if(i)return this._toggleAll(t,Boolean(i.checked)),this._syncSelectAll(t),void this._emit(t,"checkall",this._getSelectionPayload(t,{checked:Boolean(i.checked)}));const s=e.target.closest(Le);if(!s)return;this._syncSelectAll(t);const r=s.closest("tr");this._emit(t,"rowcheck",this._getSelectionPayload(t,{checked:Boolean(s.checked),row:this._getRowPayload(t,r)}))}),t.addEventListener("dragstart",e=>{this._handleRowDragStart(t,e)}),t.addEventListener("dragover",e=>{this._handleRowDragOver(t,e)}),t.addEventListener("drop",e=>{this._handleRowDrop(t,e)}),t.addEventListener("dragend",()=>{this._clearRowDragState(t)});const e=this._getEventPrefix(t);t.addEventListener(`${e}:dataloaded`,()=>{this._syncSelectAll(t),this._syncRowReorder(t)})}static _toggleAll(t,e){Array.from(t.querySelectorAll(`${Pe} ${Le}`)).forEach(t=>{t.checked=e})}static _syncSelectAll(t){const e=Array.from(t.querySelectorAll(`${Pe} ${Le}`)),i=e.length,s=e.filter(t=>t.checked).length,r=t.querySelector(Ie);r&&(r.checked=i>0&&s===i,r.indeterminate=s>0&&s<i)}static _getSelectionPayload(t,e={}){const i=Array.from(t.querySelectorAll(`${Pe} ${Le}`)),s=i.length,r=i.filter(t=>t.checked).length;return Object.assign({total:s,selected:r},e)}static _isEditableEnabled(t){const e=this._getEditableOptions(this._getTableInstance(t));if(void 0!==e.enable)return Boolean(e.enable);const i=t.getAttribute("data-editable-enable");return null!==i&&this._parseBool(i,!1)}static _isRowReorderEnabled(t){const e=this._getEditableOptions(this._getTableInstance(t)),i=t.getAttribute("data-row-reorder-enable");return null!==i?this._parseBool(i,!1):void 0===e.rowReorder||Boolean(e.rowReorder)}static _getRowReorderMode(t){const e=this._getEditableOptions(this._getTableInstance(t)),i=t.getAttribute("data-row-reorder-mode");return"handle"===String(null!==i?i:e.rowReorderMode||"row").trim().toLowerCase()?"handle":"row"}static _getRowReorderHandleSelector(t){const e=this._getEditableOptions(this._getTableInstance(t)),i=String(t.getAttribute("data-row-reorder-handle-selector")||"").trim(),s=String(e.rowReorderHandleSelector||"").trim();return i||s||"[data-row-reorder-handle]"}static _syncRowReorder(t){const e=this._isRowReorderEnabled(t),i=this._getRowReorderMode(t),s=this._getRowReorderHandleSelector(t);Array.from(t.querySelectorAll(Pe)).forEach(t=>{const r=Array.from(t.querySelectorAll(s));if(!e)return t.removeAttribute("data-row-reorder"),t.removeAttribute("data-row-reorder-mode"),t.setAttribute("draggable","false"),void r.forEach(t=>t.setAttribute("draggable","false"));t.setAttribute("data-row-reorder","1"),t.setAttribute("data-row-reorder-mode",i),t.setAttribute("draggable","row"===i?"true":"false"),r.forEach(t=>t.setAttribute("draggable","handle"===i?"true":"false"))}),e||this._clearRowDragState(t)}static _getRowDragState(t){const e=this._getDragStore();return e.has(t)||e.set(t,{fromRow:null,fromIndex:-1,overRow:null,overAfter:!1}),e.get(t)}static _clearRowDragState(t){const e=this._getRowDragState(t);Array.from(t.querySelectorAll(`${Pe}[data-row-dragging], ${Pe}[data-row-drag-over]`)).forEach(t=>{t.removeAttribute("data-row-dragging"),t.removeAttribute("data-row-drag-over")}),e.fromRow=null,e.fromIndex=-1,e.overRow=null,e.overAfter=!1}static _handleRowDragStart(t,e){if(!this._isRowReorderEnabled(t))return;const i=e.target&&e.target.closest?e.target.closest(`${Pe}[data-row-reorder="1"]`):null;if(!i||!t.contains(i))return;if("handle"===this._getRowReorderMode(t)){const i=this._getRowReorderHandleSelector(t);if(!Boolean(e.target&&e.target.closest&&e.target.closest(i)))return void e.preventDefault()}else if(e.target&&e.target.closest&&e.target.closest('input, button, a, select, textarea, [contenteditable="true"]'))return void e.preventDefault();const s=this._getRowDragState(t);s.fromRow=i,s.fromIndex=this._getBodyRowIndex(t,i),s.overRow=null,s.overAfter=!1,i.setAttribute("data-row-dragging","1"),e.dataTransfer&&(e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain","row-reorder"))}static _handleRowDragOver(t,e){const i=this._getRowDragState(t);if(!i.fromRow)return;const s=e.target&&e.target.closest?e.target.closest(`${Pe}[data-row-reorder="1"]`):null;if(!s||!t.contains(s))return;e.preventDefault();const r=s.getBoundingClientRect(),n=e.clientY>r.top+r.height/2;i.overRow=s,i.overAfter=n,Array.from(t.querySelectorAll(`${Pe}[data-row-drag-over]`)).forEach(t=>{t.removeAttribute("data-row-drag-over")}),s!==i.fromRow&&s.setAttribute("data-row-drag-over",n?"after":"before")}static _handleRowDrop(t,e){const i=this._getRowDragState(t);if(!i.fromRow)return;e.preventDefault();const s=i.overRow;if(!s||!t.contains(s))return void this._clearRowDragState(t);if(!this._moveRow(t,i.fromRow,s,i.overAfter))return void this._clearRowDragState(t);const r=this._getBodyRowIndex(t,i.fromRow);this._syncSelectAll(t),this._emit(t,"rowreorder",{row:this._getRowPayload(t,i.fromRow),fromIndex:i.fromIndex,toIndex:r,beforeRow:this._getSiblingRowPayload(t,i.fromRow,"prev"),afterRow:this._getSiblingRowPayload(t,i.fromRow,"next")}),this._clearRowDragState(t)}static _moveRow(t,e,i,s){const r=t.tBodies&&t.tBodies[0]?t.tBodies[0]:null;return!!(r&&e&&i&&e!==i)&&(s?i.nextSibling!==e&&(r.insertBefore(e,i.nextSibling),!0):e.nextSibling!==i&&(r.insertBefore(e,i),!0))}static _getBodyRowIndex(t,e){const i=t.tBodies&&t.tBodies[0]?t.tBodies[0]:null;return i&&e?Array.from(i.rows).indexOf(e):-1}static _getSiblingRowPayload(t,e,i){if(!e)return null;const s="prev"===i?e.previousElementSibling:e.nextElementSibling;return s&&"TR"===s.tagName?this._getRowPayload(t,s):null}static _getRowPayload(t,e){if(!e)return null;const i=Array.from(t.querySelectorAll("thead th")).map(t=>String(t.textContent||"").trim()),s=Array.from(e.cells||[]).map(t=>String(t.textContent||"").trim());return{index:this._getBodyRowIndex(t,e),headers:i,cells:s,values:i.reduce((t,e,i)=>(t[e||`col_${i}`]=s[i]||"",t),{})}}static _emit(t,e,i={}){const s=String(e||"").toLowerCase().trim();if(!s)return;const r=this._getTableInstance(t),n=Object.assign({action:s,table:t,isRemote:Boolean(r&&r._isRemote)},i),a=r&&r._params&&r._params.callbacks&&"object"==typeof r._params.callbacks?r._params.callbacks:{},o=Me[s]||"",l=o?a[o]:null;"function"==typeof l&&l(n,r);const d=r&&r._params&&r._params.events?r._params.events:{};if(void 0!==d.enable&&!Boolean(d.enable)||"function"!=typeof window.CustomEvent)return;const h=String(d.prefix||"vgdt").trim()||"vgdt",c=void 0===d.bubbles||Boolean(d.bubbles);t.dispatchEvent(new CustomEvent(`${h}:${s}`,{detail:n,bubbles:c}))}static _getEditableOptions(t=null){const e=t||null;return e&&e._params&&e._params.editable&&"object"==typeof e._params.editable?e._params.editable:{}}static _getTableInstance(t){return t?xe.A.get(t,"vg.dynamicTable"):null}static _getEventPrefix(t){const e=this._getTableInstance(t),i=e&&e._params&&e._params.events?e._params.events:{};return String(i.prefix||"vgdt").trim()||"vgdt"}static _parseBool(t,e=!1){if(null==t)return e;const i=String(t).toLowerCase().trim();return"1"===i||"true"===i||"yes"===i||"on"===i||"0"!==i&&"false"!==i&&"no"!==i&&"off"!==i&&e}}g.A.on(document,"DOMContentLoaded",()=>{De.initAll()});const Te={pathAttribute:"data-vg-filepreview",fieldsAttribute:"data-fields",validAttribute:"data-vg-filepreview-valid",errorAttribute:"data-vg-filepreview-error",errorValue:"invalid-file-path",fieldAttribute:"data-vg-filepreview-field",editableAttribute:"data-vg-filepreview-editable",editableFieldsAttribute:"data-vg-filepreview-editable-fields",missingFieldsAttribute:"data-vg-filepreview-missing-fields"},ke=class{constructor(t,e={}){this._element=t,this._options=Object.assign({},Te,e)}getFilePath(){if(!this._element)return"";const t=this._element.getAttribute(this._options.pathAttribute);return"string"==typeof t?t.trim():""}getFields(){if(!this._element)return[];const t=this._element.getAttribute(this._options.fieldsAttribute);return"string"==typeof t&&t.trim()?t.split(",").map(t=>t.trim()).filter(t=>t&&/^[-_a-zA-Z0-9]+$/.test(t)):[]}validateFilePath(t){if(!t||"#"===t||/^javascript:/i.test(t))return{isValid:!1,fileUrl:null};try{const e=new URL(t,window.location.origin),i=e.protocol;if(!["http:","https:","blob:","data:"].includes(i))return{isValid:!1,fileUrl:null};if("data:"===i||"blob:"===i)return{isValid:!0,fileUrl:e};const s=(e.pathname||"").split("/").filter(Boolean).pop()||"";return s&&s.includes(".")?{isValid:!0,fileUrl:e}:{isValid:!1,fileUrl:null}}catch{return{isValid:!1,fileUrl:null}}}syncState(t){this._element&&(this._element.setAttribute(this._options.validAttribute,t?"true":"false"),t?this._element.removeAttribute(this._options.errorAttribute):this._element.setAttribute(this._options.errorAttribute,this._options.errorValue))}resolveEditableFields(t=[]){return this._element&&Array.isArray(t)&&t.length?t.reduce((t,e)=>(t[e]=this._element.querySelector(`.${this._escapeClassName(e)}`),t),{}):{}}syncEditableFields(t={}){if(!this._element)return;this._element.querySelectorAll(`[${this._options.fieldAttribute}]`).forEach(t=>{t.removeAttribute(this._options.fieldAttribute),t.setAttribute(this._options.editableAttribute,"false")});const e=[],i=[];Object.entries(t).forEach(([t,s])=>{s?(s.setAttribute(this._options.fieldAttribute,t),s.setAttribute(this._options.editableAttribute,"true"),e.push(t)):i.push(t)}),e.length?this._element.setAttribute(this._options.editableFieldsAttribute,e.join(",")):this._element.removeAttribute(this._options.editableFieldsAttribute),i.length?this._element.setAttribute(this._options.missingFieldsAttribute,i.join(",")):this._element.removeAttribute(this._options.missingFieldsAttribute)}_escapeClassName(t){return window.CSS&&"function"==typeof window.CSS.escape?window.CSS.escape(t):String(t).replace(/([ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~])/g,"\\$1")}getFileMeta(t){const e="string"==typeof t?t.trim():"";if(!e)return{name:"",ext:"",originalName:"",isMedia:!1,sizeBytes:null,sizeText:""};try{const t=new URL(e,window.location.origin),i=t.pathname||"",s=t.searchParams,r=this._readOriginalName(s);let n=decodeURIComponent(i.split("/").pop()||"");n&&n.includes(".")||(n=r||n);const a=n.includes(".")?`.${n.split(".").pop()||""}`:"",o=this._readSize(s),l=[".mp3",".wav",".ogg",".flac",".aac",".m4a",".mp4",".webm",".mov",".mkv",".avi"];return{name:n,ext:a.toLowerCase(),originalName:r,isMedia:l.includes(a.toLowerCase()),sizeBytes:o,sizeText:this._formatSize(o)}}catch{const t=e.split("#")[0].split("?")[0];let i=decodeURIComponent(t.split("/").pop()||"");const s=this._readOriginalName(null);i&&i.includes(".")||(i=s||i);const r=i.includes(".")?`.${i.split(".").pop()||""}`:"",n=this._readSize(null);return{name:i,ext:r.toLowerCase(),originalName:s||"",isMedia:!1,sizeBytes:n,sizeText:this._formatSize(n)}}}_readOriginalName(t){const e=this._element?.getAttribute("data-original-name")||this._element?.getAttribute("data-vg-filepreview-original-name")||"";if(e)return String(e).trim();const i=["original_name","originalName","filename","name"];for(const e of i){const i=t.get(e);if(i)return String(i).trim()}return""}_readSize(t){const e=[this._element?.getAttribute("data-size"),this._element?.getAttribute("data-vg-filepreview-size")];for(const t of e){const e=this._parseSizeValue(t);if(null!==e)return e}if(!t)return null;const i=["size","size_bytes","bytes"];for(const e of i){const i=t.get(e),s=this._parseSizeValue(i);if(null!==s)return s}return null}_parseSizeValue(t){if(null==t)return null;const e=String(t).trim().toLowerCase();if(!e)return null;const i=e.match(/^(\d+(?:\.\d+)?)\s*(b|kb|mb|gb|tb)?$/i);if(!i)return null;const s=Number.parseFloat(i[1]);if(!Number.isFinite(s)||s<0)return null;const r=(i[2]||"b").toLowerCase();return Math.round(s*({b:1,kb:1024,mb:1048576,gb:1073741824,tb:1099511627776}[r]||1))}_formatSize(t){if(!Number.isFinite(t)||t<0)return"";const e=["B","KB","MB","GB","TB"];let i=t,s=0;for(;i>=1024&&s<e.length-1;)i/=1024,s+=1;const r=i>=100||0===s?0:2;return`${i.toFixed(r)} ${e[s]}`}},Fe=new Set(["mp3"]),Re=(t,e=0)=>(127&t[e])<<21|(127&t[e+1])<<14|(127&t[e+2])<<7|127&t[e+3],Oe=(t,e,i)=>i?Re([t.getUint8(e),t.getUint8(e+1),t.getUint8(e+2),t.getUint8(e+3)],0):(t.getUint8(e)<<24|t.getUint8(e+1)<<16|t.getUint8(e+2)<<8|t.getUint8(e+3))>>>0,Ne=(t,e)=>{if(!t||!t.length)return"";try{if(0===e)return new TextDecoder("iso-8859-1").decode(t).replace(/\u0000/g,"").trim();if(1===e){if(t.length>=2){const e=t[0],i=t[1];if(255===e&&254===i)return new TextDecoder("utf-16le").decode(t.slice(2)).replace(/\u0000/g,"").trim();if(254===e&&255===i){const e=new Uint8Array(t.length-2);for(let i=2;i+1<t.length;i+=2)e[i-2]=t[i+1],e[i-1]=t[i];return new TextDecoder("utf-16le").decode(e).replace(/\u0000/g,"").trim()}}return new TextDecoder("utf-16le").decode(t).replace(/\u0000/g,"").trim()}if(2===e){const e=new Uint8Array(t.length);for(let i=0;i+1<t.length;i+=2)e[i]=t[i+1],e[i+1]=t[i];return new TextDecoder("utf-16le").decode(e).replace(/\u0000/g,"").trim()}return new TextDecoder("utf-8").decode(t).replace(/\u0000/g,"").trim()}catch{return""}},ze=(t,e,i=1)=>{for(let s=e;s<t.length;s+=i)if(2===i){if(s+1<t.length&&0===t[s]&&0===t[s+1])return s}else if(0===t[s])return s;return-1},He=t=>{if(!t||t.length<4)return null;const e=t[0];let i=1;const s=ze(t,i);if(s<0)return null;const r=new TextDecoder("iso-8859-1").decode(t.slice(i,s)).trim();if(i=s+1,i>=t.length)return null;i+=1;const n=1===e||2===e,a=ze(t,i,n?2:1);if(a>=0&&(i=a+(n?2:1)),i>=t.length)return null;const o=t.slice(i),l=r||"image/jpeg";return o.length?{mimeType:l,data:o}:null},$e=async t=>{if(!(t instanceof File))return null;const e=(t=>{const e=String(t?.name||"").toLowerCase(),i=e.lastIndexOf(".");return i<0||i>=e.length-1?"":e.slice(i+1)})(t);if(!Fe.has(e))return null;if(!t.size)return null;try{const e=t.slice(0,Math.min(t.size,2097152)),i=(t=>{const e=new Uint8Array(t);if(e.length<10)return null;if(73!==e[0]||68!==e[1]||51!==e[2])return null;const i=e[3];if(i<2||i>4)return null;const s=Re(e,6),r=Math.min(e.length,s+10),n=new DataView(t,0,r);let a=10,o="",l=null;for(;a+10<=r;){const t=String.fromCharCode(n.getUint8(a),n.getUint8(a+1),n.getUint8(a+2),n.getUint8(a+3));if(!t.trim())break;const s=Oe(n,a+4,4===i);if(!s||s<1)break;const d=a+10,h=d+s;if(h>r)break;const c=e.slice(d,h);"TIT2"===t&&c.length>1&&(o=Ne(c.slice(1),c[0])||o),"APIC"!==t||l||(l=He(c)),a=h}return{title:o,picture:l}})(await e.arrayBuffer());if(!i)return null;const s={};if(i.title&&(s.title=i.title),i.picture?.data?.length){const t=new Blob([i.picture.data],{type:i.picture.mimeType||"image/jpeg"});s.pictureBlob=t}return Object.keys(s).length?s:null}catch{return null}},Be=new Set(["mp4","webm","mov","mkv","avi","m4v","ogv"]);class je{constructor(){this._modalId="vg-filepreview-image-modal"}static getInstance(){return je._instance||(je._instance=new je),je._instance}open(t={}){const e=String(t.src||"").trim();if(!e)return;if(this._ensureModal(),!this._modal||!this._image)return;const i=String(t.defaultTitle||"").trim(),s=String(t.title||"").trim();this._title.textContent=s||i,this._image.src=e,this._image.alt=s||i,this._modal.show()}close(){this._modal&&this._modal.hide()}_ensureModal(){this._modal&&this._root||this._initModal()}_initModal(){const t={centered:!0,dismiss:!0,backdrop:!0,keyboard:!0,sizes:{width:"fit-content"},animation:{enable:!1}},e=document.getElementById(this._modalId);if(e)return this._root=e,this._modal=V.getOrCreateInstance(e,t),this._bindElements(e),void this._bindLifecycle(e);this._modal=V.build(this._modalId,t,t=>{const e=t._element;this._root=e,e.classList.add("vg-filepreview-image-modal");const i=e.querySelector(".vg-modal-body"),s=e.querySelector(".vg-modal-content");if(!i||!s)return;i.classList.add("vg-filepreview-image-modal__body"),i.innerHTML="";let r=e.querySelector(".vg-modal-header");r||(r=document.createElement("div"),r.className="vg-modal-header",s.prepend(r)),this._title=document.createElement("div"),this._title.className="vg-modal-title",this._title.textContent="",this._image=document.createElement("img"),this._image.className="vg-filepreview-image-modal__img",this._image.loading="eager",this._image.decoding="async",r.appendChild(this._title),i.appendChild(this._image),this._bindLifecycle(e)})}_bindElements(t){this._title=t.querySelector(".vg-filepreview-image-modal__title"),this._image=t.querySelector(".vg-filepreview-image-modal__img")}_bindLifecycle(t){t&&!t.hasAttribute("data-vg-filepreview-image-lifecycle-bind")&&(t.setAttribute("data-vg-filepreview-image-lifecycle-bind","true"),t.addEventListener("vg.modal.hidden",()=>{this._destroyModal()}))}_destroyModal(){this._modal&&"function"==typeof this._modal.dispose&&this._modal.dispose(),this._root&&this._root.parentNode&&this._root.parentNode.removeChild(this._root),this._root=null,this._modal=null,this._title=null,this._image=null}}const Ve=je,qe=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".tif",".tiff",".heic",".heif",".avif"]),Ue=class{constructor(){this.name="image",this._modal=Ve.getInstance()}canRender(t={}){const e=String(t?.fileMeta?.ext||"").toLowerCase();return qe.has(e)}render(t={}){const e=t?.previewContainer,i=Boolean(t?.ui?.nameOnly),s=t?.i18n,r=t?.fileUrl?.href||t?.filePath||"";if(!r)return!1;const n=e=>{e&&e.preventDefault(),this._modal.open({src:r,title:t?.fileMeta?.name||s?.message("image_title")||"",defaultTitle:s?.message("image_title")||""})},a=t?.element?.querySelector(".name");a&&!a.hasAttribute("data-vg-filepreview-image-bind")&&(a.setAttribute("data-vg-filepreview-image-bind","true"),a.classList.add("is-preview-action"),a.addEventListener("click",n));const o=t?.element?.closest(".file")?.querySelector(".file-image .file-preview");if(o&&!o.hasAttribute("data-vg-filepreview-image-bind")&&(o.setAttribute("data-vg-filepreview-image-bind","true"),o.classList.add("is-preview-action"),o.addEventListener("click",n)),i)return Boolean(a||o);if(!e)return!1;const l=document.createElement("button");l.type="button",l.className="vg-filepreview-image-trigger",l.textContent=s?.button("open_image")||"",l.addEventListener("click",n),e.appendChild(l);const d=document.createElement("img");return d.className="vg-filepreview-image-thumb",d.src=r,d.alt=t?.fileMeta?.name||s?.message("image_thumbnail_alt")||"",d.loading="lazy",d.addEventListener("click",n),e.appendChild(d),!0}};class We{constructor(){this._modalId="vg-filepreview-office-modal",this._labels={}}static getInstance(){return We._instance||(We._instance=new We),We._instance}open(t={}){const e=String(t.src||"").trim();if(!e)return;if(this._ensureModal(),!this._modal||!this._frame)return;this._labels=t?.labels&&"object"==typeof t.labels?t.labels:{},this._src=e,this._downloadName=String(t.downloadName||"").trim();const i=String(t.defaultTitle||"").trim(),s=String(t.title||"").trim();this._title.textContent=s||i,this._fallback.textContent=this._label("fallback"),this._download.textContent=this._label("download"),this._frame.src=this._buildViewerUrl(e),this._modal.show()}_ensureModal(){this._modal&&this._root||this._initModal()}_initModal(){this._modal=V.build(this._modalId,{centered:!0,dismiss:!0,backdrop:!0,keyboard:!0,sizes:{width:"fit-content"},animation:{enable:!1}},t=>{const e=t._element;this._root=e,e.classList.add("vg-filepreview-office-modal");const i=e.querySelector(".vg-modal-body"),s=e.querySelector(".vg-modal-content");if(!i||!s)return;i.classList.add("vg-filepreview-image-modal__body"),i.innerHTML="";let r=e.querySelector(".vg-modal-header");r||(r=document.createElement("div"),r.className="vg-modal-header",s.prepend(r)),this._title=document.createElement("div"),this._title.className="vg-modal-title",this._frame=document.createElement("iframe"),this._frame.className="vg-filepreview-office-modal__frame",this._frame.setAttribute("title","Office preview");const n=document.createElement("div");n.className="vg-filepreview-office-modal__footer",this._fallback=document.createElement("span"),this._fallback.className="vg-filepreview-office-modal__hint",this._download=document.createElement("button"),this._download.type="button",this._download.className="vg-filepreview-office-modal__btn",this._download.addEventListener("click",()=>this._downloadFile()),n.appendChild(this._fallback),n.appendChild(this._download),r.appendChild(this._title),i.appendChild(this._frame),s.appendChild(n),this._bindLifecycle(e)})}_buildViewerUrl(t){const e=new URL(t,window.location.origin).href;return`https://view.officeapps.live.com/op/embed.aspx?src=${encodeURIComponent(e)}`}_downloadFile(){if(!this._src)return;const t=document.createElement("a");t.href=this._src,this._downloadName&&t.setAttribute("download",this._downloadName),t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)}_label(t){const e=this._labels?.[t];return String(e||"").trim()}_bindLifecycle(t){t&&!t.hasAttribute("data-vg-filepreview-office-lifecycle-bind")&&(t.setAttribute("data-vg-filepreview-office-lifecycle-bind","true"),t.addEventListener("vg.modal.hidden",()=>this._destroyModal()))}_destroyModal(){this._modal&&"function"==typeof this._modal.dispose&&this._modal.dispose(),this._root&&this._root.parentNode&&this._root.parentNode.removeChild(this._root),this._root=null,this._modal=null,this._title=null,this._frame=null,this._fallback=null,this._download=null,this._labels=null,this._src="",this._downloadName=""}}const Ke=We,Ye=new Set([".doc",".docx",".xls",".xlsx",".ppt",".pptx",".odt",".ods",".odp"]),Ge=class{constructor(){this.name="office",this._modal=Ke.getInstance()}canRender(t={}){const e=String(t?.fileMeta?.ext||"").toLowerCase();return Ye.has(e)}render(t={}){const e=t?.previewContainer,i=Boolean(t?.ui?.nameOnly),s=t?.i18n,r=t?.fileUrl?.href||t?.filePath||"";if(!r)return!1;const n=e=>{e&&e.preventDefault(),this._modal.open({src:r,title:t?.fileMeta?.name||s?.message("office_title")||"",defaultTitle:s?.message("office_title")||"",downloadName:t?.fileMeta?.originalName||t?.fileMeta?.name||"",labels:{download:s?.button("download")||"",fallback:s?.message("office_fallback")||""}})},a=t?.element?.querySelector(".name");if(a&&!a.hasAttribute("data-vg-filepreview-office-bind")&&(a.setAttribute("data-vg-filepreview-office-bind","true"),a.classList.add("is-preview-action"),a.addEventListener("click",n)),i)return Boolean(a);if(!e)return!1;const o=document.createElement("button");return o.type="button",o.className="vg-filepreview-office-trigger",o.textContent=s?.button("open_office")||"",o.addEventListener("click",n),e.appendChild(o),!0}};class Xe{constructor(){this._modalId="vg-filepreview-pdf-modal",this._labels={},this._src="",this._downloadName="",this._page=1,this._zoom=100}static getInstance(){return Xe._instance||(Xe._instance=new Xe),Xe._instance}open(t={}){const e=String(t.src||"").trim();if(!e)return;if(this._ensureModal(),!this._modal||!this._frame)return;this._labels=t?.labels&&"object"==typeof t.labels?t.labels:{},this._src=e,this._downloadName=String(t.downloadName||"").trim(),this._page=1,this._zoom=100;const i=String(t.defaultTitle||"").trim(),s=String(t.title||"").trim();this._title.textContent=s||i,this._syncControls(),this._updateFrameSrc(),this._modal.show()}_ensureModal(){this._modal&&this._root||this._initModal()}_initModal(){const t={centered:!0,dismiss:!0,backdrop:!0,keyboard:!0,sizes:{width:"fit-content"},animation:{enable:!1}},e=document.getElementById(this._modalId);if(e)return this._root=e,this._modal=V.getOrCreateInstance(e,t),this._bindElements(e),void this._bindLifecycle(e);this._modal=V.build(this._modalId,t,t=>{const e=t._element;this._root=e,e.classList.add("vg-filepreview-pdf-modal");const i=e.querySelector(".vg-modal-body"),s=e.querySelector(".vg-modal-content");if(!i||!s)return;i.classList.add("vg-filepreview-pdf-modal__body"),i.innerHTML="";let r=e.querySelector(".vg-modal-header");r||(r=document.createElement("div"),r.className="vg-modal-header",s.prepend(r)),this._title=document.createElement("div"),this._title.className="vg-modal-title";const n=document.createElement("div");n.className="vg-filepreview-pdf-modal__toolbar",this._pagePrev=document.createElement("button"),this._pagePrev.type="button",this._pagePrev.className="vg-filepreview-pdf-modal__btn",this._pagePrev.setAttribute("data-role","page-prev"),this._pagePrev.addEventListener("click",()=>{this._page=Math.max(1,this._page-1),this._syncControls(),this._updateFrameSrc()}),this._pageInfo=document.createElement("span"),this._pageInfo.className="vg-filepreview-pdf-modal__meta",this._pageInfo.setAttribute("data-role","page"),this._pageNext=document.createElement("button"),this._pageNext.type="button",this._pageNext.className="vg-filepreview-pdf-modal__btn",this._pageNext.setAttribute("data-role","page-next"),this._pageNext.addEventListener("click",()=>{this._page+=1,this._syncControls(),this._updateFrameSrc()}),this._zoomOut=document.createElement("button"),this._zoomOut.type="button",this._zoomOut.className="vg-filepreview-pdf-modal__btn",this._zoomOut.setAttribute("data-role","zoom-out"),this._zoomOut.addEventListener("click",()=>{this._zoom=Math.max(50,this._zoom-10),this._syncControls(),this._updateFrameSrc()}),this._zoomIn=document.createElement("button"),this._zoomIn.type="button",this._zoomIn.className="vg-filepreview-pdf-modal__btn",this._zoomIn.setAttribute("data-role","zoom-in"),this._zoomIn.addEventListener("click",()=>{this._zoom=Math.min(300,this._zoom+10),this._syncControls(),this._updateFrameSrc()}),this._zoomInfo=document.createElement("span"),this._zoomInfo.className="vg-filepreview-pdf-modal__meta",this._zoomInfo.setAttribute("data-role","zoom"),this._download=document.createElement("button"),this._download.type="button",this._download.className="vg-filepreview-pdf-modal__btn primary",this._download.setAttribute("data-role","download"),this._download.addEventListener("click",()=>this._downloadFile()),n.appendChild(this._pagePrev),n.appendChild(this._pageInfo),n.appendChild(this._pageNext),n.appendChild(this._zoomOut),n.appendChild(this._zoomInfo),n.appendChild(this._zoomIn),n.appendChild(this._download),this._frame=document.createElement("iframe"),this._frame.className="vg-filepreview-pdf-modal__frame",this._frame.setAttribute("title","PDF preview"),r.appendChild(this._title),i.appendChild(this._frame),this._bindLifecycle(e)})}_bindElements(t){this._title=t.querySelector(".vg-filepreview-pdf-modal__title"),this._frame=t.querySelector(".vg-filepreview-pdf-modal__frame"),this._pagePrev=t.querySelector('.vg-filepreview-pdf-modal__btn[data-role="page-prev"]'),this._pageNext=t.querySelector('.vg-filepreview-pdf-modal__btn[data-role="page-next"]'),this._zoomOut=t.querySelector('.vg-filepreview-pdf-modal__btn[data-role="zoom-out"]'),this._zoomIn=t.querySelector('.vg-filepreview-pdf-modal__btn[data-role="zoom-in"]'),this._download=t.querySelector('.vg-filepreview-pdf-modal__btn[data-role="download"]'),this._pageInfo=t.querySelector('.vg-filepreview-pdf-modal__meta[data-role="page"]'),this._zoomInfo=t.querySelector('.vg-filepreview-pdf-modal__meta[data-role="zoom"]')}_bindLifecycle(t){t&&!t.hasAttribute("data-vg-filepreview-pdf-lifecycle-bind")&&(t.setAttribute("data-vg-filepreview-pdf-lifecycle-bind","true"),t.addEventListener("vg.modal.hidden",()=>this._destroyModal()))}_syncControls(){this._pageInfo&&this._zoomInfo&&(this._pagePrev.textContent=this._label("prevPage"),this._pageNext.textContent=this._label("nextPage"),this._zoomOut.textContent=this._label("zoomOut"),this._zoomIn.textContent=this._label("zoomIn"),this._download.textContent=this._label("download"),this._pageInfo.textContent=`${this._label("page")}: ${this._page}`,this._zoomInfo.textContent=`${this._label("zoom")}: ${this._zoom}%`)}_updateFrameSrc(){if(!this._frame||!this._src)return;const t=`#page=${this._page}&zoom=${this._zoom}`;this._frame.src=`${this._src}${t}`}_downloadFile(){if(!this._src)return;const t=document.createElement("a");t.href=this._src,this._downloadName&&t.setAttribute("download",this._downloadName),t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)}_label(t){const e=this._labels?.[t];return String(e||"").trim()}_destroyModal(){this._modal&&"function"==typeof this._modal.dispose&&this._modal.dispose(),this._root&&this._root.parentNode&&this._root.parentNode.removeChild(this._root),this._root=null,this._modal=null,this._title=null,this._frame=null,this._labels=null,this._src=""}}const Ze=Xe,Je=new Set([".pdf"]),Qe=class{constructor(){this.name="pdf",this._modal=Ze.getInstance()}canRender(t={}){const e=String(t?.fileMeta?.ext||"").toLowerCase();return Je.has(e)}render(t={}){const e=t?.previewContainer,i=Boolean(t?.ui?.nameOnly),s=t?.i18n,r=t?.fileUrl?.href||t?.filePath||"";if(!r)return!1;const n=e=>{e&&e.preventDefault(),this._modal.open({src:r,title:t?.fileMeta?.name||s?.message("pdf_title")||"",defaultTitle:s?.message("pdf_title")||"",labels:{page:s?.message("pdf_page")||"",zoom:s?.message("pdf_zoom")||"",zoomIn:s?.button("zoom_in")||"",zoomOut:s?.button("zoom_out")||"",prevPage:s?.button("prev")||"",nextPage:s?.button("next")||"",download:s?.button("download")||""},downloadName:t?.fileMeta?.originalName||t?.fileMeta?.name||"file.pdf"})},a=t?.element?.querySelector(".name");if(a&&!a.hasAttribute("data-vg-filepreview-pdf-bind")&&(a.setAttribute("data-vg-filepreview-pdf-bind","true"),a.classList.add("is-preview-action"),a.addEventListener("click",n)),i)return Boolean(a);if(!e)return!1;const o=document.createElement("button");return o.type="button",o.className="vg-filepreview-pdf-trigger",o.textContent=s?.button("open_pdf")||"",o.addEventListener("click",n),e.appendChild(o),!0}};class ti{constructor(){this._modalId="vg-filepreview-text-modal",this._abortController=null,this._labels={}}static getInstance(){return ti._instance||(ti._instance=new ti),ti._instance}open(t={}){const e=String(t.src||"").trim();if(!e)return;if(this._ensureModal(),!this._modal||!this._content)return;this._labels=t?.labels&&"object"==typeof t.labels?t.labels:{};const i=String(t.defaultTitle||"").trim(),s=String(t.title||"").trim(),r=String(t.ext||"").toLowerCase();this._title.textContent=s||i,this._content.textContent=this._label("loading"),this._content.classList.remove("is-markdown"),this._modal.show(),this._loadText(e,{ext:r})}close(){this._modal&&this._modal.hide()}_ensureModal(){this._modal&&this._root||this._initModal()}_initModal(){const t={centered:!0,dismiss:!0,backdrop:!0,keyboard:!0,sizes:{width:"600px",height:""},animation:{enable:!1}},e=document.getElementById(this._modalId);if(e)return this._root=e,this._modal=V.getOrCreateInstance(e,t),this._bindElements(e),void this._bindLifecycle(e);this._modal=V.build(this._modalId,t,t=>{const e=t._element;this._root=e,e.classList.add("vg-filepreview-text-modal");const i=e.querySelector(".vg-modal-body"),s=e.querySelector(".vg-modal-content");if(!i||!s)return;i.classList.add("vg-filepreview-text-modal__body"),i.innerHTML="";let r=e.querySelector(".vg-modal-header");r||(r=document.createElement("div"),r.className="vg-modal-header",s.prepend(r)),this._title=document.createElement("div"),this._title.className="vg-modal-title",this._title.textContent="",this._content=document.createElement("pre"),this._content.className="vg-filepreview-text-modal__content",this._content.textContent="",r.appendChild(this._title),i.appendChild(this._content),this._bindLifecycle(e)})}_bindElements(t){this._title=t.querySelector(".vg-filepreview-text-modal__title"),this._content=t.querySelector(".vg-filepreview-text-modal__content")}_bindLifecycle(t){t&&!t.hasAttribute("data-vg-filepreview-text-lifecycle-bind")&&(t.setAttribute("data-vg-filepreview-text-lifecycle-bind","true"),t.addEventListener("vg.modal.hidden",()=>{this._destroyModal()}))}_loadText(t,e={}){const i=String(e.ext||"").toLowerCase(),s=`${t}|${i}`;if(ti._cache.has(s)){const t=ti._cache.get(s);return void this._renderLoadedText(t,i)}this._abortController&&this._abortController.abort(),this._abortController=new AbortController,fetch(t,{method:"GET",signal:this._abortController.signal}).then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.text()}).then(t=>{const e=t||"";ti._cache.set(s,e),this._renderLoadedText(e,i)}).catch(t=>{this._content&&"AbortError"!==t?.name&&(this._content.classList.remove("is-markdown"),this._content.textContent=`${this._label("cannotOpen")}: ${t?.message||this._label("unknownError")}`)})}_renderLoadedText(t,e){if(!this._content)return;const i=String(t||"");".md"===e?(this._content.classList.add("is-markdown"),this._content.innerHTML=this._renderMarkdown(i)):(this._content.classList.remove("is-markdown"),this._content.textContent=i||this._label("emptyFile"))}_destroyModal(){this._abortController&&(this._abortController.abort(),this._abortController=null),this._modal&&"function"==typeof this._modal.dispose&&this._modal.dispose(),this._root&&this._root.parentNode&&this._root.parentNode.removeChild(this._root),this._root=null,this._modal=null,this._title=null,this._content=null,this._labels=null}_label(t,e=""){const i=this._labels?.[t];return"string"==typeof i&&i.trim()?i:e}_renderMarkdown(t){const e=t=>String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),i=t=>{let i=e(t);return i=i.replace(/`([^`]+)`/g,"<code>$1</code>"),i=i.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),i=i.replace(/\*([^*]+)\*/g,"<em>$1</em>"),i=i.replace(/\[([^\]]+)\]\(([^)]+)\)/g,(t,e,i)=>`<a href="${this._sanitizeUrl(i)}" target="_blank" rel="noopener noreferrer">${e}</a>`),i},s=String(t||"").split(/\r?\n/),r=[];let n=!1,a=!1;return s.forEach(t=>{const s=t||"";if(s.trim().startsWith("```"))return void(a?(a=!1,r.push("</code></pre>")):(a=!0,r.push("<pre><code>")));if(a)return void r.push(`${e(s)}\n`);if(!s.trim())return void(n&&(n=!1,r.push("</ul>")));const o=s.match(/^(#{1,6})\s+(.+)$/);if(o){n&&(n=!1,r.push("</ul>"));const t=o[1].length;return void r.push(`<h${t}>${i(o[2])}</h${t}>`)}const l=s.match(/^[-*]\s+(.+)$/);if(l)return n||(n=!0,r.push("<ul>")),void r.push(`<li>${i(l[1])}</li>`);n&&(n=!1,r.push("</ul>")),r.push(`<p>${i(s)}</p>`)}),n&&r.push("</ul>"),a&&r.push("</code></pre>"),r.join("")||`<p>${this._escapeHtml(this._label("emptyFile"))}</p>`}_escapeHtml(t){return String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}_sanitizeUrl(t){const e=String(t||"").trim();if(!e)return"#";try{const t=new URL(e,window.location.origin);if(["http:","https:","mailto:"].includes(t.protocol))return t.href}catch{return"#"}return"#"}}ti._cache=new Map;const ei=ti,ii=new Set([".txt",".md",".csv",".json",".xml",".yml",".yaml",".log",".ini",".conf",".env"]),si=class{constructor(){this.name="text",this._modal=ei.getInstance()}canRender(t={}){const e=String(t?.fileMeta?.ext||"").toLowerCase();return ii.has(e)}render(t={}){const e=t?.previewContainer,i=Boolean(t?.ui?.nameOnly),s=t?.i18n,r=t?.fileUrl?.href||t?.filePath||"";if(!r)return!1;const n=e=>{e&&e.preventDefault(),this._modal.open({src:r,title:t?.fileMeta?.name||s?.message("text_title")||"",defaultTitle:s?.message("text_title")||"",ext:t?.fileMeta?.ext||"",labels:{loading:s?.message("loading_text")||"",cannotOpen:s?.message("cannot_open_file")||"",unknownError:s?.message("unknown_error")||"",emptyFile:s?.message("empty_file")||""}})},a=t?.element?.querySelector(".name");if(a&&!a.hasAttribute("data-vg-filepreview-text-bind")&&(a.setAttribute("data-vg-filepreview-text-bind","true"),a.classList.add("is-preview-action"),a.addEventListener("click",n)),i)return Boolean(a);if(!e)return!1;const o=document.createElement("button");return o.type="button",o.className="vg-filepreview-text-trigger",o.textContent=s?.button("open_text")||"",o.addEventListener("click",n),e.appendChild(o),!0}};class ri{constructor(){this._modalId="vg-filepreview-video-modal",this._playlist=[],this._currentIndex=-1,this._labels={},this._onKeyDown=t=>this._handleHotkeys(t)}static getInstance(){return ri._instance||(ri._instance=new ri),ri._instance}open(t={}){const e=String(t.src||"").trim();if(!e)return;if(this._ensureModal(),!this._modal||!this._video)return;const i=t?.playlist&&"object"==typeof t.playlist?t.playlist:null;if(this._labels=t?.labels&&"object"==typeof t.labels?t.labels:{},i?.tracks?.length){this._playlist=i.tracks;const t=this._playlist.findIndex(t=>String(t.src||"").trim()===e);this._currentIndex=t>=0?t:Number(i.currentIndex||0)}else this._playlist=[{src:e,title:String(t.title||"").trim()}],this._currentIndex=0;const s=String(t.defaultTitle||"").trim(),r=String(t.title||"").trim();this._title.textContent=r||s,this._syncNavigation(),this._video.src=e,this._video.load(),this._modal.show(),this._video.play().catch(()=>{})}close(){this._modal&&(this._modal.hide(),this._stop())}_ensureModal(){this._modal&&this._root||this._initModal()}_initModal(){const t={centered:!0,dismiss:!0,backdrop:!0,keyboard:!0,sizes:{width:"fit-content"},animation:{enable:!1}},e=document.getElementById(this._modalId);if(e)return this._root=e,this._modal=V.getOrCreateInstance(e,t),this._bindElements(e),void this._bindEvents(e);this._modal=V.build(this._modalId,t,t=>{const e=t._element;this._root=e,e.classList.add("vg-filepreview-video-modal");const i=e.querySelector(".vg-modal-body"),s=e.querySelector(".vg-modal-content");if(!i||!s)return;i.classList.add("vg-filepreview-image-modal__body"),i.innerHTML="";let r=e.querySelector(".vg-modal-header");r||(r=document.createElement("div"),r.className="vg-modal-header",s.prepend(r)),this._title=document.createElement("div"),this._title.className="vg-modal-title",this._title.textContent="";const n=document.createElement("div");n.className="vg-filepreview-video-modal__navigation",this._prevButton=document.createElement("button"),this._prevButton.type="button",this._prevButton.className="vg-filepreview-video-modal__nav-btn",this._prevButton.addEventListener("click",()=>this._goPrev()),this._nextButton=document.createElement("button"),this._nextButton.type="button",this._nextButton.className="vg-filepreview-video-modal__nav-btn",this._nextButton.addEventListener("click",()=>this._goNext()),n.appendChild(this._prevButton),n.appendChild(this._nextButton),this._video=document.createElement("video"),this._video.className="vg-filepreview-video-modal__video",this._video.controls=!0,this._video.preload="metadata",this._video.playsInline=!0,this._video.addEventListener("ended",()=>this._goNext(!0)),r.appendChild(this._title),i.appendChild(this._video),this._bindEvents(e)})}_bindElements(t){this._title=t.querySelector(".vg-filepreview-video-modal__title"),this._video=t.querySelector(".vg-filepreview-video-modal__video")}_bindEvents(t){t&&!t.hasAttribute("data-vg-filepreview-video-bind")&&(t.setAttribute("data-vg-filepreview-video-bind","true"),document.addEventListener("keydown",this._onKeyDown),t.addEventListener("vg.modal.hidden",()=>{this._stop(),this._destroyModal()}))}_stop(){this._video&&(this._video.pause(),this._video.currentTime=0)}_destroyModal(){document.removeEventListener("keydown",this._onKeyDown),this._modal&&"function"==typeof this._modal.dispose&&this._modal.dispose(),this._root&&this._root.parentNode&&this._root.parentNode.removeChild(this._root),this._root=null,this._modal=null,this._title=null,this._prevButton=null,this._nextButton=null,this._video=null,this._playlist=[],this._currentIndex=-1,this._labels={}}_syncNavigation(){if(!this._prevButton||!this._nextButton)return;this._prevButton.textContent=this._labels.prev||"",this._nextButton.textContent=this._labels.next||"";const t=this._playlist.length>1;this._prevButton.disabled=!t,this._nextButton.disabled=!t}_goPrev(){this._playlist.length&&(this._currentIndex=this._currentIndex<=0?this._playlist.length-1:this._currentIndex-1,this._openCurrentTrack())}_goNext(t=!1){this._playlist.length&&(1!==this._playlist.length||t)&&(this._currentIndex=(this._currentIndex+1)%this._playlist.length,this._openCurrentTrack())}_openCurrentTrack(){const t=this._playlist[this._currentIndex];t?.src&&this.open({src:t.src,title:t.title||"",defaultTitle:t.title||"",playlist:{tracks:this._playlist,currentIndex:this._currentIndex},labels:this._labels})}_handleHotkeys(t){if(!this._root||!this._root.classList.contains("show"))return;const e=String(t?.target?.tagName||"").toUpperCase();["INPUT","TEXTAREA","SELECT"].includes(e)||("ArrowLeft"===t.key&&(t.preventDefault(),this._goPrev()),"ArrowRight"===t.key&&(t.preventDefault(),this._goNext()))}}const ni=ri,ai=t=>{const e=t?.getAttribute("data-vg-filepreview")||"";return String(e).trim()},oi=t=>{try{return new URL(t,window.location.origin).href}catch{return""}},li=(t,e="")=>{const i=t?.querySelector(".name"),s=String(i?.textContent||"").trim();if(s)return s;const r=String(e).split("/").pop()||"";return decodeURIComponent(r)},di=t=>{const e=t?.querySelector(".original_name");return String(e?.textContent||"").trim()},hi=new Set([".mp4",".webm",".mov",".mkv",".avi",".m4v"]),ci=class{constructor(){this.name="video",this._modal=ni.getInstance()}canRender(t={}){const e=String(t?.fileMeta?.ext||"").toLowerCase();return hi.has(e)}render(t={}){const e=t?.previewContainer,i=Boolean(t?.ui?.nameOnly),s=t?.i18n,r=t?.fileUrl?.href||t?.filePath||"";if(!r)return!1;const n=((t,e=()=>!0)=>{const i=Array.from(document.querySelectorAll('[data-vg-filepreview][data-vg-filepreview-valid="true"]')).map(t=>{const e=ai(t),i=oi(e),s=(t=>{if(!t)return"";const e=String(t).split("#")[0].split("?")[0].split("/").pop()||"";return e.includes(".")?`.${String(e.split(".").pop()||"").toLowerCase()}`:""})(e);return{element:t,path:e,src:i,ext:s,title:li(t,e),subtitle:di(t)}}).filter(t=>t.src&&e(t.ext)),s=oi(ai(t)),r=i.findIndex(t=>t.src===s);return{tracks:i,currentIndex:r>=0?r:0}})(t?.element,t=>hi.has(t)),a={prev:s?.button("prev")||"",next:s?.button("next")||""},o=e=>{e&&e.preventDefault(),this._modal.open({src:r,title:t?.fileMeta?.name||s?.message("video_title")||"",defaultTitle:s?.message("video_title")||"",playlist:n,labels:a})},l=t?.element?.querySelector(".name");if(l&&!l.hasAttribute("data-vg-filepreview-video-bind")&&(l.setAttribute("data-vg-filepreview-video-bind","true"),l.classList.add("is-preview-action"),l.addEventListener("click",o)),i)return Boolean(l);if(!e)return!1;const d=document.createElement("button");return d.type="button",d.className="vg-filepreview-video-trigger",d.textContent=s?.button("open_video")||"",d.addEventListener("click",o),e.appendChild(d),!0}};class ui{constructor(){this._modalId="vg-filepreview-zip-modal",this._abortController=null,this._labels={},this._entries=[],this._arrayBuffer=null}static getInstance(){return ui._instance||(ui._instance=new ui),ui._instance}open(t={}){const e=String(t.src||"").trim();if(!e)return;if(this._ensureModal(),!this._modal||!this._content)return;this._labels=t?.labels&&"object"==typeof t.labels?t.labels:{};const i=String(t.defaultTitle||"").trim(),s=String(t.title||"").trim();this._title.textContent=s||i,this._content.innerHTML=`<div class="vg-filepreview-zip-modal__loading">${this._escapeHtml(this._label("loadingArchive"))}</div>`,this._modal.show(),this._loadZipEntries(e)}close(){this._modal&&this._modal.hide()}_ensureModal(){this._modal&&this._root||this._initModal()}_initModal(){const t={centered:!0,dismiss:!0,backdrop:!0,keyboard:!0,sizes:{width:"800px"},animation:{enable:!1}},e=document.getElementById(this._modalId);if(e)return this._root=e,this._modal=V.getOrCreateInstance(e,t),this._bindElements(e),void this._bindLifecycle(e);this._modal=V.build(this._modalId,t,t=>{const e=t._element;this._root=e,e.classList.add("vg-filepreview-zip-modal");const i=e.querySelector(".vg-modal-body"),s=e.querySelector(".vg-modal-content");if(!i||!s)return;i.classList.add("vg-filepreview-image-modal__body"),i.innerHTML="";let r=e.querySelector(".vg-modal-header");r||(r=document.createElement("div"),r.className="vg-modal-header",s.prepend(r)),this._title=document.createElement("div"),this._title.className="vg-modal-title",this._title.textContent="",this._content=document.createElement("div"),this._content.className="vg-filepreview-zip-modal__content",r.appendChild(this._title),i.appendChild(this._content),this._bindLifecycle(e)})}_bindElements(t){this._title=t.querySelector(".vg-filepreview-zip-modal__title"),this._content=t.querySelector(".vg-filepreview-zip-modal__content")}_bindLifecycle(t){t&&!t.hasAttribute("data-vg-filepreview-zip-lifecycle-bind")&&(t.setAttribute("data-vg-filepreview-zip-lifecycle-bind","true"),t.addEventListener("vg.modal.hidden",()=>{this._destroyModal()}))}_loadZipEntries(t){this._abortController&&this._abortController.abort(),this._abortController=new AbortController;const e=ui._cache.get(t);if(e?.entries&&e?.arrayBuffer)return this._entries=e.entries,this._arrayBuffer=e.arrayBuffer,void this._renderEntries(this._entries);fetch(t,{method:"GET",signal:this._abortController.signal}).then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.arrayBuffer()}).then(e=>{const i=this._parseZipEntries(e);this._entries=i,this._arrayBuffer=e,ui._cache.set(t,{entries:i,arrayBuffer:e}),this._renderEntries(i)}).catch(t=>{if("AbortError"!==t?.name&&this._content){const e=this._resolveErrorText(t);this._content.innerHTML=`<div class="vg-filepreview-zip-modal__error">${this._escapeHtml(this._label("cannotOpenArchive"))}: ${this._escapeHtml(e)}</div>`}})}_destroyModal(){this._abortController&&(this._abortController.abort(),this._abortController=null),this._modal&&"function"==typeof this._modal.dispose&&this._modal.dispose(),this._root&&this._root.parentNode&&this._root.parentNode.removeChild(this._root),this._root=null,this._modal=null,this._title=null,this._content=null,this._labels=null,this._entries=[],this._arrayBuffer=null}_parseZipEntries(t){const e=new DataView(t),i=e.byteLength;if(i<22)throw new Error("invalid_zip");const s=this._findEndOfCentralDirectory(e);if(s<0)throw new Error("central_directory_not_found");const r=e.getUint16(s+10,!0),n=e.getUint32(s+16,!0),a=new TextDecoder("utf-8",{fatal:!1}),o=[];let l=n;for(let s=0;s<r&&!(l+46>i)&&33639248===e.getUint32(l,!0);s+=1){const s=e.getUint32(l+20,!0),r=e.getUint32(l+24,!0),n=e.getUint16(l+10,!0),d=e.getUint16(l+28,!0),h=e.getUint16(l+30,!0),c=e.getUint16(l+32,!0),u=e.getUint32(l+42,!0),_=l+46,m=_+d;if(m>i)break;const p=new Uint8Array(t,_,d),g=a.decode(p);o.push({name:g,compressedSize:s,uncompressedSize:r,compressionMethod:n,localHeaderOffset:u,isDirectory:g.endsWith("/")}),l=m+h+c}return o}_findEndOfCentralDirectory(t){const e=Math.max(0,t.byteLength-65557);for(let i=t.byteLength-22;i>=e;i-=1)if(101010256===t.getUint32(i,!0))return i;return-1}_renderEntries(t){if(!this._content)return;if(!t.length)return void(this._content.innerHTML=`<div class="vg-filepreview-zip-modal__empty">${this._escapeHtml(this._label("archiveEmptyUnsupported"))}</div>`);const e=t.map((t,e)=>{const i=t.isDirectory?this._label("typeDir"):this._label("typeFile"),s=t.isDirectory?"-":this._formatSize(t.compressedSize),r=t.isDirectory?"-":this._formatSize(t.uncompressedSize),n=!t.isDirectory&&this._canPreviewEntry(t)?`<button type="button" class="vg-filepreview-zip-modal__entry-btn" data-entry-index="${e}">${this._escapeHtml(this._label("previewEntry"))}</button>`:"-";return`\n<tr>\n\t<td>${e+1}</td>\n\t<td class="name">${this._escapeHtml(t.name)}</td>\n\t<td>${i}</td>\n\t<td>${s}</td>\n\t<td>${r}</td>\n\t<td>${n}</td>\n</tr>`}).join("");this._content.innerHTML=`\n<table class="vg-filepreview-zip-modal__table">\n\t<thead>\n\t\t<tr>\n\t\t\t<th>#</th>\n\t\t\t<th>${this._escapeHtml(this._label("tableName"))}</th>\n\t\t\t<th>${this._escapeHtml(this._label("tableType"))}</th>\n\t\t\t<th>${this._escapeHtml(this._label("tablePacked"))}</th>\n\t\t\t<th>${this._escapeHtml(this._label("tableSize"))}</th>\n\t\t\t<th>${this._escapeHtml(this._label("tablePreview"))}</th>\n\t\t</tr>\n\t</thead>\n\t<tbody>\n\t\t${e}\n\t</tbody>\n</table>`,this._bindEntriesPreview()}_label(t,e=""){const i=this._labels?.[t];return"string"==typeof i&&i.trim()?i:e}_resolveErrorText(t){const e=String(t?.message||"").trim();return e?"invalid_zip"===e?this._label("invalidZip"):"central_directory_not_found"===e?this._label("centralDirectoryNotFound"):e:this._label("unknownError")}_formatSize(t){if(!Number.isFinite(t)||t<0)return"-";const e=["B","KB","MB","GB"];let i=t,s=0;for(;i>=1024&&s<e.length-1;)i/=1024,s+=1;const r=i>=100||0===s?0:2;return`${i.toFixed(r)} ${e[s]}`}_escapeHtml(t){return String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}_bindEntriesPreview(){this._content&&!this._content.hasAttribute("data-vg-filepreview-zip-preview-bind")&&(this._content.setAttribute("data-vg-filepreview-zip-preview-bind","true"),this._content.addEventListener("click",t=>{const e=t.target.closest("[data-entry-index]");if(!e)return;t.preventDefault();const i=Number(e.getAttribute("data-entry-index"));!Number.isFinite(i)||i<0||i>=this._entries.length||this._previewEntry(i)}))}_canPreviewEntry(t){if(!t||t.isDirectory||!t.name)return!1;const e=this._extractExtension(t.name);return new Set([".txt",".md",".json",".xml",".yml",".yaml",".csv",".log",".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp"]).has(e)}async _previewEntry(t){if(!this._content)return;const e=this._entries[t];if(!e||!this._canPreviewEntry(e))return;let i=this._content.querySelector(".vg-filepreview-zip-modal__entry-preview");i||(i=document.createElement("div"),i.className="vg-filepreview-zip-modal__entry-preview",this._content.appendChild(i)),i.innerHTML=`<div class="vg-filepreview-zip-modal__entry-preview-loading">${this._escapeHtml(this._label("loadingEntry"))}</div>`;try{const t=await this._extractEntryBytes(e),s=this._extractExtension(e.name);if(this._isImageExtension(s)){const r=new Blob([t.buffer],{type:this._mimeByExtension(s)}),n=URL.createObjectURL(r);return i.innerHTML=`\n<div class="vg-filepreview-zip-modal__entry-preview-title">${this._escapeHtml(e.name)}</div>\n<img class="vg-filepreview-zip-modal__entry-preview-image" src="${n}" alt="${this._escapeHtml(e.name)}" />`,void setTimeout(()=>URL.revokeObjectURL(n),2e3)}const r=new TextDecoder("utf-8",{fatal:!1}).decode(t),n=this._escapeHtml(r||this._label("emptyFileInArchive"));i.innerHTML=`\n<div class="vg-filepreview-zip-modal__entry-preview-title">${this._escapeHtml(e.name)}</div>\n<pre class="vg-filepreview-zip-modal__entry-preview-text">${n}</pre>`}catch(t){i.innerHTML=`<div class="vg-filepreview-zip-modal__entry-preview-error">${this._escapeHtml(this._label("cannotPreviewEntry"))}: ${this._escapeHtml(t?.message||this._label("unknownError"))}</div>`}}async _extractEntryBytes(t){if(!this._arrayBuffer)throw new Error(this._label("archiveBufferMissing"));const e=new DataView(this._arrayBuffer),i=Number(t.localHeaderOffset||0);if(i+30>e.byteLength)throw new Error(this._label("entryCorrupted"));if(67324752!==e.getUint32(i,!0))throw new Error(this._label("entryCorrupted"));const s=i+30+e.getUint16(i+26,!0)+e.getUint16(i+28,!0),r=s+Number(t.compressedSize||0);if(r>e.byteLength)throw new Error(this._label("entryCorrupted"));const n=new Uint8Array(this._arrayBuffer.slice(s,r)),a=Number(t.compressionMethod||0);if(0===a)return n;if(8===a){if("undefined"==typeof DecompressionStream)throw new Error(this._label("deflateNotSupported"));const t=new Blob([n]).stream().pipeThrough(new DecompressionStream("deflate-raw")),e=await new Response(t).arrayBuffer();return new Uint8Array(e)}throw new Error(this._label("compressionNotSupported"))}_extractExtension(t){const e=String(t||"").toLowerCase().split("/").pop()||"";return e.includes(".")?`.${e.split(".").pop()||""}`:""}_isImageExtension(t){return new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp"]).has(t)}_mimeByExtension(t){return{".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".svg":"image/svg+xml",".bmp":"image/bmp"}[t]||"application/octet-stream"}}ui._cache=new Map;const _i=ui,mi=new Set([".zip"]),pi=class{constructor(){this.name="zip",this._modal=_i.getInstance()}canRender(t={}){const e=String(t?.fileMeta?.ext||"").toLowerCase();return mi.has(e)}render(t={}){const e=t?.previewContainer,i=Boolean(t?.ui?.nameOnly),s=t?.i18n,r=t?.fileUrl?.href||t?.filePath||"";if(!r)return!1;const n=e=>{e&&e.preventDefault(),this._modal.open({src:r,title:t?.fileMeta?.name||s?.message("archive_title")||"",defaultTitle:s?.message("archive_title")||"",labels:{loadingArchive:s?.message("loading_archive")||"",cannotOpenArchive:s?.message("cannot_open_archive")||"",unknownError:s?.message("unknown_error")||"",invalidZip:s?.message("invalid_zip")||"",centralDirectoryNotFound:s?.message("central_directory_not_found")||"",archiveEmptyUnsupported:s?.message("archive_empty_unsupported")||"",typeDir:s?.message("archive_type_dir")||"",typeFile:s?.message("archive_type_file")||"",tableName:s?.message("archive_table_name")||"",tableType:s?.message("archive_table_type")||"",tablePacked:s?.message("archive_table_packed")||"",tableSize:s?.message("archive_table_size")||"",tablePreview:s?.message("archive_table_preview")||"",previewEntry:s?.button("preview")||"",loadingEntry:s?.message("loading_entry")||"",cannotPreviewEntry:s?.message("cannot_preview_entry")||"",deflateNotSupported:s?.message("deflate_not_supported")||"",compressionNotSupported:s?.message("compression_not_supported")||"",entryCorrupted:s?.message("entry_corrupted")||"",archiveBufferMissing:s?.message("archive_buffer_missing")||"",emptyFileInArchive:s?.message("empty_file")||""}})},a=t?.element?.querySelector(".name");if(a&&!a.hasAttribute("data-vg-filepreview-zip-bind")&&(a.setAttribute("data-vg-filepreview-zip-bind","true"),a.classList.add("is-preview-action"),a.addEventListener("click",n)),i)return Boolean(a);if(!e)return!1;const o=document.createElement("button");return o.type="button",o.className="vg-filepreview-zip-trigger",o.textContent=s?.button("open_archive")||"",o.addEventListener("click",n),e.appendChild(o),!0}},gi=new Set(["ru","en"]),fi=(t,e="ru")=>{const i=String(t||"").trim().toLowerCase();if(!i)return e;const s=i.split("-")[0];return gi.has(s)?s:e};class bi extends t.A{constructor(t,e={}){super(t,e),this._params=this._getParams(t,(0,r._v)({validate:!0,lang:"ru",ui:{nameOnly:!1},preview:{audio:{enable:!0},video:{enable:!0},image:{enable:!0},archive:{enable:!0},text:{enable:!0},office:{enable:!0},pdf:{enable:!0}}},e)),this._filePath="",this._fileUrl=null,this._isValid=!1,this._fileMeta={},this._fields=[],this._editableFields={},this._helper=new ke(this._element),this._renderers=[new Ue,new ci,new Qe,new Ge,new pi,new si],this._lang=((t,e)=>{const i=fi(t,"");if(i)return i;const s=fi(e?.getAttribute("lang"),"");if(s)return s;const r=fi(e?.closest("[lang]")?.getAttribute("lang"),"");if(r)return r;const n=fi(document?.documentElement?.getAttribute("lang"),"");return n||(fi(window?.navigator?.language,"")||"ru")})(this._params.lang,this._element),this._i18n=((t="ru")=>{const e=fi(t,"ru"),i=tt(e,"filepreview")||{},s=et(e,"filepreview")||{};return{lang:e,message:(t,e="")=>i[t]||e,button:(t,e="")=>s[t]||e}})(this._lang),this._inlineAudio=null,this._inlineAudioSrc="",this._inlineAudioButton=null,this._inlineAudioIcon=null,this._inlineAudioContainer=null,this._audioMetaPromise=null,this._audioMetaApplied=!1,this._audioCoverObjectUrl="",this._videoMetaPromise=null,this._videoMetaApplied=!1,this._videoCoverObjectUrl="",this._imageModal=null,this.init()}static get NAME(){return"filepreview"}static get NAME_KEY(){return"vg.filepreview"}get filePath(){return this._filePath}get fileUrl(){return this._fileUrl}get isValid(){return this._isValid}get fileMeta(){return this._fileMeta}get fields(){return this._fields}get editableFields(){return this._editableFields}init(){const t=this._helper.getFilePath();if(this._filePath=t,this._params.validate){const e=this._helper.validateFilePath(t);this._isValid=e.isValid,this._fileUrl=e.fileUrl}else this._isValid=!0,this._fileUrl=null;return this._helper.syncState(this._isValid),!!this._isValid&&(this._fileMeta=this._helper.getFileMeta(this._filePath),this.preview())}preview(){return this._setState("loading"),this._fields=this._helper.getFields(),this._editableFields=this._helper.resolveEditableFields(this._fields),this._helper.syncEditableFields(this._editableFields),this._renderIcon(),this._renderTextFields(),this._renderDownloadField(),this._enrichVideoMetadata(),this._renderPreview(),this._editableFields}_renderIcon(){const t=this._editableFields.icon;if(!t)return;const e=this._getImageIconSrc();if(e){t.innerHTML="";const i=document.createElement("img");return i.src=e,i.alt=this._fileMeta?.originalName||this._fileMeta?.name||"",i.className="vg-filepreview-icon-image",i.loading="lazy",i.addEventListener("error",()=>{this._renderDefaultIcon(t)}),this._isPreviewGroupEnabled("image")&&this._bindIconImageToModal(i,e),void t.appendChild(i)}this._renderDefaultIcon(t)}_renderTextFields(){const t=this._getDisplayName(),e=this._getFileName(),i=this._hasDataDrivenDisplayName(),s=this._editableFields.name;s&&(this._isAudioFile()&&this._isPreviewGroupEnabled("audio")?(this._renderAudioNameField(s),this._element.setAttribute("data-vg-filepreview-renderer","audio")):t&&(s.classList.remove("vg-filepreview-audio-inline"),s.textContent=t,this._applyNameClampStyles(s)));const r=this._editableFields.ext;r&&this._fileMeta.ext&&(r.textContent=this._fileMeta.ext);const n=this._editableFields.size;n&&this._fileMeta.sizeText&&(n.textContent=this._fileMeta.sizeText);const a=this._editableFields.original_name;if(a)return i&&e?(a.textContent=e,void this._applyNameClampStyles(a)):this._fileMeta.originalName?(a.textContent=this._fileMeta.originalName,void this._applyNameClampStyles(a)):void(this._fileMeta.isMedia&&(a.textContent=""))}_renderAudioNameField(t){const e=this._getDisplayName();if(!e)return;t.innerHTML="",t.classList.add("vg-filepreview-audio-inline");const i=document.createElement("button");i.type="button",i.className="vg-filepreview-audio-inline__toggle",i.setAttribute("aria-label","Play/Pause");const s=document.createElement("span");s.className="vg-filepreview-audio-inline__icon",i.appendChild(s);const r=document.createElement("span");r.className="vg-filepreview-audio-inline__name",r.textContent=e,this._applyNameClampStyles(r),r.addEventListener("click",t=>{t.preventDefault(),t.stopPropagation(),this._toggleInlineAudio()}),i.addEventListener("click",t=>{t.preventDefault(),t.stopPropagation(),this._toggleInlineAudio()}),t.appendChild(i),t.appendChild(r),this._inlineAudioButton=i,this._inlineAudioIcon=s;const n=this._element?.classList?.contains("file")?this._element:this._element?.closest?.(".file");this._inlineAudioContainer=n||this._element||t,this._setInlineAudioProgress(0);const a=bi._activeAudioOwner===this&&this._inlineAudio&&!this._inlineAudio.paused;this._syncInlineAudioIcon(a),this._enrichAudioMetadata(r)}_toggleInlineAudio(){if(!this._isPreviewGroupEnabled("audio"))return;const t=this._fileUrl?.href||this._filePath||"";t&&this._inlineAudioButton&&(bi._activeAudioOwner&&bi._activeAudioOwner!==this&&bi._activeAudioOwner._stopInlineAudio(),this._inlineAudio&&this._inlineAudioSrc===t||(this._stopInlineAudio(),this._inlineAudio=new Audio(t),this._inlineAudioSrc=t,this._inlineAudio.addEventListener("ended",()=>{this._syncInlineAudioIcon(!1),this._setInlineAudioProgress(0)}),this._inlineAudio.addEventListener("timeupdate",()=>this._syncInlineAudioProgress()),this._inlineAudio.addEventListener("loadedmetadata",()=>this._syncInlineAudioProgress())),this._inlineAudio.paused?this._inlineAudio.play().then(()=>{bi._activeAudioOwner=this,this._syncInlineAudioIcon(!0)}).catch(()=>{this._syncInlineAudioIcon(!1)}):(this._inlineAudio.pause(),this._syncInlineAudioIcon(!1),bi._activeAudioOwner===this&&(bi._activeAudioOwner=null)))}_stopInlineAudio(){if(!this._inlineAudio)return this._syncInlineAudioIcon(!1),void this._setInlineAudioProgress(0);this._inlineAudio.pause(),this._inlineAudio.currentTime=0,this._syncInlineAudioIcon(!1),this._setInlineAudioProgress(0),bi._activeAudioOwner===this&&(bi._activeAudioOwner=null)}_syncInlineAudioIcon(t){this._inlineAudioIcon&&(this._inlineAudioIcon.innerHTML=t?(0,f.z)("pause")||"":(0,f.z)("play")||"")}_syncInlineAudioProgress(){if(!this._inlineAudio)return void this._setInlineAudioProgress(0);const t=Number(this._inlineAudio.duration||0),e=Number(this._inlineAudio.currentTime||0);if(!t||!Number.isFinite(t)||t<=0)return void this._setInlineAudioProgress(0);const i=Math.max(0,Math.min(100,e/t*100));this._setInlineAudioProgress(i)}_setInlineAudioProgress(t){if(!this._inlineAudioContainer)return;const e=Math.max(0,Math.min(100,Number(t)||0));this._inlineAudioContainer.style.setProperty("--vg-filepreview-audio-inline-progress",`${e}%`)}_renderDownloadField(){const t=this._editableFields.download;if(!t)return;const e=this._i18n?.button("download")||"",i=(0,f.z)("download")||"",s=String(t.tagName||"").toUpperCase();let r=null;if("A"===s||"BUTTON"===s?r=t:(r=t.querySelector("[data-vg-filepreview-download-control]"),r||(r=document.createElement("button"),r.type="button",t.innerHTML="",t.appendChild(r))),r.classList.add("vg-filepreview-download-trigger"),r.setAttribute("data-vg-filepreview-download-control","true"),"A"===s&&r===t?(r.setAttribute("href",this._fileUrl?.href||this._filePath||"#"),this._fileMeta?.name&&r.setAttribute("download",this._fileMeta.name)):"BUTTON"===String(r.tagName||"").toUpperCase()&&r.setAttribute("type","button"),!r.hasAttribute("data-vg-filepreview-download-content-init")){if(r.setAttribute("data-vg-filepreview-download-content-init","true"),r.innerHTML="",i){const t=document.createElement("span");t.className="vg-filepreview-download-trigger__icon",t.innerHTML=i,r.appendChild(t)}if(e){const t=document.createElement("span");t.className="vg-filepreview-download-trigger__text",t.textContent=e,r.appendChild(t)}}r.hasAttribute("data-vg-filepreview-download-bind")||(r.setAttribute("data-vg-filepreview-download-bind","true"),r.addEventListener("click",t=>{t.preventDefault(),this._downloadFile()}))}_downloadFile(){const t=this._fileUrl?.href||this._filePath||"";if(!t)return;const e=this._fileMeta?.originalName||this._fileMeta?.name||"file";fetch(t,{method:"GET",credentials:"same-origin"}).then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.blob()}).then(t=>{const i=URL.createObjectURL(t);this._downloadByLink(i,e),setTimeout(()=>URL.revokeObjectURL(i),1e3)}).catch(()=>{this._downloadByLink(t,e)})}_downloadByLink(t,e){const i=document.createElement("a");i.href=t,i.style.display="none",i.rel="noopener noreferrer",e&&i.setAttribute("download",e),document.body.appendChild(i),i.click(),document.body.removeChild(i)}_enrichAudioMetadata(t=null){if(this._audioMetaApplied||this._audioMetaPromise||!this._isAudioFile())return;const e=this._fileUrl?.href||this._filePath||"";e&&(this._audioMetaPromise=this._createAudioFileFromSource(e).then(t=>t?$e(t):null).then(e=>{if(!e)return!1;let i=!1;const s=String(e.title||"").trim();if(s){this._element.setAttribute("data-vg-filepreview-display-name",s),t&&(t.textContent=s,this._applyNameClampStyles(t));const e=this._editableFields?.original_name;e&&(e.textContent=this._getFileName(),this._applyNameClampStyles(e)),i=!0}if(e.pictureBlob instanceof Blob&&this._editableFields?.icon){this._audioCoverObjectUrl&&URL.revokeObjectURL(this._audioCoverObjectUrl),this._audioCoverObjectUrl=URL.createObjectURL(e.pictureBlob);const t=this._editableFields.icon;t.innerHTML="";const r=document.createElement("img");r.src=this._audioCoverObjectUrl,r.alt=s||this._fileMeta?.originalName||this._fileMeta?.name||"",r.className="vg-filepreview-icon-image",r.loading="lazy",r.addEventListener("error",()=>{this._renderDefaultIcon(t)}),this._bindIconImageToModal(r,this._audioCoverObjectUrl,s),t.appendChild(r),i=!0}return this._audioMetaApplied=!0,i}).catch(()=>!1).finally(()=>{this._audioMetaPromise=null}))}_enrichVideoMetadata(){if(!this._isPreviewGroupEnabled("video"))return;if(this._videoMetaApplied||this._videoMetaPromise||!this._isVideoFile())return;const t=this._fileUrl?.href||this._filePath||"";t&&(this._videoMetaPromise=this._createMediaFileFromSource(t,this._fileMeta?.originalName||this._fileMeta?.name||"video.mp4","video/mp4").then(t=>t?(async t=>{if(!(t instanceof File))return null;const e=(t=>{const e=String(t?.name||"").toLowerCase(),i=e.lastIndexOf(".");return i<0||i>=e.length-1?"":e.slice(i+1)})(t);if(!String(t.type||"").toLowerCase().startsWith("video/")&&!Be.has(e))return null;if(!t.size)return null;let i="";try{i=URL.createObjectURL(t);const e=document.createElement("video");e.preload="metadata",e.muted=!0,e.playsInline=!0,e.crossOrigin="anonymous",e.src=i,await(s=e,r="loadedmetadata",new Promise((t,e)=>{const i=()=>{a(),t(!0)},n=()=>{a(),e(new Error(r))},a=()=>{s.removeEventListener(r,i),s.removeEventListener("error",n)};s.addEventListener(r,i,{once:!0}),s.addEventListener("error",n,{once:!0})}));const n=Number(e.videoWidth||0),a=Number(e.videoHeight||0),o=Number(e.duration||0);if(!(n&&a&&Number.isFinite(n)&&Number.isFinite(a)))return{duration:Number.isFinite(o)?o:0,width:0,height:0};const l=o>1?Math.min(1,Math.max(0,o/2)):0;await((t,e)=>new Promise((i,s)=>{const r=()=>{a(),i(!0)},n=()=>{a(),s(new Error("seek"))},a=()=>{t.removeEventListener("seeked",r),t.removeEventListener("error",n)};t.addEventListener("seeked",r,{once:!0}),t.addEventListener("error",n,{once:!0}),t.currentTime=e}))(e,l);const d=document.createElement("canvas");d.width=n,d.height=a;const h=d.getContext("2d");if(!h)return{duration:Number.isFinite(o)?o:0,width:n,height:a};h.drawImage(e,0,0,n,a);const c=await((t,e="image/jpeg",i=.92)=>new Promise(s=>{t.toBlob(t=>s(t||null),e,i)}))(d,"image/jpeg",.92);return{duration:Number.isFinite(o)?o:0,width:n,height:a,posterBlob:c||null}}catch{return null}finally{i&&URL.revokeObjectURL(i)}var s,r})(t):null).then(t=>{if(!(t&&t.posterBlob instanceof Blob&&this._editableFields?.icon))return!1;this._videoCoverObjectUrl&&URL.revokeObjectURL(this._videoCoverObjectUrl),this._videoCoverObjectUrl=URL.createObjectURL(t.posterBlob);const e=this._editableFields.icon;e.innerHTML="";const i=document.createElement("img");return i.src=this._videoCoverObjectUrl,i.alt=this._fileMeta?.originalName||this._fileMeta?.name||"",i.className="vg-filepreview-icon-image",i.loading="lazy",i.addEventListener("error",()=>{this._renderDefaultIcon(e)}),this._isPreviewGroupEnabled("video")&&this._bindIconImageToModal(i,this._videoCoverObjectUrl,i.alt),e.appendChild(i),this._videoMetaApplied=!0,!0}).catch(()=>!1).finally(()=>{this._videoMetaPromise=null}))}async _createAudioFileFromSource(t=""){const e=this._fileMeta?.originalName||this._fileMeta?.name||"audio.mp3";return this._createMediaFileFromSource(t,e,"audio/mpeg")}async _createMediaFileFromSource(t="",e="file",i="application/octet-stream"){try{const s=await fetch(t,{method:"GET",credentials:"same-origin"});if(!s.ok)return null;const r=await s.blob();return r&&r.size?new File([r],e,{type:r.type||i,lastModified:Date.now()}):null}catch{return null}}_bindIconImageToModal(t,e="",i=""){if(!t)return;const s=String(e||"").trim();if(!s)return;const r=String(i||this._fileMeta?.originalName||this._fileMeta?.name||"").trim();t.setAttribute("data-vg-filepreview-image-modal-src",s),t.setAttribute("data-vg-filepreview-image-modal-title",r),t.classList.add("is-preview-action"),t.hasAttribute("data-vg-filepreview-image-modal-bind")||(t.setAttribute("data-vg-filepreview-image-modal-bind","true"),t.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation();const i=String(t.getAttribute("data-vg-filepreview-image-modal-src")||"").trim();if(!i)return;const s=String(t.getAttribute("data-vg-filepreview-image-modal-title")||"").trim();this._imageModal||(this._imageModal=Ve.getInstance()),this._imageModal.open({src:i,title:s,defaultTitle:this._i18n?.message("image_title")||""})}))}_renderPreview(){const t=Boolean(this._params?.ui?.nameOnly)||!this._shouldRenderPreviewForCurrentFile(),e=this._resolvePreviewContainer({autoCreate:!t});if(!e&&!t)return void this._setState("error");e&&(e.innerHTML="");const i={element:this._element,filePath:this._filePath,fileUrl:this._fileUrl,fileMeta:this._fileMeta,previewContainer:e,lang:this._lang,i18n:this._i18n,ui:this._params?.ui||{}};let s=!1;if(this._renderers.forEach(t=>{if(!s&&"function"==typeof t?.canRender&&"function"==typeof t?.render&&this._isRendererEnabled(t?.name)&&t.canRender(i)){try{s=!0===t.render(i)}catch(t){s=!1}s&&this._element.setAttribute("data-vg-filepreview-renderer",t.name||"custom")}}),!s&&!t)return this._element.removeAttribute("data-vg-filepreview-renderer"),void this._setState("empty");this._setState("ready")}_resolvePreviewContainer(t={}){if(Object.prototype.hasOwnProperty.call(t,"autoCreate")&&!Boolean(t.autoCreate)){const t=this._editableFields.preview||this._element.querySelector('[data-vg-filepreview-slot="preview"]');return t&&(t.innerHTML="",t.classList.remove("preview"),t.setAttribute("hidden","hidden"),t.setAttribute("aria-hidden","true")),null}const e=this._editableFields.preview;if(e)return e.classList.add("preview"),e.removeAttribute("hidden"),e.removeAttribute("aria-hidden"),e.setAttribute("data-vg-filepreview-slot","preview"),e;const i=this._element.querySelector('[data-vg-filepreview-slot="preview"]');if(i)return i.classList.add("preview"),i.removeAttribute("hidden"),i.removeAttribute("aria-hidden"),this._editableFields.preview=i,i;const s=document.createElement("div");return s.className="preview",s.setAttribute("data-vg-filepreview-slot","preview"),this._element.appendChild(s),this._editableFields.preview=s,s}_shouldRenderPreviewForCurrentFile(){return this._isAudioFile()?this._isPreviewGroupEnabled("audio"):".pdf"===String(this._fileMeta?.ext||"").toLowerCase()?this._isPreviewGroupEnabled("pdf"):this._isVideoFile()?this._isPreviewGroupEnabled("video"):!this._isImageFile()&&(this._isOfficeFile()?this._isPreviewGroupEnabled("office"):this._isArchiveFile()?this._isPreviewGroupEnabled("archive"):!!this._isTextFile()&&this._isPreviewGroupEnabled("text"))}_isRendererEnabled(t=""){const e={image:"image",video:"video",pdf:"pdf",office:"office",zip:"archive",text:"text"}[String(t||"").trim()];return!e||this._isPreviewGroupEnabled(e)}_isPreviewGroupEnabled(t=""){const e=String(t||"").trim();if(!e)return!1;const i=this._params?.preview;if(!i||"object"!=typeof i||Array.isArray(i))return!1;if(!Object.prototype.hasOwnProperty.call(i,e))return!1;const s=i[e];return"boolean"==typeof s?s:!(!s||"object"!=typeof s||Array.isArray(s))&&!!Object.prototype.hasOwnProperty.call(s,"enable")&&Boolean(s.enable)}_getImageIconSrc(){const t=String(this._fileMeta?.ext||"").toLowerCase();return[".jpg",".jpeg",".png",".gif",".webp",".bmp",".svg",".avif",".ico"].includes(t)&&(this._fileUrl?.href||this._filePath)||""}_isImageFile(){const t=String(this._fileMeta?.ext||"").toLowerCase();return[".jpg",".jpeg",".png",".gif",".webp",".bmp",".svg",".avif",".ico",".tif",".tiff",".heic",".heif"].includes(t)}_isOfficeFile(){const t=String(this._fileMeta?.ext||"").toLowerCase();return[".doc",".docx",".xls",".xlsx",".ppt",".pptx",".odt",".ods",".odp"].includes(t)}_isArchiveFile(){const t=String(this._fileMeta?.ext||"").toLowerCase();return[".zip"].includes(t)}_isTextFile(){const t=String(this._fileMeta?.ext||"").toLowerCase();return[".txt",".md",".csv",".json",".xml",".yml",".yaml",".log",".ini",".conf",".env"].includes(t)}_renderDefaultIcon(t){const e=(0,f.z)(this._filePath);t.innerHTML=e||""}_applyNameClampStyles(t){t&&t.style&&(t.style.minWidth="60px",t.style.maxWidth="100%",t.style.overflow="hidden",t.style.textOverflow="ellipsis",t.style.whiteSpace="nowrap")}static init(t,e={}){return bi.getOrCreateInstance(t,e)}static stopActiveInlineAudio(){const t=bi._activeAudioOwner;t&&"function"==typeof t._stopInlineAudio&&t._stopInlineAudio(),bi._activeAudioOwner=null}static stopActiveInlineAudioIfDetached(t=[]){const e=bi._activeAudioOwner;e&&e._element&&Array.isArray(t)&&t.length&&t.some(t=>!(!t||"function"!=typeof t.contains)&&(t===e._element||t.contains(e._element)))&&(e._stopInlineAudio(),bi._activeAudioOwner=null)}_setState(t=""){const e=String(t||"").trim();e?this._element.setAttribute("data-vg-filepreview-state",e):this._element.removeAttribute("data-vg-filepreview-state")}_isAudioFile(){const t=String(this._fileMeta?.ext||"").toLowerCase();return[".mp3",".wav",".ogg",".flac",".aac",".m4a",".opus",".wma"].includes(t)}_isVideoFile(){const t=String(this._fileMeta?.ext||"").toLowerCase();return[".mp4",".webm",".mov",".mkv",".avi",".m4v",".ogv"].includes(t)}_getFileName(){return String(this._fileMeta?.originalName||this._fileMeta?.name||"").trim()}_getDataDisplayName(){return String(this._element?.getAttribute("data-name")||"").trim()||String(this._element?.getAttribute("data-vg-filepreview-display-name")||"").trim()}_hasDataDrivenDisplayName(){const t=this._getDataDisplayName();if(!t)return!1;const e=this._getFileName();return!e||t!==e}_getDisplayName(){return this._getDataDisplayName()||this._getFileName()}}const vi=bi;class yi extends t.A{constructor(t,e={},i={}){super(t,e),this._params=this._getParams(t,(0,r._v)(i,e)),this._params.init="init"in e&&e.init||this._params.init,this._params.init?(this._isInitialized=!0,this._tpl=(0,h.A)("dom"),this._files=[],this._errors=new Set,this._fileObjectUrls=new Map,this._audioMetaPromises=new Map,this._nodes={stat:s.A.find(`.${this._getClass("stat")}`,this._element),info:s.A.find(`.${this._getClass("info")}`,this._element),drop:s.A.find(`.${this._getClass("drop")}`,this._element)},this.template='<li data-file="" class="file"><div class="file-image"></div><div class="file-info"></div><div class="file-remove"></div></li>',this._onNativeInputChange=t=>this.change(t?.target),this._init()):this._isInitialized=!1}_getClass(t){return{stat:"vg-files-stat","stat-progress":"vg-files-stat-progress",info:"vg-files-info","info-list":"vg-files-info--list",drop:"vg-files-drop","drop-list":"vg-files-drop--list","drop-message":"vg-files-drop-message",errors:"vg-files-errors"}[t]||""}_applyRenameToIncomingFiles(t){const e=this._params?.rename;return e&&Array.isArray(t)&&t.length?t.map((t,i)=>{if(!t)return t;let s=null;if("function"==typeof e?s=e(t,i):!0===e&&(s=this._generateRenamedFileName(t?.name||"file",i)),!s||"string"!=typeof s||""===s.trim())return t;if(t.name===s)return t;try{const e=new File([t],s,{type:t.type||"application/octet-stream",lastModified:t.lastModified||Date.now()});return["id","src","image"].forEach(i=>{void 0!==t[i]&&Object.defineProperty(e,i,{value:t[i],writable:!0,enumerable:!0})}),e}catch(e){return t}}):t}_generateRenamedFileName(t,e){const i=String(t||"file"),s=i.lastIndexOf("."),r=s>0&&s<i.length-1,n=r?i.slice(0,s):i,a=r?i.slice(s+1):"",o=Date.now(),l=e+1,d=n.trim()||"file";return a?`${d}_${o}_${l}.${a}`:`${d}_${o}_${l}`}_init(){this._isInitialized&&(1===Number(this._params?.limits?.count)?(this._preventOriginalInputFromSubmit(!0),this._cleanupFakeInputs()):this._preventOriginalInputFromSubmit(),this._addEventListener())}change(t=null){const e=t?.files;if(!e?.length)return;const i=this._applyRenameToIncomingFiles(Array.from(e)),s=1===Number(this._params?.limits?.count);if(Boolean(this._params?.replace)&&s)return this.clear(!1),this.append(i,!0),this._revokeUrls(),this._cleanupFakeInputs(),this._cleanupErrors(),this._files=this._filterFiles(i),this._params.prepend&&this._files.reverse(),void this.build();this._params.allowed?(this.clear(),this.append(i,!0),this.build()):(this.append(i,!1),this.build())}build(){this._updateStat(),this._params.ajax?(this._render.init()?this._render.init():this._renderUI(this._files),this._renderUI(this._files)):(this._renderUI(this._files),1===Number(this._params?.limits?.count)?this._cleanupFakeInputs():this._generateHiddenInputs(this._files))}append(t,e=!0){const i=this._applyRenameToIncomingFiles(Array.from(t));let s;return s=e?i:this._mergeFilesByOrder(i,this._files,Boolean(this._params.prepend)),this._files=this._filterFiles(s),this._renderErrors(),this._enrichAudioMetadata(this._files),this._files}_mergeFilesByOrder(t=[],e=[],i=!1){const s=i?[...t,...e]:[...e,...t],r=new Set,n=[];return s.forEach(t=>{const e=this._getFileKey(t);r.has(e)||(r.add(e),n.push(t))}),n}_getFileKey(t){return`${t.name}-${t.size}-${t.type}`}_getFileCustomData(t){const e=t?.customData;return!e||"object"!=typeof e||Array.isArray(e)?{}:e}_toDataAttributeKey(t){return t?String(t).replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/[_\s]+/g,"-").replace(/[^a-zA-Z0-9-]/g,"").replace(/-+/g,"-").replace(/^-|-$/g,"").toLowerCase():""}_toDataAttributeValue(t){if(null==t||""===t)return null;if("object"==typeof t)try{return JSON.stringify(t)}catch(e){return String(t)}return t}_buildFileDataAttributes(t,e={}){const i={...e},s=this._getFileCustomData(t);return Object.entries(s).forEach(([t,e])=>{const s=this._toDataAttributeKey(t);if(!s)return;const r=`data-${s}`;if(Object.prototype.hasOwnProperty.call(i,r))return;const n=this._toDataAttributeValue(e);null!==n&&(i[r]=n)}),i}_filterFiles(t){this._errors.clear();const{count:e,sizes:i,total:s}=this._params.limits,r=1024*i*1024,n=1024*s*1024;let a=0;const o=[];for(const i of t){if(e>0&&o.length>=e){this._errors.add("is-count");break}let t=!0;this._params.types.length&&!this._params.types.includes(i.type)&&(this._errors.add("is-types"),t=!1),i.size>r&&(this._errors.add("is-sizes"),t=!1),t&&n>0&&(a+i.size>n?(this._errors.add("is-total-size"),t=!1):a+=i.size),t&&o.push(i)}return o}_getSizes(t,e=!1){const i=e?this._files.reduce((t,e)=>t+e.size,0):t,s=["byte","kilobyte","megabyte","gigabyte"],r=i>0?Math.min(Math.floor(Math.log(i)/Math.log(1024)),s.length-1):0,n=i/Math.pow(1024,r);return new Intl.NumberFormat(this._params.lang,{style:"unit",unit:s[r],unitDisplay:"short",maximumFractionDigits:2}).format(n)}_cleanupErrors(){this._errors.clear();const t=s.A.find(`.${this._getClass("errors")}`,this._element);t&&t.remove()}_renderErrors(){if(!this._errors.size)return;const t=tt(this._params.lang,"files")||this._getFallbackErrors();let e=s.A.find(`.${this._getClass("errors")}`,this._element);e?e.innerHTML="":(e=this._tpl.div({class:this._getClass("errors")}),this._element.prepend(e)),this._errors.forEach(i=>{const s=t[i]||i;e.append(this._tpl.span({class:"error-item"},s))})}_getFallbackErrors(){const{count:t,sizes:e,total:i}=this._params.limits;return{"is-count":`Limit: ${t}`,"is-sizes":`Max size: ${e}MB`,"is-total-size":`Total max size: ${i}MB`,"is-types":`Allowed: ${this._params.types.join(", ")}`}}_renderUI(t){this._nodes.drop?this._renderUIDropList(t):this._nodes.info&&this._renderInfoList(t),this._renderUIStatusDropInfoAjax(this._files)}_parseTemplate(){const t=this._render,e='<li data-file="" class="file"><div class="file-image"></div><div class="file-custom"><div class="file-info"></div><div class="file-remove"></div></div></li>';let i=this.template||e;t&&t.bufferTemplate&&(i=t.bufferTemplate);const s=document.createElement("div");s.innerHTML=i;let r=s.firstElementChild;r||(s.innerHTML=e,r=s.firstElementChild);const n=r.className||"",a=n?n.split(" ").filter(t=>""!==t.trim()):[],o=r.childElementCount,l=[];for(let t=0;t<o;t++)l.push({index:t,element:r.children[t],className:r.children[t].className});return{children:l,template:i,liClasses:a,liClassName:n}}_renderUIDropList(t){if(!this._nodes.drop)return;let i=s.A.find(`.${this._getClass("drop-list")}`,this._nodes.drop);i||(i=this._tpl.ul([],{class:this._getClass("drop-list")}));const r=this._parseTemplate().children,n=this._parseTemplate().liClasses.filter(t=>"file"!==t),a=document.createDocumentFragment();t.forEach(t=>{let e=n;this._params.detach&&e.push("with-remove"),this._params.sortable.enabled&&e.push("with-sortable"),1===this._params.limits.count&&(e.push("single"),t.type.startsWith("image/")?e.push("single-image"):e.push("single-file"));let i=[];r.forEach(e=>{const s=this._renderTemplatePart(e.element,t,null,{isDrop:!0});s&&i.push(s)});const s=this._tpl.li(this._buildFileDataAttributes(t,{"data-name":t.name,"data-size":t.size??0,"data-id":t.id||"",class:"file "+e.join(" ")}),i);a.appendChild(s)}),i.innerHTML="",i.appendChild(a);const o=s.A.find(`.${this._getClass("drop-message")}`,this._nodes.drop);o&&(t.length?e.x.add(o,"has-files"):e.x.remove(o,"has-files"),1===Number(this._params?.limits?.count)&&(t.length?e.x.remove(o,"show"):e.x.add(o,"show"))),this._nodes.drop.appendChild(i),e.x.add(this._nodes.drop,"active")}_renderInfoList(t){if(!this._nodes.info)return;let i=s.A.find(`.${this._getClass("info-list")}`,this._element);i||(i=this._tpl.ul([],{class:this._getClass("info-list")}),this._nodes.info.appendChild(i)),this._params.info||e.x.add(i,"list-row");const r=this._parseTemplate().children,n=this._parseTemplate().liClasses.filter(t=>"file"!==t),a=Array.from(i.children||[]),o=new Map;a.forEach(t=>{const e=this._getInfoNodeKey(t);e&&(t.hasAttribute("data-file-key")||t.setAttribute("data-file-key",e),o.set(e,t))});const l=[];if(t.forEach((t,e)=>{const i=this._getFileKey(t),s=this._getInfoItemSignature(t,e),a=o.get(i);if(a&&a.getAttribute("data-vg-info-signature")===s){const t=a.querySelector(".iteration");return t&&(t.textContent=`${e+1}.`),l.push(a),void o.delete(i)}a&&(vi.stopActiveInlineAudioIfDetached([a]),a.remove());const d=this._createInfoListItem(t,e,r,n,i,s);l.push(d),o.delete(i)}),o.size){const t=Array.from(o.values());vi.stopActiveInlineAudioIfDetached(t),t.forEach(t=>t.remove())}l.forEach(t=>{i.appendChild(t)}),this._initFilePreviewInInfo(i),e.x.add(this._nodes.info,"show")}_getInfoItemSignature(t,e){const i=this._resolveDisplayName(t),s=this._resolveFilePreviewPath(t);return`${t?.id||""}|${t?.name||""}|${t?.size??0}|${t?.type||""}|${i}|${s}`}_getInfoNodeKey(t){if(!t||"function"!=typeof t.getAttribute)return"";const e=String(t.getAttribute("data-file-key")||"").trim();if(e)return e;const i=String(t.getAttribute("data-name")||"").trim(),s=String(t.getAttribute("data-size")||"").trim(),r=String(t.getAttribute("data-type")||"").trim();if(i&&s&&r)return`${i}-${s}-${r}`;const n=String(t.getAttribute("data-file")||"").trim();if(!n)return"";try{const t=JSON.parse(n),e=String(t?.name||"").trim(),i=String(t?.size??"").trim(),s=String(t?.type||"").trim();if(e&&i&&s)return`${e}-${i}-${s}`}catch{return""}return""}_createInfoListItem(t,e,i,s,r,n){let a=[...s];this._params.image&&a.push("with-image"),this._params.info&&a.push("with-info"),this._params.detach&&a.push("with-remove"),this._params.sortable.enabled&&a.push("with-sortable");const o=this._resolveFilePreviewPath(t),l=this._resolveDisplayName(t);let d=[];i.forEach(i=>{const s=this._renderTemplatePart(i.element,t,e);s&&d.push(s)});const h={"data-name":t.name,"data-size":t.size??0,"data-type":t.type||"","data-id":t.id||"","data-file-key":r,"data-vg-info-signature":n,class:"file "+a.join(" ")+" "};return o&&(h["data-vg-filepreview"]=o,h["data-fields"]="name,size,download",h["data-original-name"]=t.name||"",h["data-vg-filepreview-display-name"]=l||t.name||""),this._tpl.li(this._buildFileDataAttributes(t,h),d)}_renderTemplatePart(t,e,i=null,s={}){if(!t)return null;const{isDrop:r=!1}=s,n=t?.classList;if(n?.contains("file-image"))return this._renderUIImage(e);if(n?.contains("file-info"))return r?null:this._renderUIInfo(e,i);if(n?.contains("file-remove"))return this._wrapInFileCustom(this._renderUIDetach(e));const a=t.cloneNode(!0);return this._replaceTemplateSlot(a,".file-image",()=>this._renderUIImage(e)),this._replaceTemplateSlot(a,".file-info",()=>r?null:this._renderUIInfo(e,i)),this._replaceTemplateSlot(a,".file-remove",()=>this._renderUIDetach(e)),this._wrapInFileCustom(a)}_wrapInFileCustom(t){if(!t)return null;if(t.classList?.contains("file-custom"))return t;const e=document.createElement("div");return e.className="file-custom",e.appendChild(t),e}_replaceTemplateSlot(t,e,i){(t?.matches&&t.matches(e)?[t]:Array.from(t.querySelectorAll(e))).forEach(t=>{const e=i();e?t.replaceWith(e):t.remove()})}_renderUIDetach(t){if(this._params.detach)return this._tpl.div({class:"file-remove"},[this._setButtonElement(t)])}_renderUIInfo(t,e){if(this._params.info){const i=this._resolveDisplayName(t);return this._tpl.div({class:"file-info"},[this._tpl.span({class:"iteration"},`${e+1}.`),this._tpl.span({class:"name"},i),this._tpl.span({class:"size"},`[${this._getSizes(t.size)}]`),this._tpl.span({class:"download"},"")])}}_renderUIImage(t){const e=this._tpl.div({class:"file-image"}),i=t?.src||t?.image;if(i)return e.appendChild(this._tpl.img(i,t.name||"",{class:"file-preview"})),e;const s=this._getFileCustomData(t),r=String(s.audioCover||"").trim();if(r)return e.appendChild(this._tpl.img(r,this._resolveDisplayName(t),{class:"file-preview"})),e;if(t?.type&&t.type.startsWith("image/")){const i=this._getFileObjectUrl(t);return i?(e.appendChild(this._tpl.img(i,t.name,{class:"file-preview"})),e):e}const n=this._getIconByFileType(t);return e.appendChild(this._tpl.i({},n,{isHTML:!0})),e}_resolveDisplayName(t){const e=this._getFileCustomData(t);return String(e.audioTitle||"").trim()||String(t?.name||"").trim()}_getIconByFileType(t){return(0,f.z)(t)}_resolveFilePreviewPath(t){return String(t?.src||t?.image||"").trim()||this._getFileObjectUrl(t)}_getFileObjectUrl(t){if(!(t&&"undefined"!=typeof File&&t instanceof File))return"";const e=this._getFileKey(t);if(this._fileObjectUrls.has(e))return this._fileObjectUrls.get(e);const i=URL.createObjectURL(t);return this._fileObjectUrls.set(e,i),i}_isAudioFile(t){if(!t)return!1;if(String(t.type||"").toLowerCase().startsWith("audio/"))return!0;const e=String(t.name||"").toLowerCase();return/\.(mp3|m4a|aac|wav|ogg|flac|opus|wma)$/.test(e)}_setFileCustomDataValue(t,e,i){t&&e&&(t.customData&&"object"==typeof t.customData&&!Array.isArray(t.customData)||Object.defineProperty(t,"customData",{value:{},writable:!0,enumerable:!0}),t.customData[e]=i)}_enrichAudioMetadata(t=[]){if(!Array.isArray(t)||!t.length)return;const e=[];t.forEach(t=>{if(!this._isAudioFile(t))return;const i=this._getFileKey(t);if(this._audioMetaPromises.has(i))return;const s=this._getFileCustomData(t);if(s.audioTitle||s.audioCover)return;const r=$e(t).then(e=>{if(!e)return!1;let s=!1;if(e.title&&(this._setFileCustomDataValue(t,"audioTitle",e.title),s=!0),e.pictureBlob){const r=`cover:${i}`;let n=this._fileObjectUrls.get(r);n||(n=URL.createObjectURL(e.pictureBlob),this._fileObjectUrls.set(r,n)),this._setFileCustomDataValue(t,"audioCover",n),s=!0}return s}).catch(()=>!1).then(t=>(this._audioMetaPromises.delete(i),t));this._audioMetaPromises.set(i,r),e.push(r)}),e.length&&Promise.allSettled(e).then(t=>{t.some(t=>"fulfilled"===t.status&&!0===t.value)&&this._files.length&&this._renderUI(this._files)})}_initFilePreviewInInfo(t){if(!this._nodes.info||!t)return;const e=this._params?.lang||document.documentElement.lang||"ru";(s.A.findAll("[data-vg-filepreview]",t)||[]).forEach(t=>{vi.getOrCreateInstance(t,{lang:e,ui:{nameOnly:!0}})})}_updateStat(){if(!this._nodes.stat)return;const t=this._getSizes(this._files,!0),i=s.A.find(`.${this._getClass("stat")}-count`,this._nodes.stat);i&&(i.innerHTML=this._files.length?`${this._files.length}<span>[${t}]</span>`:""),e.x.add(this._nodes.stat,"show")}_generateHiddenInputs(t){this._cleanupFakeInputs();const i=document.createDocumentFragment(),r=e.p.get(s.A.find("label",this._element),"for")||"",n=s.A.findID(r,this._element)?.name||s.A.findID(r,this._element)?.dataset.originalName||"files[]",a=n.endsWith("[]")?n.slice(0,-2):n;1===Number(this._params?.limits?.count)||(t.forEach((t,s)=>{const r=document.createElement("input");r.type="file",r.name=`${a}[${s}]`,r.dataset.vgFiles="generated",e.p.hide(r);const n=new DataTransfer;n.items.add(t),r.files=n.files,i.appendChild(r)}),this._element.appendChild(i))}_cleanupFakeInputs(){s.A.findAll('[data-vg-files="generated"]',this._element).forEach(t=>t.remove())}clear(t=!0){const i=[];if(this._nodes.info){const t=s.A.find(`.${this._getClass("info-list")}`,this._element);t?.children?.length&&i.push(...Array.from(t.children))}if(this._nodes.drop){const t=s.A.find(`.${this._getClass("drop-list")}`,this._element);t?.children?.length&&i.push(...Array.from(t.children))}if(i.length&&vi.stopActiveInlineAudioIfDetached(i),this._revokeUrls(),t&&this._resetFileInput(),this._cleanupFakeInputs(),this._cleanupErrors(),this._files=[],this._nodes.info){e.x.remove(this._nodes.info,"show");const t=s.A.find(`.${this._getClass("info-list")}`,this._element);t&&(t.innerHTML="")}if(this._nodes.drop){const t=s.A.find(`.${this._getClass("drop-list")}`,this._element);t&&(t.innerHTML="");const i=s.A.find(`.${this._getClass("drop-message")}`,this._element);i&&(e.x.remove(i,"has-files"),1===Number(this._params?.limits?.count)&&e.x.add(i,"show")),e.x.remove(this._nodes.drop,"active")}this._nodes.stat&&e.x.remove(this._nodes.stat,"show")}_revokeUrls(){this._fileObjectUrls.forEach(t=>{URL.revokeObjectURL(t)}),this._fileObjectUrls.clear(),this._audioMetaPromises.clear()}_resetFileInput(){s.A.findAll('[data-vg-toggle="files"]',this._element).forEach(t=>t.value="")}_preventOriginalInputFromSubmit(t=!1){const e=s.A.find('[data-vg-toggle="files"]',this._element);e&&(t||e.dataset.originalName?t&&e.dataset.originalName&&(e.name=e.dataset.originalName,delete e.dataset.originalName):(e.dataset.originalName=e.name,e.removeAttribute("name")))}_addEventListener(){s.A.findAll('[data-vg-toggle="files"]',this._element).forEach(t=>{t.removeEventListener("change",this._onNativeInputChange),t.addEventListener("change",this._onNativeInputChange)})}dispose(){this.clear(),super.dispose()}}const wi=yi;var Si=i(11);const Ci=class{constructor(t={}){this.mode=t.mode||"sequential",this.maxParallel=t.maxParallel||3,this.maxConcurrent=t.maxConcurrent||1,this.retryAttempts=t.retryAttempts||3,this.retryDelay=t.retryDelay||1e3,this.uploads=new Map,this.completed=[],this.queue=[],this.waitingPromises=[],this.activeCount=0,this.isPaused=!1,this.callbacks={progress:[],complete:[],error:[],allComplete:[]},this._checkAllCompleteBound=this.checkAllComplete.bind(this)}async uploadFile(t,e,i={}){const s=this.generateId(),r={id:s,file:t,url:e,options:i,status:"pending",progress:0,attempts:0,result:null,error:null,startTime:null,endTime:null,controller:new AbortController,signal:null};return this.uploads.set(s,r),"sequential"===this.mode?this._addToSequentialQueue(r):this._startParallelUpload(r)}async uploadFiles(t,e,i={}){const s=t.map(t=>this.uploadFile(t,e,i));return(await Promise.allSettled(s)).map(t=>"fulfilled"===t.status?{file:t.value.file?.name,success:!0,result:t.value}:{file:t.reason?.file?.name||"unknown",success:!1,error:t.reason})}_addToSequentialQueue(t){return new Promise((e,i)=>{this.queue.push({uploadData:t,resolve:e,reject:i}),this._processSequentialQueue()})}async _processSequentialQueue(){if(this.isPaused||this.activeCount>=this.maxConcurrent||0===this.queue.length)return;const{uploadData:t,resolve:e,reject:i}=this.queue[0];this.activeCount++;try{e(await this._executeUpload(t))}catch(t){i(t)}finally{this.queue.shift(),this.activeCount--,await this._processSequentialQueue()}}async _startParallelUpload(t){this.activeCount>=this.maxParallel&&await new Promise(t=>this.waitingPromises.push(t)),this.activeCount++,t.startTime=Date.now();try{return await this._executeUpload(t)}finally{this.activeCount--,this._notifyWaiting()}}_notifyWaiting(){this.waitingPromises.length>0&&this.activeCount<this.maxParallel&&this.waitingPromises.shift()()}async _executeUpload(t,e=1){t.status="uploading",t.attempts=e,t.signal=t.controller.signal;try{const e=await this._performUpload(t);return this._completeUpload(t,e),e}catch(i){if("cancelled"===t.status)return;if(t.error=i,e<this.retryAttempts)return t.status="retrying",this.notifyProgress(t),await this._delay(this.retryDelay*Math.pow(2,e)),this._executeUpload(t,e+1);throw t.status="failed",t.endTime=Date.now(),this.notifyProgress(t),this.notifyError(t,i),this._checkAllCompleteBound(),i}}_performUpload(t){return new Promise((e,i)=>{const s=new Si.A,n=new FormData;n.append("file",t.file),n.append("_token",s._getCsrfToken()||""),t.options.additionalData&&Object.entries(t.options.additionalData).forEach(([t,e])=>{n.append(t,e)});const a={onProgress:(e,i)=>{t.progress=e,this.notifyProgress(t)},onSuccess:t=>{e((0,r.OM)(t))},onError:t=>{i((0,r.OM)(t))},signal:t.signal},o=s.post(t.url,n,a);t.xhr=o})}_completeUpload(t,e){t.status="completed",t.progress=100,t.result=e,t.endTime=Date.now(),this.completed.push({...t}),this.notifyComplete(t),this._checkAllCompleteBound()}cancelUpload(t){const e=this.uploads.get(t);if(!e||["completed","failed","cancelled"].includes(e.status))return!1;e.controller.abort(),e.xhr&&"function"==typeof e.xhr.abort&&e.xhr.abort(),e.status="cancelled",e.endTime=Date.now(),this.notifyProgress(e);const i=this.queue.findIndex(e=>e.uploadData.id===t);return i>-1&&this.queue.splice(i,1),!0}setMode(t,e=3){this.mode=t,this.maxParallel=e,"parallel"===t&&(this.queue=[],this._notifyWaiting())}pause(){this.isPaused=!0}resume(){this.isPaused=!1,"sequential"===this.mode?this._processSequentialQueue():this._notifyWaiting()}clear(){this.uploads.forEach((t,e)=>{this.cancelUpload(e)}),this.uploads.clear(),this.completed=[],this.queue=[],this.waitingPromises=[],this.activeCount=0}getStats(){const t=Array.from(this.uploads.values()),e=t.reduce((t,e)=>t+(e.file?.size||0),0);return{total:t.length,active:this.activeCount,pending:t.filter(t=>"pending"===t.status).length,uploading:t.filter(t=>"uploading"===t.status).length,completed:t.filter(t=>"completed"===t.status).length,failed:t.filter(t=>"failed"===t.status).length,cancelled:t.filter(t=>"cancelled"===t.status).length,mode:this.mode,isPaused:this.isPaused,queueLength:this.queue.length,totalSizeFormatted:(e/1048576).toFixed(2)+" MB"}}printDebugStats(){const t=this.getStats();console.group("--- Uploader Statistics ---"),console.table({Mode:t.mode,Status:t.isPaused?"Paused":"Running","Total Files":t.total,Uploading:t.uploading,Completed:t.completed,Failed:t.failed,Queue:t.queueLength}),console.log(`Total Size: ${t.totalSizeFormatted}`),console.groupEnd()}generateId(){return`${Date.now()}-${Math.random().toString(36).substr(2,9)}`}_delay(t){return new Promise(e=>setTimeout(e,t))}checkAllComplete(){Array.from(this.uploads.values()).every(t=>["completed","failed","cancelled"].includes(t.status))&&this.uploads.size>0&&this.notifyAllComplete()}onProgress(t){this.callbacks.progress.push(t)}onComplete(t){this.callbacks.complete.push(t)}onError(t){this.callbacks.error.push(t)}onAllComplete(t){this.callbacks.allComplete.push(t)}notifyProgress(t){this.callbacks.progress.forEach(e=>this._safeCall(e,{...t,stats:this.getStats()}))}notifyComplete(t){this.callbacks.complete.forEach(e=>this._safeCall(e,t))}notifyError(t,e){this.callbacks.error.forEach(i=>this._safeCall(i,t,e))}notifyAllComplete(){this.callbacks.allComplete.forEach(t=>this._safeCall(t,{completed:this.completed,stats:this.getStats()}))}isIdle(){const t=this.activeCount>0,e=this.queue.length>0,i=this.waitingPromises.length>0,s=Array.from(this.uploads.values()).some(t=>["uploading","retrying","pending"].includes(t.status));return!(t||e||i||s)}offAll(){return this.callbacks.progress=[],this.callbacks.complete=[],this.callbacks.error=[],this.callbacks.allComplete=[],this}_safeCall(t,...e){try{t(...e)}catch(t){console.error("Callback error:",t)}}},Ai="vg-files-drop",Ei="drop-active",xi="drop-hover";class Pi extends t.A{constructor(t,e={}){super(t,e),this._element=t,this._params=e,this._files=null,this._input=null,this._init()}static get NAME(){return"drop-and-drop"}static get NAME_KEY(){return"vg.drop-and-drop"}_init(){Pi._instances.add(this),this._params?.smartdrop&&(Pi._smartInstances.add(this),this._bindGlobalEvents()),this._findInput(),this._setupEvents()}_findInput(){const{id:t,name:e}=this._element.dataset;t&&(this._input=document.getElementById(t)),!this._input&&e&&(this._input=s.A.find(`[name="${e}"]`)),this._input||(this._input=s.A.find('input[type="file"]',this._element)||s.A.find('input[type="file"]',this._element.parentNode))}_setupEvents(){if(!(0,r.vq)(this._element))return;const t=t=>{if(document.querySelector(".dragging"))return!0;let e="";try{e=t.dataTransfer?.getData?.("text/plain")||""}catch(t){}return"vgsortable"===e};g.A.on(this._element,"dragover",i=>{if(i.preventDefault(),i.stopPropagation(),t(i))return e.x.remove(this._element,[Ei,xi]),Pi._setDropMessageTitleState(this._element,!1),void(i.dataTransfer.dropEffect="none");e.x.has(this._element,Ei)||e.x.add(this._element,xi)}),g.A.on(this._element,"dragenter",i=>{if(i.preventDefault(),i.stopPropagation(),t(i))return e.x.remove(this._element,[Ei,xi]),void Pi._setDropMessageTitleState(this._element,!1);e.x.add(this._element,[Ei,xi]),Pi._setDropMessageTitleState(this._element,!0)}),g.A.on(this._element,"dragleave",i=>{if(i.preventDefault(),i.stopPropagation(),t(i))return e.x.remove(this._element,[Ei,xi]),void Pi._setDropMessageTitleState(this._element,!1);i.target!==this._element&&i.target.closest("."+Ai)!==this._element||(e.x.remove(this._element,xi),setTimeout(()=>{this._element.matches(":hover")||(e.x.remove(this._element,Ei),Pi._setDropMessageTitleState(this._element,!1))},50))}),g.A.on(this._element,"drop",i=>{if(i.preventDefault(),i.stopPropagation(),e.x.remove(this._element,[Ei,xi]),Pi._setDropMessageTitleState(this._element,!1),t(i))return;const s=i.dataTransfer?.files;s&&s.length&&(this._files=s,(0,r.vq)(this._input)&&(this._input.files=s,g.A.trigger(this._input,"change")))})}_bindGlobalEvents(){Pi._isGlobalEventsBound||(Pi._globalHandlers={dragenter:t=>this._updateSuggestedDrop(t),dragover:t=>this._updateSuggestedDrop(t),dragleave:t=>{this._isFileDrag(t)&&(null!==t.relatedTarget&&t.target!==document&&t.target!==document.documentElement||Pi._clearSuggestedDrop())},drop:t=>{if(!this._isFileDrag(t))return void Pi._clearSuggestedDrop();const e=Pi._activeSuggestedDrop;if(e){const i=Array.from(Pi._smartInstances).find(t=>t._element===e),s=t.dataTransfer?.files;i&&s&&s.length&&(0,r.vq)(i._input)&&(t.preventDefault(),t.stopPropagation(),i._files=s,i._input.files=s,g.A.trigger(i._input,"change"))}Pi._clearSuggestedDrop()},dragend:()=>Pi._clearSuggestedDrop()},g.A.on(document,"dragenter",Pi._globalHandlers.dragenter),g.A.on(document,"dragover",Pi._globalHandlers.dragover),g.A.on(document,"dragleave",Pi._globalHandlers.dragleave),g.A.on(document,"drop",Pi._globalHandlers.drop),g.A.on(document,"dragend",Pi._globalHandlers.dragend),g.A.on(window,"dragenter",Pi._globalHandlers.dragenter),g.A.on(window,"dragover",Pi._globalHandlers.dragover),g.A.on(window,"dragleave",Pi._globalHandlers.dragleave),g.A.on(window,"drop",Pi._globalHandlers.drop),g.A.on(window,"dragend",Pi._globalHandlers.dragend),Pi._isGlobalEventsBound=!0)}_updateSuggestedDrop(t){if(!this._isFileDrag(t))return void Pi._clearSuggestedDrop();const i=this._getVisibleDropZonesInViewport();if(1===i.length){const[s]=i;return Pi._activeSuggestedDrop!==s&&(Pi._clearSuggestedDrop(),e.x.add(s,Ei),Pi._setDropMessageTitleState(s,!0),Pi._activeSuggestedDrop=s),t.dataTransfer&&(t.dataTransfer.dropEffect="copy"),void t.preventDefault()}Pi._clearSuggestedDrop()}_isFileDrag(t){try{const e=t?.dataTransfer;return!!e&&(!!(e.files&&e.files.length>0)||(e.items&&e.items.length>0?Array.from(e.items).some(t=>"file"===t.kind):!!e.types&&Array.from(e.types).includes("Files")))}catch(t){return!1}}_getVisibleDropZonesInViewport(){return Array.from(s.A.findAll(`.${Ai}`)||[]).filter(t=>this._isVisibleInViewport(t))}_isVisibleInViewport(t){if(!(0,r.vq)(t)||!t.isConnected)return!1;const e=window.getComputedStyle(t);if("none"===e.display||"hidden"===e.visibility||"0"===e.opacity)return!1;const i=t.getBoundingClientRect();return!(!i.width||!i.height)&&(i.bottom>0&&i.right>0&&i.top<window.innerHeight&&i.left<window.innerWidth)}static _clearSuggestedDrop(){Pi._activeSuggestedDrop&&(Pi._setDropMessageTitleState(Pi._activeSuggestedDrop,!1),e.x.remove(Pi._activeSuggestedDrop,Ei),Pi._activeSuggestedDrop=null)}static _setDropMessageTitleState(t,e){if(!(0,r.vq)(t))return;const i=s.A.find(".vg-files-drop-message .title",t);if(!i)return;const n=(i.getAttribute("data-drop-original-text")||"").trim()||(i.textContent||"").trim();i.setAttribute("data-drop-original-text",n);const a=(t.getAttribute("data-drop-active-text")||"").trim();i.textContent=e&&a?a:n}static _unbindGlobalEvents(){if(!Pi._isGlobalEventsBound)return;const t=Pi._globalHandlers||{};g.A.off(document,"dragenter",t.dragenter),g.A.off(document,"dragover",t.dragover),g.A.off(document,"dragleave",t.dragleave),g.A.off(document,"drop",t.drop),g.A.off(document,"dragend",t.dragend),g.A.off(window,"dragenter",t.dragenter),g.A.off(window,"dragover",t.dragover),g.A.off(window,"dragleave",t.dragleave),g.A.off(window,"drop",t.drop),g.A.off(window,"dragend",t.dragend),Pi._isGlobalEventsBound=!1,Pi._globalHandlers=null,Pi._clearSuggestedDrop()}getFiles(){return this._files}dispose(){g.A.off(this._element,"dragover"),g.A.off(this._element,"dragenter"),g.A.off(this._element,"dragleave"),g.A.off(this._element,"drop"),Pi._instances.delete(this),Pi._smartInstances.delete(this),Pi._smartInstances.size||Pi._unbindGlobalEvents(),this._input=null,this._files=null}init(){return this}}Pi._instances=new Set,Pi._smartInstances=new Set,Pi._isGlobalEventsBound=!1,Pi._activeSuggestedDrop=null,Pi._globalHandlers=null;const Li=Pi;var Ii=i(483);const Mi=class{constructor(t,e,i={}){this.module=t,this.element=(0,r.vq)(e)?e:null,this.element?(this._params=new it.A(i,e).get(),this._nodes={info:this.module._nodes.info,drop:this.module._nodes.drop},this.bufferTemplate="",this.parsedFiles=[]):console.error("Invalid element provided:",e)}init(){const t=this._nodes.info||this._nodes.drop;if(!t)return!1;const e=this._nodes.info?"info":"drop";return this._nativeRenderFiles(e,t)}_nativeRenderFiles(t,i){const r=s.A.find(`.vg-files-${t}--list`,i);if(!r)return!1;const n=Array.from(r.children).filter(t=>"LI"===t.tagName);return 0!==n.length&&(this._setTemplateInBuffer(n),!!this.bufferTemplate&&(this.parsedFiles=n.map(t=>{const i=e.p.get(t,"data-file");return i?this._parseDataFile(i):null}).filter(Boolean),!0))}_parseDataFile(t){const e=(0,r.OM)(t);if(!e||"object"!=typeof e||Array.isArray(e))return null;const i=this._extractBinaryMeta(e),s=this._toStringOrNull(e.name),n=this._toStringOrNull(e.id),a=this._toStringOrNull(e.src),o=this._toStringOrNull(e.type)||i.type||"application/octet-stream",l={id:n,name:s,size:this._toNumberOrNull(e.size)??i.size??0,type:o,src:a,lastModified:this._toNumberOrNull(e.lastModified??e["last-modified"])??i.lastModified??Date.now()};if(void 0!==e.image&&null!==e.image&&""!==e.image&&(l.image=e.image),!["id","name","size","type","src"].every(t=>{const e=l[t];return"size"===t?Number.isFinite(e):null!=e&&""!==e}))return null;const d={},h=new Set(["id","name","size","type","src","image","lastModified","last-modified"]);return Object.entries(e).forEach(([t,e])=>{h.has(t)||null!=e&&""!==e&&(d[t]=e)}),Object.keys(d).length&&(l.customData=d),l}_extractBinaryMeta(t){const e=t.file||t.blob||t.originFile||null;return e instanceof Blob?{size:this._toNumberOrNull(e.size)??null,type:this._toStringOrNull(e.type)||null,lastModified:(e instanceof File?this._toNumberOrNull(e.lastModified):null)??null}:{}}_toStringOrNull(t){if(null==t)return null;return String(t).trim()||null}_toNumberOrNull(t){if(null==t||""===t)return null;const e=Number(t);return Number.isFinite(e)?e:null}_setTemplateInBuffer(t){if(this.bufferTemplate||0===t.length)return;const i=t[0];e.p.has(i,"data-file")?this.bufferTemplate=i.outerHTML:(this.bufferTemplate=i.outerHTML,i.remove())}dispose(){this.bufferTemplate="",this.parsedFiles=[]}};var Di=i(355);const Ti="files",ki="vg.files",Fi='[data-vg-reload="file"]',Ri='[data-vg-dismiss="file"]',Oi="vg-files",Ni=`${Oi}-stat`,zi="completed",Hi="pending",$i="loading",Bi="failing",ji="loaded";class Vi extends wi{constructor(t,e={}){super(t,e,{init:!0,allowed:!1,lang:document.documentElement.lang||"ru",limits:{count:0,sizes:10,total:0},image:!1,detach:!0,info:!0,types:[],ajax:!1,prepend:!0,replace:!0,rename:!1,smartdrop:!1,uploads:{mode:"sequential",route:"",maxParallel:3,maxConcurrent:1,retryAttempts:1,retryDelay:1e3},removes:{buttons:null,all:{route:"",alert:!0,toast:!0,confirm:null,buttons:null},single:{route:"",alert:!0,toast:!0,confirm:null,buttons:null}},sortable:{enabled:!1,route:"",handle:".file",lists:["vg-files-info--list","vg-files-drop--list"]},callbacks:{onInit:null,onChange:null,onUploadStart:null,onUploadProgress:null,onUploadComplete:null,onUploadError:null,onUploadAllComplete:null,onRemoveFile:null,onClear:null,onReload:null}}),this._files=[],this._uploadedKeys=new Set,this._failingUploadedKeys=new Set,this._pendingUploadedKeys=new Set,this._unUploadedFiles=[],this._uploader=null,this._sortable=null,this._render=null,this.isRenderNonInit=!1,this._initExtended()}static get NAME(){return Ti}static get NAME_KEY(){return ki}_initExtended(){if(!this._isInitialized)return;if(this._render=new Mi(this,this._element,this._params),this._params.ajax&&(this._params.allowed=!1),this.isRenderNonInit)return;this.isRenderNonInit=this._render.init();const t=this._render.parsedFiles;t.length&&this._addExternalFiles(t),this._params.allowed&&!this._params.ajax&&(this._params.detach=!1),this._nodes.drop&&(this._params.image=!0,this._params.detach=!0,this._setDropActiveText(),Li.getOrCreateInstance(this._nodes.drop,this._params).init()),this._addEventListenerExtended(),this._renderStat(),this._triggerCallback("onInit",{element:this._element,files:t||[]})}_setDropActiveText(){if(!this._nodes.drop)return;const t=tt(this._params.lang,Ti)||{},e=(this._nodes.drop.getAttribute("data-drop-active-text")||"").trim()||t["drop-active"]||"Release to upload";this._nodes.drop.setAttribute("data-drop-active-text",e);const i=s.A.find(".vg-files-drop-message .title",this._nodes.drop);if(!i)return;const r=(i.getAttribute("data-drop-original-text")||"").trim()||(i.textContent||"").trim();i.setAttribute("data-drop-original-text",r)}_addExternalFiles(t){Array.isArray(t)&&t.length&&(t.forEach(t=>{if(!t?.name)return;const e={};"string"==typeof t.type&&(e.type=t.type),Number.isFinite(t.lastModified)&&(e.lastModified=t.lastModified);const i=new File([""],t.name,e);void 0!==t.id&&null!==t.id&&""!==t.id&&Object.defineProperty(i,"id",{value:t.id,writable:!0,enumerable:!0}),Number.isFinite(t.size)&&Object.defineProperty(i,"size",{value:t.size,writable:!0,enumerable:!0}),void 0!==t.src&&null!==t.src&&""!==t.src&&Object.defineProperty(i,"src",{value:t.src,writable:!0,enumerable:!0}),void 0!==t.image&&null!==t.image&&""!==t.image&&Object.defineProperty(i,"image",{value:t.image,writable:!0,enumerable:!0}),t.customData&&"object"==typeof t.customData&&!Array.isArray(t.customData)&&Object.defineProperty(i,"customData",{value:t.customData,writable:!0,enumerable:!0});const s=this._getFileKey(i);this._uploadedKeys.add(s),this._pendingUploadedKeys.delete(s),this._failingUploadedKeys.delete(s),this._files.push(i)}),this._renderUI(this._files),this._renderStat(),this._updateStat(),this._setStatItem("completed",this._uploadedKeys.size),this._params.sortable?.enabled&&this._params.sortable.route&&!this._sortable&&(this._sortable=new Di.default(this,this._params.sortable)),this._triggerCallback("onChange",{files:this._files}),g.A.trigger(this._element,`${ki}.change`,{files:this._files}))}_addEventListenerExtended(){s.A.findAll('[data-vg-toggle="files"]',this._element).forEach(t=>{this._onNativeInputChange&&t.removeEventListener("change",this._onNativeInputChange),t.addEventListener("change",t=>this._handleChange(t))})}_handleChange(t){const e=t?.target,i=this._snapshotInputFiles(e);this.change(e),this._params.ajax&&this.uploadAll(this._files);const s={files:this._files,input:t?.target||t?.src||"",inputFiles:i};this._triggerCallback("onChange",s),this._triggerEvent("change",{files:this._files,input:s.input,inputFiles:s.inputFiles})}_snapshotInputFiles(t){const e=t?.files;return e?.length?Array.from(e):[]}async uploadAll(t){if(!this._params.ajax||!this._params.uploads.route)return;this._uploadedKeys.size||this._failingUploadedKeys.clear();const e=t.filter(t=>!this._uploadedKeys.has(this._getFileKey(t)));if(!e.length)return;this._uploader&&!this._uploader.isIdle()||(this._uploader=new Ci({mode:this._params.uploads.mode,maxConcurrent:this._params.uploads.maxConcurrent,maxParallel:this._params.uploads.maxParallel,retryAttempts:this._params.uploads.retryAttempts,retryDelay:this._params.uploads.retryDelay}),this._setupUploadEventHandlers()),e.forEach(t=>{const e=this._getFileKey(t);this._pendingUploadedKeys.add(e),this._unUploadedFiles=this._unUploadedFiles.filter(t=>this._getFileKey(t)!==e)}),this._setStatItem("pending",this._pendingUploadedKeys.size);const i={additionalData:{timestamp:(new Date).toISOString(),source:"web_uploader",prepend:this._params.prepend}};this._triggerCallback("onUploadStart",{files:e,total:e.length}),this._triggerEvent("upload.start",{files:e,total:e.length});try{await this._uploader.uploadFiles(e,this._params.uploads.route,i)}catch(t){console.error("Bulk upload failed:",t)}}async upload(t){if(!this._params.ajax||!this._params.uploads.route)return;this._uploader&&!this._uploader.isIdle()||(this._uploader=new Ci({mode:this._params.uploads.mode,maxConcurrent:this._params.uploads.maxConcurrent,maxParallel:this._params.uploads.maxParallel,retryAttempts:this._params.uploads.retryAttempts,retryDelay:this._params.uploads.retryDelay}));const i=this._getFileKey(t);this._pendingUploadedKeys.has(i)||(this._pendingUploadedKeys.add(i),this._setStatItem("pending",this._pendingUploadedKeys.size)),this._unUploadedFiles=this._unUploadedFiles.filter(t=>this._getFileKey(t)!==i);const s=this._getItemElement(t);s&&(e.x.remove(s,Bi),e.x.add(s,$i),e.x.add(s,Hi)),this._setupUploadEventHandlers(t);const r={additionalData:{timestamp:(new Date).toISOString(),source:"web_uploader"}};try{await this._uploader.uploadFiles([t],this._params.uploads.route,r)}catch(t){console.error("Upload failed:",t)}}_setupUploadEventHandlers(){"function"==typeof this._uploader.offAll?this._uploader.offAll():(this._uploader.off("progress"),this._uploader.off("complete"),this._uploader.off("error"),this._uploader.off("allComplete")),this._updateStat(!0),this._uploader.onProgress(t=>{const i=t.file,n=this._getItemElement(i);if(!n)return;e.x.add(n,$i),e.x.add(n,Hi);const a=this._getButtonElement(i);if((0,r.vq)(a)){const t=a.closest("li");if(t){const e=s.A.find(".file-remove",t);e&&(e.innerHTML="",e.appendChild(this._setButtonElement(i,!0)))}}const o={file:t.file,progress:t.progress,bytesSent:t.bytesSent,totalBytes:t.totalBytes};this._triggerCallback("onUploadProgress",o),this._triggerEvent("upload.progress",o)}),this._uploader.onComplete(t=>{const i=t.file,n=this._getFileKey(i),a=this._getItemElement(i);if(!a)return;e.x.replace(a,$i,ji),e.x.remove(a,Hi);const o=this._getButtonElement(i),l=(0,r.OM)(t.result?.response?.id)||t.id||i.lastModified;if(i.id=l,(0,r.vq)(o)&&l){const t=o.closest("li");if(t){e.p.set(t,"data-id",l),this._setButtonElement(i);const r=s.A.find(".file-remove",t);r&&(r.innerHTML="",r.appendChild(this._setButtonElement(i,!0,"completed")),e.x.add(t,zi),setTimeout(()=>{r.innerHTML="",r.appendChild(this._setButtonElement(i)),e.x.remove(t,zi)},1e3))}}this._uploadedKeys.add(n),this._failingUploadedKeys.delete(n),this._pendingUploadedKeys.delete(n),this._setStatItem("completed",this._uploadedKeys.size),this._setStatItem("pending",this._pendingUploadedKeys.size);const d={file:t.file,response:t.result?.response,status:t.result?.status,id:i.id};this._triggerCallback("onUploadComplete",d),this._triggerEvent("upload.complete",d)}),this._uploader.onError(t=>{const i=t.file,n=this._getFileKey(i),a=this._getItemElement(i);if(!a)return;this._uploadedKeys.delete(n),this._failingUploadedKeys.add(n),this._pendingUploadedKeys.delete(n),this._unUploadedFiles.push(i),e.x.remove(a,Hi),e.x.replace(a,$i,Bi),this._setStatItem("failing",this._failingUploadedKeys.size),this._setStatItem("pending",this._pendingUploadedKeys.size);const o=this._getButtonElement(i);if((0,r.vq)(o)){const t=o.closest("li");if(t){this._setButtonElement(i);const r=s.A.find(".file-remove",t);r&&(r.innerHTML="",r.appendChild(this._setFailingButtons(i)),e.x.add(t,Bi))}}const l={file:t.file};this._triggerCallback("onUploadError",l),this._triggerEvent("upload.error",l)}),this._uploader.onAllComplete(()=>{this._triggerEvent("upload.allComplete"),this._updateStat(!1),this._failingUploadedKeys.size||this._params.sortable?.enabled&&this._params.sortable.route&&Promise.resolve().then(i.bind(i,355)).then(t=>{this._sortable&&"function"==typeof this._sortable.destroy&&this._sortable.destroy(),this._sortable=new t.default(this,this._params.sortable)}).catch(t=>{console.error("Ошибка загрузки VGFilesSortable:",t)});const t={uploaded:this._uploadedKeys.size,failed:this._failingUploadedKeys.size,total:this._files.length};this._triggerCallback("onUploadAllComplete",t)})}reload(t){if(!this._params.ajax||!this._params.uploads.route)return;const i=e.p.get(t,"data"),s={name:i.name,size:i.size,type:i.type,lastModified:i["last-modified"]},r=this._getFileKey(s);if(!this._failingUploadedKeys.has(r))return;const n=this._unUploadedFiles.find(t=>this._getFileKey(t)===r);if(!n)return;this._failingUploadedKeys.delete(r),this._pendingUploadedKeys.add(r),this._setStatItem("failing",this._failingUploadedKeys.size),this._setStatItem("pending",this._pendingUploadedKeys.size);const a={button:t,file:n};this._triggerCallback("onReload",a),this._triggerEvent("reload",a),this.upload(n)}_runAjaxRequest(t,e){const i=this._params.ajax;this._params.ajax=t,this._route((t,s)=>{this._params.ajax=i,e(t,s)})}_normalizeConfirmResult(t){if(!0===t)return{accepted:!0,data:null};if(!1===t||null==t)return{accepted:!1,data:null};if("object"==typeof t){if("boolean"==typeof t.accepted)return{accepted:t.accepted,data:t.data??null};if(Object.prototype.hasOwnProperty.call(t,"data"))return{accepted:!0,data:t.data??null}}return{accepted:Boolean(t),data:null}}_runDefaultRemoveConfirm(t,e){return new Promise(i=>{ft.confirm(t,{lang:e.lang,ajax:e.ajax,buttons:e.buttons,message:e.message}),g.A.one(t,"vg.alert.accept",t=>{i({accepted:!0,data:t?.vgalert?.data??null})}),g.A.one(t,"vg.alert.reject",()=>{i({accepted:!1,data:null})})})}_isPlainObject(t){return t&&"object"==typeof t&&!Array.isArray(t)}_mergeButtonConfigs(...t){return t.reduce((t,e)=>this._isPlainObject(e)?(Object.entries(e).forEach(([e,i])=>{this._isPlainObject(t[e])&&this._isPlainObject(i)?t[e]=this._mergeButtonConfigs(t[e],i):t[e]=Array.isArray(i)?i.slice():i}),t):t,{})}_getDefaultRemoveConfirmButtons(){return{agree:{text:et(this._params.lang,Ti).agree,class:["btn-danger"]},cancel:{text:et(this._params.lang,Ti).cancel,class:["btn-outline-danger"]}}}_getRemoveConfirmButtons(t){return this._mergeButtonConfigs(this._getDefaultRemoveConfirmButtons(),this._params?.removes?.buttons,this._params?.removes?.[t]?.buttons)}_confirmRemove(t,e,i,s){const r=this._getRemoveConfirmButtons(t),n={type:t,trigger:e,lang:this._params.lang,ajax:i,buttons:r,message:s},a=this._params?.removes?.[t]?.confirm;return"function"==typeof a?Promise.resolve(a(n,this)).then(t=>this._normalizeConfirmResult(t)):this._runDefaultRemoveConfirm(e,n)}removeFile(t){const i=(0,r.OM)(e.p.get(t,"data-name")),n=(0,r.OM)(e.p.get(t,"data-size")),a=(0,r.OM)(e.p.get(t,"data-id")),o=()=>{const e={button:t,name:i,size:n,id:a,remaining:this._files.length};this._triggerCallback("onRemoveFile",e),this._triggerEvent("remove",e)},l=this._files.find(t=>t.name===i&&t.size===n);if(l){const t=this._getFileKey(l);this._uploadedKeys.delete(t),this._pendingUploadedKeys.delete(t),this._failingUploadedKeys.delete(t)}if(this._getItemElement().forEach(t=>{const i=s.A.find("button",t);if(!i)return;const n=(0,r.OM)(e.p.get(i,"data-id")),a=(0,r.OM)(e.p.get(i,"data-name")),o=(0,r.OM)(e.p.get(i,"data-size"));this._files.forEach(t=>{t.name===a&&t.size===o&&(t.id=n)}),l?.name===a&&l?.size===o&&(l.id=n)}),this._params.ajax&&this._params.removes.single.route){if(!a)return this._files=this._files.filter(t=>!(t.name===i&&t.size===n)),this._updateStatsAfterRemove(),this._files.length?this.build():this.clear(!0),o(),void this._resetFileInput();const e=this._params.removes.single.route,s=e.includes("?")?"&":"?",r={route:`${e}${s}id=${encodeURIComponent(a)}`,method:"delete"},l=t=>{this._files=this._files.filter(t=>!(t.name===i&&t.size===n)),this._updateStatsAfterRemove(),this._files.length?this._renderUI(this._files):this.clear(!0,!0),this._params.removes.single.toast&&Ii.A.run(t?.response?.message),o()};if(this._params.removes.single.alert){const e={title:tt(this._params.lang,Ti).title,description:tt(this._params.lang,Ti).description};this._confirmRemove("single",t,r,e).then(t=>{t.accepted&&(t.data?l(t.data):this._runAjaxRequest(r,(t,e)=>{l(e)}))}).catch(()=>{})}else this._runAjaxRequest(r,(t,e)=>{l(e)})}else this._files=this._files.filter(t=>!(t.name===i&&t.size===n)),this._updateStatsAfterRemove(),this._files.length?this.build():this.clear(!0),o();this._resetFileInput()}_updateStatsAfterRemove(){this._setStatItem("completed",this._uploadedKeys.size),this._setStatItem("pending",this._pendingUploadedKeys.size),this._setStatItem("failing",this._failingUploadedKeys.size),this._updateStat()}_getItemElement(t=null){let e=`${this._getClass("info-list")}`;return this._nodes.drop&&(e=`${this._getClass("drop-list")}`),t?s.A.find(`.${e} li[data-name="${t.name}"][data-size="${t.size}"]`,this._element):s.A.findAll(`.${e} li.loaded`,this._element)}_getButtonElement(t){return s.A.find(`button[data-name="${t.name}"][data-size="${t.size}"]`,this._element)}_setButtonElement(t,e=!1,i=""){let s=(0,f.z)("trash"),r="data-vg-dismiss";return this._params.info||(s=(0,f.z)("cross")),e&&(s=(0,f.z)("spinner"),"completed"===i?s=(0,f.z)("check"):r="data-vg-reload"),this._tpl.button([this._tpl.i({},s,{isHTML:!0})],"button",this._buildFileDataAttributes(t,{type:"button",[r]:"file","data-name":t.name,"data-size":t.size??0,"data-type":t.type||"","data-last-modified":t.lastModified||"","data-id":t.id||""}))}_setFailingButtons(t){return this._tpl.div({class:"file-failing-actions"},[this._setButtonElement(t,!0,"failing"),this._setButtonElement(t)])}_renderStat(){if(!this._nodes.stat)return;if(!this._params.ajax)return;const t=s.A.find(`.${Ni}-progress`,this._nodes.stat);if(!t)return;let e=s.A.find(`.${Ni}-progress-list`,t);e||(e=this._tpl.ul([this._tpl.li({class:"stat-item pending","data-count":"0",title:tt(this._params.lang,Ti).pending},[this._tpl.span({class:"stat-label"},(0,f.z)("cloud-dot"),{isHTML:!0}),this._tpl.span({class:"stat-value"},0)]),this._tpl.li({class:"stat-item completed","data-count":"0",title:tt(this._params.lang,Ti).completed},[this._tpl.span({class:"stat-label"},(0,f.z)("cloud-dot"),{isHTML:!0}),this._tpl.span({class:"stat-value"},0)]),this._tpl.li({class:"stat-item failing","data-count":"0",title:tt(this._params.lang,Ti).failing},[this._tpl.span({class:"stat-label"},(0,f.z)("cloud-dot"),{isHTML:!0}),this._tpl.span({class:"stat-value"},0)])],{class:Ni+"-progress-list"},!0),t.appendChild(e))}_setStatItem(t,i){if(!this._nodes.stat)return;const r=s.A.find(`.${Ni}-progress-list li.${t}`,this._nodes.stat);if(!r)return;e.p.set(r,"data-count",i);const n=s.A.find(".stat-value",r);n&&(n.innerHTML=i)}_renderUIStatusDropInfoAjax(t){this._params.ajax&&t.forEach(t=>{const i=this._getItemElement(t);if(!i)return;const s=this._getFileKey(t);this._uploadedKeys.has(s)?(e.x.replace(i,Hi,zi),e.x.add(i,ji)):this._failingUploadedKeys.has(s)?e.x.replace(i,Hi,Bi):e.x.add(i,Hi)})}_triggerCallback(t,e){const i=this._params.callbacks?.[t];if("function"==typeof i)try{i.call(this,e,this)}catch(e){console.error(`${t} callback error:`,e)}}_triggerEvent(t,e={}){g.A.trigger(this._element,`${ki}.${t}`,e)}_getUploadedIds(){return Array.from(this._uploadedKeys).map(t=>{const e=this._files.find(e=>this._getFileKey(e)===t);return e?.id||null}).filter(t=>null!==t)}dispose(){this._sortable&&"function"==typeof this._sortable.destroy&&this._sortable.destroy(),this._sortable=null,this.clear(),this._uploader&&("function"==typeof this._uploader.destroy?this._uploader.destroy():("function"==typeof this._uploader.clear&&this._uploader.clear(),"function"==typeof this._uploader.offAll&&this._uploader.offAll())),super.dispose()}}g.A.on(document,`DOMContentLoaded.${ki}.data.api`,()=>{s.A.findAll(`.${Oi}`).forEach(t=>Vi.getOrCreateInstance(t))}),g.A.on(document,`click.${ki}.data.api`,Ri,function(t){t.preventDefault(),t.stopPropagation(),"function"==typeof t.stopImmediatePropagation&&t.stopImmediatePropagation();const e=t.target.closest(`.${Oi}`);e&&Vi.getOrCreateInstance(e).removeFile(t.target.closest(Ri))}),g.A.on(document,`click.${ki}.data.api`,Fi,function(t){t.preventDefault(),t.stopPropagation(),"function"==typeof t.stopImmediatePropagation&&t.stopImmediatePropagation();const e=t.target.closest(`.${Oi}`);e&&Vi.getOrCreateInstance(e).reload(t.target.closest(Fi))}),g.A.on(document,`click.${ki}.data.api`,'[data-vg-dismiss="vg-files"]',function(t){const e=t.target.closest(`.${Oi}`);if(!e)return;const i=Vi.getOrCreateInstance(e);if(i._params.ajax&&i._params.removes.all.route){t.preventDefault();const e={route:i._params.removes.all.route,method:"post",data:{ids:i._getUploadedIds()}},s=()=>{i.clear(!0,!0)};if(i._params.removes.all.alert){const r={title:tt(i._params.lang,Ti).title,description:tt(i._params.lang,Ti).descriptions};i._confirmRemove("all",t.target,e,r).then(t=>{if(t.accepted)return t.data?(i._params.removes.all.toast&&Ii.A.run(t.data?.response?.message),void s()):void i._runAjaxRequest(e,(t,e)=>{i._params.removes.all.toast&&e?.response?.message&&Ii.A.run(e.response.message),s()})}).catch(()=>{})}else i._runAjaxRequest(e,(t,e)=>{i._params.removes.all.toast&&e?.response?.message&&Ii.A.run(e.response.message),s()})}else i.clear(!0,!0)});const qi=Vi;var Ui=i(614);const Wi="vg.hideshowpass",Ki="show",Yi=`click.${Wi}.data.api`;class Gi extends t.A{constructor(t,e={}){super(t,e),this._params=this._getParams(t,(0,r._v)({parentClass:"vg-form-sender--content-pass"},e))}static get NAME(){return"hideshowpass"}static get NAME_KEY(){return Wi}toggle(t){return this._isShown()?this.hide(t):this.show(t)}show(t){t&&(this._params=this._getParams(t,this._params)),this._element.classList.add(Ki),t.remove(),this.build(!0),e.p.set(this._element,"type","text")}hide(t){this._element.classList.remove(Ki),t.remove(),this.build(!1),e.p.set(this._element,"type","password")}_isShown(){return this._element.classList.contains(Ki)}static init(t,e){Gi.getOrCreateInstance(t,e).build(!1)}build(t=!1){let e=this._params.classes.join(" "),i="";const s=(0,h.A)("string");this._element.parentElement&&this._params.parentClass&&this._element.parentElement.classList.add(this._params.parentClass),i=t?s.component("eye",{class:e,type:"hide"}):s.component("eye",{class:e}),this._element.insertAdjacentHTML(this._params.insert,i)}}g.A.on(document,Yi,'[data-vg-toggle="pass"]',function(t){const e=s.A.prev(this,"input");e&&(["A","AREA"].includes(this.tagName)&&t.preventDefault(),(0,r.d6)(this)||(this.setAttribute("aria-expanded",!0),Gi.getOrCreateInstance(e.shift()).toggle(this)))});const Xi=Gi,Zi="form-sender",Ji="vg.fs",Qi="vg-form-sender-alert",ts=`submit.${Ji}.data.api`;class es extends t.A{constructor(t,e={}){super(t,e),this._params=this._getParams(t,(0,r._v)({response:{enabled:!1,errors:!1,title:"",message:""},redirect:{error:"",success:""},validate:!1,submit:!1,fields:[],timeout:50,pass:{enabled:!0,template:"pass-open",classes:["vg-form-sender--hide-show-pass"],insert:"afterend"},alert:{enabled:!0,type:"modal",errors:!0,title:!0,delay:0,modal:{closeModalsBeforeModal:!0},toast:{closeModalsBeforeToast:!0}},ajax:{route:"",target:"",method:"get",timeout:1e3,loader:!1,output:!0},classes:{general:"vg-form-sender",alertCollapse:"vg-form-sender-collapse",alertModal:"vg-form-sender-modal",validation:"needs-validation",wasValidate:"was-validated",content:"vg-form-sender--content"},callback:{afterInit:r.lQ,afterSuccess:r.lQ,afterError:r.lQ,afterSend:r.lQ},interceptors:{beforeSend:()=>new Promise((t,e)=>t()),success:!1,error:!1},button:{enabled:!0,disabled:!0,send:"Отправляем...",initial:"Отправить",spinner:{enabled:!1,element:'<span class="spinner-border spinner-border-sm me-2"></span>'},click:r.lQ},lang:"ru"},e)),this._button=null,this._cachedElements=new Map,this._initElements()}static get NAME(){return Zi}static get NAME_KEY(){return Ji}_initElements(){this._button=s.A.find('[type="submit"]',this._element)||s.A.find('[form="'+this._element.id+'"]')||null;const t=s.A.findAll("input, textarea, select",this._element);this._cachedElements.set("fields",t),this._params.ajax.route=e.p.get(this._element,"action")||this._params.ajax.route,this._params.ajax.method=e.p.get(this._element,"method")||this._params.ajax.method,this._params.isBtnText="false"!==e.p.get(this._element,"data-btn-text"),this._params.isJsonParse="false"!==e.p.get(this._element,"data-json-parse"),this._params.isShowPass="true"===e.p.get(this._element,"data-show-pass"),this._button&&(this._params=this._getParams(this._button,this._params),this._params.button.initial=this._button.innerHTML.trim()||this._params.button.initial)}build(){this._element.classList.add(this._params.classes.general);const t=this._cachedElements.get("fields");return t&&t.forEach(t=>{(0,r.zN)(t)&&t.parentElement&&t.parentElement.classList.add(this._params.classes.content)}),this._params.validate&&(e.p.set(this._element,"novalidate",""),this._element.classList.add(this._params.classes.validation)),this._params.pass.enabled&&[...s.A.findAll('input[type="password"]',this._element)].forEach(t=>{Xi.init(t,this._params.pass)}),(0,r.g7)(this._params.callback.afterInit,[this._element,this]),this}request(t,e=null){const i=this;i._alertBefore();i._params.interceptors.beforeSend().then(()=>{(()=>{let s=new FormData(i._element);i._params.ajax.data=e?((t,e)=>{const i=new Set;return e.forEach((e,s)=>{i.has(s)||(t.delete(s),i.add(s)),t.append(s,e)}),t})(e,s):s,i._route(function(e,s){(0,r.g7)(i._params.callback.afterSend,[i._element,i,e,s]),i._element.classList.remove("was-validated"),i._params.response.enabled&&(s.response=i._params.response),i._params.alert.enabled&&("string"==typeof e&&"error"===e?i._params.redirect.error?window.location.href=i._params.redirect.error:(i._params.interceptors.error||i._alertError(t,s),(0,r.g7)(i._params.callback.afterError,[i._element,i,t,s])):"string"==typeof e&&"success"===e&&(i._params.redirect.success?window.location.href=i._params.redirect.success:(i._params.interceptors.success||i._alertSuccess(t,s),(0,r.g7)(i._params.callback.afterSuccess,[i._element,i,t,s]))))})})()}).catch(t=>{console.error(t)})}_alertBefore(){const t=this;if("collapse"===t._params.alert.type){const e=t._params.classes.alertCollapse;if(!t._cachedElements.has("collapses")||document.querySelector("."+e+".show")){const i=document.getElementsByClassName(e);t._cachedElements.set("collapses",i),[...i].forEach(function(t){t.classList.contains("show")&&Dt.getOrCreateInstance(t,{toggle:!1}).hide()})}}t._statusButton("before"),g.A.trigger(t._element,"vg.fs.before",{vgformsender:{self:t}})}_alertError(t,e){const i=this;i._statusButton("after"),i._jsonParse(e,"error"),g.A.trigger(i._element,"vg.fs.error",{vgformsender:{event:t,self:i,data:e}})}_alertSuccess(t,e){const i=this;i._statusButton("after"),i._jsonParse(e,"success"),g.A.trigger(i._element,"vg.fs.success",{vgformsender:{event:t,self:i,data:e}})}_statusButton(t){if(this._button){if("before"===t){const t=this._button;this._params.button.initial=this._button.innerHTML.trim(),this._params.button.spinner.enabled&&this._button.insertAdjacentHTML("afterbegin",this._params.button.spinner.element),this._params.button.enabled&&(t.innerHTML=this._params.button.send),this._params.button.disabled&&e.p.set(this._button,"disabled","disabled"),(0,r.g7)(this._params.button.click,[this,this._button,"before"])}if("after"===t){if(this._params.button.enabled&&(this._button.innerHTML=this._params.button.initial),this._params.button.disabled&&e.p.remove(this._button,"disabled"),this._params.button.spinner.enabled){let t=this._button.querySelector(".spinner-border");t&&t.remove()}(0,r.g7)(this._params.button.click,[this,this._button,"after"])}}}_jsonParse(t,e){const i=this;i._params.isJsonParse?i.alert((0,r.OM)(t),e):i.alert(t,e)}alert(t,e){if((0,r.Gv)(t))if("code"in t&&t.code&&200===t.code){if("response"in t&&t.response){let i=(0,r.OM)(t.response);"string"==typeof i?-1===i.indexOf("Parse error")&&-1===i.indexOf("syntax error")||(e="danger",t={response:{title:Q(this._params.lang,"errors").title,message:tt(this._params.lang,"errors").went_wrong}}):"errors"in i&&(0,r.OM)(i.errors)&&(e=(0,r.OM)(i.errors)?"danger":"success")}}else e="danger";this._params.alert.enabled&&("modal"===this._params.alert.type&&this._alertModal(t,e),"collapse"===this._params.alert.type&&this._alertCollapse(t,e),"toast"===this._params.alert.type&&this._alertToast(t,e))}_alertModal(t,e){const i=this,n=i._params.alert.modal?.closeModalsBeforeModal,a=!n&&i._hasOpenedModals();n&&i._closeOpenedModals();let o=i._params.classes.general+"-"+(0,r.PR)(),l=s.A.find("."+i._params.classes.alertModal);l&&l.remove(),setTimeout(()=>{j.init(o,{dismiss:!0,classes:{alert:i._params.classes.alertModal}},function(r){let n=r._element;n.classList.add(i._params.classes.alertModal),a&&i._setStackedModalState(n);let o=s.A.find(".vg-modal-content",n);o&&o.classList.add(Qi,Qi+"-"+e);let l=s.A.find(".vg-modal-body",n);l&&l.append(i.setDataRelationStatus(n,e,t,"modal")),r.toggle(),i._params.alert.delay>0&&setTimeout(()=>{r.hide()},i._params.alert.delay)})},i._params.timeout)}_hasOpenedModals(){return Boolean(s.A.find(".modal.show, .vg-modal.show"))}_setStackedModalState(t){t&&(t.classList.add("vg-modal-stacked"),t.style.zIndex=this._getNextModalZIndex())}_getNextModalZIndex(){const t=s.A.findAll(".modal.show, .vg-modal.show").map(t=>Number.parseInt(window.getComputedStyle(t).zIndex,10)).filter(t=>Number.isFinite(t));return String((t.length?Math.max(...t):1040)+10)}_closeOpenedModals(){[...document.getElementsByClassName("modal")].forEach(t=>{t&&t.classList.contains("show")&&("undefined"!=typeof bootstrap&&bootstrap.Modal?.getOrCreateInstance?bootstrap.Modal.getOrCreateInstance(t).hide():console.warn(tt(this._params.lang,Zi).bootstrap_not_found))}),[...document.getElementsByClassName("vg-modal")].forEach(t=>{if(t&&t.classList.contains("show")){const e=j.getOrCreateInstance(t);e.hide([e])}})}_alertCollapse(t,e){const i=this;let n=s.A.find("."+i._params.classes.alertCollapse);n||(n=document.createElement("div"),n.classList.add(i._params.classes.alertCollapse),n.classList.add("vg-collapse"),n.id=i._params.classes.general+"-"+(0,r.PR)(),n.append(i.setDataRelationStatus(n,e,t,"collapse")),i._element.prepend(n));let a=Dt.getOrCreateInstance(n,{toggle:!1});a.toggle(),i._params.alert.delay>0&&setTimeout(()=>{a.hide()},i._params.alert.delay)}_alertToast(t,e){const i=this._prepareAlertResponse(e,t),s=this._getToastParams(e);this._params.alert.toast?.closeModalsBeforeToast&&this._closeOpenedModals(),i.title?Ui.A.run([i.title,i.message],s):Ui.A.run(i.message,s)}_getToastParams(t){const e="error"===t?"danger":t,i="danger"===t?"error":t,s=this._params.alert.delay>0?this._params.alert.delay:3e3,n={},{closeModalsBeforeToast:a,...o}=this._params.alert.toast||{};return["static","placement","autohide","delay","enableClickToast","enableButtonClose","keyboard","theme","drag","resize","stack","animation","ajax"].forEach(t=>{t in this._params.alert&&(n[t]=this._params.alert[t])}),(0,r._v)({theme:e||"dark",type:i||null,enableButtonClose:!0,autohide:this._params.alert.delay>0,delay:s},n,o)}setDataRelationStatus(t,e,i,r){let n=s.A.find("."+Qi+"-content",t);const a=this._prepareAlertResponse(e,i),o=(a.title?(0,h.A)("string").h4({class:Qi+"-content--title"},a.title):"")+a.message;if(n)s.A.find(".vg-modal-body",t).innerHTML=o;else{const t=(0,h.A)("dom");n=t.div({class:Qi+"-"+r},[t.div({class:Qi+"-content"},[t.i({class:Qi+"-content--icon"},(0,f.z)(e),{isHTML:!0}),t.div({class:Qi+"-content--text"},o,{isHTML:!0})])])}return n}_prepareAlertResponse(t,e){let i=(0,r.OM)(e?.response)||e;if((0,r.Gv)(e)){if((0,r.Gv)(e.response)&&"view"in e.response)return{title:"",message:e.response.view};if("string"!=typeof i){if("danger"===t){if(i.title="title"in i?i.title:Q(this._params.lang,"errors").title,"code"in e&&200!==e.code){const t={400:tt(this._params.lang,"errors")[400],401:tt(this._params.lang,"errors")[401],403:tt(this._params.lang,"errors")[403],404:tt(this._params.lang,"errors")[404],413:tt(this._params.lang,"errors")[413],419:tt(this._params.lang,"errors")[419],422:tt(this._params.lang,"errors")[422],500:tt(this._params.lang,"errors")[500],504:tt(this._params.lang,"errors")[504]};i.message=t[e.code]||tt(this._params.lang,"errors").went_wrong,i.title+=" ("+e.code+")"}if("errors"in i&&this._params.alert.errors){let t=(0,r.OM)(i.errors)||null;if(i.message=[],(0,r.Gv)(t))for(const e in t)Array.isArray(t[e])?t[e].forEach(t=>i.message.push(t)):i.message.push(t[e])}}const s=(0,h.A)("string");let n="";return Array.isArray(i.message)?i.message.forEach(t=>{n+=s.div({class:Qi+"-content--message"},t)}):n=s.div({class:Qi+"-content--message"},i.message),{title:this._params.alert.title&&i.title||"",message:n}}}return{title:"",message:"string"==typeof i?i:""}}static init(t,e={}){es.getOrCreateInstance(t,e).build()}static buttonClick(t,e,i="before"){const n=s.A.find(t);if(n){const t=es.getOrCreateInstance(n);n.addEventListener("vg.fs."+i,i=>{(0,r.g7)(e,[n,t])})}}}g.A.on(document,ts,function(t){if(!e.p.has(t.target,"data-vgformsender"))return;const i=es.getOrCreateInstance(t.target,{});if(i){if(i._params.validate&&!i._element.checkValidity())return t.preventDefault(),t.stopPropagation(),i._element.classList.add(i._params.classes.wasValidate),!1;if(!i._params.submit){t.preventDefault();const e=function(t,e){return e.forEach(function(e){(0,r.Gv)(e)&&Object.keys(e).forEach(function(i){let s=(0,r.OM)(e[i]);Array.isArray(s)||(0,r.Gv)(s)?t.append(i,JSON.stringify(s)):t.append(i,s)})}),t};let s=new FormData(i._element),n=i._params.fields;return Array.isArray(n)&&n.length&&(s=e(s,n)),i.request(t,s)}}});const is=es;function ss(t){return Array.prototype.slice.call(arguments,1).forEach(e=>{e&&Object.keys(e).forEach(i=>{t[i]=e[i]})}),t}const rs=function t(e,i){function s(t,s,r){if("undefined"==typeof document)return;if("number"==typeof(r=ss({},i,r)).expires){const t=864e5;r.expires=new Date(Date.now()+r.expires*t)}r.expires&&(r.expires=r.expires.toUTCString()),t=encodeURIComponent(t).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);let n="";return Object.keys(r).forEach(t=>{if(r[t]&&(n+="; "+t,!0!==r[t])){const e=String(r[t]).split(";")[0];n+="="+e}}),document.cookie=t+"="+e.write(s,t)+n}return Object.create({set:s,get:function(t){if("undefined"==typeof document||arguments.length&&!t)return;const i=document.cookie?document.cookie.split("; "):[],s={};for(let r=0;r<i.length;r++){const n=i[r].split("="),a=n.slice(1).join("="),o=n[0];try{const i=decodeURIComponent(o);if(s[i]=e.read(a,i),t===i)break}catch(t){}}return t?s[t]:s},remove:function(t,e){s(t,"",ss({},e,{expires:-1}))},withAttributes:function(e){return t(this.converter,ss({},this.attributes,e))},withConverter:function(e){return t(ss({},this.converter,e),this.attributes)}},{attributes:{value:Object.freeze(i)},converter:{value:Object.freeze(e)}})}({read:function(t){return'"'===t[0]&&(t=t.slice(1,-1)),t.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(t){return encodeURIComponent(t).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"}),ns="vg.lawcookie",as="show",os=`${ns}.hide`,ls=`${ns}.hidden`,ds=`${ns}.show`,hs=`${ns}.shown`,cs=`click.${ns}.data.api`;class us extends t.A{constructor(t,e={}){super(t,e),this._params=this._getParams(t,(0,r._v)({storage:"local",delay:500,cookie:{name:"lawCookie",value:"yes",attributes:{}},animation:{enable:!0,in:"animate__fadeInUp",out:"animate__fadeOutDown",delay:800},ajax:{route:"",target:"",method:"get",loader:!1,once:!1,output:!0}},e)),this._storage=this._createStorage(),this._params.animation.delay=this._params.animation.enable?this._params.animation.delay:0,this._animation(this._element,us.NAME_KEY,this._params.animation)}static get NAME(){return"lawcookie"}static get NAME_KEY(){return ns}_isConsented(){return this._storage.get()===this._params.cookie.value}toggle(){return this._isConsented()?this.hide():this.show()}show(){(0,r.d6)(this._element)||this._isConsented()||g.A.trigger(this._element,ds).defaultPrevented||(this._element.classList.add(as),this._queueCallback(()=>{g.A.trigger(this._element,hs)},this._element,!0,this._params.delay))}hide(){g.A.trigger(this._element,os).defaultPrevented||(this._element.classList.remove(as),this._queueCallback(()=>{g.A.trigger(this._element,ls)},this._element,!0,this._params.animation.delay))}_createStorage(){const{name:t,value:e,attributes:i}=this._params.cookie;return"cookie"===this._params.storage?{get:()=>rs.get(t),set:()=>rs.set(t,e,i)}:{get:()=>localStorage.getItem(t),set:()=>localStorage.setItem(t,e)}}accept(){this._storage.set()}static reset(){rs.remove(us.getDefaultParams().cookie.name),localStorage.clear(),location.reload()}static getDefaultParams(){return(0,r._v)({cookie:{name:"lawCookie"}},{})}dispose(){rs.remove(us.getDefaultParams().cookie.name),localStorage.clear(),super.dispose()}static init(t,e={}){us.getOrCreateInstance(t,e).toggle()}}(0,f.P)(us),g.A.on(document,cs,'[data-vg-toggle="lawcookie"]',function(t){if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),(0,r.d6)(this))return;const e=s.A.find("#vg-lawcookie");if(!e)return;const i=us.getOrCreateInstance(e);i.accept(),i.hide()}),g.A.on(document,cs,'[data-vg-toggle="lawcookie-clear"]',function(t){if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),(0,r.d6)(this))return;const e=s.A.find("#vg-lawcookie");e&&(us.getOrCreateInstance(e).dispose(),us.reset())});const _s=us,ms="loadmore",ps="vg."+ms,gs=`${ps}.loaded`,fs=`${ps}.before.load`,bs="vg-collapse",vs="show",ys=`click.${ps}.data.api`;class ws extends t.A{static get NAME(){return ms}static get NAME_KEY(){return ps}constructor(t,e){super(t,e),this._params=this._getParams(t,(0,r._v)({lang:document.documentElement.lang||"ru",limit:0,offset:0,output:!0,autohide:!0,animate:!1,append:"after",mode:"button",threshold:100,debug:!1,detach:!1,button:{text:"",send:"Загружаю...",show:"Показываю...",loader:!1,classes:[]},ajax:{route:"",target:"",method:"get",loader:!1,once:!1,output:!1,data:{}}},e)),this._observer=null,this._isScrollMode="scroll"===this._params.mode,this._isToggleElement=t.hasAttribute("data-vg-toggle"),this._params.button.send=et(this._params.lang,ms).send,this._params.button.show=et(this._params.lang,ms).show,this._params.button.text||(this._params.button.text=this._isToggleElement?this._element.innerHTML.trim()||et(this._params.lang,ms)["text-ajax"]:this._params.ajax.route?et(this._params.lang,ms)["text-ajax"]:et(this._params.lang,ms)["text-more"]),this._isToggleElement?this._initializeAsButton():this._initializeContainer()}_initializeAsButton(){this._isScrollMode&&this._initScrollMode()}_initializeContainer(){const{elements:t,limit:e}=this._params,i=this._element,r=s.A.findAll(`.${t}`,i);!this._params.ajax.route&&(r.length<=e||this._params.offset>=r.length)||(r.forEach((t,i)=>{t.classList.toggle(vs,i<e),t.classList.toggle(bs,i>=e)}),"button"===this._params.mode?this._createAndInsertButton(i):this._isScrollMode&&this._initScrollMode(),0===this._params.offset&&(this._params.offset=e))}_createAndInsertButton(t){const i=document.createElement("button"),s=(0,r.OM)(t.dataset.buttonText)||this._params.button.text,n={limit:this._params.limit,offset:this._params.offset,output:this._params.output,autohide:this._params.autohide,animate:this._params.animate,append:this._params.append,mode:this._params.mode,threshold:this._params.threshold,debug:this._params.debug,detach:this._params.detach,elements:this._params.elements,"vg-toggle":"loadmore",target:`#${t.id}`};Object.assign(n,(0,r.OM)(t.dataset.params)),Object.keys(n).forEach(t=>{e.p.set(i,`data-${t}`,n[t])}),i.textContent=s,i.classList.add(...this._params.button.classes),t.parentNode.insertBefore(i,t.nextSibling)}_initScrollMode(){this._setupIntersectionObserver(),this._observeLastVisibleItem()}_setupIntersectionObserver(){this._observer||(this._observer=new IntersectionObserver(t=>{t.forEach(t=>{t.isIntersecting&&(this._params.debug&&console.log("[VGLoadMore] Пересечение — вызов toggle"),this.toggle())})},{root:null,rootMargin:`0px 0px ${this._params.threshold}px 0px`,threshold:.1}))}_observeLastVisibleItem(){if(!this._observer)return;this._observer.disconnect();const t=s.A.find(this._params.target)||this._element.parentNode,e=s.A.findAll(`.${this._params.elements}`,t).filter(t=>t.classList.contains(vs)),i=e[e.length-1];i instanceof Element&&this._observer.observe(i)}toggle(t){this._params.debug&&console.log("[VGLoadMore] toggle()"),g.A.trigger(this._element,fs).defaultPrevented||((this._isToggleElement||["BUTTON","A"].includes(this._element.tagName)&&!this._isScrollMode)&&(this._element.disabled=!0,this._element.innerHTML=this._params.ajax.route?this._params.button.send:this._params.button.show),this._params.ajax.route?this.ajax(t):this.staticLoad(t))}ajax(t){const e=this._params.ajax.target?.trim();let i=null;if(i=e?s.A.find(e):this._element,!i)return void console.error("[VGLoadMore] target элемент не найден:",this._params.ajax.target);const n=this._params.button.text;this._params.ajax.data={limit:this._params.limit,offset:this._params.offset},this._route((e,s,a)=>{if("error"===e||"string"!=typeof s?.response)return;this._params.output&&i.insertAdjacentHTML("after"===this._params.append?"beforeend":"afterbegin",s.response),this._params.offset+=this._params.limit,this._restoreElementState(n),this._observeLastVisibleItem();const o=!s.response.trim();this._params.autohide&&this._params.detach&&o&&this._autohideTrigger(),g.A.trigger(this._element,gs,{stats:e,data:s}),(0,r.g7)(t,[this,s,a,e])},t=>{this._restoreElementState(n),console.error("[VGLoadMore] AJAX ошибка",t)})}staticLoad(t){const e=s.A.find(this._params.target)||this._element.parentNode,i=s.A.findAll(`.${this._params.elements}`,e),n=this._params.offset,a=n+this._params.limit,o=i.slice(n,a);if(0===o.length)return;(this._isToggleElement||["BUTTON","A"].includes(this._element.tagName)&&!this._isScrollMode)&&(this._element.disabled=!0,this._element.innerHTML=this._params.button.show),o.forEach(t=>{t.classList.replace(bs,vs),this._params.animate&&(t.style.opacity=0,requestAnimationFrame(()=>{t.style.transition="opacity 0.3s ease",t.style.opacity=1}))}),this._params.offset=a,this._observeLastVisibleItem();const l=i.slice(a);this._params.autohide&&this._params.detach&&0===l.length&&this._autohideTrigger(),this._restoreElementState(this._params.button.text),(0,r.g7)(t,[this,this._element])}_restoreElementState(t){(this._isToggleElement||"BUTTON"===this._element.tagName)&&!this._isScrollMode&&(this._element.disabled=!1,this._element.innerHTML=t)}_autohideTrigger(){this._isScrollMode?(this._observer?.disconnect(),this._observer=null):this._params.detach&&this._element.parentNode&&this._element.remove()}dispose(){this._observer?.disconnect(),super.dispose()}}g.A.on(document,"DOMContentLoaded",()=>{s.A.findAll("[data-vgloadmore]").forEach(t=>{!t.dataset.initialized&&ws.getOrCreateInstance(t),t.dataset.initialized="true"})}),g.A.on(document,ys,'[data-vg-toggle="loadmore"]',function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),ws.getOrCreateInstance(this).toggle()});const Ss=ws,Cs="vg.nav",As="show",Es="fade",xs="active",Ps=`${Cs}.hide`,Ls=`${Cs}.hidden`,Is=`${Cs}.show`,Ms=`${Cs}.shown`,Ds=`mouseover.${Cs}.data.api`,Ts=`mouseout.${Cs}.data.api`,ks=`click.${Cs}.data.api`,Fs=`keyup.${Cs}.data.api`;class Rs extends t.A{constructor(t,e={}){super(t),this._params=this._getParams(t,(0,r._v)({breakpoint:"lg",placement:"horizontal",hover:!0,hoversmoothfirstlevel:{enable:!1,horizontalOnly:!0},animation:{enable:!0,timeout:700},toggle:'<span class="default"></span>',hamburger:{enable:!0,always:!1,title:"",body:null,target:"#sidebar-nav"},callbacks:{afterInit:r.lQ,afterClick:r.lQ}},e)),this._classes={hamburgerActive:"vg-nav-hamburger-active",hamburgerAlways:"vg-nav-hamburger-always",hamburger:"vg-nav-hamburger",container:"vg-nav-container",wrapper:"vg-nav-wrapper",active:"vg-nav-active",expand:"vg-nav-expand",cloned:"vg-nav-cloned",hover:"vg-nav-hover",flip:"vg-nav-flip",XXXL:"vg-nav-xxxl",XXL:"vg-nav-xxl",XL:"vg-nav-xl",LG:"vg-nav-lg",MD:"vg-nav-md",SM:"vg-nav-sm",XS:"vg-nav-xs"},this._navigation=null,this.navigation="."+this._classes.wrapper,!1===this._params.animation.enable&&(this._params.animation.timeout=10),this._openDrops=new Map,this._pointerPosition=null,this._handleScroll=this._handleScroll.bind(this),this._handleResize=this._handleResize.bind(this)}static get NAME(){return"nav"}static get NAME_KEY(){return Cs}get navigation(){return this._navigation}set navigation(t){let e=s.A.find(t,this._element);e&&(this._navigation=e)}build(){if(!this.navigation)return;let t=this._params,i=this._classes;if(this._element.classList.add(i.container),this._element.classList.add("vg-nav-"+t.placement),t.hamburger.always?this._element.classList.add(i.hamburgerAlways):t.breakpoint?!1!==t.breakpoint&&this._element.classList.add("vg-nav-"+t.breakpoint):this._element.classList.add(i.expand),t.hamburger.enable&&!s.A.find("."+i.hamburger,this._element)){const s=t.hamburger.target||"#sidebar-nav";let r="",n='<span class="'+i.hamburger+'--lines"><span></span><span></span><span></span></span>';t.hamburger.title&&(r='<span class="'+i.hamburger+'--title">'+t.hamburger.title+"</span>"),null!==t.hamburger.body&&(n=t.hamburger.body);let a=document.createElement("a");a.classList.add(i.hamburger),e.p.set(a,"data-vg-toggle","sidebar"),e.p.set(a,"href",s),a.innerHTML=r+n,this._element.append(a)}if(t.toggle){let e=[...s.A.findAll(".dropdown > a",this._element)],i='<span class="toggle">'+t.toggle+"</span>";e.length&&e.forEach(function(t){t.querySelector(".toggle")||t.closest(".dots")||(t.setAttribute("aria-expanded","false"),t.insertAdjacentHTML("beforeend",i))})}"afterInit"in this._params.callbacks&&(0,r.g7)(this._params.callbacks.afterInit,[this])}show(t){let e=t.relatedTarget;if(!e||(0,r.d6)(e))return;if(e.closest(".dropdown-content")||e.classList.add("first"),g.A.trigger(e,Is,{relatedTarget:t}).defaultPrevented)return;let i=s.A.find(".dropdown-content",e),n=e.firstElementChild;n&&n.setAttribute("aria-expanded","true"),i.classList.add(As),e.classList.add(xs);const a=new kt({reference:e,drop:i,placement:"bottom-start",fallbackPlacements:["top-start","bottom-end","top-end"],offset:[0,6],boundary:"clippingParents",autoFlip:!0,overflowProtection:!0});a._setPlacement(),this._openDrops.set(i,{reference:e,placement:a,scrollHandler:this._handleScroll,resizeHandler:this._handleResize}),window.addEventListener("scroll",this._handleScroll,{passive:!0,capture:!0}),window.addEventListener("resize",this._handleResize),this._queueCallback(()=>{i.classList.add(Es),g.A.trigger(e,Ms,t)},i,!0,10)}hide(t){const e=this;if("ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))g.A.off(t,"mouseover",r.lQ);let i=t.relatedTarget;if("elm"in t&&t.elm&&(i=t.elm),i){if(g.A.trigger(i,Ps).defaultPrevented)return;i.classList.remove(xs),i.classList.contains("first")&&i.classList.remove("first"),[...s.A.findAll("."+As,i)].forEach(function(i,s){i.classList.remove(Es);let r=i.closest(".dropdown");r.classList.contains(xs)&&r.classList.remove(xs);let n=i.previousElementSibling;if(n&&n.setAttribute("aria-expanded","false"),0===s){const s=()=>{i.classList.remove(As),g.A.trigger(i,Ls,t)};e._queueCallback(s,i,!0,500)}const a=e._openDrops.get(i);a&&(window.removeEventListener("scroll",a.scrollHandler,{capture:!0}),window.removeEventListener("resize",a.resizeHandler),e._openDrops.delete(i))})}}_handleScroll(){for(const[t,e]of this._openDrops.entries())if(null!==t.offsetParent){if(e.placement._setPlacement(),!this._isElementInViewport(t)){const t=e.reference;this.hide({relatedTarget:t})}}else this._cleanupDrop(t)}_handleResize(){for(const[t,e]of this._openDrops.entries())null!==t.offsetParent&&e.placement._setPlacement()}_cleanupDrop(t){const e=this._openDrops.get(t);e&&(window.removeEventListener("scroll",e.scrollHandler,{capture:!0}),window.removeEventListener("resize",e.resizeHandler),this._openDrops.delete(t))}_isElementInViewport(t){const e=t.getBoundingClientRect(),i=window.innerHeight||document.documentElement.clientHeight,s=window.innerWidth||document.documentElement.clientWidth,r=e.top<=i&&e.top+e.height>=0,n=e.left<=s&&e.left+e.width>=0;return r&&n}_updatePointerPosition(t){t&&"number"==typeof t.clientX&&"number"==typeof t.clientY&&(this._pointerPosition={x:t.clientX,y:t.clientY})}_isHorizontalPointerMove(t){if(!this._pointerPosition||!t)return!1;const e=t.clientX-this._pointerPosition.x,i=t.clientY-this._pointerPosition.y;return Math.abs(e)>Math.abs(i)&&Math.abs(e)>0}_isFirstLevelDropdown(t){return!!t&&!t.closest(".dropdown-content")}_hasDirectDropdownContent(t){return!(!t||!t.children)&&[...t.children].some(t=>t.classList&&t.classList.contains("dropdown-content"))}_isAdjacentDropdown(t,e){return!(!t||!e||t.parentElement!==e.parentElement||t.previousElementSibling!==e&&t.nextElementSibling!==e)}_canSmoothSwitchFirstLevel(t,e,i){const s=this._params.hoversmoothfirstlevel||{};return!(!s.enable||!e||!i||e===i||!this._isFirstLevelDropdown(e)||!this._isFirstLevelDropdown(i)||!this._hasDirectDropdownContent(e)||!this._hasDirectDropdownContent(i)||!this._isAdjacentDropdown(e,i)||s.horizontalOnly&&!this._isHorizontalPointerMove(t))}static init(t,e={}){const i=Rs.getOrCreateInstance(t,e);i.build();let n=s.A.findAll(".dropdown",i.navigation);i._params.hover&&!(0,r.Xb)()&&(g.A.on(i.navigation,`mousemove.${Cs}.data.api`,function(t){i._updatePointerPosition(t)}),[...n].forEach(function(t){let e=null;g.A.on(t,Ds,function(t){if(e)return;let s=t.target.closest(".dropdown");if(!s)return;if(!i.navigation.contains(s))return;e=s;const r=t.relatedTarget?.closest(".dropdown"),n=i._canSmoothSwitchFirstLevel(t,s,r);n||Rs.hideOpenDrops(t);let a={relatedTarget:s};i.show(a),n&&r&&r.classList.contains(xs)&&i.hide({relatedTarget:r}),i._updatePointerPosition(t)}),g.A.on(t,Ts,function(t){if(!e)return;let s=t.relatedTarget?.closest(".dropdown"),r=s,n=e;for(;r;){if(r===e)return;r=r.parentNode}if(i._canSmoothSwitchFirstLevel(t,n,s))return e=null,void i._updatePointerPosition(t);e=null,i.hide({relatedTarget:r,elm:n}),i._updatePointerPosition(t)})}));const a=document.querySelector(i._params.hamburger.target||"#sidebar-nav");let o=i._element.querySelector("."+i._classes.hamburger);a&&o&&(a.addEventListener("vg.sidebar.show",function(){o.classList.add(i._classes.hamburgerActive)}),a.addEventListener("vg.sidebar.hide",function(){o.classList.remove(i._classes.hamburgerActive)}))}static clearDrops(t){2===t.button||"keyup"===t.type&&"Tab"!==t.key||Rs.hideOpenDrops(t)}static hideOpenDrops(t){[...s.A.findAll(".dropdown:not(.disabled):not(:disabled).active")].forEach(e=>{let i=t.target;if(e!==i.closest(".dropdown")){const t=e.closest(".vg-nav"),s=Rs.getInstance(t);if(!s)return;let r=!!t.querySelector(".first"),n=!!i.closest(".dropdown-content");if(r&&n)return;const a={relatedTarget:e};s.hide(a)}})}}g.A.on(document,Fs,Rs.clearDrops),g.A.on(document,ks,Rs.clearDrops),g.A.on(document,ks,".vg-nav a",function(t){if(!e.p.has(this,"aria-expanded"))return;let i=this.closest(".vg-nav");const n=Rs.getOrCreateInstance(i);if("afterClick"in n._params.callbacks&&(0,r.g7)(n._params.callbacks.afterClick,[n,t,this]),n._params.hover&&!(0,r.Xb)())return;t.preventDefault();let a=this.parentNode;if(!a)return;if((0,r.d6)(a)||!(0,r.zN)(a))return;let o=!!i.querySelector(".first");if(this.closest(".dropdown-content")&&o){if(a.classList.contains("active"))return void n.hide({relatedTarget:a})}else[...s.A.findAll(".active",i)].forEach(function(t){n.hide({relatedTarget:t})});n.show({relatedTarget:a})});const Os=Rs;var Ns=i(546);const zs="nestable",Hs="vg.nestable",$s="is-dragging",Bs="vg-nestable-placeholder",js="vg-nestable-inner",Vs="vg-nestable-handle",qs="vg-nestable-handle-icon",Us="vg-nestable-collapse-toggle",Ws="is-drop-target",Ks="is-drop-denied",Ys=`${Hs}.start`,Gs=`${Hs}.change`,Xs=`${Hs}.end`,Zs=`${Hs}.save`,Js=`${Hs}.init`,Qs=`${Hs}.refresh`,tr=`${Hs}.pointerdown`,er=`${Hs}.move`,ir=`${Hs}.drop`,sr=`${Hs}.transfer`,rr=`${Hs}.placeholdermove`,nr=`${Hs}.destroy`;class ar extends t.A{static _groups=new Map;constructor(t,e={}){super(t,e),this._params=this._getParams(t,(0,r._v)({listselector:".vg-nestable-list",itemselector:".vg-nestable-item",handleselector:".vg-nestable-handle",idattribute:"data-id",childlistclass:"vg-nestable-list",handleicon:"",indent:50,maxdepth:6,moveaxis:"default",hoverthreshold:0,neighborchangethreshold:0,showplaceholder:!0,group:"",connect:!1,accept:null,collapse:{enabled:!0,open:!0,showtext:(0,f.z)("plus"),hidetext:(0,f.z)("minus")},callbacks:{init:null,refresh:null,pointerdown:null,start:null,move:null,placeholdermove:null,drop:null,transfer:null,change:null,end:null,save:null,destroy:null},ajax:{route:"",method:"post",field:"items",data:{},loader:!1,once:!1,output:!1,timeout:0}},e)),this._rootList=this._resolveRootList(),this._draggedItem=null,this._placeholder=null,this._dragElement=null,this._dragLayer=null,this._isDragging=!1,this._startSnapshot="",this._sourceInstance=this,this._lastDropInstance=this,this._activeDropList=null,this._mouse={startX:0,startY:0,startItemX:0,grabOffsetX:0,grabOffsetY:0,x:0,y:0},this._previousBodyCursor="",this._boundOnMouseDown=this._onMouseDown.bind(this),this._boundOnMouseMove=this._onMouseMove.bind(this),this._boundOnMouseUp=this._onMouseUp.bind(this),this._boundOnPointerDown=this._onPointerDown.bind(this),this._boundOnPointerMove=this._onPointerMove.bind(this),this._boundOnPointerUp=this._onPointerUp.bind(this),this._boundOnPointerCancel=this._onPointerCancel.bind(this),this._boundOnTouchStart=this._onTouchStart.bind(this),this._boundOnTouchMove=this._onTouchMove.bind(this),this._boundOnTouchEnd=this._onTouchEnd.bind(this),this._boundOnTouchCancel=this._onTouchCancel.bind(this),this._boundOnKeyDown=this._onKeyDown.bind(this),this._supportsPointerEvents="undefined"!=typeof window&&"PointerEvent"in window,this._activePointerId=null,this._activeTouchId=null,this._keyboardDraggedItem=null,this._keyboardStartSnapshot="",this._liveRegion=null,this._rootList&&(this._registerGroup(),this.refresh(),this._ensureLiveRegion(),this._bindEvents(),this._emit("init",{payload:this.serialize()}))}static get NAME(){return zs}static get NAME_KEY(){return Hs}_getEventKey(t){switch(t){case"init":return Js;case"refresh":return Qs;case"pointerdown":return tr;case"start":return Ys;case"move":return er;case"placeholdermove":return rr;case"drop":return ir;case"transfer":return sr;case"change":return Gs;case"end":return Xs;case"save":return Zs;case"destroy":return nr;default:return`${Hs}.${t}`}}_emit(t,e={}){const i={action:t,instance:this,...e};g.A.trigger(this._element,this._getEventKey(t),i);const s=this._params?.callbacks?.[t];if("function"==typeof s)try{s(i)}catch(e){console.error(`[${zs}] callback "${t}" failed`,e)}return i}_getGroupName(){const t=this._params?.group;return null==t?"":String(t).trim()}_registerGroup(){const t=this._getGroupName();t&&(ar._groups.has(t)||ar._groups.set(t,new Set),ar._groups.get(t).add(this))}_unregisterGroup(){const t=this._getGroupName();if(!t||!ar._groups.has(t))return;const e=ar._groups.get(t);e.delete(this),e.size||ar._groups.delete(t)}_getConnectedInstances(){if(!this._params.connect)return[this];const t=this._getGroupName();return t&&ar._groups.has(t)?Array.from(ar._groups.get(t)).filter(t=>t&&t._rootList):[this]}_findOwnerInstanceByElement(t){return t&&this._getConnectedInstances().find(e=>e._rootList&&e._rootList.contains(t))||null}_canAcceptItem(t,e){const i=this._params?.accept;if("function"!=typeof i)return!0;try{return!!i(t,e,this)}catch(t){return console.error(`[${zs}] accept() failed`,t),!1}}refresh(){this._getItems().forEach(t=>{const e=this._ensureItemLayout(t);e&&(e.style.cursor="grab",e.style.userSelect="none",e.style.touchAction="none",["BUTTON","A","INPUT"].includes(e.tagName)||e.setAttribute("role","button"),e.hasAttribute("tabindex")||e.setAttribute("tabindex","0"),e.hasAttribute("aria-label")||e.setAttribute("aria-label","Drag item")),this._syncItemCollapse(t)}),this._emit("refresh",{items:this._getItems().length})}_syncItemCollapse(t){if(!t||!this._params.collapse?.enabled)return;const e=this._getDirectChildBySelector(t,`.${js}`),i=e?this._getDirectChildBySelector(e,`.${Vs}`):null,s=this._getDirectChildBySelector(t,this._params.listselector);let r=e?this._getDirectChildBySelector(e,`.${Us}`):null;if(!e||!s)return void(r&&r.remove());s.id||(s.id=`vg-nestable-collapse-${Math.random().toString(36).slice(2,10)}`);const n=s.classList.contains("vg-collapse");s.classList.add("vg-collapse"),n||(this._params.collapse.open?s.classList.add("show"):s.classList.remove("show")),r?i&&r.previousElementSibling!==i&&e.insertBefore(r,i.nextSibling):(r=document.createElement("button"),r.type="button",r.className=Us,i?e.insertBefore(r,i.nextSibling):e.insertBefore(r,e.firstChild)),r.setAttribute("data-vg-toggle","collapse"),r.setAttribute("data-vg-target",`#${s.id}`),r.setAttribute("aria-controls",s.id);const a=Ns.A.toSafeHtmlString(this._params.collapse.showtext||(0,f.z)("chevron")),o=Ns.A.toSafeHtmlString(this._params.collapse.hidetext||(0,f.z)("chevron"));r.setAttribute("data-show-text",a),r.setAttribute("data-hide-text",o);const l=s.classList.contains("show");r.setAttribute("aria-expanded",l?"true":"false"),r.innerHTML=l?o:a,Dt.getOrCreateInstance(s,{toggle:!1})}_ensureItemLayout(t){if(!t||!this._params.handleselector)return null;const e=this._ensureInnerLayout(t);let i=this._getDirectChildBySelector(e,this._params.handleselector);if(!i){const e=Array.from(t.querySelectorAll(this._params.handleselector)).find(e=>e.closest(this._params.itemselector)===t);e&&(i=e)}if(!i){if(this._params.handleselector!==`.${Vs}`)return null;i=document.createElement("div"),i.classList.add(Vs)}if(i.parentElement===e&&i===e.firstElementChild||e.insertBefore(i,e.firstChild),!i.querySelector(`:scope > .${qs}`)){const t=document.createElement("span");t.className=qs,t.setAttribute("aria-hidden","true"),t.innerHTML=Ns.A.toSafeHtmlString(this._params.handleicon||(0,f.z)("dots-six-vertical")||":::"),i.prepend(t)}return i}_ensureInnerLayout(t){let e=this._getDirectChildBySelector(t,`.${js}`);const i=this._getDirectChildBySelector(t,this._params.listselector);return e||(e=document.createElement("div"),e.className=js,t.insertBefore(e,i||t.firstChild)),Array.from(t.childNodes).filter(t=>t!==e&&!(t.nodeType===Node.ELEMENT_NODE&&t.matches(this._params.listselector))).forEach(t=>e.append(t)),e.parentElement!==t&&t.insertBefore(e,i||t.firstChild),e}_getDirectChildBySelector(t,e){return t&&e&&Array.from(t.children).find(t=>t.matches(e))||null}serialize(){return this._rootList?this._serializeList(this._rootList):[]}save(){const t=this.serialize(),e=this._params.ajax?.route;return e?(this._emit("save",{payload:t,status:"start"}),new Promise((i,s)=>{const n=this._params.ajax||{},a=n.field||"items",o=String(n.method||"post").toLowerCase(),l=Number(n.timeout||0),d=(0,r._v)(n.data||{},{[a]:t}),h=new Si.A,c={onSuccess:e=>{this._emit("save",{payload:t,status:"success",response:e}),i(e)},onError:e=>{this._emit("save",{payload:t,status:"error",error:e}),s(e)}};setTimeout(()=>{switch(o){case"get":h.get(e,c);break;case"delete":h.delete(e,c);break;default:h.post(e,d,c)}},l)})):(this._emit("save",{payload:t,status:"skipped"}),Promise.resolve(t))}dispose(){this._rootList&&(this._supportsPointerEvents?this._rootList.removeEventListener("pointerdown",this._boundOnPointerDown):(this._rootList.removeEventListener("mousedown",this._boundOnMouseDown),this._rootList.removeEventListener("touchstart",this._boundOnTouchStart)),this._rootList.removeEventListener("keydown",this._boundOnKeyDown)),document.removeEventListener("mousemove",this._boundOnMouseMove),document.removeEventListener("mouseup",this._boundOnMouseUp),document.removeEventListener("pointermove",this._boundOnPointerMove),document.removeEventListener("pointerup",this._boundOnPointerUp),document.removeEventListener("pointercancel",this._boundOnPointerCancel),document.removeEventListener("touchmove",this._boundOnTouchMove),document.removeEventListener("touchend",this._boundOnTouchEnd),document.removeEventListener("touchcancel",this._boundOnTouchCancel),this._clearDragState(),this._clearKeyboardDragState(),this._liveRegion?.parentElement&&this._liveRegion.remove(),this._liveRegion=null,this._unregisterGroup(),this._emit("destroy"),super.dispose()}_bindEvents(){this._rootList.addEventListener("keydown",this._boundOnKeyDown),this._supportsPointerEvents?this._rootList.addEventListener("pointerdown",this._boundOnPointerDown):(this._rootList.addEventListener("mousedown",this._boundOnMouseDown),this._rootList.addEventListener("touchstart",this._boundOnTouchStart,{passive:!1}))}_resolveRootList(){return this._element?this._element.matches(this._params.listselector)?this._element:this._element.querySelector(this._params.listselector):null}_getItems(t=this._rootList){return t?Array.from(t.querySelectorAll(this._params.itemselector)):[]}_onMouseDown(t){0===t.button&&(this._startInteraction(t.target,t.clientX,t.clientY,t),this._draggedItem&&(document.addEventListener("mousemove",this._boundOnMouseMove),document.addEventListener("mouseup",this._boundOnMouseUp)))}_onMouseMove(t){this._processDragMove(t.clientX,t.clientY,t)}_onMouseUp(){document.removeEventListener("mousemove",this._boundOnMouseMove),document.removeEventListener("mouseup",this._boundOnMouseUp),this._finishDrag()}_onPointerDown(t){"mouse"===t.pointerType&&0!==t.button||(this._startInteraction(t.target,t.clientX,t.clientY,t),this._draggedItem&&(this._activePointerId=t.pointerId,document.addEventListener("pointermove",this._boundOnPointerMove),document.addEventListener("pointerup",this._boundOnPointerUp),document.addEventListener("pointercancel",this._boundOnPointerCancel)))}_onPointerMove(t){this._draggedItem&&t.pointerId===this._activePointerId&&this._processDragMove(t.clientX,t.clientY,t)}_onPointerUp(t){t.pointerId===this._activePointerId&&(this._activePointerId=null,document.removeEventListener("pointermove",this._boundOnPointerMove),document.removeEventListener("pointerup",this._boundOnPointerUp),document.removeEventListener("pointercancel",this._boundOnPointerCancel),this._finishDrag())}_onPointerCancel(t){t.pointerId===this._activePointerId&&(this._activePointerId=null,document.removeEventListener("pointermove",this._boundOnPointerMove),document.removeEventListener("pointerup",this._boundOnPointerUp),document.removeEventListener("pointercancel",this._boundOnPointerCancel),this._cancelDrag())}_onTouchStart(t){if(null!==this._activeTouchId||!t.changedTouches?.length)return;const e=t.changedTouches[0];this._startInteraction(e.target,e.clientX,e.clientY,t),this._draggedItem&&(this._activeTouchId=e.identifier,document.addEventListener("touchmove",this._boundOnTouchMove,{passive:!1}),document.addEventListener("touchend",this._boundOnTouchEnd),document.addEventListener("touchcancel",this._boundOnTouchCancel))}_onTouchMove(t){if(!this._draggedItem||null===this._activeTouchId)return;const e=this._findTouchById(t.changedTouches,this._activeTouchId)||this._findTouchById(t.touches,this._activeTouchId);e&&this._processDragMove(e.clientX,e.clientY,t)}_onTouchEnd(t){null!==this._activeTouchId&&this._findTouchById(t.changedTouches,this._activeTouchId)&&(this._activeTouchId=null,document.removeEventListener("touchmove",this._boundOnTouchMove),document.removeEventListener("touchend",this._boundOnTouchEnd),document.removeEventListener("touchcancel",this._boundOnTouchCancel),this._finishDrag())}_onTouchCancel(){null!==this._activeTouchId&&(this._activeTouchId=null,document.removeEventListener("touchmove",this._boundOnTouchMove),document.removeEventListener("touchend",this._boundOnTouchEnd),document.removeEventListener("touchcancel",this._boundOnTouchCancel),this._cancelDrag())}_onKeyDown(t){if(this._isDragging||this._draggedItem)return;const e=t.target?.closest?.(this._params.itemselector);if(!e||!this._rootList.contains(e))return;const i=t.key,s=" "===i||"Enter"===i;if(s&&!this._keyboardDraggedItem){if(!this._isKeyboardDragHandle(t.target,e))return;return t.preventDefault(),void this._startKeyboardDrag(e)}if(!this._keyboardDraggedItem)return;if(e!==this._keyboardDraggedItem&&!this._keyboardDraggedItem.contains(e))return;if(s)return t.preventDefault(),void this._finishKeyboardDrag();if("Escape"===i)return t.preventDefault(),void this._finishKeyboardDrag({cancelled:!0});let r=!1,n="";const a=this._getMoveAxis(),o="horizontal"!==a,l="vertical"!==a;if("ArrowUp"===i){if(!o)return;t.preventDefault(),r=this._moveKeyboardUp(this._keyboardDraggedItem),n="Moved up."}else if("ArrowDown"===i){if(!o)return;t.preventDefault(),r=this._moveKeyboardDown(this._keyboardDraggedItem),n="Moved down."}else if("ArrowRight"===i){if(!l)return;t.preventDefault(),r=this._indentKeyboard(this._keyboardDraggedItem),n="Nested into previous item."}else if("ArrowLeft"===i){if(!l)return;t.preventDefault(),r=this._outdentKeyboard(this._keyboardDraggedItem),n="Moved out one level."}r&&(this._cleanupEmptyLists(),this.refresh(),this._keyboardDraggedItem.focus?.(),this._emit("move",{item:this._keyboardDraggedItem,targetInstance:this,keyboard:!0,mouse:null}),n&&this._announce(n))}_isKeyboardDragHandle(t,e){if(!t||!e)return!1;const i=this._params.handleselector;if(!i)return!0;const s=t.closest(i);return!(!s||!e.contains(s))}_startKeyboardDrag(t){t&&!this._keyboardDraggedItem&&(this._keyboardDraggedItem=t,this._keyboardStartSnapshot=JSON.stringify(this.serialize()),t.classList.add($s),t.setAttribute("aria-grabbed","true"),this._emit("start",{item:t,payload:this.serialize(),keyboard:!0}),this._announce(this._getKeyboardDragInstructions()))}_finishKeyboardDrag(t={}){if(!this._keyboardDraggedItem)return;const e=this._keyboardDraggedItem,i=this._keyboardStartSnapshot?JSON.parse(this._keyboardStartSnapshot):[],s=this.serialize(),r=this._keyboardStartSnapshot!==JSON.stringify(s);this._emit("drop",{item:e,payload:s,previousPayload:i,changed:r,targetInstance:this,keyboard:!0,cancelled:!!t.cancelled}),r&&this._emit("change",{payload:s,previousPayload:i,keyboard:!0}),this._emit("end",{payload:s,changed:r,keyboard:!0,cancelled:!!t.cancelled}),t.cancelled?this._announce("Move cancelled."):r?this._announce("Item dropped."):this._announce("Item position unchanged."),r&&this._params.ajax?.route&&this.save(),this._clearKeyboardDragState()}_clearKeyboardDragState(){this._keyboardDraggedItem&&(this._keyboardDraggedItem.classList.remove($s),this._keyboardDraggedItem.removeAttribute("aria-grabbed")),this._keyboardDraggedItem=null,this._keyboardStartSnapshot=""}_moveKeyboardUp(t){const e=this._getPreviousItem(t);return e?(t.parentElement.insertBefore(t,e),!0):(this._announce("Cannot move up."),!1)}_moveKeyboardDown(t){const e=this._getNextItem(t);return e?(t.parentElement.insertBefore(t,e.nextSibling),!0):(this._announce("Cannot move down."),!1)}_indentKeyboard(t){const e=this._getPreviousItem(t);if(!e||e===t||t.contains(e))return this._announce("Cannot nest here."),!1;const i=this._getOrCreateChildList(e);return this._isDepthExceeded(i,t)?(this._announce("Maximum nesting depth reached."),!1):(i.append(t),!0)}_outdentKeyboard(t){const e=t.parentElement,i=e?.closest(this._params.itemselector);if(!i)return this._announce("Cannot move left."),!1;const s=i.parentElement;return s?(s.insertBefore(t,i.nextSibling),!0):(this._announce("Cannot move left."),!1)}_getMoveAxis(t=this._params){const e=String(t?.moveaxis||"default").trim().toLowerCase();return"vertical"===e||"horizontal"===e?e:"default"}_getKeyboardDragInstructions(){const t=this._getMoveAxis();return"vertical"===t?"Picked up item. Use Up/Down arrows to move, Enter or Space to drop, Escape to cancel.":"horizontal"===t?"Picked up item. Use Left/Right arrows to move, Enter or Space to drop, Escape to cancel.":"Picked up item. Use arrow keys to move, Enter or Space to drop, Escape to cancel."}_startInteraction(t,e,i,s){this._keyboardDraggedItem&&this._clearKeyboardDragState();const r=t?.closest?.(this._params.itemselector);if(!r||!this._rootList.contains(r))return;const n=this._params.handleselector;if(n){const e=t.closest(n);if(!e||!r.contains(e))return}s.preventDefault();const a=r.getBoundingClientRect();this._draggedItem=r,this._mouse.startX=e,this._mouse.startY=i,this._mouse.startItemX=a.left,this._mouse.grabOffsetX=e-a.left,this._mouse.grabOffsetY=i-a.top,this._mouse.x=e,this._mouse.y=i,this._isDragging=!1,this._startSnapshot="",this._emit("pointerdown",{item:this._draggedItem,mouse:{x:this._mouse.x,y:this._mouse.y}})}_processDragMove(t,e,i){if(!this._draggedItem)return;if(this._mouse.x=t,this._mouse.y=e,!this._isDragging){const t=Math.abs(this._mouse.x-this._mouse.startX),e=Math.abs(this._mouse.y-this._mouse.startY);if(t<3&&e<3)return;this._startDrag()}i.preventDefault(),this._moveDragElement(this._mouse.x,this._mouse.y);const s=this._getPointerTarget(this._mouse.x,this._mouse.y);if(!s)return void this._setDropListState(null);if(s.closest(`.${Bs}`))return;const r=this._findOwnerInstanceByElement(s)||this,n=s.closest(r._params.itemselector),a=this._resolveDropList(s,n,r);if(!a||!r._rootList.contains(a))return void this._setDropListState(null);if(!r._canAcceptItem(this._draggedItem,this._sourceInstance))return void this._setDropListState(a,!0);const o=this._resolveMode(this._mouse.x,this._mouse.y,n,r._params);if(this._emit("move",{item:this._draggedItem,hoveredItem:n,mode:o,targetInstance:r,mouse:{x:this._mouse.x,y:this._mouse.y}}),"keep"!==o){if("child"===o){let t=null;if(n){if(n===this._draggedItem||this._draggedItem.contains(n))return void this._setDropListState(null);t=n}else if(this._placePlaceholderWhenExplicitlyNeeded(a,this._mouse.y,r),this._placeholder?.parentElement)for(t=r._getPreviousItem(this._placeholder);t&&(t===this._draggedItem||this._draggedItem.contains(t));)t=r._getPreviousItem(t);if(!t)return void this._setDropListState(null);const e=r._getOrCreateChildList(t);return r._isDepthExceeded(e,this._draggedItem)?void this._setDropListState(e,!0):(this._placePlaceholder(e,null),this._setDropListState(e),this._currentTargetInstance=r,void(this._lastDropInstance=r))}if(n){if(n===this._draggedItem||this._draggedItem.contains(n))return void this._setDropListState(null);const t=n.parentElement;return r._isDepthExceeded(t,this._draggedItem)?void this._setDropListState(t,!0):("before"===o?this._placePlaceholder(t,n):this._placePlaceholder(t,n.nextSibling),this._setDropListState(t),this._currentTargetInstance=r,void(this._lastDropInstance=r))}this._placePlaceholderWhenExplicitlyNeeded(a,this._mouse.y,r),this._setDropListState(a),this._currentTargetInstance=r,this._lastDropInstance=r}else this._setDropListState(a)}_finishDrag(){if(!this._draggedItem)return;const t=this._draggedItem,e=this._isDragging,i=this._lastDropInstance||this,s=this._startSnapshot?JSON.parse(this._startSnapshot):[];let r=this.serialize(),n=i.serialize(),a=!1;if(e){const e=this._placeholder?.parentElement||null;e&&e.insertBefore(t,this._placeholder),t.style.display="",this._cleanupEmptyLists(),i!==this&&i._cleanupEmptyLists(),this.refresh(),i!==this&&i.refresh(),r=this.serialize(),n=i.serialize(),a=this._startSnapshot!==JSON.stringify(r)||i!==this}const o=r;this._emit("drop",{item:t,payload:o,previousPayload:s,changed:a,targetInstance:i}),a&&i!==this&&(this._emit("transfer",{item:t,from:this,to:i,sourcePayload:r,targetPayload:n}),i._emit("transfer",{item:t,from:this,to:i,sourcePayload:r,targetPayload:n}),i._emit("change",{payload:n,previousPayload:[]})),this._clearDragState(),a&&this._emit("change",{payload:o,previousPayload:s}),e&&this._emit("end",{payload:o,changed:a}),a&&(this._params.ajax?.route&&this.save(),i!==this&&i._params.ajax?.route&&i.save())}_cancelDrag(){if(!this._draggedItem)return;const t=this._isDragging;this._clearDragState(),t&&this._emit("end",{payload:this.serialize(),changed:!1,cancelled:!0})}_findTouchById(t,e){if(!t||null==e)return null;for(let i=0;i<t.length;i+=1)if(t[i].identifier===e)return t[i];return null}_startDrag(){this._draggedItem&&!this._isDragging&&(this._isDragging=!0,this._startSnapshot=JSON.stringify(this.serialize()),this._sourceInstance=this,this._sourceRoot=this._rootList,this._currentTargetInstance=this,this._lastDropInstance=this,this._placeholder=this._createPlaceholder(this._draggedItem),this._params.showplaceholder||this._placeholder.classList.add("vg-nestable-placeholder-hidden"),this._draggedItem.parentElement.insertBefore(this._placeholder,this._draggedItem.nextSibling),this._dragElement=this._createDragElement(this._draggedItem),this._dragLayer=document.createElement("div"),this._dragLayer.classList.add("vg-nestable-drag-layer"),this._element?.classList&&this._element.classList.forEach(t=>this._dragLayer.classList.add(t)),this._dragLayer.style.position="fixed",this._dragLayer.style.left="0",this._dragLayer.style.top="0",this._dragLayer.style.width="0",this._dragLayer.style.height="0",this._dragLayer.style.pointerEvents="none",this._dragLayer.style.zIndex="99999",document.body.append(this._dragLayer),this._dragLayer.append(this._dragElement),"undefined"!=typeof document&&document.body&&(this._previousBodyCursor=document.body.style.cursor||"",document.body.style.cursor="grabbing"),this._moveDragElement(this._mouse.x,this._mouse.y),this._draggedItem.classList.add($s),this._draggedItem.style.display="none",this._draggedItem.setAttribute("aria-grabbed","true"),this._emit("start",{item:this._draggedItem,payload:this.serialize()}))}_createDragElement(t){const e=t.getBoundingClientRect(),i=t.cloneNode(!0);return i.classList.add("is-drag-ghost","vg-nestable-drag-element"),i.style.position="fixed",i.style.left=`${e.left}px`,i.style.top=`${e.top}px`,i.style.width=`${e.width}px`,i.style.zIndex="99999",i.style.pointerEvents="none",i.style.margin="0",i}_moveDragElement(t,e){if(!this._dragElement)return;const i=t-(Number(this._mouse.grabOffsetX)||0),s=e-(Number(this._mouse.grabOffsetY)||0);this._dragElement.style.left=`${i}px`,this._dragElement.style.top=`${s}px`}_getPointerTarget(t,e){const i=document.elementFromPoint(t,e);return i&&this._findOwnerInstanceByElement(i)?i:null}_resolveDropList(t,e,i=this){if(e)return e.parentElement;const s=t.closest(i._params.listselector);return s&&i._rootList.contains(s)?s:i._rootList}_resolveMode(t,e,i,s=this._params){if(!i)return"append";const r=i.getBoundingClientRect(),n=e-r.top,a=t-(Number.isFinite(this._mouse.startItemX)?this._mouse.startItemX:this._mouse.startX),o=parseFloat(s.indent),l=Number.isFinite(o)?o:0,d=this._getMoveAxis(s),h="horizontal"!==d,c="vertical"!==d,u=Math.max(0,Math.min(49,Number(s.neighborchangethreshold||0)));if(u>0){const t=u/100,e=r.height*t,i=r.height*(1-t);return c&&a>l?"child":h&&n<=e?"before":h&&n>=i?"after":"keep"}const _=Math.min(.45,Math.max(.05,Number(s.hoverthreshold||.18)));return c&&a>l?"child":h&&n<r.height*(.5-_)?"before":h&&n>r.height*(.5+_)?"after":"keep"}_getPreviousItem(t){let e=t?.previousElementSibling||null;for(;e&&!e.matches(this._params.itemselector);)e=e.previousElementSibling;return e}_getNextItem(t){let e=t?.nextElementSibling||null;for(;e&&!e.matches(this._params.itemselector);)e=e.nextElementSibling;return e}_getOrCreateChildList(t){let e=t.querySelector(`:scope > ${this._params.listselector}`);return e||(e=document.createElement(this._rootList.tagName||"ol"),this._params.childlistclass&&this._params.childlistclass.split(" ").filter(Boolean).forEach(t=>e.classList.add(t)),t.append(e),e)}_isDepthExceeded(t,e=this._draggedItem){const i=this._getListDepth(t),s=Number(this._params.maxdepth||1);return i+this._getItemSubtreeDepth(e)-1>s}_getListDepth(t){if(!t)return 1;let e=1,i=t;for(;i&&i!==this._rootList;){const t=i.closest(this._params.itemselector);if(!t)break;e+=1,i=t.parentElement?.closest(this._params.listselector)}return e}_getItemSubtreeDepth(t){if(!t)return 1;const e=this._getDirectChildBySelector(t,this._params.listselector);if(!e)return 1;const i=Array.from(e.children).filter(t=>t.matches(this._params.itemselector));return i.length?i.reduce((t,e)=>Math.max(t,this._getItemSubtreeDepth(e)),1)+1:1}_cleanupEmptyLists(){this._rootList&&Array.from(this._rootList.querySelectorAll(this._params.listselector)).forEach(t=>{t!==this._rootList&&(Array.from(t.children).some(t=>t.matches(this._params.itemselector))||t.remove())})}_createPlaceholder(t){const e=t.tagName&&"li"===t.tagName.toLowerCase()?"li":"div",i=document.createElement(e);return i.className=Bs,i.style.height=`${Math.max(t.getBoundingClientRect().height,24)}px`,i.setAttribute("aria-hidden","true"),i}_placePlaceholder(t,e=null){if(!t||!this._placeholder)return;if(e===this._placeholder)return;const i=this._placeholder.parentElement,s=this._placeholder.nextSibling;i===t&&s===e||(t.insertBefore(this._placeholder,e),this._emit("placeholdermove",{parent:t,beforeNode:e,item:this._draggedItem}))}_placePlaceholderWhenExplicitlyNeeded(t,e,i=this){if(!t||i._isDepthExceeded(t,this._draggedItem))return;const s=Array.from(t.children).filter(t=>t.matches(this._params.itemselector));if(!s.length)return void this._placePlaceholder(t,null);const r=s[0],n=s[s.length-1],a=r.getBoundingClientRect(),o=n.getBoundingClientRect();e<=a.top+8?this._placePlaceholder(t,r):e>=o.bottom-8&&this._placePlaceholder(t,null)}_setDropListState(t,e=!1){this._activeDropList&&this._activeDropList!==t&&this._activeDropList.classList.remove(Ws,Ks),t?(t.classList.add(e?Ks:Ws),t.classList.remove(e?Ws:Ks),this._activeDropList=t):this._activeDropList=null}_clearDragState(){this._setDropListState(null),this._draggedItem&&(this._draggedItem.classList.remove($s),this._draggedItem.style.display="",this._draggedItem.removeAttribute("aria-grabbed")),this._dragElement&&this._dragElement.parentElement&&this._dragElement.remove(),this._dragLayer&&this._dragLayer.parentElement&&this._dragLayer.remove(),"undefined"!=typeof document&&document.body&&(document.body.style.cursor=this._previousBodyCursor||""),this._placeholder&&this._placeholder.parentElement&&this._placeholder.remove(),this._draggedItem=null,this._placeholder=null,this._dragElement=null,this._dragLayer=null,this._previousBodyCursor="",this._isDragging=!1,this._currentTargetInstance=this,this._lastDropInstance=this,this._activePointerId=null,this._activeTouchId=null}_ensureLiveRegion(){if(!this._element||this._liveRegion)return;const t=document.createElement("div");t.className="vg-nestable-live",t.setAttribute("aria-live","polite"),t.setAttribute("aria-atomic","true"),t.style.position="absolute",t.style.width="1px",t.style.height="1px",t.style.margin="-1px",t.style.border="0",t.style.padding="0",t.style.clip="rect(0 0 0 0)",t.style.clipPath="inset(50%)",t.style.overflow="hidden",t.style.whiteSpace="nowrap",this._element.append(t),this._liveRegion=t}_announce(t){t&&(this._ensureLiveRegion(),this._liveRegion&&(this._liveRegion.textContent="",requestAnimationFrame(()=>{this._liveRegion&&(this._liveRegion.textContent=t)})))}_serializeList(t){return Array.from(t.children).filter(t=>t.matches(this._params.itemselector)).map(t=>{const e=(0,r.OM)(t.getAttribute(this._params.idattribute)),i=t.querySelector(`:scope > ${this._params.listselector}`),s={id:e??null};if(i){const t=this._serializeList(i);t.length&&(s.children=t)}return s})}}g.A.on(document,`DOMContentLoaded.${Hs}.data.api`,()=>{s.A.findAll('[data-vg-toggle="nestable"]').forEach(t=>ar.getOrCreateInstance(t))});const or=ar,lr="is-status-success",dr="is-status-warning",hr="is-status-danger",cr=[lr,dr,hr],ur=(t,e,i)=>{const s=i.max-i.min,r=s>0?(t-i.min)/s*100:0,n=Number(e?.status?.warningBelow),a=Number(e?.status?.dangerBelow),o=Number.isFinite(n)?n:60;return r<(Number.isFinite(a)?a:30)?"danger":r<o?"warning":"success"},_r=(t,e,i)=>{const s=((t,e,i)=>{if(!i.isRange)return e.from;const s="string"==typeof t?.status?.by?t.status.by.toLowerCase():"to";return"from"===s?e.from:"avg"===s?(e.from+e.to)/2:e.to})(t,e,i);return ur(s,t,e)},mr=(t,e)=>{t.classList.remove(...cr),"danger"!==e?"warning"!==e?t.classList.add(lr):t.classList.add(dr):t.classList.add(hr)},pr=(t,e)=>!Array.isArray(t?.labelWords)||t.labelWords.length<3?null:"danger"===e?t.labelWords[0]||null:"warning"===e?t.labelWords[1]||null:t.labelWords[2]||null,gr="vg.rangeslider",fr="vg-range-slider",br="is-hidden",vr=`${gr}.init`,yr=`${gr}.input`,wr=`${gr}.change`,Sr=`${gr}.update`,Cr={range:!1,min:0,max:100,step:1,start:null,connect:!0,tooltips:!0,labels:!0,separator:" - ",suffix:"",prefix:"",labelWords:null,skin:"default",ruler:{count:6,labels:!0,values:null,dimInactive:!1},status:{warningBelow:60,dangerBelow:30,by:"to"},name:{min:"",max:""},input:{min:null,max:null},output:{target:null,min:null,max:null},disabled:!1,onInit:null,onInput:null,onChange:null,onUpdate:null,formatValue:null};class Ar extends t.A{constructor(t,e={}){super(t,e),this._sourceInput=this._element.matches('input[type="range"]')?this._element:null,this._params=this._buildParams(e),this._isRange=this._resolveRangeMode(),this._listeners=[],this._handleResize=()=>this._syncUI(),this._dom={root:null,wrapper:null,fill:null,inputFrom:null,inputTo:null,tooltipFrom:null,tooltipTo:null,tooltipMerged:null,labelFrom:null,labelTo:null,labelSeparator:null,hiddenMin:null,hiddenMax:null,skin:null},this._state=this._buildState(),this._render(),this._bindEvents(),this._syncUI(),this._setDisabledState(this._params.disabled),this._emit(vr,"onInit")}static get NAME(){return"rangeslider"}static get NAME_KEY(){return gr}static init(t,e={}){return this.getOrCreateInstance(t,e)}getValue(){return this._isRange?[this._state.from,this._state.to]:this._state.from}setValue(t,e={}){const{silent:i=!1,emit:s="update"}=e;if(this._isRange){const e=Array.isArray(t)?t:[t,this._state.to],i=this._normalizeValue(e[0],this._state.min),s=this._normalizeValue(e[1],this._state.max);this._state.from=Math.min(i,s),this._state.to=Math.max(i,s)}else this._state.from=this._normalizeValue(t,this._state.min);this._syncUI(),i||this._emit("change"===s?wr:Sr,"change"===s?"onChange":"onUpdate")}enable(){this._setDisabledState(!1)}disable(){this._setDisabledState(!0)}dispose(){this._listeners.forEach(({element:t,type:e,handler:i})=>t.removeEventListener(e,i)),this._listeners=[],window.removeEventListener("resize",this._handleResize),super.dispose()}_buildParams(t){const e=this._getParams(this._element,(0,r._v)(Cr,t));return this._sourceInput&&(e.min=""!==this._sourceInput.min?(0,r.OM)(this._sourceInput.min):e.min,e.max=""!==this._sourceInput.max?(0,r.OM)(this._sourceInput.max):e.max,e.step=""!==this._sourceInput.step?(0,r.OM)(this._sourceInput.step):e.step,e.start=""!==this._sourceInput.value?(0,r.OM)(this._sourceInput.value):e.start,e.name=this._sourceInput.name||e.name,e.disabled=this._sourceInput.disabled||e.disabled),"string"==typeof e.name&&(e.name={min:e.name,max:e.name}),e.input&&"object"==typeof e.input||(e.input={min:null,max:null}),"string"==typeof e.output?e.output={target:e.output,min:null,max:null}:e.output&&"object"==typeof e.output?Object.prototype.hasOwnProperty.call(e.output,"target")||(e.output.target=null):e.output={target:null,min:null,max:null},!e.labelWords&&e.label&&"object"==typeof e.label&&Object.prototype.hasOwnProperty.call(e.label,"words")&&(e.labelWords=e.label.words),"string"==typeof e.labelWords?e.labelWords=e.labelWords.split(",").map(t=>t.trim()).filter(Boolean):Array.isArray(e.labelWords)||(e.labelWords=null),e}_buildState(){const t=Number((0,r.OM)(this._params.min)),e=Math.max(Number((0,r.OM)(this._params.max)),t),i=Number((0,r.OM)(this._params.step))||1,s=this._resolveStartValues(t,e);return{min:t,max:e>=t?e:t,step:i>0?i:1,from:s.from,to:s.to}}_resolveRangeMode(){return!this._sourceInput&&!0===(0,r.OM)(this._params.range)}_resolveStartValues(t,e){let i=t,s=e;if(this._isRange){const r=Array.isArray(this._params.start)?this._params.start:[this._params.from,this._params.to];i=this._normalizeValue(r[0],t,t,e),s=this._normalizeValue(r[1],e,t,e),i>s&&([i,s]=[s,i])}else{const r=this._params.start??this._params.value??t;i=this._normalizeValue(r,t,t,e),s=i}return{from:i,to:s}}_render(){const t=this._sourceInput?this._renderFromInput():this._renderFromContainer();this._dom.root=t,this._dom.wrapper=s.A.find(".vg-range-slider__wrapper",t),this._dom.fill=s.A.find(".vg-range-slider__fill",t),this._dom.inputFrom=s.A.find(".vg-range-slider__input--from",t),this._dom.inputTo=s.A.find(".vg-range-slider__input--to",t),this._dom.tooltipFrom=s.A.find(".vg-range-slider__tooltip--from",t),this._dom.tooltipTo=s.A.find(".vg-range-slider__tooltip--to",t),this._dom.tooltipMerged=s.A.find(".vg-range-slider__tooltip--merged",t),this._dom.labelFrom=s.A.find(".vg-range-slider__label--from",t),this._dom.labelTo=s.A.find(".vg-range-slider__label--to",t),this._dom.labelSeparator=s.A.find(".vg-range-slider__separator",t),this._dom.hiddenMin=t.querySelector('input[data-vgrangeslider-hidden="min"]'),this._dom.hiddenMax=t.querySelector('input[data-vgrangeslider-hidden="max"]'),this._dom.skin=((t,e,i,s)=>(t.classList.add("is-skin-default"),"ruler"===e.skin?(t.classList.add("is-skin-ruler"),((t,e,i,s,r)=>{const n=((t,e)=>{if(Array.isArray(t?.ruler?.values)&&t.ruler.values.length>0)return t.ruler.values.map(t=>Number(t)).filter(t=>Number.isFinite(t)).sort((t,e)=>t-e);const i=Math.max(2,Number(t?.ruler?.count)||6),s=(e.max-e.min)/(i-1),r=[];for(let t=0;t<i;t++){const n=t===i-1?e.max:e.min+s*t;r.push(Number(n.toFixed(5)))}return r})(e,i),a=document.createElement("div");a.className="vg-range-slider__ruler",!0===e?.ruler?.dimInactive&&t.classList.add("is-ruler-dim-inactive");const o=n.map(t=>{const i=document.createElement("span");i.className="vg-range-slider__ruler-item",i.style.left=`${r(t)}px`,i.dataset.value=String(t);const n=document.createElement("span");if(n.className="vg-range-slider__ruler-mark",i.appendChild(n),!1!==e?.ruler?.labels){const e=document.createElement("span");e.className="vg-range-slider__ruler-label",e.textContent=s(t),i.appendChild(e)}return a.appendChild(i),i});return t.appendChild(a),{type:"ruler",root:a,ticks:o,values:n}})(t,e,i,s.formatValue,s.toPositionPx)):"status"===e.skin?(t.classList.add("is-skin-status"),mr(t,_r(e,i,s)),{type:"status",root:t}):(e.skin,null)))(t,this._params,this._state,{formatValue:t=>this._formatValue(t),toPositionPx:t=>this._toPositionPx(t)})}_renderFromInput(){const t=this._sourceInput,e=document.createElement("div");e.className=fr;const i=document.createElement("div");i.className="vg-range-slider__wrapper";const s=document.createElement("div");s.className="vg-range-slider__track";const r=document.createElement("div");r.className="vg-range-slider__fill";const n=this._params.tooltips?this._createTooltip("from"):null,a=this._params.labels?this._createLabels(!1):null;return t.insertAdjacentElement("beforebegin",e),t.classList.add("vg-range-slider__input","vg-range-slider__input--from"),t.autocomplete="off",s.appendChild(r),i.appendChild(s),i.appendChild(t),n&&i.appendChild(n),e.appendChild(i),a&&e.appendChild(a),e}_renderFromContainer(){const t=this._element;t.classList.add(fr),this._isRange&&t.classList.add("is-range"),t.innerHTML="";const e=document.createElement("div");e.className="vg-range-slider__wrapper";const i=document.createElement("div");i.className="vg-range-slider__track";const s=document.createElement("div");s.className="vg-range-slider__fill",i.appendChild(s),e.appendChild(i);const r=this._createRangeInput("from");if(e.appendChild(r),this._isRange){const t=this._createRangeInput("to");e.appendChild(t)}return this._params.tooltips&&(e.appendChild(this._createTooltip("from")),this._isRange&&e.appendChild(this._createTooltip("to")),this._isRange&&e.appendChild(this._createTooltip("merged"))),t.appendChild(e),this._params.labels&&t.appendChild(this._createLabels(this._isRange)),this._isRange?(this._ensureHiddenInput(t,"min",this._params.input?.min,this._params.name?.min),this._ensureHiddenInput(t,"max",this._params.input?.max,this._params.name?.max)):this._params.name?.min&&this._ensureHiddenInput(t,"min",this._params.input?.min,this._params.name.min),t}_createRangeInput(t){const e=document.createElement("input");return e.type="range",e.className=`vg-range-slider__input vg-range-slider__input--${t}`,e.min=String(this._state.min),e.max=String(this._state.max),e.step=String(this._state.step),e.value=String("to"===t?this._state.to:this._state.from),e.autocomplete="off",e}_createTooltip(t){const e=document.createElement("span");return e.className=`vg-range-slider__tooltip vg-range-slider__tooltip--${t}`,"merged"===t&&e.classList.add(br),e}_createLabels(t){const e=document.createElement("div");e.className="vg-range-slider__labels";const i=document.createElement("span");if(i.className="vg-range-slider__label vg-range-slider__label--from",e.appendChild(i),t){const t=document.createElement("span");t.className="vg-range-slider__separator",t.textContent=this._params.separator,e.appendChild(t);const i=document.createElement("span");i.className="vg-range-slider__label vg-range-slider__label--to",e.appendChild(i)}return e}_ensureHiddenInput(t,e,i,r){let n=i?s.A.find(i):null;n||(n=document.createElement("input"),n.type="hidden",r&&(n.name=r),t.appendChild(n)),n.setAttribute("data-vgrangeslider-hidden",e)}_bindEvents(){const t=t=>e=>{const i=this._normalizeValue(e.target.value,this._state.min);this._isRange?"from"===t?(this._state.from=Math.min(i,this._state.to),e.target.value=String(this._state.from)):(this._state.to=Math.max(i,this._state.from),e.target.value=String(this._state.to)):this._state.from=i,this._syncUI(),this._emit(yr,"onInput")},e=()=>{this._syncUI(),this._emit(wr,"onChange")};[this._dom.inputFrom,this._dom.inputTo].filter(Boolean).forEach(i=>{const s=i.classList.contains("vg-range-slider__input--to")?"to":"from",r=t(s),n=e;i.addEventListener("input",r),i.addEventListener("change",n),this._listeners.push({element:i,type:"input",handler:r}),this._listeners.push({element:i,type:"change",handler:n})}),window.addEventListener("resize",this._handleResize)}_syncUI(){this._toPercent(this._state.from),this._toPercent(this._isRange?this._state.to:this._state.from);const t=this._toPositionPx(this._state.from),e=this._toPositionPx(this._isRange?this._state.to:this._state.from);if(this._dom.inputFrom&&(this._dom.inputFrom.value=String(this._state.from)),this._dom.inputTo&&(this._dom.inputTo.value=String(this._state.to)),this._dom.fill){const i=this._isRange?t:0,s=this._isRange?e-t:e;this._dom.fill.style.left=`${Math.max(i,0)}px`,this._dom.fill.style.width=`${Math.max(s,0)}px`}this._placeTooltip(this._dom.tooltipFrom,t,this._formatValue(this._state.from)),this._placeTooltip(this._dom.tooltipTo,e,this._formatValue(this._state.to)),this._syncTooltips(t,e),this._dom.labelFrom&&(this._dom.labelFrom.textContent=this._formatValue(this._state.from)),this._dom.labelTo&&(this._dom.labelTo.textContent=this._formatValue(this._state.to)),this._dom.labelSeparator&&(this._dom.labelSeparator.hidden=!this._isRange),this._syncTargets(),((t,e,i)=>{if(!t)return;if("status"===t.type)return mr(t.root,_r(i.params,e,i)),void((t,e,i)=>{const s=i?.dom?.labelFrom,r=i?.dom?.labelTo,n=pr(t,ur(e.from,t,e)),a=pr(t,ur(e.to,t,e));s&&n&&(s.textContent=n),r&&a&&(r.textContent=a)})(i.params,e,i);if("ruler"!==t.type)return;const s=e.from!==e.to||i.isRange;t.ticks.forEach((i,r)=>{const n=t.values[r],a=s?n>=e.from&&n<=e.to:n<=e.from;i.classList.toggle("is-active",a)})})(this._dom.skin,this._state,{isRange:this._isRange,params:this._params,dom:this._dom})}_syncTargets(){const t=this.getValue(),[e,i]=Array.isArray(t)?t:[t,t];this._dom.hiddenMin&&(this._dom.hiddenMin.value=String(e)),this._dom.hiddenMax&&(this._dom.hiddenMax.value=String(i)),this._setText(this._params.output?.target,this._isRange?`${this._formatValue(e)}${this._params.separator}${this._formatValue(i)}`:this._formatValue(e)),this._setText(this._params.output?.min,this._formatValue(e)),this._setText(this._params.output?.max,this._formatValue(i))}_setDisabledState(t){this._params.disabled=!!t,this._dom.root&&this._dom.root.classList.toggle("disabled",this._params.disabled),[this._dom.inputFrom,this._dom.inputTo].filter(Boolean).forEach(t=>{t.disabled=this._params.disabled})}_placeTooltip(t,e,i){t&&(t.textContent=i,t.style.left=`${e}px`)}_syncTooltips(t,e){const i=this._dom.tooltipMerged,s=this._dom.tooltipFrom,r=this._dom.tooltipTo;return this._isRange&&i&&s&&r?e-t<=s.offsetWidth/2+r.offsetWidth/2+8?(s.classList.add(br),r.classList.add(br),i.classList.remove(br),i.textContent=`${this._formatValue(this._state.from)}${this._params.separator}${this._formatValue(this._state.to)}`,void(i.style.left=(t+e)/2+"px")):(s.classList.remove(br),r.classList.remove(br),void i.classList.add(br)):(s&&s.classList.remove(br),r&&r.classList.remove(br),void(i&&i.classList.add(br)))}_toPercent(t){const e=this._state.max-this._state.min;return e<=0?0:(t-this._state.min)/e*100}_toPositionPx(t){const e=this._dom?.wrapper,i=this._state.max-this._state.min;if(!e||i<=0)return 0;const s=(t-this._state.min)/i,r=getComputedStyle(this._dom.root||e),n=parseFloat(r.getPropertyValue("--vg-range-slider-thumb-size"))||0,a=e.clientWidth||0;return a<=0?0:a<=n?a/2:s*(a-n)+n/2}_normalizeValue(t,e,i=this._state?.min??0,s=this._state?.max??100){const n=Number((0,r.OM)(t)),a=Number.isFinite(n)?n:e,o=Math.min(Math.max(a,i),s),l=this._state?.step||this._params.step||1,d=Math.round((o-i)/l)*l+i;return Number(d.toFixed(5))}_formatValue(t){return"function"==typeof this._params.formatValue?this._params.formatValue.call(this,t,this._element):`${null==this._params.prefix?"":String(this._params.prefix)}${t}${null==this._params.suffix?"":String(this._params.suffix)}`}_getStatusBy(){if("string"!=typeof this._params?.status?.by)return"to";const t=this._params.status.by.toLowerCase();return["from","to","avg"].includes(t)?t:"to"}_getStatusPercentByValue(t){const e=this._state.max-this._state.min;return e<=0?0:(t-this._state.min)/e*100}_getStatusToneByValue(t){const e=this._getStatusPercentByValue(t),i=Number(this._params?.status?.warningBelow),s=Number(this._params?.status?.dangerBelow),r=Number.isFinite(i)?i:60;return e<(Number.isFinite(s)?s:30)?"danger":e<r?"warning":"success"}_getStatusLabelByTone(t){return!Array.isArray(this._params?.labelWords)||this._params.labelWords.length<3?null:"danger"===t?this._params.labelWords[0]||null:"warning"===t?this._params.labelWords[1]||null:this._params.labelWords[2]||null}_getStatusDetail(){const t=this._getStatusBy(),e=this._state.from,i=this._state.to,s="from"===t?e:"avg"===t?(e+i)/2:i,r=this._getStatusToneByValue(s);return{by:t,sourceValue:s,percent:Number(this._getStatusPercentByValue(s).toFixed(5)),tone:r,label:this._getStatusLabelByTone(r),from:{value:e,percent:Number(this._getStatusPercentByValue(e).toFixed(5)),tone:this._getStatusToneByValue(e),label:this._getStatusLabelByTone(this._getStatusToneByValue(e))},to:{value:i,percent:Number(this._getStatusPercentByValue(i).toFixed(5)),tone:this._getStatusToneByValue(i),label:this._getStatusLabelByTone(this._getStatusToneByValue(i))}}}_emit(t,e){const i={value:this.getValue(),from:this._state.from,to:this._state.to,min:this._state.min,max:this._state.max,step:this._state.step,status:this._getStatusDetail(),instance:this};g.A.trigger(this._element,t,i);const s=this._params[e];"function"==typeof s&&s.call(this,this._element,i)}_setText(t,e){if(!t)return;const i=s.A.find(t);i&&(i.textContent=e)}}g.A.on(document,"DOMContentLoaded",()=>{s.A.findAll("[data-vgrangeslider]").forEach(t=>{t.dataset.vgrangesliderInitialized||(Ar.getOrCreateInstance(t),t.dataset.vgrangesliderInitialized="true")})});const Er=Ar,xr="rollup",Pr="vg.rollup",Lr="show",Ir="vg-rollup-display--none",Mr=`${Pr}.hide`,Dr=`${Pr}.show`,Tr=`click.${Pr}.data.api`;class kr extends t.A{constructor(t,i={}){super(t,i);const s={lang:document.documentElement.lang||"ru",content:"text",cnt:0,fade:!0,transition:!1,number:!1,height:0,ellipsis:{line:null},more:" еще ",button:{enabled:!0,more:"Показать",less:"Свернуть",classes:""},callbacks:{init:()=>{},expand:()=>{},collapse:()=>{}}};let n=e.p.get(t,"data-lang")||"lang"in i?i.lang:s.lang;s.button.more=et(n,xr).show,s.button.less=et(n,xr).less,s.more=et(n,xr).more,this._params=this._getParams(t,(0,r._v)(s,i)),this.classes={container:"vg-rollup",hidden:"vg-rollup-content--hidden",fade:"vg-rollup-content--fade",ellipsis:"vg-rollup-content--ellipsis",button:"vg-rollup-content--button",transition:"vg-rollup-content--transition"},this.total=0,this.count=0,this.offset=0,this.isOffset=!1,this.build()}static get NAME(){return xr}static get NAME_KEY(){return Pr}static toggle(t,e){const i=kr.getOrCreateInstance(t);i.isShow()?i._hide(e):i._show(e)}_show(t){e.x.add(this._element,Lr),t.innerHTML=this._params.button.less,e.p.set(t,"aria-expanded","true"),this.offset>0&&(t.innerHTML=this.isOffset?this._params.button.more:this._params.button.less,e.p.set(t,"aria-expanded",this.isOffset?"true":"false")),this.switch(this._element,!1),g.A.trigger(this._element,Dr,{relatedTarget:t})}_hide(t){let i=this._params.button.more;if(this._params.number){const t=this.total-this.count;t>0&&(i+=this._params.more+t)}e.x.remove(this._element,Lr),e.p.set(t,"aria-expanded","false"),t.textContent=i,this.switch(this._element,!0),g.A.trigger(this._element,Mr,{relatedTarget:t})}build(t=null,i=!0){const s=t||this._element,n=s.clientHeight,a=this._params.height||n/2,{fade:o,transition:l,button:d,number:h,content:c,elements:u,cnt:_,ellipsis:m}=this._params,p=null!==m.line,g=d.enabled&&i;e.x.add(s,this.classes.container),i?("text"===c&&n>a?this._setupTextContent(s,a,o,l,p,m.line,g,h):"elements"===c&&this._setupElementsContent(s,u,_,o,l,p,g,h),(0,r.g7)(this._params.callbacks.init,[s,this])):this.switch(s)}_setupTextContent(t,i,s,r,n,a,o,l){e.x.add(t,this.classes.hidden),t.style.height=i+"px",n&&a?(e.x.add(t,this.classes.ellipsis),t.style.lineClamp=Number(a)):n&&console.error("Переменная [data-line] или параметр[line] не должны быть пустыми"),r&&e.x.add(t,this.classes.transition),s&&e.x.add(t,this.classes.fade),o&&this._createButton(t,"",l)}_setupElementsContent(t,i,r,n,a,o,l,d){const h=s.A.findAll("."+i,t);this.total=h.length,this.count=r,h.forEach((t,i)=>{i>=r&&e.x.add(t,Ir)});const c=l&&h.length>r;if(o&&e.x.add(t,this.classes.ellipsis),a&&e.x.add(t,this.classes.transition),n&&e.x.add(t,this.classes.fade),c){const e=this.total-this.count,i=d&&e>0?this._params.more+e:"";this._createButton(t,i,!1)}}_createButton(t,e="",i=!1){t.id||(t.id=`vg-rollup-${Math.random().toString(36).substr(2,9)}`);const s=this._params.button.more,r=`<div class="${this.classes.button}">\n <a href="#" aria-expanded="false" data-vg-toggle="rollup" class="${this._params.button.classes}" data-vg-target="#${t.id}">\n ${s}${e}\n </a>\n </div>`;t.insertAdjacentHTML("afterend",r)}switch(t,i=!1){if(i&&!this.isOffset){const{content:i}=this._params,n=t.clientHeight,a=this._params.height||n/2;if("text"===i&&n>a)e.x.add(t,this.classes.hidden),t.style.height=a+"px",this._params.ellipsis.line&&(e.x.add(t,this.classes.ellipsis),t.style.lineClamp=this._params.ellipsis.line),this._params.fade&&e.x.add(t,this.classes.fade),this._params.transition&&e.x.add(t,this.classes.transition),(0,r.g7)(this._params.callbacks.expand,[t,this]);else if("elements"===i){const i=s.A.findAll("."+this._params.elements,t);i.forEach((t,i)=>{i>=this.count&&e.x.add(t,Ir)}),(0,r.g7)(this._params.callbacks.collapse,[t,i,this])}e.x.add(t,this.classes.container)}else{const{hidden:i,ellipsis:n,fade:a}=this.classes;e.x.remove(t,[i,n,a]),e.p.remove(t,"style"),"elements"===this._params.content&&s.A.findAll("."+this._params.elements,t).forEach(t=>e.x.remove(t,Ir)),(0,r.g7)(this._params.callbacks.expand,[t,this])}}isShow(){return e.x.has(this._element,Lr)}static init(t,e={},i){const s=kr.getOrCreateInstance(t,e);(0,r.g7)(i,[s])}}g.A.on(document,Tr,'[data-vg-toggle="rollup"]',function(t){if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),(0,r.d6)(this))return;const e=s.A.getElementFromSelector(this);e&&kr.toggle(e,this)});const Fr=kr,Rr="vg.select",Or="vg-select",Nr="vg-select-list--option",zr="vg-select-tag",Hr="vg-select-tag-remove",$r=`click.${Rr}.data.api`,Br=`keyup.${Rr}.data.api`,jr=`reset.${Rr}.data.api`,Vr=`keydown.${Rr}.data.api`,qr=`${Rr}.change`,Ur=`${Rr}.search`,Wr=`${Rr}.select`,Kr=`${Rr}.deselect`,Yr='[data-vg-toggle="select"]',Gr="select",Xr="vg.select",Zr="show",Jr="active",Qr="vg-select",tn="vg-select-dropdown",en="vg-select-list",sn="vg-select-list--option",rn="vg-select-current",nn="vg-select-current--placeholder",an="vg-select-search",on="vg-select-tags",ln="vg-select-tag",dn="vg-select-load-more",hn="vg-select-loading",cn="drop-up",un=`${Xr}.change`,_n=`${Xr}.hide`,mn=`${Xr}.hidden`,pn=`${Xr}.show`,gn=`${Xr}.shown`,fn=`${Xr}.init`,bn=`${Xr}.rebuild`,vn=`${Xr}.open`,yn=`${Xr}.close`,wn=`${Xr}.select`,Sn=`${Xr}.clear`,Cn=`${Xr}.error`,An=`${Xr}.loadNext`,En='[data-vg-toggle="select"]',xn=`.${rn}`,Pn=`.${tn}`,Ln=`.${an} input`,In=`.${en}`,Mn=`.${dn}`,Dn=["inited","updating","exclude"];class Tn extends t.A{constructor(t,e={}){super(t,e),this._params=this._getParams(t,(0,r._v)({lang:document.documentElement.lang||"ru",position:"none",search:{enabled:!0,route:"",remote:!1,delay:300,minterm:1,pagination:!1,pageParam:"page",termParam:"q",perpage:20,loadMoreText:"Загрузить ещё"},close:!0,tree:!1,exclude:"data-filter-param",placeholder:"",onInit:null,onShow:null,onHide:null,onChange:null,onSelect:null,onDeselect:null,onClear:null,onLoadNext:null},e)),this._observer=null,this._observerTimeout=null,this._drop=s.A.find(Pn,this._element),this._searchTerm="",this._currentPage=1,this._totalPages=null,this._loading=!1,"object"==typeof e.search&&(this._params.search.loadMoreText=et(this._params.lang,Gr)["load-more"]||"Загрузить еще"),this._remoteSearchRequestId=0,this._remoteSearchAbortController=null,this._positioningScrollParent=null,this._boundUpdateDropdownPlacement=()=>this._updateDropdownPlacement(),this._initObserver(),this._initLoadMoreButton(),this._triggerEvent(fn),this._callCallback("onInit")}static get NAME(){return Gr}static get NAME_KEY(){return Xr}static buildListOptions(t,i,r={}){let n=i.querySelector(`.${en}`);n?n.innerHTML="":(n=document.createElement("ul"),e.x.add(n,en),i.appendChild(n));const a=s.A.findAll("optgroup",t),o=document.createDocumentFragment(),l=this._isTreeEnabled(t,r);return a.length>0?(a.forEach(i=>{const r=document.createElement("ol");e.x.add(r,"vg-select-list--optgroup");const n=document.createElement("li");n.textContent=i.label.trim(),e.x.add(n,"vg-select-list--optgroup-title"),r.appendChild(n),Tn._createListItems(s.A.findAll("option",i),r,t,{tree:l,depth:l?1:0}),o.appendChild(r)}),n.appendChild(o)):Tn._createListItems(t.options,n,t,{tree:l,depth:0}),n}static _createListItems(t,i,s,n={}){const a=document.createDocumentFragment(),o=Number.isInteger(n.depth)?n.depth:0,l=!!n.tree;[...t].forEach(t=>{if(t.hidden)return;const i=t.getAttribute("value"),s=null==i?"":i,n=t.textContent.trim(),d=""===s&&""===n,h=document.createElement("li");if(h.textContent=n,h.dataset.index=String(t.index),h.dataset.value=s,h.classList.add(sn),e.p.set(h,"data-vg-toggle","select-option"),l){const e=t.dataset.level,i=Number.isFinite(Number(e))?parseInt(e,10):null,s=Math.max(0,null==i?o:i);h.dataset.level=String(s),h.style.paddingLeft=16+16*s+"px"}t.selected&&h.classList.add("selected"),t.disabled&&h.classList.add("disabled"),d&&(h.hidden=!0,h.style.display="none");const c=e.p.get(t);(0,r.ze)(c)||Object.keys(c).forEach(t=>{e.p.set(h,`data-${t}`,c[t])}),a.appendChild(h)}),i.appendChild(a)}static _isTreeEnabled(t,e={}){return"boolean"==typeof e.tree?e.tree:!(!t?.dataset||void 0===t.dataset.tree)&&!0===(0,r.OM)(t.dataset.tree)}static _getDataAttrCopyExclusions(t,e={}){const i=("string"==typeof e.exclude?e.exclude:t.dataset.exclude||"").split(",").map(t=>this._normalizeDataAttrKey(t)).filter(Boolean);return new Set([...Dn,...i])}static _normalizeDataAttrKey(t){return String(t||"").trim().replace(/^data-/,"").toLowerCase()}static isPlaceholderValue(t,e){const i=t.dataset.placeholderValue;return i?i.split(",").map(t=>t.trim()).includes(String(e)):null==e||""===String(e).trim()}static hasExplicitSelectedOption(t){return Array.from(t.options).some(t=>t.hasAttribute("selected"))}static hasSelectedValidOption(t){const e=t.selectedIndex;return-1!==e&&!this.isPlaceholderValue(t,t.options[e]?.value)}static build(t,i=!1,s={}){(i||"true"===t.dataset.inited)&&this.destroy(t);const n=document.createElement("div");n.classList.add(Qr),n.style.position="relative",t.classList.length&&[...t.classList].forEach(t=>n.classList.add(t)),(0,r.d6)(t)&&n.classList.add("disabled");const a=e.p.get(t);if(!(0,r.ze)(a)){const i=this._getDataAttrCopyExclusions(t,s);Object.keys(a).forEach(t=>{i.has(t)||e.p.set(n,`data-${t}`,a[t])})}const o=t.dataset.placeholder||"",l=t.multiple,d=document.createElement("div");if(d.classList.add(rn),d.setAttribute("data-vg-toggle","select"),d.setAttribute("aria-expanded","false"),d.setAttribute("role","button"),d.tabIndex=l?-1:0,l){const t=document.createElement("div");t.classList.add(on),d.appendChild(t);const e=document.createElement("input");e.type="text",e.className="vg-select-multiple-input",e.style.cssText="border:0;outline:none;background:transparent;padding:0;margin:0;min-width:1px;width:1px;height:1px;line-height:1;font:inherit;opacity:0;",t.appendChild(e),e.addEventListener("focus",()=>{const t=Tn.getInstance(e.closest(`.${Qr}`));t&&!t._isShown()&&t.show()})}else{const e=t.selectedIndex,i=e>=0?t.options[e]:null,s=i?.textContent.trim()||"",r=o&&!this.hasSelectedValidOption(t);d.innerHTML=r?`<span class="${nn}">${o}</span>`:s||"-"}n.appendChild(d);const h=document.createElement("div");h.classList.add(tn),n.appendChild(h),this.buildListOptions(t,h,s),t.insertAdjacentElement("afterend",n),t.dataset.inited="true",this.getOrCreateInstance(n,s),this.updateUI(t);const c=Tn.getInstance(n);let u=null;if(e.p.has(t,"data-search-enabled")){const t=document.createElement("div");t.classList.add(an),u=document.createElement("input"),u.name="vg-select-search",u.type="text",u.placeholder=Q(c._params.lang,Gr).search,u.autocomplete="off",u.setAttribute("role","searchbox"),t.appendChild(u),h.insertBefore(t,h.firstChild)}if(u&&c){let t;u.addEventListener("input",e=>{const i=e.target.value.trim(),s=c._params;if(c._callCallback("onSearch",{term:i}),s.search.remote&&s.search.route){if(i.length<(s.search.minterm||1))return;clearTimeout(t),t=setTimeout(()=>{c._fetchRemoteData(i)},s.search.delay||300)}else c._filterLocalOptions(i)})}return n}toggle(t){return this._isShown()?this.hide():this.show(t)}show(t){if(!(0,r.d6)(this._element)&&!g.A.trigger(this._element,pn,{relatedTarget:t}).defaultPrevented){if(this._element.classList.add(Zr),"none"!==this._getPositionMode()?this._setupDropdownPlacement():this._teardownDropdownPlacement(),"ontouchstart"in document.documentElement&&(document.body.style.pointerEvents="none"),this._element.querySelector(En).setAttribute("aria-expanded","true"),this._params.search?.enabled){const t=this._element.querySelector(Ln);t&&t.focus()}return this._queueCallback(()=>{this._element.classList.add(Jr),this._updateDropdownPlacement(),g.A.trigger(this._element,gn,{relatedTarget:t}),this._triggerEvent(vn),this._callCallback("onShow")},this._drop,!0,50)}}hide(){!(0,r.d6)(this._element)&&this._isShown()&&this._completeHide()}_completeHide(t={}){g.A.trigger(this._element,_n,t).defaultPrevented||(this._teardownDropdownPlacement(),this._element.classList.remove(Jr),this._element.querySelector(En).setAttribute("aria-expanded","false"),this._queueCallback(()=>{this._element.classList.remove(Zr),g.A.trigger(this._element,mn,t),this._triggerEvent(yn),this._callCallback("onHide")},this._drop,!0,10),"ontouchstart"in document.documentElement&&(document.body.style.pointerEvents=""))}_isShown(){return this._element.classList.contains(Zr)}_initObserver(){this._observer&&this._observer.disconnect();const t=this._element.previousElementSibling;t&&"SELECT"===t.tagName&&(this._observer=new MutationObserver(e=>{if(console.debug("VGSelect: Mutation detected",e),t.hasAttribute("data-updating"))return;if(!e.some(t=>"attributes"===t.type?["disabled","required","style","hidden"].includes(t.attributeName):"childList"===t.type||"characterData"===t.type))return;const i=this._isShown();clearTimeout(this._observerTimeout),this._observerTimeout=setTimeout(()=>{this._element.previousElementSibling!==t||t.hasAttribute("data-updating")||(this._updateFromMutation(),i&&requestAnimationFrame(()=>{this.show()}))},100)}),this._observer.observe(t,{attributes:!0,attributeFilter:["disabled","required","style","hidden"],childList:!0,subtree:!0,characterData:!0}))}_updateFromMutation(){const t=this._element.previousElementSibling;if(!t)return;(0,r.d6)(t)?this._element.classList.add("disabled"):this._element.classList.remove("disabled");const e=this._element.querySelector(Pn);Tn.buildListOptions(t,e,this._params),Tn.updateUI(t)}dispose(){this._observer&&(this._observer.disconnect(),this._observer=null),clearTimeout(this._observerTimeout),this._observerTimeout=null,this._teardownDropdownPlacement(),super.dispose()}_setupDropdownPlacement(){"none"!==this._getPositionMode()&&(this._teardownDropdownPlacement(),this._positioningScrollParent=this._getOverflowAncestor(this._element),window.addEventListener("resize",this._boundUpdateDropdownPlacement,{passive:!0}),window.addEventListener("scroll",this._boundUpdateDropdownPlacement,{passive:!0}),this._positioningScrollParent&&this._positioningScrollParent.addEventListener("scroll",this._boundUpdateDropdownPlacement,{passive:!0}),this._updateDropdownPlacement())}_teardownDropdownPlacement(){window.removeEventListener("resize",this._boundUpdateDropdownPlacement),window.removeEventListener("scroll",this._boundUpdateDropdownPlacement),this._positioningScrollParent&&this._positioningScrollParent.removeEventListener("scroll",this._boundUpdateDropdownPlacement),this._positioningScrollParent=null,this._element.classList.remove(cn),this._element.style.removeProperty("--vg-select-list-max-height")}_getPositionMode(){const t=this._params?.position,e=null==t?"none":String(t).trim().toLowerCase();return"auto"===e||"top"===e||"bottom"===e||"none"===e?e:"none"}_getOverflowAncestor(t){let e=t?.parentElement;for(;e&&e!==document.body&&e!==document.documentElement;){const t=window.getComputedStyle(e),i=t.overflowX||t.overflow||"visible",s=t.overflowY||t.overflow||"visible";if("visible"!==i||"visible"!==s)return e;e=e.parentElement}return null}_getClipRect(){const t={top:0,left:0,right:window.innerWidth,bottom:window.innerHeight},e=this._positioningScrollParent;if(!e)return t;const i=e.getBoundingClientRect();return{top:Math.max(t.top,i.top),left:Math.max(t.left,i.left),right:Math.min(t.right,i.right),bottom:Math.min(t.bottom,i.bottom)}}_updateDropdownPlacement(){if(!this._isShown())return;const t=this._getPositionMode();if("none"===t)return;const e=this._getClipRect(),i=this._element.getBoundingClientRect(),s=e.bottom-i.bottom,r=i.top-e.top,n="top"===t||"bottom"!==t&&r>s;this._element.classList.toggle(cn,n);const a=n?r:s,o=Math.max(80,Math.floor(a-12));Number.isFinite(o)&&o>0&&this._element.style.setProperty("--vg-select-list-max-height",`${o}px`)}static destroy(t){const e=t.nextElementSibling;e&&e.classList.contains(Qr)&&e.remove()}static updateUI(t){const e=t.nextElementSibling;if(!e||!e.classList.contains(Qr))return;const i=e.querySelector(xn),s=t.dataset.placeholder||"",r=t.multiple,n=Tn.getInstance(e);if(r){const e=i.querySelector(`.${on}`),r=e.querySelector("input"),a=e.querySelectorAll(`.${ln}`).length;e.innerHTML="",e.appendChild(r);const o=Array.from(t.selectedOptions);0===o.length&&a>0&&(n?._triggerEvent(Sn),n?._callCallback("onClear")),0===o.length?r.placeholder=s:(r.placeholder="",o.forEach(t=>{const i=document.createElement("div");i.classList.add(ln),i.innerHTML=`<span>${t.textContent}</span><svg class="vg-select-tag-remove" data-index="${t.index}" data-value="${t.getAttribute("value")??""}" width="14" height="14" viewBox="0 0 14 14"><line x1="2" y1="2" x2="12" y2="12" stroke="currentColor"/><line x1="12" y1="2" x2="2" y2="12" stroke="currentColor"/></svg>`,e.insertBefore(i,r)}))}else{const e=t.selectedIndex,r=e>=0?t.options[e]:null,n=r?.textContent.trim()||"",a=s&&!this.hasSelectedValidOption(t),o=a?s:n||"-";i.textContent!==o&&(i.innerHTML=a?`<span class="${nn}">${s}</span>`:o)}}static changeSelector(t,e,i={}){const s=t.nextElementSibling,n=s?Tn.getInstance(s):null;t.setAttribute("data-updating","true");try{const s=t.querySelector(`option[value="${CSS.escape((0,r.OM)(e))}"]`);if(!s)return void n?._triggerEvent(Cn,{error:"Option not found",value:e});const a=s.selected,o=s.textContent.trim();t.multiple?s.selected=!1!==i?.selected:([...t.options].forEach(t=>t.selected=!1),s.selected=!0,t.value=s.value),this.updateUI(t);const l=new Event("change",{bubbles:!0,cancelable:!0});t.dispatchEvent(l),a||(g.A.trigger(t,un,{data:i}),n?._triggerEvent(wn,{value:e,text:o,data:i}),n?._callCallback("onSelect",{value:e,text:o,data:i}))}finally{t.removeAttribute("data-updating")}}static changeSelectorByIndex(t,e,i={}){const s=t.nextElementSibling,r=s?Tn.getInstance(s):null;t.setAttribute("data-updating","true");try{const s=Number.isInteger(e)?t.options[e]:null;if(!s)return void r?._triggerEvent(Cn,{error:"Option not found by index",index:e});const n=s.selected,a=s.textContent.trim(),o=s.value;t.multiple?s.selected=!1!==i?.selected:([...t.options].forEach(t=>t.selected=!1),s.selected=!0,t.value=s.value),this.updateUI(t);const l=new Event("change",{bubbles:!0,cancelable:!0});t.dispatchEvent(l),n||(g.A.trigger(t,un,{data:i}),r?._triggerEvent(wn,{value:o,text:a,data:i}),r?._callCallback("onSelect",{value:o,text:a,data:i}))}finally{t.removeAttribute("data-updating")}}_triggerEvent(t,e={}){g.A.trigger(this._element,t,e)}_callCallback(t,e=null){const i=this._params[t];"function"==typeof i&&i.call(this,this._element,e)}static init(t,e={},i=!1){this.build(t,i,e)}static clearDrops(t){const e=s.A.find(`.${Qr}.${Zr}`);if(!e)return;const i=t.target.closest(En);if(i&&i.closest(`.${Qr}`)===e)return;if(t.composedPath().some(t=>t.classList?.contains(tn)))return;const r=Tn.getInstance(e);r&&r._completeHide({relatedTarget:t.target})}_initLoadMoreButton(){if(!this._params.search?.pagination||!this._params.search.remote)return;const t=this._element.querySelector(In);if(!t)return;const e=document.createElement("li");e.className=dn,e.style.textAlign="center",e.style.padding="8px",e.style.cursor="pointer",e.style.color="#007bff",e.style.fontSize="14px",e.style.fontWeight="500",e.textContent=this._params.search.loadMoreText,e.addEventListener("click",()=>{!this._loading&&(null===this._totalPages||this._currentPage<this._totalPages)&&this._loadNextPage()}),t.appendChild(e),this._hideLoadMoreButton(!0)}_hideLoadMoreButton(t){const e=this._element.querySelector(Mn);e&&(e.style.display=t?"none":"block")}_showLoading(t){const e=this._element.querySelector(In);let i=e.querySelector(`.${hn}`);t&&!i?(i=document.createElement("li"),i.className=hn,i.style.textAlign="center",i.style.padding="8px",i.textContent=tt(this._params.lang,Gr).loading,e.appendChild(i)):!t&&i&&i.remove()}async _loadNextPage(){const{route:t,pageParam:e="page",termParam:i="q",perpage:s=20}=this._params.search,r=this._currentPage+1,n=new URL(t,window.location.origin);n.searchParams.set(i,this._searchTerm),n.searchParams.set(e,r),n.searchParams.set("per_page",s),this._loading=!0,this._showLoading(!0),this._hideLoadMoreButton(!0);try{const t=await fetch(n,{headers:{"Content-Type":"application/json"}}),e=await t.json();Array.isArray(e.results)&&(Tn.addOptions(this._element.previousElementSibling,e,{preserve:!0}),this._currentPage=e.pagination?.current_page||r,this._totalPages=e.pagination?.total_pages||null,(null===this._totalPages||this._currentPage<this._totalPages)&&this._hideLoadMoreButton(!1),this._callCallback("onLoadNext",{page:this._currentPage,data:e}),this._triggerEvent(An,{page:this._currentPage,term:this._searchTerm}))}catch(t){console.error("VGSelect: Failed to load next page",t),this._triggerEvent(Cn,{error:"Pagination fetch failed",term:this._searchTerm}),this._hideLoadMoreButton(!1)}finally{this._showLoading(!1),this._loading=!1}}_fetchRemoteData(t){const{route:e,method:i="GET",pageParam:s="page",termParam:r="q",perpage:n=20}=this._params.search,a=new URL(e,window.location.origin);a.searchParams.set(r,t),a.searchParams.set(s,1),a.searchParams.set("per_page",n);const o=this._element.querySelector(Ln),l=this._isShown();this._searchTerm=t,this._currentPage=1,this._totalPages=null,this._remoteSearchAbortController&&this._remoteSearchAbortController.abort(),this._remoteSearchAbortController=new AbortController;const d=++this._remoteSearchRequestId,h=this._remoteSearchAbortController.signal;this._showLoading(!0),this._hideLoadMoreButton(!0),fetch(a,{method:i,headers:{"Content-Type":"application/json"},signal:h}).then(t=>t.json()).then(e=>{if(d!==this._remoteSearchRequestId)return;if((o?o.value.trim():"")!==t)return;const i=this._element.previousElementSibling;i&&([...i.querySelectorAll("option")].forEach(t=>{const e=t===i.options[0],s=""===(t.getAttribute("value")??""),r=""===(t.textContent||"").trim(),n=!0===t.hidden||t.hasAttribute("hidden"),a=t.hasAttribute("selected");e&&s&&r&&n&&a||t.hasAttribute("data-preserve")||t.closest("optgroup[data-preserve]")||t.remove()}),Tn.addOptions(i,e,{preserve:!0}),this._callCallback("onSearch",{term:t,data:e}),this._triggerEvent(bn,{term:t,data:e}),e.pagination&&(this._currentPage=e.pagination.current_page||1,this._totalPages=e.pagination.total_pages||null),(null===this._totalPages||this._currentPage<this._totalPages)&&this._hideLoadMoreButton(!1),l&&o&&(o.focus(),this._element.classList.add(Zr,Jr)))}).catch(e=>{e&&"AbortError"===e.name||(console.error("VGSelect: Remote search error",e),this._triggerEvent(Cn,{error:"Search request failed",term:t}),this._hideLoadMoreButton(!1))}).finally(()=>{d===this._remoteSearchRequestId&&this._showLoading(!1)})}static addOptions(t,e,i={}){const{preserve:s=!1}=i,r=t.nextElementSibling,n=r&&r.classList.contains(Qr),a=n?Tn.getInstance(r):null;let o=e;if(e&&e.results&&Array.isArray(e.results)&&(o=e.results),!Array.isArray(o))return void a?._triggerEvent(Cn,{error:"Invalid data format: expected array"});const l=this._isTreeEnabled(t,a?._params||{});s||([...t.querySelectorAll("option")].forEach(t=>{const e=t.closest("optgroup");""!==t.value&&(t.hasAttribute("data-preserve")||e&&e.hasAttribute("data-preserve")||t.remove())}),[...t.querySelectorAll("optgroup")].forEach(t=>{0!==t.children.length||t.hasAttribute("data-preserve")||t.remove()}));const d=(t,e,i=null)=>{const s=document.createElement("option"),r=Array.isArray(t.children)&&t.children.length>0;s.value=t.id||"",s.textContent=t.text||"",t.selected&&(s.selected=!0),t.disabled&&(s.disabled=!0),l&&Number.isInteger(i)&&(s.setAttribute("data-level",String(i)),r&&!s.value&&(s.disabled=!0)),Object.keys(t).filter(t=>!["id","text","selected","disabled","children"].includes(t)).forEach(e=>{s.setAttribute(`data-${e}`,t[e])}),e.appendChild(s)},h=(t,e,i=0)=>{t.forEach(t=>{d(t,e,i),Array.isArray(t.children)&&t.children.length>0&&h(t.children,e,i+1)})};if(l?h(o,t,0):o.forEach(e=>{if(e.children&&Array.isArray(e.children)){const i=document.createElement("optgroup");i.label=e.text||"",e.disabled&&(i.disabled=!0),e.children.forEach(t=>d(t,i)),t.appendChild(i)}else d(e,t)}),n){const e=r.querySelector(`.${tn}`);Tn.buildListOptions(t,e,a?._params||{}),a?._triggerEvent(bn)}else this.updateUI(t)}_filterLocalOptions(t){const e=this._drop.querySelector(`.${en}`).querySelectorAll(`.${sn}`);t?(t=t.toLowerCase(),e.forEach(e=>{const i=e.textContent.toLowerCase();e.hidden=!i.includes(t)})):e.forEach(t=>t.hidden=!1)}}g.A.on(document,$r,t=>kn.clearDrops(t)),g.A.on(document,$r,Yr,function(t){const e=t.target;if(e.closest(`.${zr}`)||e.closest(`.${Hr}`))return void t.stopPropagation();const i=this.closest(`.${Or}`),r=kn.getOrCreateInstance(i),n=s.A.find(`.${Or}.show`);n&&n!==i&&kn.getInstance(n)?.hide(),r.toggle(this)}),g.A.on(document,$r,'[data-vg-toggle="select-option"]',function(t){const i=t.target;if(i.classList.contains("disabled"))return;const s=i.closest(`.${Or}`),r=s.previousElementSibling,n=r.multiple,a=i.dataset.index,o=Number.isFinite(Number(a))?parseInt(a,10):NaN,l=Number.isInteger(o)?r.options[o]:null;if(!l)return;const d=kn.getInstance(s),h=l.selected,c=l.value;if(n)l.selected=!l.selected,i.classList.toggle("selected",l.selected),kn.updateUI(r),r.dispatchEvent(new Event("change",{bubbles:!0})),g.A.trigger(r,qr,{data:{value:c,title:i.textContent,...e.p.get(i)}}),l.selected?(d?._triggerEvent(Wr,{value:c,title:i.textContent,...e.p.get(i)}),d?._callCallback("onSelect",{value:c,title:i.textContent,...e.p.get(i)})):(d?._triggerEvent(Kr,{value:c,title:i.textContent,...e.p.get(i)}),d?._callCallback("onDeselect",{value:c,title:i.textContent,...e.p.get(i)}));else{if(h)return;s.querySelectorAll(`.${Nr}`).forEach(t=>t.classList.remove("selected")),i.classList.add("selected"),kn.changeSelectorByIndex(r,o,{index:o,value:c,title:i.textContent,...e.p.get(i)}),!1!==d?._params?.close&&d?.hide()}}),g.A.on(document,Br,'[name="vg-select-search"]',function(t){const e=t.target,i=e.closest(".vg-select-dropdown"),s=i?.querySelector(".vg-select-list");if(!s)return;const n=e.closest(`.${Or}`),a=kn.getInstance(n),o=s.querySelectorAll(`.${Nr}`),l=s.querySelectorAll(".vg-select-list--optgroup"),d=e.value.trim().toLowerCase(),h=[d,(0,r.Ff)(d),(0,r.Ff)(d,!0)];if(o.forEach(t=>{t.hidden=!1,t.style.display=""}),l.forEach(t=>{t.hidden=!1,t.style.display=""}),d){let t=0;l.length?l.forEach(e=>{const i=e.querySelectorAll(`.${Nr}`),s=Array.from(i).some(t=>{const e=t.textContent.toLowerCase();return h.some(t=>e.includes(t))});e.hidden=!s,e.style.display=s?"":"none",i.forEach(e=>{const i=e.textContent.toLowerCase(),s=h.some(t=>i.includes(t));e.hidden=!s,e.style.display=s?"":"none",s&&t++})}):o.forEach(e=>{const i=e.textContent.toLowerCase(),s=h.some(t=>i.includes(t));e.hidden=!s,e.style.display=s?"":"none",s&&t++}),a?._triggerEvent(Ur,{query:d,results:t}),a?._callCallback("onSearch",{query:d,results:t})}else a?._triggerEvent(Ur,{query:"",results:o.length}),a?._callCallback("onSearch",{query:"",results:o.length})}),g.A.on(document,jr,"form",function(){s.A.findAll('select[data-inited="true"]',this).forEach(t=>kn.build(t,!0))}),g.A.on(document,"keydown",Yr,function(t){const e=kn.getInstance(this.closest(`.${Or}`));if(e)switch(t.key){case"Enter":case" ":t.preventDefault(),e.toggle();break;case"Escape":e._isShown()&&e.hide();break;case"ArrowDown":t.preventDefault(),e._isShown()||e.show()}}),g.A.on(document,$r,".vg-select-tags",function(t){const e=t.target.closest(`.${Hr}`);if(!e)return;t.preventDefault(),t.stopPropagation();const i=this.closest(`.${Or}`),s=i.previousElementSibling,r=e.dataset.index,n=Number.isFinite(Number(r))?parseInt(r,10):NaN,a=Number.isInteger(n)?s.options[n]:null,o=Number.isInteger(n)?i.querySelector(`.${Nr}[data-index="${n}"]`):null,l=kn.getInstance(i);a&&(a.selected=!1,o&&o.classList.remove("selected"),kn.updateUI(s),s.dispatchEvent(new Event("change",{bubbles:!0})),g.A.trigger(s,qr,{data:{value:a.value}}),l?._triggerEvent(Kr,{value:a.value}),l?._callCallback("onDeselect",{value:a.value}))}),g.A.on(document,Vr,".vg-select-multiple-input",function(t){if("Backspace"===t.key&&!t.target.value){const e=t.target,i=e.parentElement.querySelectorAll(`.${zr}`);if(i.length>0){const t=i[i.length-1].querySelector("svg"),s=t?.dataset.index,r=Number.isFinite(Number(s))?parseInt(s,10):NaN,n=e.closest(`.${Or}`).previousElementSibling,a=Number.isInteger(r)?n.options[r]:null,o=Number.isInteger(r)?e.closest(`.${Or}`).querySelector(`.${Nr}[data-index="${r}"]`):null,l=kn.getInstance(e.closest(`.${Or}`));a&&(a.selected=!1,o&&o.classList.remove("selected"),kn.updateUI(n),n.dispatchEvent(new Event("change",{bubbles:!0})),g.A.trigger(n,qr,{data:{value:a.value}}),l?._triggerEvent(Kr,{value:a.value}),l?._callCallback("onDeselect",{value:a.value}))}}});const kn=Tn,Fn=kn,Rn="vg.sidebar",On="show",Nn="vg-sidebar-open",zn={HIDE:`${Rn}.hide`,HIDDEN:`${Rn}.hidden`,SHOW:`${Rn}.show`,SHOWN:`${Rn}.shown`,LOADED:`${Rn}.loaded`,KEYDOWN_DISMISS:`keydown.dismiss.${Rn}`,HIDE_PREVENTED:`hidePrevented.${Rn}`,CLICK_DATA_API:`click.${Rn}.data.api`,POPSTATE_DATA_API:`popstate.${Rn}.data.api`,DOM_LOADED_DATA_API:`DOMContentLoaded.${Rn}.data.api`};class Hn extends t.A{constructor(t,e={}){super(t,e),this._params=this._getParams(t,(0,r._v)({backdrop:!0,overflow:!0,keyboard:!0,hash:!1,animation:{enable:!1,in:"animate__rollIn",out:"animate__rollOut",delay:800},ajax:{route:"",target:"",method:"get",loader:!1,once:!1,output:!0}},e)),this._scrollBar=new d,this._params.animation.delay=this._params.animation.enable?this._params.animation.delay:0,this._addEventListeners(),this._dismissElement(),this._animation(this._element,Rn,this._params.animation)}static get NAME(){return"sidebar"}static get NAME_KEY(){return Rn}toggle(t){return this._isShown()?this.hide():this.show(t)}_showPopstateHandler=null;show(t){(0,r.d6)(this._element)||(t&&(this._params=this._getParams(t,this._params)),this._route((t,e)=>{g.A.trigger(this._element,zn.LOADED,{stats:t,data:e})}),g.A.trigger(this._element,zn.SHOW,{relatedTarget:t}).defaultPrevented||(this._params.backdrop&&p.show(),this._params.overflow&&this._scrollBar.hide(),this._params.hash&&(history.pushState(null,"",`#${this._element.id}`),this._showPopstateHandler&&g.A.off(window,zn.POPSTATE_DATA_API,this._showPopstateHandler),this._showPopstateHandler=()=>this.hide(),g.A.on(window,zn.POPSTATE_DATA_API,this._showPopstateHandler)),this._element.classList.add(On),document.body.classList.add(Nn),this._queueCallback(()=>{const e=s.A.find(".vg-backdrop");e&&g.A.on(e,"mousedown.vg.backdrop",()=>this.hide()),g.A.trigger(this._element,zn.SHOWN,{relatedTarget:t})},this._element,!0,50)))}hide(t=!1){(0,r.d6)(this._element)||g.A.trigger(this._element,zn.HIDE).defaultPrevented||(document.body.classList.remove(Nn),this._element.classList.remove(On),setTimeout(()=>{this._element.setAttribute("aria-expanded","false"),this._queueCallback(()=>{t||(this._params.backdrop?p.hide(()=>{this._params.overflow&&this._scrollBar.reset()}):this._params.overflow&&this._scrollBar.reset(),this._params.hash&&window.location.hash===`#${this._element.id}`&&history.replaceState("",document.title,window.location.pathname+window.location.search),this._showPopstateHandler&&(g.A.off(window,zn.POPSTATE_DATA_API,this._showPopstateHandler),this._showPopstateHandler=null),g.A.trigger(this._element,zn.HIDDEN))},this._element,!0)},this._params.animation.delay))}dispose(){super.dispose(),g.A.off(this._element,zn.HIDE),this._showPopstateHandler&&g.A.off(window,zn.POPSTATE_DATA_API,this._showPopstateHandler),this._scrollBar.reset()}_isShown(){return this._element.classList.contains(On)}_addEventListeners(){g.A.on(document,zn.KEYDOWN_DISMISS,t=>{"Escape"===t.key&&(this._params.keyboard?this.hide():g.A.trigger(this._element,zn.HIDE_PREVENTED))})}}(0,f.P)(Hn),g.A.on(document,zn.CLICK_DATA_API,'[data-vg-toggle="sidebar"]',function(t){const e=s.A.getElementFromSelector(this);if(!e)return;if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),(0,r.d6)(this))return;this.setAttribute("aria-expanded","true"),g.A.one(e,zn.HIDDEN,()=>{this.setAttribute("aria-expanded","false")});const i=s.A.find(".vg-sidebar.show");i&&i!==e&&Hn.getInstance(i).hide(),Hn.getOrCreateInstance(e).toggle(this)}),g.A.on(document,zn.DOM_LOADED_DATA_API,function(){const t=window.location.hash.slice(1);if(!t)return;const e=s.A.find(`#${t}`);if(e&&e.classList.contains("vg-sidebar")&&!(0,r.d6)(e)){const t=Hn.getOrCreateInstance(e);t._params.hash&&t.toggle()}});const $n=Hn,Bn="vg.spy",jn=`.${Bn}`,Vn=".data-api",qn=`activate${jn}`,Un=`click${jn}`,Wn=`load${jn}${Vn}`,Kn="active",Yn="[href], [data-vg-target]",Gn=".nav-link",Xn=`${Gn}, .nav-item > ${Gn}, .list-group-item`;class Zn extends t.A{constructor(t,e){super(t,e),this._params=this._configAfterMerge((0,r._v)({offset:null,rootMargin:"0px 0px -25%",smoothScroll:!0,target:this._element,threshold:[.1,.5,1]},e)),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement=null,this._activeTarget=null,this._observer=null,this._scrollbar=null,this._scrollbarListener=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get NAME(){return"spy"}static get NAME_KEY(){return Bn}refresh(){this._initializeTargetsAndObservables(),this._updateRootElement(),this._maybeEnableSmoothScroll(),this._setupTracking()}_setupTracking(){this._updateSmoothScrollbar(),this._scrollbar?this._setupScrollbarTracking():(this._teardownScrollbarTracking(),this._rebuildObserver(),this._rootElement&&!this._isScrollableSelf(this._rootElement)&&window.Scrollbar&&setTimeout(()=>{this._scrollbar||(this._updateSmoothScrollbar(),this._scrollbar&&this._setupScrollbarTracking())},0))}_updateSmoothScrollbar(){const t=this._rootElement,e=window.Scrollbar;let i=null;t&&(i=t.scrollbar||null,!i&&e&&"function"==typeof e.get&&(i=e.get(t)||null)),i!==this._scrollbar&&(this._teardownScrollbarTracking(),this._scrollbar=i)}_setupScrollbarTracking(){this._scrollbar&&"function"==typeof this._scrollbar.addListener&&(this._observer&&this._observer.disconnect(),this._scrollbarListener&&"function"==typeof this._scrollbar.removeListener&&this._scrollbar.removeListener(this._scrollbarListener),this._scrollbarListener=t=>this._onScrollbarScroll(t),this._scrollbar.addListener(this._scrollbarListener),this._onScrollbarScroll(null))}_teardownScrollbarTracking(){this._scrollbar&&this._scrollbarListener&&"function"==typeof this._scrollbar.removeListener&&this._scrollbar.removeListener(this._scrollbarListener),this._scrollbarListener=null}_onScrollbarScroll(t){const e=t?.offset?.y??this._getParentScrollTop(),i=e>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=e;const s=this._getActivationLine(e),n=[];for(const[t,e]of this._observableSections.entries()){if(!e||!(0,r.zN)(e))continue;const i=this._targetLinks.get(t);i&&n.push({top:this._getSectionTop(e),link:i})}n.sort((t,e)=>t.top-e.top);let a=null;for(const t of n)if(t.top<=s)a=t.link;else if(!i)break;this._process(a)}_getActivationLine(t){const e=this._rootElement?this._rootElement.clientHeight:window.innerHeight||document.documentElement.clientHeight||0,i=(this._params.rootMargin||"").trim(),s=i?i.split(/\s+/):[],r=1===s.length||2===s.length?s[0]:s.length>=3?s[2]:null;if(r&&r.endsWith("%")){const i=Number.parseFloat(r);if(!Number.isNaN(i))return t+e*(1+i/100)}if(r&&r.endsWith("px")){const i=Number.parseFloat(r);if(!Number.isNaN(i))return t+e+i}return t+.75*e}_rebuildObserver(){this._observer&&this._observer.disconnect(),this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}_updateRootElement(){if(this._rootElement=this._normalizeScrollRoot(this._params.target),!this._rootElement&&this._isScrollableSelf(this._element)&&(this._rootElement=this._element),!this._rootElement){const t=this._observableSections.values().next().value||null;t&&this._isScrollable(t)?this._rootElement=t.parentElement:this._rootElement=t?this._getScrollParent(t):null}this._updateSmoothScrollbar(),this._previousScrollData.parentScrollTop=this._getParentScrollTop(),this._previousScrollData.visibleEntryTop=0}_normalizeScrollRoot(t){const e=(0,r.V6)(t);if(!e)return null;if(e===document.body||e===document.documentElement)return null;if(this._isScrollableSelf(e))return e;const i=window.Scrollbar;return e.scrollbar||i&&"function"==typeof i.get&&i.get(e)?e:null}_isScrollable(t){if(!(t instanceof HTMLElement))return!1;const e=t.parentElement;return!!e&&this._isScrollableSelf(e)}_isScrollableSelf(t){if(!(t instanceof HTMLElement))return!1;const e=getComputedStyle(t).overflowY;return!!/(auto|scroll|overlay)/.test(e)&&t.scrollHeight>t.clientHeight}_getScrollParent(t){for(let e=t.parentElement;e&&e!==document.body;e=e.parentElement)if(this._isScrollableSelf(e))return e;return null}_getSectionTop(t){if(this._rootElement){const e=this._rootElement.getBoundingClientRect(),i=t.getBoundingClientRect();return(this._scrollbar?.offset?.y??this._rootElement.scrollTop)+(i.top-e.top)}return(window.scrollY||document.documentElement.scrollTop||0)+t.getBoundingClientRect().top}_getParentScrollTop(){return this._scrollbar?this._scrollbar.offset?.y??0:this._rootElement?this._rootElement.scrollTop:window.scrollY||document.documentElement.scrollTop||0}dispose(){this._observer&&this._observer.disconnect(),this._teardownScrollbarTracking(),this._scrollbar=null,super.dispose()}_configAfterMerge(t){return t.target=(0,r.V6)(t.target)||document.body,null!=t.offset&&(t.rootMargin=`${t.offset}px 0px -30%`),"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map(t=>Number.parseFloat(t.trim()))),t}_maybeEnableSmoothScroll(){this._params.smoothScroll&&(g.A.off(this._element,Un),g.A.on(this._element,Un,Yn,t=>{const e=t.delegateTarget||t.target,i=this._getTargetIdFromTrigger(e);if(!i)return;let n=this._observableSections.get(i);if(n||(n=s.A.findID(i),n&&(this._targetLinks.set(n.id,e),this._observableSections.set(n.id,n))),!n)return;if(!(0,r.zN)(n))return void setTimeout(()=>{const t=s.A.findID(i);if(!t||!(0,r.zN)(t))return;this._targetLinks.set(t.id,e),this._observableSections.set(t.id,t),this._updateRootElement(),this._setupTracking();const n=this._getSectionTop(t);this._scrollbar&&"function"==typeof this._scrollbar.scrollTo?this._scrollbar.scrollTo(0,n,600):this._rootElement?this._rootElement.scrollTo?this._rootElement.scrollTo({top:n,behavior:"smooth"}):this._rootElement.scrollTop=n:window.scrollTo?window.scrollTo({top:n,behavior:"smooth"}):document.documentElement.scrollTop=n,this._process(e)},0);t.preventDefault(),this._updateRootElement(),this._setupTracking();const a=this._getSectionTop(n),o=this._rootElement;return this._scrollbar&&"function"==typeof this._scrollbar.scrollTo?(this._scrollbar.scrollTo(0,a,600),void this._process(e)):o?(o.scrollTo?o.scrollTo({top:a,behavior:"smooth"}):o.scrollTop=a,void this._process(e)):(window.scrollTo?window.scrollTo({top:a,behavior:"smooth"}):document.documentElement.scrollTop=a,void this._process(e))}))}_getNewObserver(){const t={root:this._rootElement,rootMargin:this._params.rootMargin,threshold:this._params.threshold};return new IntersectionObserver(t=>this._observerCallback(t),t)}_observerCallback(t){const e=t=>this._targetLinks.get(t.target.id),i=this._getParentScrollTop(),s=i>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=i;for(const i of t){if(!i.isIntersecting){this._clearActiveClass(e(i));continue}const t=this._getSectionTop(i.target),r=t>=this._previousScrollData.visibleEntryTop;(s&&r||!s&&!r)&&(this._previousScrollData.visibleEntryTop=t,this._process(e(i)))}}_initializeTargetsAndObservables(){this._targetLinks.clear(),this._observableSections.clear();const t=s.A.findAll(Yn,this._element);for(const e of t){if((0,r.d6)(e))continue;const t=this._getTargetIdFromTrigger(e);if(!t)continue;const i=s.A.findID(t);i&&(this._targetLinks.set(i.id,e),this._observableSections.set(i.id,i))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._element),this._activeTarget=t,t&&(t.classList.add(Kn),this._activateParents(t),g.A.trigger(this._element,qn,{relatedTarget:t})))}_activateParents(t){if(t.classList.contains("vg-dropdown-item")){const e=s.A.find('[data-vg-toggle="dropdown"]',t.closest(".vg-dropdown"));return void(e&&e.classList.add(Kn))}for(const e of s.A.parents(t,".nav, .list-group"))for(const t of s.A.prev(e,Xn))t.classList.add(Kn)}_clearActiveClass(t){if(!t)return;t.classList.remove(Kn);const e=s.A.findAll(`[href].${Kn}, [data-vg-target].${Kn}`,t);for(const t of e)t.classList.remove(Kn)}_getTargetIdFromTrigger(t){if(!t||"function"!=typeof t.getAttribute)return null;const e=(t.getAttribute("data-vg-target")||"").trim(),i=(t.getAttribute("href")||"").trim(),s=e&&"#"!==e?e:i&&(i.includes("#")||i.startsWith("#"))?i.includes("#")&&!i.startsWith("#")?`#${i.split("#")[1]}`:i:null;if(!s||"#"===s||!s.startsWith("#"))return null;const r=this._safeDecode(s);return r&&r.startsWith("#")&&r.length>1?r.slice(1):null}_safeDecode(t){try{return decodeURIComponent(t)}catch{try{return decodeURI(t)}catch{return t}}}}(()=>{let t=!1;const e=()=>{if(!t){t=!0;for(const t of s.A.findAll('[data-vg-toggle="spy"]'))Zn.getOrCreateInstance(t)}};"loading"===document.readyState?g.A.on(document,`DOMContentLoaded${jn}${Vn}`,e):e(),g.A.on(window,Wn,e)})();const Jn=Zn,Qn="vg.tabs",ta=`${Qn}.hide`,ea=`${Qn}.hidden`,ia=`${Qn}.show`,sa=`${Qn}.shown`,ra=`${Qn}.loaded`,na=`keydown.${Qn}`,aa=`load.${Qn}`,oa=`click.${Qn}`,la=`mouseover.${Qn}`,da=`mouseout.${Qn}`,ha=["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"],ca="ArrowRight",ua="ArrowDown",_a="Home",ma="End",pa="active",ga="hover",fa="fade",ba="show",va="vg-tabs-slider",ya='.vg-tabs-link:not([data-vg-toggle="dropdown"]), .list-group-item:not([data-vg-toggle="dropdown"]), [role="tab"]:not([data-vg-toggle="dropdown"])',wa='[data-vg-toggle="tab"]',Sa={DROPDOWN_TOGGLE:'[data-vg-toggle="dropdown"]',DROPDOWN_MENU:".dropdown-content",TAB_CLASS:".vg-tabs",TAB_PANEL:'.list-group, .vg-tabs-panel, [role="tablist"]',OUTER:".vg-tabs-item, .list-group-item",INNER:ya,DATA_TOGGLE:wa,INNER_ELEM:`${ya}, ${wa}`,DATA_TOGGLE_ACTIVE:'.active[data-vg-toggle="tab"]'};class Ca extends t.A{constructor(t,e){if(super(t,e),this._params=(0,r._v)({slide:!1,hash:!1,ajax:{route:"",target:"",method:"get",loader:!1,once:!0,output:!0}},this._params),this._parent=this._element.closest(Sa.TAB_PANEL),this._main_parent=this._parent?.closest(Sa.TAB_CLASS)||null,!this._parent)throw new TypeError(`${t.outerHTML} не имеет родителя с селектором ${Sa.INNER_ELEM}`);this._params=this._getParams(this._main_parent,this._params),this._params=this._getParams(this._element,this._params),this._setInitialAttributes(this._parent,this._getChildren()),this._setInitialSlider(),this._setTabHash(),g.A.on(this._element,na,t=>this._keydown(t))}static get NAME(){return"tabs"}static get NAME_KEY(){return Qn}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=t,s=e?g.A.trigger(e,ta,{relatedTarget:i}):null;g.A.trigger(t,ia,{relatedTarget:i}).defaultPrevented||s&&s.defaultPrevented||(this._deactivate(e,t),this._activate(t,i))}_elemIsActive(t){return t?.classList.contains(pa)||!1}_getActiveElem(){return this._getChildren().find(t=>this._elemIsActive(t))||null}_activate(t,e){if(!t)return;t.classList.add(pa);const i=s.A.getElementFromSelector(t);i&&this._activate(i,e),this._queueCallback(()=>{"tab"===t.getAttribute("role")?(this._route((t,e)=>{g.A.trigger(this._element,ra,{stats:t,data:e})}),t.removeAttribute("tabindex"),t.setAttribute("aria-selected","true"),this._toggleDropDown(t,!0),g.A.trigger(t,sa,{relatedTarget:e})):t.classList.add(ba)},t,t.classList.contains(fa))}_deactivate(t,e){if(!t)return;t.classList.remove(pa),t.blur();const i=s.A.getElementFromSelector(t);i&&this._deactivate(i,e),this._queueCallback(()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected","false"),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),g.A.trigger(t,ea,{relatedTarget:e})):t.classList.remove(ba)},t,t.classList.contains(fa))}_keydown(t){if(!ha.includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter(t=>!(0,r.d6)(t));let i;if([_a,ma].includes(t.key))i=e[t.key===_a?0:e.length-1];else{const s=[ca,ua].includes(t.key);i=(0,r.iq)(e,t.target,s,!0)}i&&(i.focus({preventScroll:!0}),Ca.getOrCreateInstance(i).show())}_setTabHash(){if(!this._params.hash)return;const t=document.location.toString();if(!t.includes("#"))return;const e=t.split("#")[1],i=s.A.find(`[href="#${e}"]`,this._parent)||s.A.find(`[data-vg-target="#${e}"]`,this._element)||null;i&&Ca.getOrCreateInstance(i).show()}_setInitialSlider(){if(!this._params.slide)return;let t=s.A.find(`.${va}`,this._main_parent);t||(t=document.createElement("span"),t.classList.add(va),this._main_parent.prepend(t)),this._main_parent.classList.add("vg-tabs-with-slider");const e=s.A.find(`.${pa}`,this._parent);if(!e)return;const{width:i,height:n}=window.getComputedStyle(e);e.classList.add(ga),t.style.width=i,t.style.height=n,t.style.left=`${e.offsetLeft}px`,g.A.on(this._main_parent,la,Sa.DATA_TOGGLE,e=>{const i=e.target;if(["A","AREA"].includes(i.tagName)&&e.preventDefault(),(0,r.d6)(i))return;const n=s.A.find(`.${ga}`,this._parent);n&&n.classList.remove(ga),i.classList.add(ga);const{width:a,height:o}=window.getComputedStyle(i);t.style.width=a,t.style.height=o,t.style.left=`${i.offsetLeft}px`}),g.A.on(this._main_parent,da,Sa.DATA_TOGGLE,()=>{const e=s.A.find(`.${pa}`,this._parent),{width:i,height:r}=window.getComputedStyle(e);s.A.findAll(`.${ga}`,this._parent).forEach(t=>t.classList.remove(ga)),e.classList.add(ga),t.style.width=i,t.style.height=r,t.style.left=`${e.offsetLeft}px`})}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist"),e.forEach(t=>this._setInitialAttributesOnChild(t))}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=s.A.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",t.id))}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_getChildren(){return s.A.findAll(Sa.INNER_ELEM,this._parent)}_getInnerElement(t){return t.matches(Sa.INNER_ELEM)?t:s.A.find(Sa.INNER_ELEM,t)}_getOuterElement(t){return t.closest(Sa.OUTER)||t}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const r=(t,r)=>{const n=s.A.find(t,i);n&&n.classList.toggle(r,e)};r(Sa.DROPDOWN_TOGGLE,pa),r(Sa.DROPDOWN_MENU,ba),i.setAttribute("aria-expanded",e)}}g.A.on(document,oa,Sa.DATA_TOGGLE,function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),(0,r.d6)(this)||Ca.getOrCreateInstance(this).show()}),g.A.on(window,aa,()=>{s.A.findAll(Sa.DATA_TOGGLE_ACTIVE).forEach(t=>{Ca.getOrCreateInstance(t)})});const Aa=Ca,Ea="vg.tooltip",xa='[data-vg-toggle="tooltip"]',Pa='[data-vg-toggle="popover"]',La="vg-tooltip-open",Ia="show",Ma="shown",Da=`${xa}.${Ia}, ${Pa}.${Ia}`,Ta=`${Ea}.hide`,ka=`${Ea}.hidden`,Fa=`${Ea}.show`,Ra=`${Ea}.shown`,Oa=`click.${Ea}.data.api`,Na=`mouseenter.${Ea}`,za=`mouseleave.${Ea}`,Ha=`click.dismiss.${Ea}`,$a=`keydown.dismiss.${Ea}`,Ba=["top","top-start","top-end","bottom","bottom-start","bottom-end","left","left-start","left-end","right","right-start","right-end"],ja={title:"",content:"",trigger:"hover",placement:"top",container:"body",popover:!1,html:!1,offset:[8,8],autoFlip:!0,overflowProtection:!0,fallbackPlacements:["bottom","right","left"],closeOnOutsideClick:!0,keyboard:!0,closeOther:!0,delay:{show:100,hide:100},arrow:{padding:8},custom:{class:""},animation:{enable:!0,in:"animate__backInUp",out:"animate__backOutDown",delay:300,effect:"none"}};class Va extends t.A{constructor(t,e={}){super(t,e),this._params=this._getParams(t,(0,r._v)(ja,e)),this._tooltip=null,this._isHiding=!1,this._showTimeout=null,this._hideTimeout=null,this._fixTitle(),this._handleUpdate=()=>{this._isShown()&&this._setPlacement()}}static get NAME(){return"tooltip"}static get NAME_KEY(){return Ea}toggle(t){return this._isShown()?this.hide():this.show(t)}show(t){(0,r.d6)(this._element)||this._isShown()||(this._clearTimeouts(),this._showTimeout=setTimeout(()=>{this._showTimeout=null,g.A.trigger(this._element,Fa,{relatedTarget:t}).defaultPrevented||(this._params.closeOther&&this._hideOpenedTooltips(),this._isHiding=!1,this._createTooltip(),this._tooltip&&(this._tooltip.classList.remove(Ma),this._tooltip.classList.add(Ia),this._element.classList.add(Ia),document.body.classList.add(La),this._addWindowListeners(),requestAnimationFrame(()=>{this._tooltip&&(this._setPlacement(),this._queueCallback(()=>{this._tooltip&&!this._isHiding&&(this._tooltip.classList.add(Ma),g.A.trigger(this._element,Ra,{relatedTarget:t}))},this._tooltip,!0,this._params.animation.delay))})))},this._params.delay.show))}hide(){this._isShown()&&!this._isHiding&&this._tooltip&&(this._clearTimeouts(),this._hideTimeout=setTimeout(()=>{this._hideTimeout=null,g.A.trigger(this._element,Ta).defaultPrevented||(this._removeWindowListeners(),this._isHiding=!0,this._tooltip.classList.remove(Ma),this._queueCallback(()=>{this._tooltip&&(this._tooltip.classList.remove(Ia),this._element.classList.remove(Ia),this._element.removeAttribute("aria-describedby"),this._tooltip.remove(),this._tooltip=null,this._isHiding=!1,s.A.find(".vg-tooltip.show")||document.body.classList.remove(La),g.A.trigger(this._element,ka))},this._tooltip,!1,this._params.animation.delay))},this._params.delay.hide))}dispose(){this._clearTimeouts(),this._removeWindowListeners(),this._tooltip&&(this._tooltip.remove(),this._tooltip=null);const t=this._element.dataset.vgOriginalTitle;t&&this._element.setAttribute("title",t),super.dispose()}_isShown(){return!!this._element&&this._element.classList.contains(Ia)}_createTooltip(){if(this._tooltip)return;const t=this._getTitle();if(!t)return;const e=`vg-tooltip-${(0,r.PR)()}`,i=document.createElement("div");i.id=e,i.className=`vg-tooltip ${this._params.placement} ${this._params.custom.class||""}`,i.setAttribute("role",this._params.popover?"dialog":"tooltip"),this._params.popover&&i.classList.add("vg-tooltip-popover");const n=document.createElement("div");if(n.classList.add("vg-tooltip-inner"),this._params.content){const e=document.createElement("div");e.classList.add("vg-tooltip-inner--title");const i=document.createElement("div");i.classList.add("vg-tooltip-inner--content"),this._params.html?(e.innerHTML=t,i.innerHTML=this._params.content):(e.textContent=t,i.textContent=this._params.content),n.append(e),n.append(i)}else this._params.html?n.innerHTML=t:n.textContent=t;const a=document.createElement("div");a.classList.add("vg-tooltip-arrow"),n.append(a),i.append(n);const o="body"===this._params.container?document.body:s.A.find(this._params.container);o&&(o.append(i),this._element.setAttribute("aria-describedby",e),this._tooltip=i,this._animation(this._tooltip,Va.NAME_KEY,this._params.animation))}_getTitle(){return this._params.title||this._element.dataset.vgTitle||this._element.dataset.vgOriginalTitle||""}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.setAttribute("data-vg-original-title",t),this._element.removeAttribute("title"))}_setPlacement(){this._tooltip&&(new kt({reference:this._element,drop:this._tooltip,placement:this._params.placement,offset:this._params.offset,autoFlip:this._params.autoFlip,overflowProtection:this._params.overflowProtection,fallbackPlacements:this._params.fallbackPlacements,clamp:!0,isMerge:!1})._setPlacement(),this._syncPlacementClass(),this._setArrowPlacement())}_setArrowPlacement(){if(!this._tooltip)return;const t=this._tooltip.querySelector(".vg-tooltip-inner"),e=this._tooltip.querySelector(".vg-tooltip-arrow");if(!t||!e)return;const i=this._tooltip.getAttribute("data-vg-placement")||this._params.placement,s=this._element.getBoundingClientRect(),r=t.getBoundingClientRect(),n=s.left+s.width/2,a=s.top+s.height/2,o=this._params.arrow.padding;if(e.style.left="",e.style.right="",e.style.top="",e.style.bottom="",i.startsWith("top")||i.startsWith("bottom")){let t=n-r.left;t=Math.max(o,Math.min(t,r.width-o)),e.style.left=`${t}px`,e.style.transform="translateX(-50%) rotate(45deg)",i.startsWith("top")?e.style.bottom="-4px":e.style.top="-4px"}if(i.startsWith("left")||i.startsWith("right")){let t=a-r.top;t=Math.max(o,Math.min(t,r.height-o)),e.style.top=`${t}px`,e.style.transform="translateY(-50%) rotate(45deg)",i.startsWith("left")?e.style.right="-4px":e.style.left="-4px"}}_syncPlacementClass(){if(!this._tooltip)return;const t=this._tooltip.getAttribute("data-vg-placement");this._tooltip.classList.remove(...Ba),t&&this._tooltip.classList.add(t)}_hideOpenedTooltips(){s.A.findAll(".vg-tooltip.show").forEach(t=>{const e=t.id,i=s.A.find(`[aria-describedby="${e}"]`);if(!i||i===this._element)return;const r=Va.getInstance(i);r?.hide()})}_addWindowListeners(){window.addEventListener("resize",this._handleUpdate),window.addEventListener("scroll",this._handleUpdate,!0)}_removeWindowListeners(){window.removeEventListener("resize",this._handleUpdate),window.removeEventListener("scroll",this._handleUpdate,!0)}_clearTimeouts(){this._showTimeout&&(clearTimeout(this._showTimeout),this._showTimeout=null),this._hideTimeout&&(clearTimeout(this._hideTimeout),this._hideTimeout=null)}}const qa=()=>s.A.findAll(Da).map(t=>Va.getInstance(t)).filter(Boolean);g.A.on(document,$a,t=>{"Escape"===t.key&&qa().forEach(t=>{t._params.keyboard&&t._isShown()&&t.hide()})}),g.A.on(document,Ha,t=>{qa().forEach(e=>{e._params.closeOnOutsideClick&&(e._params.trigger.includes("click")||e._params.popover)&&e._isShown()&&(e._tooltip?.contains(t.target)||e._element.contains(t.target)||e.hide())})}),g.A.on(document,Na,xa,function(){const t=Va.getOrCreateInstance(this);t._params.trigger.includes("hover")&&t.show(this)}),g.A.on(document,za,xa,function(){const t=Va.getOrCreateInstance(this);t._params.trigger.includes("hover")&&t.hide()}),g.A.on(document,Oa,xa,function(t){const e=Va.getOrCreateInstance(this);e._params.popover&&(e._params.trigger="click"),e._params.trigger.includes("click")&&(t.preventDefault(),e.toggle(this))}),g.A.on(document,Oa,Pa,function(t){t.preventDefault();const e=Va.getOrCreateInstance(this);e._params.popover=!0,e._params.trigger="click",e.toggle(this)});const Ua=Va,Wa=[ft,Tt,Zt,Ee,qi,vi,is,_s,Ss,V,Os,or,Er,Fr,Fn,$n,Jn,Aa,Ii.A,Ua];new class{constructor(t={}){this._modules=new Map,this._initializer="function"==typeof t.initializer?t.initializer:null,this._isInitialized=!1}register(...t){const e=t.flatMap(t=>Array.isArray(t)?t:t?[t]:[]);for(const t of e){const e=t?.default??t,i=String(e?.NAME||"").trim();if(!i){const e=t&&"object"==typeof t?Object.keys(t).join(", "):"";throw new Error(`VGApp.register() ожидает модуль со статическим NAME. Получено: ${e||typeof t}`)}this._modules.set(i,e)}return this}boot(t={}){this._ensureInitialized();for(const[e,i]of this._modules){if("function"!=typeof i?.boot)continue;const s=this._resolveModuleConfig(e,t);i.boot(s)}return this}get(t){return this._ensureInitialized(),this._modules.get(String(t).trim())}has(t){return this._ensureInitialized(),this._modules.has(String(t).trim())}_resolveModuleConfig(t,e){if(e&&"object"==typeof e)return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0}_ensureInitialized(){this._isInitialized||"function"!=typeof this._initializer||(this._isInitialized=!0,this._initializer(this))}}({initializer:t=>t.register(Wa)})})(),i.r(s),s})());
3
3
  //# sourceMappingURL=vgapp.js.map