@topvisor/ui 0.0.36 → 0.0.37

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 (55) hide show
  1. package/.chunks/datepicker-6d57a408.es.js +275 -0
  2. package/.chunks/datepicker-6d57a408.es.js.map +1 -0
  3. package/.chunks/datepicker-a0840577.amd.js +234 -0
  4. package/.chunks/datepicker-a0840577.amd.js.map +1 -0
  5. package/.chunks/{forms-2891e074.amd.js → forms-1aa30229.amd.js} +3 -3
  6. package/.chunks/forms-1aa30229.amd.js.map +1 -0
  7. package/.chunks/{forms-db4cb24d.es.js → forms-7be951a7.es.js} +217 -201
  8. package/.chunks/forms-7be951a7.es.js.map +1 -0
  9. package/.chunks/{popup-e49a9bab.amd.js → popup-604c0a49.amd.js} +341 -341
  10. package/.chunks/popup-604c0a49.amd.js.map +1 -0
  11. package/.chunks/{popup-0f540839.es.js → popup-b9517276.es.js} +383 -383
  12. package/.chunks/popup-b9517276.es.js.map +1 -0
  13. package/README.md +62 -62
  14. package/core/core.amd.js +1 -1
  15. package/core/core.js +1 -1
  16. package/forms/forms.amd.js +1 -1
  17. package/forms/forms.js +10 -9
  18. package/forms/helpers.amd.js.map +1 -1
  19. package/forms/helpers.js.map +1 -1
  20. package/forms.css +1 -1
  21. package/formsExt/formsExt.amd.js +2 -2
  22. package/formsExt/formsExt.amd.js.map +1 -1
  23. package/formsExt/formsExt.js +97 -84
  24. package/formsExt/formsExt.js.map +1 -1
  25. package/formsExt.css +1 -1
  26. package/icomoon/demo-files/demo.css +161 -161
  27. package/icomoon/demo-files/demo.js +30 -30
  28. package/icomoon/demo.html +2945 -2945
  29. package/icomoon/fonts/Topvisor-2.svg +232 -232
  30. package/icomoon/style.css +647 -647
  31. package/package.json +19 -19
  32. package/popup/popup.amd.js +1 -1
  33. package/popup/popup.amd.js.map +1 -1
  34. package/popup/popup.js +1 -1
  35. package/popup/popup.js.map +1 -1
  36. package/popup/worker.amd.js +1 -1
  37. package/popup/worker.amd.js.map +1 -1
  38. package/popup/worker.js +2 -2
  39. package/popup/worker.js.map +1 -1
  40. package/tabs/tabs.amd.js +1 -1
  41. package/tabs/tabs.js +1 -1
  42. package/utils/date.amd.js +1 -1
  43. package/utils/date.js +1 -1
  44. package/utils/device.amd.js +1 -1
  45. package/utils/device.js +1 -1
  46. package/utils/dom.amd.js.map +1 -1
  47. package/utils/dom.js.map +1 -1
  48. package/.chunks/datepicker-1e725859.amd.js +0 -234
  49. package/.chunks/datepicker-1e725859.amd.js.map +0 -1
  50. package/.chunks/datepicker-ad465c48.es.js +0 -275
  51. package/.chunks/datepicker-ad465c48.es.js.map +0 -1
  52. package/.chunks/forms-2891e074.amd.js.map +0 -1
  53. package/.chunks/forms-db4cb24d.es.js.map +0 -1
  54. package/.chunks/popup-0f540839.es.js.map +0 -1
  55. package/.chunks/popup-e49a9bab.amd.js.map +0 -1
@@ -1,3 +1,3 @@
1
- define(["require","exports","vue"],function(N,b,o){var D,L;"use strict";var S=document.createElement("style");S.textContent=`.top-button{cursor:pointer;box-sizing:border-box;box-shadow:var(--top-button-box-shadow);border-radius:var(--top-forms-radius);border:var(--top-forms-border-width) solid var(--top-forms-border-color);background-color:var(--top-button-background-color);height:var(--top-forms-base-height);padding:0 var(--top-forms-padding);color:var(--top-button-color);line-height:1;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;transition:background-color .15s,border-color .15s,box-shadow .15s}.top-button:hover{box-shadow:var(--top-button-box-shadow-hover);background-color:var(--top-button-background-color-hover)}.top-button:active{box-shadow:var(--top-button-box-shadow-active);background-color:var(--top-button-background-color-active)}.top-button.top-active{box-shadow:var(--top-button-box-shadow-selected);background-color:var(--top-button-background-color-selected)}.top-button.top-button-progress{cursor:help;box-shadow:inset #00000080 0 0 64px;background-image:linear-gradient(-45deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-size:32px 32px;animation:_progress_1hqxk_1 1s linear infinite}@keyframes _progress_1hqxk_1{0%{background-position-x:0px}to{background-position-x:32px}}a.top-button,button.top-button{min-width:100px;text-decoration:none}a.top-button,a.top-button:hover{min-width:var(--top-forms-base-height);text-decoration:none}.top-button[data-top-icon]:not(:empty),.top-button[data-top-icon2]:not(:empty){justify-content:flex-start;text-align:left}.top-button[data-top-icon]{padding-left:0}.top-button[data-top-icon2]{padding-right:var(--top-select_arrow-width)}.top-button[data-top-icon2]:after{margin-left:auto}.top-button:empty{min-width:var(--top-forms-base-height)}.top-button[data-top-icon]:empty,.top-button[data-top-icon2]:empty{padding:0}.top-button.top-color_blue{--top-button-background-color: var(--color-blue-500)}.top-button.top-color_green{--top-button-background-color: var(--color-green-500)}.top-button.top-color_orange{--top-button-background-color: var(--color-orange-500)}.top-button.top-color_red{--top-button-background-color: var(--color-red-500)}.top-button.top-color_pink{--top-button-background-color: var(--color-pink-500)}.top-button.top-color_theme{--top-button-box-shadow-hover: none;--top-button-box-shadow-active: none;--top-button-box-shadow-selected: none;--top-icon-color: var(--color-text-2);--top-icon2-color: var(--color-text-2);--top-button-color: var(--color-text-1);--top-button-background-color: transparent;--top-button-background-color-hover: var(--color-secondary-opacity);--top-button-background-color-active: var(--color-secondary-2-opacity);--top-button-background-color-selected: var(--color-secondary-2-opacity)}.top-button.top-color_theme.top-active{--top-icon-color: var(--color-text-2)}.top-button.top-style_outline{--top-button-box-shadow: none;--top-button-box-shadow-hover: none;--top-button-box-shadow-active: none;--top-button-box-shadow-selected: none;--top-forms-border-color: var(--top-style_outline-color);--top-style_outline-color: var(--color-steel-400);--top-button-color: var(--top-style_outline-color);--top-button-background-color: var(--content-background-color);--top-button-background-color-hover: var(--color-theme-100);--top-button-background-color-active: var(--color-theme-150);--top-button-background-color-selected: var(--color-theme-125);--top-forms-border-width: 1px}.top-button.top-style_outline.top-color_theme{--top-button-color: var(--color-text)}.top-button.top-style_outline.top-color_blue{--top-style_outline-color: var(--color-blue-500)}.top-button.top-style_outline.top-color_green{--top-style_outline-color: var(--color-green-500)}.top-button.top-style_outline.top-color_orange{--top-style_outline-color: var(--color-orange-500)}.top-button.top-style_outline.top-color_red{--top-style_outline-color: var(--color-red-500)}.top-button.top-style_outline.top-color_pink{--top-style_outline-color: var(--color-pink-500)}.top-button.top-style_soft{--top-shadow-darken: none;--top-shadow-darken-2: none;--top-shadow-darken-3: none;--top-button-color: var(--color-text);--top-button-background-color: var(--color-secondary-opacity);--top-button-background-color-hover: var(--color-secondary-2-opacity);--top-button-background-color-active: var(--color-secondary-3-opacity);--top-button-background-color-selected: var(--color-secondary-3-opacity)}.top-button.top-style_soft.top-color_blue{--top-button-color: var(--color-blue-500)}.top-button.top-style_soft.top-color_orange{--top-button-color: var(--color-orange-500)}.top-button.top-style_soft.top-color_green{--top-button-color: var(--color-green-500)}.top-button.top-style_soft.top-color_red{--top-button-color: var(--color-red-500)}.top-button.top-style_soft.top-color_pink{--top-button-color: var(--color-pink-500)}.top-button.top-style_transparent{--top-shadow-darken: none;--top-shadow-darken-2: none;--top-shadow-darken-3: none;--top-button-color: var(--color-text);--top-button-background-color: transparent;--top-button-background-color-hover: transparent;--top-button-background-color-active: transparent;--top-button-background-color-selected: var(--color-steel-200)}.top-button.top-style_transparent:hover{opacity:.8}.top-button.top-style_transparent.top-color_blue{--top-button-color: var(--color-blue-450)}.top-button.top-style_transparent.top-color_green{--top-button-color: var(--color-green-450)}.top-button.top-style_transparent.top-color_orange{--top-button-color: var(--color-orange-450)}.top-button.top-style_transparent.top-color_red{--top-button-color: var(--color-red-450)}.top-button.top-style_transparent.top-color_pink{--top-button-color: var(--color-pink-450)}.top-button{--top-button-color: var(--color-white);--top-button-background-color: transparent;--top-button-background-color-hover: var(--top-button-background-color);--top-button-background-color-active: var(--top-button-background-color-hover);--top-button-background-color-selected: var(--top-button-background-color-hover);--top-button-box-shadow: none;--top-button-box-shadow-hover: var(--top-shadow-darken-2);--top-button-box-shadow-active: var(--top-shadow-darken-3);--top-button-box-shadow-selected: var(--top-shadow-darken-3);--top-forms-border-width: 0px;--top-icon-width: calc(var(--top-icon-size) + var(--top-forms-padding));--top-icon2-width: calc(var(--top-icon2-size) + var(--top-forms-padding))}.top-button.top-size_l{--top-forms-padding: var(--top-forms-padding_l);--top-forms-base-height: var(--top-forms-base-height_l)}.top-button.top-size_xl{--top-forms-padding: var(--top-forms-padding_xl);--top-forms-base-height: var(--top-forms-base-height_xl)}.top-forms-optionLabel{flex-grow:1}.top-forms-optionLabel_title{min-height:var(--top-forms-option-height);display:flex;align-items:center}.top-forms-optionLabel_title-disabled{color:var(--color-text-3)}.top-forms-optionLabel_description{color:var(--color-text-3);font-size:.85em;line-height:var(--top-forms-option-height)}.top-checkbox{cursor:pointer;display:inline-flex}.top-checkbox_input{cursor:inherit;border-radius:4px;background:var(--content-background-color);border:1px solid var(--top-forms-border-color);width:calc(var(--top-forms-option-height) - 3px * 2);height:calc(var(--top-forms-option-height) - 3px * 2)}.top-checkbox_input:before{content:" ";color:#fff;font-family:Topvisor-2;font-size:16px}.top-checkbox_input:hover{border-color:var(--top-forms-option-color);background:var(--color-theme-50)}.top-checkbox_input:checked,.top-checkbox_input:indeterminate{border-color:var(--top-forms-option-color);background:var(--top-forms-option-color)}.top-checkbox_input:checked:before{content:""}.top-checkbox_input:indeterminate:before{content:""}.top-checkbox_input:checked:hover,.top-checkbox_input:indeterminate:hover{border-color:var(--top-forms-option-color-hover);background:var(--top-forms-option-color-hover)}.top-checkbox_input:disabled{border-color:var(--color-line-1-opacity);background:var(--color-theme-50)}.top-checkbox_input:checked:disabled,.top-checkbox_input:indeterminate:disabled{border-color:transparent;background:var(--color-theme-400)}.top-checkbox_input.top-error{border-color:var(--color-negative)}.top-checkbox_input.top-error:hover{border-color:var(--color-negative-2)}.top-checkbox_input:checked.top-error,.top-checkbox_input:indeterminate.top-error{background:var(--color-negative)}.top-checkbox_input:checked.top-error:hover,.top-checkbox_input:indeterminate.top-error:hover{background:var(--color-negative-2)}.top-hint{--top-icon-size: 16px;--top-icon-width: var(--top-icon-size);border-radius:50%;background:var(--content-background-color);padding:1px;color:var(--color-text-4);line-height:1;z-index:1;pointer-events:all}.top-hint:hover{color:var(--color-text-3)}.top-input{--top-forms_clear-width: 0px;width:180px;position:relative;display:inline-flex;align-items:center;gap:var(--top-gap-1)}.top-input_input{background:var(--top-forms-background-color);height:var(--top-forms-base-height);padding:0;padding-right:max(var(--top-forms-padding),calc(var(--top-icon2-width) + var(--top-forms_clear-width)));padding-left:max(var(--top-forms-padding),var(--top-icon-width))}.top-input_input:hover{background:var(--top-forms-background-color-hover)}.top-input_input:focus{outline-color:var(--color-theme-75);outline-offset:0}.top-input[data-top-icon]:before,.top-input[data-top-icon2]:after{--top-icon-color: var(--color-text-secondary);--top-icon2-color: var(--color-text-secondary);position:absolute;z-index:3}.top-input[data-top-icon]:before{left:0}.top-input[data-top-icon2]:after{right:0}.top-input-withCleaner{--top-forms_clear-width: 24px}.top-input_cleaner{--top-icon-size: 20px;--top-icon-width: 20px;--top-icon-color: var(--color-text-3);cursor:pointer;border-radius:50%;width:24px;height:24px;position:absolute;right:calc(var(--top-forms-border-width) + max(var(--top-icon2-width),var(--top-forms-padding) / 2));z-index:1;display:flex;align-items:center;justify-content:center}.top-input_cleaner:hover{--top-icon-color: var(--color-text-2)}.top-input_input{width:50%;flex-grow:1}.top-input-datepicker{width:calc(105px + var(--top-icon-width) + var(--top-icon2-width))}.top-input_input-date{opacity:0;position:absolute;inset:0;z-index:-1}.top-input_input-date::-webkit-inner-spin-button{display:none}.top-input_input-date::-webkit-calendar-picker-indicator{opacity:0}:root{--top-radio-background-color: var(--content-background-color);--top-radio-background-color-hover: var(--top-radio-background-color);--top-radio-background-color-active: var(--top-radio-background-color)}.top-radio{cursor:pointer}.top-radio_input{border-radius:50%;background:var(--content-background-color);border:1px solid var(--top-forms-border-color);width:calc(var(--top-forms-option-height) - 3px * 2);height:calc(var(--top-forms-option-height) - 3px * 2)}.top-radio_input:hover{border-color:var(--top-forms-option-color);background:var(--color-theme-50)}.top-radio_input:checked{border-color:var(--top-forms-option-color);border-width:5px}.top-radio_input:checked:hover{border-color:var(--top-forms-option-color-hover)}.top-radio_input:disabled{border-color:var(--color-line-1-opacity);background:var(--color-theme-50)}.top-radio_input:checked:disabled{border-color:var(--color-theme-400)}.top-radio_input.top-error{border-color:var(--color-negative)}.top-radio_input.top-error:hover{border-color:var(--color-negative-2)}.top-checkboxSwitcher{cursor:pointer;display:inline-flex;gap:4px}.top-checkboxSwitcher_input{border-radius:9px;border:none;background:var(--color-theme-100);width:36px;height:18px;position:relative}.top-checkboxSwitcher_input:before{content:"";border-radius:50%;background:var(--color-white);width:12px;height:12px;margin:3px;position:absolute;top:0;left:0;transition:left .1s}.top-checkboxSwitcher_input:hover{background:var(--color-theme-150)}.top-checkboxSwitcher_input:checked{background:var(--top-forms-option-color)}.top-checkboxSwitcher_input:checked:hover{background:var(--top-forms-option-color-hover)}.top-checkboxSwitcher_input:checked:before{left:50%}.top-checkboxSwitcher_input:disabled{background:var(--color-theme-400)}.top-checkboxSwitcher_input.top-error{background:var(--color-negative)}.top-checkboxSwitcher_input.top-error:hover{background:var(--color-negative-2)}.top-textarea{width:180px;display:inline-flex;align-items:center;position:relative}.top-textarea_textarea{background:var(--top-forms-background-color);width:100%;padding:var(--top-forms-padding);resize:none}.top-textarea_textarea:hover{background:var(--top-forms-background-color-hover)}.top-textarea_textarea:focus{outline-color:var(--color-theme-75);outline-offset:0px}.top-textarea_textarea.top-textarea_textarea-expandable{width:100%;height:100%;overflow:hidden;position:absolute;top:0;left:0}.top-textarea_pseudoContent{box-sizing:border-box;min-height:var(--c35baa86);padding:var(--top-forms-padding);font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;pointer-events:none;opacity:0;z-index:-1}.top-textarea_hint{position:absolute;top:2px;right:2px}.top-select{--top-icon-color: var(--color-text-3);--top-icon2-color: var(--color-text-2);align-items:center;width:180px;max-width:100%;vertical-align:middle;display:inline-flex}.top-select-error{--top-icon-color: var(--color-negative);--top-icon2-color: var(--color-negative)}.top-select_select{background-color:var(--top-forms-background-color);padding-left:var(--top-forms-padding);text-indent:clamp(0px,calc(var(--top-icon-both-width) - var(--top-forms-padding)),calc(var(--top-icon-both-width) - var(--top-forms-padding)));width:100%;height:var(--top-forms-base-height);text-overflow:ellipsis;white-space:nowrap;flex-grow:1;overflow:hidden}.top-select_select:focus{outline-color:var(--color-theme-75);outline-offset:0}.top-select_select:disabled{background:var(--color-theme-50)}.top-select optgroup{color:var(--color-text-1);font-style:normal}.top-select option{background:var(--content-background-color);color:var(--color-text-1)}@-moz-document url-prefix(){.top-select_select{text-indent:calc(clamp(0px,calc(var(--top-icon-both-width) - var(--top-forms-padding)),calc(var(--top-icon-both-width) - var(--top-forms-padding)))/2)}}@media only screen and (min-width: 900px){.top-changer{cursor:pointer;border-radius:100%;width:0;transform:translate(-44px);color:var(--color-text-secondary-2);font-size:16px;line-height:1;display:none;z-index:2;order:4}.top-changer:hover{color:var(--color-primary)}.top-changer:after{content:"";background-color:var(--top-forms-background-color);font-family:Topvisor-2}*:hover>.top-changer{display:block}}
2
- `,document.head.appendChild(S);class k{static isRetina(){return"devicePixelRatio"in window&&window.devicePixelRatio>1}static isMobile(){return!!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|IEMobile|Opera Mini/i)}static isApp(){return navigator.userAgent.indexOf("Topvisor_App")!=-1}static isMacOS(){return navigator.userAgent.indexOf("Mac OS X")!==-1}static isSafari(){const e=/Chrome|Android/.test(navigator.userAgent);let a=/Safari/.test(navigator.userAgent);return e&&a&&(a=!1),a}static getCommandKeyLabel(){return this.isMacOS()?"⌘":"Ctrl"}}const F=100;let M;const _=new Map,v={width:window.innerWidth,height:window.innerHeight};function T(l){_.set(l,l)}function P(l){_.delete(l)}function A(l){clearTimeout(M),M=setTimeout(function(){l.topEvent={widthDiff:v.width-window.innerWidth,hightDiff:v.height-window.innerHeight},v.width=window.innerWidth,v.height=window.innerHeight,_.forEach(e=>e(l))},F)}window.addEventListener("resize",A);const V={addOnReize:T,removeOnResize:P},R={widthForMobile:900,dateFormat:"Y-m-d",gmt:(D=new Date().toString().match(/GMT(\S+)/))==null?void 0:D[1]},W={isMobile:!1,isMobileUA:!1,isRetina:!1,isApp:!1,isLandscape:!0,isPortrait:!1,size:0,dateFormat:"Y-m-d",gmt:(L=new Date().toString().match(/GMT(\S+)/))==null?void 0:L[1]},y=window,x=l=>{var e,a;if(!((a=(e=y==null?void 0:y.jQuery)==null?void 0:e.ui)!=null&&a.tooltip)){console.info("Для работы v-top-tooltip требуется глобальная загрузка jQuery UI Tooltip");return}return y.jQuery(l)},z=(l,e)=>{var r;const a=l.value??{};return a.content??=(r=e.props)==null?void 0:r.title,a.content=String(a.content).replace(/\r\n|\r|\n/g,"<br>"),a.position??={my:"bottom-18px",at:"top center"},a},U={mounted(l,e,a){var r;(r=x(l))==null||r.tooltip(z(e,a))},updated(l,e,a,r){var n;const t=z(e,a),s=(n=x(l))==null?void 0:n.tooltip("instance");s&&(s.options={...s.options,...t})},unmounted(l,e,a){var r;(r=x(l))==null||r.tooltip("destroy")}},$=window;class c{static L=o.reactive({Not_date:"Not date"});static page=($==null?void 0:$.page)||{};static options=R;static state=o.reactive({...W});static matchMediaIsMobile;static appendStyle(e,a=""){let r="all";a==="m"&&(r="(max-width: "+this.options.widthForMobile+"px)"),a==="pc"&&(r="(min-width: "+this.options.widthForMobile+"px)");const t=document.createElement("style");t.innerHTML=e,t.media=r,document.head.append(t)}static install(e,a){c.defineOptions(a),e.provide("top-core",c),this.installDirectives(e)}static installDirectives(e){e.directive("top-tooltip",U)}static defineOptions(e){e!=null&&e.widthForMobile&&(this.options.widthForMobile=e.widthForMobile),e!=null&&e.dateFormat&&(this.options.dateFormat=e.dateFormat),e!=null&&e.gmt&&(this.options.gmt=e.gmt),c.setState()}static setState(){c.matchMediaIsMobile=window.matchMedia(`(max-width: ${c.options.widthForMobile}px)`),c.state.isMobileUA=k.isMobile(),c.state.isRetina=k.isRetina(),c.state.isApp=k.isApp(),c.state.dateFormat=this.options.dateFormat,c.state.gmt=this.options.gmt,c.setStateByWindowSize(),V.addOnReize(c.onResize),c.onResize(),c.saveToCookie()}static onResize(){c.setStateByWindowSize(),document.documentElement.style.setProperty("--100vh",window.innerHeight+"px")}static setStateByWindowSize(){var e;c.state.isMobile=!!((e=c.matchMediaIsMobile)!=null&&e.matches),c.state.isLandscape=window.innerWidth>window.innerHeight,c.state.isPortrait=!c.state.isLandscape,c.state.size=window.innerWidth>window.innerHeight?window.innerWidth:window.innerHeight,c.saveToCookie()}static saveToCookie(){const e=[1,window.innerWidth,window.innerHeight,window.devicePixelRatio,Number(c.state.isMobile),Number(c.state.isRetina)];document.cookie="device="+e.join(",")+"; path=/;"}}class f{static stringToDate(e){return e.indexOf("T")===-1&&(e.length==10&&(e+=" 00:00:00"),e=e.replace(" ","T")+c.state.gmt),new Date(e)}static ms2Date(e,a=!0){let r;e!=null?r=new Date(e):r=new Date;const t=r.getDate().toString().padStart(2,"0"),s=String(r.getMonth()+1).padStart(2,"0"),n=r.getFullYear(),i=r.getHours().toString().padStart(2,"0"),p=r.getMinutes().toString().padStart(2,"0"),d=r.getSeconds().toString().padStart(2,"0");return r=n+"-"+s+"-"+t+" "+i+":"+p+":"+d,a&&(r=this.dateFormat(r)),r}static dateFormat(e,a=2,r=c.L.Not_date){if((!e||e.substring(0,10)==="0000-00-00")&&r&&r!=="0000-00-00")return r;const t=c.state.dateFormat.toLowerCase();let s=e.substring(0,10);s.length===7&&(s+="-01"),s+=" 00:00",s=s.replace(/-/g,"/");const n=new Date(s);if(isNaN(Number(n)))return r;let i=t.replace("y",String(n.getFullYear()).padStart(2,"0")).replace("m",String(n.getMonth()+1).padStart(2,"0")).replace("d",String(n.getDate()).padStart(2,"0"));if(e.length>10)switch(a){case 1:i+=" "+e.substring(11,13);break;case 2:i+=" "+e.substring(11,16);break;case 3:i+=" "+e.substring(11,19);break}return i}static dateUnformat(e,a=c.L.Not_date){if(!e)return a;if(e.match(/\d\d\d\d-\d\d-\d\d/))return e;const r=c.state.dateFormat.toLowerCase(),t=e.split(/\W/),s=r.split(/\W/);let n="",i="",p="";s.forEach((u,h)=>{switch(u){case"d":n=t[h];break;case"m":i=t[h];break;case"y":p=t[h];break}});let d=p+"-"+i+"-"+n;return d.match(/\d\d\d\d-\d\d-\d\d/)||(console.info("Неверный формат даты, будет возращена текущая дата, "+d),d=this.ms2Date(new Date().getTime(),!1).substring(0,10)),d}}const H=o.defineComponent({__name:"button",props:{color:{default:"blue"},styling:{default:""},size:{default:"s"},name:{},title:{},icon:{},icon2:{},href:{},disabled:{type:Boolean},isSubmit:{type:Boolean},isActive:{type:Boolean},isProgress:{type:Boolean}},setup(l){const e=l,a=o.computed(()=>e.href?"a":"button"),r=o.computed(()=>e.isSubmit?"submit":void 0);return(t,s)=>(o.openBlock(),o.createBlock(o.resolveDynamicComponent(a.value),{class:o.normalizeClass({"top-active":t.isActive,"top-disabled":t.disabled,"top-forms-focusable":!t.disabled,"top-button":!0,"top-button-progress":t.isProgress,[`top-size_${t.size}`]:!!t.size,[`top-color_${t.color}`]:!0,[`top-style_${t.styling}`]:!!t.styling}),name:t.name,title:t.title,href:t.href,type:r.value,"data-top-icon":t.icon||void 0,"data-top-icon2":t.icon2||void 0,disabled:t.disabled||void 0,inProgress:t.isProgress},{default:o.withCtx(()=>[o.renderSlot(t.$slots,"default",{},()=>[o.createTextVNode(o.toDisplayString(t.icon?"":"Button"),1)])]),_:3},8,["class","name","title","href","type","data-top-icon","data-top-icon2","disabled","inProgress"]))}}),I={"top-button":"top-button","top-active":"top-active","top-button-progress":"top-button-progress",progress:"_progress_1hqxk_1","top-color_blue":"top-color_blue","top-color_green":"top-color_green","top-color_orange":"top-color_orange","top-color_red":"top-color_red","top-color_pink":"top-color_pink","top-color_theme":"top-color_theme","top-style_outline":"top-style_outline","top-style_soft":"top-style_soft","top-style_transparent":"top-style_transparent","top-size_l":"top-size_l","top-size_xl":"top-size_xl"},m=(l,e)=>{const a=l.__vccOpts||l;for(const[r,t]of e)a[r]=t;return a},O=m(H,[["__cssModules",{$style:I}]]),j={class:"top-forms-optionLabel"},Y={key:0,class:"top-forms-optionLabel_description"},w=m(o.defineComponent({__name:"controlLabel",props:{description:{},disabled:{type:Boolean}},setup(l){return(e,a)=>(o.openBlock(),o.createElementBlock("div",j,[o.createElementVNode("div",{class:o.normalizeClass({"top-forms-optionLabel_title":!0,"top-forms-optionLabel_title-disabled":e.disabled})},[o.renderSlot(e.$slots,"default")],2),e.description?(o.openBlock(),o.createElementBlock("div",Y,o.toDisplayString(e.description),1)):o.createCommentVNode("",!0)]))}}),[["__cssModules",{$style:{"top-forms-optionLabel":"top-forms-optionLabel","top-forms-optionLabel_title":"top-forms-optionLabel_title","top-forms-optionLabel_title-disabled":"top-forms-optionLabel_title-disabled","top-forms-optionLabel_description":"top-forms-optionLabel_description"}}]]),q=["name","value","indeterminate","disabled"],G=m(o.defineComponent({__name:"checkbox",props:{modelValue:{type:[Boolean,Array,Set]},name:{},value:{},description:{},disabled:{type:Boolean},indeterminate:{type:Boolean},isError:{type:Boolean}},emits:["update:modelValue"],setup(l,{emit:e}){const a=l,r=o.computed({get(){return a.modelValue},set(t){e("update:modelValue",t)}});return(t,s)=>(o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-forms-optionWrapper":!0,"top-checkbox":!0,["top-checkbox_"+t.name]:t.name!=="","top-disabled":t.disabled,"top-error":t.isError&&!t.disabled})},[o.withDirectives(o.createElementVNode("input",{type:"checkbox",class:o.normalizeClass({"top-forms-focusable":!t.disabled,"top-forms-option":!0,"top-checkbox_input":!0,"top-error":t.isError&&!t.disabled}),name:t.name,"onUpdate:modelValue":s[0]||(s[0]=n=>r.value=n),value:t.value,indeterminate:t.indeterminate,disabled:t.disabled},null,10,q),[[o.vModelCheckbox,r.value]]),t.$slots.default?(o.openBlock(),o.createBlock(w,{key:0,description:t.description,disabled:t.disabled},{default:o.withCtx(()=>[o.renderSlot(t.$slots,"default")]),_:3},8,["description","disabled"])):o.createCommentVNode("",!0)],2))}}),[["__cssModules",{$style:{"top-checkbox":"top-checkbox","top-checkbox_input":"top-checkbox_input","top-error":"top-error"}}]]),K=["title"],C=m(o.defineComponent({__name:"hint",props:{hint:{}},setup(l){return(e,a)=>(o.openBlock(),o.createElementBlock("span",{class:"top-hint","data-top-icon":"",title:e.hint},null,8,K))}}),[["__cssModules",{$style:{"top-hint":"top-hint"}}]]),Q=["data-top-icon","data-top-icon2"],X=["name","title","placeholder","disabled","readonly"],J=["onClick"],Z={key:1,class:"top-formsCaption"},B=m(o.defineComponent({inheritAttrs:!1,__name:"input",props:{modelValue:{},name:{},disabled:{type:Boolean},readonly:{type:Boolean},title:{},captionType:{default:""},size:{default:"s"},icon:{},icon2:{},addCleaner:{type:Boolean},isError:{type:Boolean},modificator:{}},emits:["update:modelValue"],setup(l,{emit:e}){const a=l,r=o.computed({get(){return a.modelValue},set(n){e("update:modelValue",n)}}),t=o.computed(()=>a.addCleaner&&!a.title||a.captionType!==""?"":a.title),s=()=>{e("update:modelValue","")};return(n,i)=>(o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-input":!0,["top-size_"+n.size]:!0,"top-disabled":n.disabled,["top-input-"+n.modificator]:!!n.modificator,"top-input-withCleaner":n.addCleaner&&r.value&&r.value!=="0000-00-00","top-formsCaptionWrapper":n.captionType!=="","top-formsCaptionWrapper-always":n.captionType==="top"}),"data-top-icon":n.icon,"data-top-icon2":n.icon2},[o.withDirectives(o.createElementVNode("input",o.mergeProps({type:"text",class:{"top-input_input":!0,["top-input_input-"+n.modificator]:!!n.modificator,"top-forms-focusable":!n.disabled,"top-error":n.isError},autocomplete:"off_always",name:n.name,"onUpdate:modelValue":i[0]||(i[0]=p=>r.value=p),title:n.title,placeholder:t.value,disabled:n.disabled,readonly:n.readonly,onKeydown:i[1]||(i[1]=o.withKeys(o.withModifiers(()=>(n.addCleaner||!!n.$slots.btn)&&s(),["stop"]),["esc"]))},n.$attrs),null,16,X),[[o.vModelText,r.value]]),n.addCleaner&&r.value&&r.value!=="0000-00-00"?(o.openBlock(),o.createElementBlock("span",{key:0,class:"top-input_cleaner","data-top-icon":"",onClick:o.withModifiers(s,["prevent"])},null,8,J)):o.createCommentVNode("",!0),n.captionType!==""?(o.openBlock(),o.createElementBlock("span",Z,o.toDisplayString(n.title),1)):o.createCommentVNode("",!0),o.renderSlot(n.$slots,"default")],10,Q))}}),[["__cssModules",{$style:{"top-input":"top-input","top-input_input":"top-input_input","top-input-withCleaner":"top-input-withCleaner","top-input_cleaner":"top-input_cleaner"}}]]),oo=["modelValue"],to=!!document.documentElement.ontouchstart&&!!document.createElement("input").showPicker;let E=l=>{};const eo=m(o.defineComponent({__name:"inputDate",props:{modelValue:{},name:{},disabled:{type:Boolean},readonly:{type:Boolean},title:{},captionType:{},size:{},icon:{},icon2:{default:""},addCleaner:{type:Boolean},isError:{type:Boolean},modificator:{}},emits:["update:modelValue"],setup(l,{emit:e}){const a=l,r=o.ref(),t=o.computed({get(){return f.dateFormat(a.modelValue,2,"0000-00-00")},set(p){p=f.dateUnformat(p,"0000-00-00"),e("update:modelValue",p)}});let s=p=>{E(p)},n=p=>{const d=f.dateUnformat(p.target.value),u=f.dateFormat(d);if(!u||u===c.L.Not_date||p.target.value!==u){p.target.value=t.value;return}t.value=p.target.value};async function i(p){const d=await new Promise((h,g)=>N(["./datepicker-1e725859.amd"],h,g));E=d.oninput;const u=d.connectDatepicker(p.target,{onSelect:()=>n(p)});u&&(u.datepicker("show"),o.onUnmounted(()=>u.datepicker("destroy")))}return(p,d)=>o.unref(to)?(o.openBlock(),o.createBlock(o.unref(B),o.mergeProps({key:0},p.$props,{modelValue:t.value,readonly:"",onClick:d[1]||(d[1]=u=>r.value.showPicker())}),{default:o.withCtx(()=>[o.createElementVNode("input",{ref_key:"el",ref:r,type:"date",class:"top-input_input-date",modelValue:p.modelValue,onChange:d[0]||(d[0]=u=>t.value=u.target.value),tabindex:"-1"},null,40,oo)]),_:1},16,["modelValue"])):(o.openBlock(),o.createBlock(o.unref(B),o.mergeProps({key:1},p.$props,{modelValue:t.value,"onUpdate:modelValue":d[2]||(d[2]=u=>u===""?t.value="":""),onInput:o.unref(s),onFocusOnce:i,onChange:o.unref(n),modificator:"datepicker"}),null,16,["modelValue","onInput","onChange"]))}}),[["__cssModules",{$style:{"top-input-datepicker":"top-input-datepicker","top-input_input-date":"top-input_input-date"}}]]),ro=["name","value","disabled"],ao=m(o.defineComponent({__name:"radio",props:{modelValue:{},value:{},name:{},description:{},disabled:{type:Boolean},isError:{type:Boolean}},emits:["update:modelValue"],setup(l,{emit:e}){const a=l,r=o.computed({get(){return a.modelValue},set(t){e("update:modelValue",t)}});return(t,s)=>(o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-forms-optionWrapper":!0,"top-radio":!0,["top-radio_"+t.name]:t.name!=="","top-disabled":t.disabled,"top-error":t.isError&&!t.disabled})},[o.withDirectives(o.createElementVNode("input",{type:"radio",class:o.normalizeClass({"top-forms-focusable":!t.disabled,"top-forms-option":!0,"top-radio_input":!0,"top-error":t.isError&&!t.disabled}),"onUpdate:modelValue":s[0]||(s[0]=n=>r.value=n),name:t.name,value:t.value,disabled:t.disabled},null,10,ro),[[o.vModelRadio,r.value]]),t.$slots.default?(o.openBlock(),o.createBlock(w,{key:0,description:t.description,disabled:t.disabled},{default:o.withCtx(()=>[o.renderSlot(t.$slots,"default")]),_:3},8,["description","disabled"])):o.createCommentVNode("",!0)],2))}}),[["__cssModules",{$style:{"top-radio":"top-radio","top-radio_input":"top-radio_input","top-error":"top-error"}}]]),no=["name","value","disabled"],io=m(o.defineComponent({__name:"switcher",props:{modelValue:{type:[Boolean,Array,Set]},name:{},value:{},description:{},disabled:{type:Boolean},isError:{type:Boolean}},emits:["update:modelValue"],setup(l,{emit:e}){const a=l,r=o.computed({get(){return a.modelValue},set(t){e("update:modelValue",t)}});return(t,s)=>(o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-forms-optionWrapper":!0,"top-checkboxSwitcher":!0,"top-disabled":t.disabled,"top-error":t.isError&&!t.disabled})},[o.withDirectives(o.createElementVNode("input",{type:"checkbox",class:o.normalizeClass({"top-forms-focusable":!t.disabled,"top-forms-option":!0,"top-checkboxSwitcher_input":!0,"top-error":t.isError&&!t.disabled}),"onUpdate:modelValue":s[0]||(s[0]=n=>r.value=n),name:t.name,value:t.value,disabled:t.disabled},null,10,no),[[o.vModelCheckbox,r.value]]),t.$slots.default?(o.openBlock(),o.createBlock(w,{key:0,description:t.description,disabled:t.disabled},{default:o.withCtx(()=>[o.renderSlot(t.$slots,"default")]),_:3},8,["description","disabled"])):o.createCommentVNode("",!0)],2))}}),[["__cssModules",{$style:{"top-checkboxSwitcher":"top-checkboxSwitcher","top-checkboxSwitcher_input":"top-checkboxSwitcher_input","top-error":"top-error"}}]]),lo=["name","placeholder","disabled","readonly","rows"],so={key:0,class:"top-textarea_pseudoContent"},po=m(o.defineComponent({inheritAttrs:!1,__name:"textarea",props:{modelValue:{},name:{},placeholder:{},rows:{default:5},minHeight:{default:120},expandable:{type:Boolean},disabled:{type:Boolean},readonly:{type:Boolean},isError:{type:Boolean},hint:{}},emits:["update:modelValue"],setup(l,{emit:e}){const a=l;o.useCssVars(t=>({c35baa86:t.minHeight+"px"}));const r=o.computed({get(){return a.modelValue},set(t){e("update:modelValue",t)}});return(t,s)=>{const n=o.resolveDirective("top-tooltip");return o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-textarea":!0,["top-textarea-"+t.name]:t.name,"top-disabled":t.disabled})},[o.withDirectives(o.createElementVNode("textarea",o.mergeProps({type:"text",class:{"top-forms-focusable":!t.disabled,"top-textarea_textarea":!0,"top-textarea_textarea-expandable":t.expandable,"top-error":t.isError},autocomplete:"off_always",name:t.name,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly,rows:t.expandable?void 0:t.rows},t.$attrs,{"onUpdate:modelValue":s[0]||(s[0]=i=>r.value=i)}),null,16,lo),[[o.vModelText,r.value]]),t.expandable?(o.openBlock(),o.createElementBlock("div",so,o.toDisplayString(r.value+" "),1)):o.createCommentVNode("",!0),t.hint?o.withDirectives((o.openBlock(),o.createBlock(C,{key:1,class:"top-textarea_hint",hint:t.hint},null,8,["hint"])),[[n]]):o.createCommentVNode("",!0)],2)}}}),[["__cssModules",{$style:{"top-textarea":"top-textarea","top-textarea_textarea":"top-textarea_textarea","top-textarea_textarea-expandable":"top-textarea_textarea-expandable","top-textarea_pseudoContent":"top-textarea_pseudoContent","top-textarea_hint":"top-textarea_hint"}}]]),co=["data-value","data-top-icon","data-top-icon2"],uo=["name","disabled"],bo=["label","disabled"],mo=["value","selected","disabled"],ho=["value","selected","disabled"],go={key:1,class:"top-formsCaption"},fo=m(o.defineComponent({__name:"select",props:{modelValue:{},options:{},name:{},disabled:{type:Boolean},icon:{},size:{default:"s"},addChanger:{type:Boolean},title:{},isError:{type:Boolean}},emits:["update:modelValue"],setup(l,{emit:e}){const a=l,r=o.computed({get(){return a.modelValue},set(i){e("update:modelValue",i)}}),t=o.computed(()=>{var i;return(i=s.value.get(r.value))==null?void 0:i.icon}),s=o.computed(()=>{const i=new Map;return a.options.forEach(p=>{if(!p.disabled){if(p.children){p.children.forEach(d=>{d.disabled||i.set(d.value,d)});return}i.set(p.value,p)}}),i});o.watch([o.toRef(a.modelValue),s],()=>{(r.value===null||r.value===void 0)&&s.value.size&&(console.warn("Пожалуйста, не передавайте в компонент Select значения null и undefined"),r.value=s.value.keys().next().value)},{immediate:!0});const n=()=>{const i=[...s.value.keys()],d=(i.indexOf(r.value)+1)%i.length;r.value=i[d]};return(i,p)=>(o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-select":!0,["top-select-"+i.name]:i.name,["top-size_"+i.size]:!0,"top-formsCaptionWrapper":!!i.title,"top-select-error":i.isError,"top-disabled":i.disabled}),"data-value":r.value,"data-top-icon":i.icon,"data-top-icon2":t.value},[o.withDirectives(o.createElementVNode("select",{class:o.normalizeClass({"top-forms-focusable":!i.disabled,"top-select_select":!0,"top-select_arrow":!0,"top-error":i.isError}),name:i.name,disabled:i.disabled,"onUpdate:modelValue":p[0]||(p[0]=d=>r.value=d)},[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.options.entries(),([d,u])=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[u.children?(o.openBlock(),o.createElementBlock("optgroup",{key:"group_"+u.value,label:u.title,disabled:u.disabled},[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(u.children.entries(),([h,g])=>(o.openBlock(),o.createElementBlock("option",{key:u.value,value:g.value,selected:g.value===r.value,disabled:g.disabled},o.toDisplayString(g.title),9,mo))),128))],8,bo)):(o.openBlock(),o.createElementBlock("option",{key:u.value,value:u.value,selected:u.value===r.value,disabled:u.disabled},o.toDisplayString(u.title),9,ho))],64))),256))],10,uo),[[o.vModelSelect,r.value]]),i.addChanger&&s.value.size&&!i.disabled?(o.openBlock(),o.createElementBlock("span",{key:0,class:"top-changer",onClick:n})):o.createCommentVNode("",!0),i.title?(o.openBlock(),o.createElementBlock("span",go,o.toDisplayString(i.title),1)):o.createCommentVNode("",!0)],10,co))}}),[["__cssModules",{$style:{"top-select":"top-select","top-select-error":"top-select-error","top-select_select":"top-select_select","top-changer":"top-changer"}}]]);b.Button=O,b.ControlLabel=w,b.Core=c,b.Device=k,b.Events=V,b.Hint=C,b.Input=B,b.Textarea=po,b.UtilsDate=f,b._export_sfc=m,b.checkbox=G,b.inputDate=eo,b.radio=ao,b.select=fo,b.switcher=io});
3
- //# sourceMappingURL=forms-2891e074.amd.js.map
1
+ define(["require","exports","vue"],function(N,b,o){var D,L;"use strict";var S=document.createElement("style");S.textContent=`.top-button{cursor:pointer;box-sizing:border-box;box-shadow:var(--top-button-box-shadow);border-radius:var(--top-forms-radius);border:var(--top-forms-border-width) solid var(--top-forms-border-color);background-color:var(--top-button-background-color);height:var(--top-forms-base-height);padding:0 var(--top-forms-padding);color:var(--top-button-color);line-height:1;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;transition:background-color .15s,border-color .15s,box-shadow .15s}.top-button:hover{box-shadow:var(--top-button-box-shadow-hover);background-color:var(--top-button-background-color-hover)}.top-button:active{box-shadow:var(--top-button-box-shadow-active);background-color:var(--top-button-background-color-active)}.top-button.top-active{box-shadow:var(--top-button-box-shadow-selected);background-color:var(--top-button-background-color-selected)}.top-button.top-button-progress{cursor:help;box-shadow:inset #00000080 0 0 64px;background-image:linear-gradient(-45deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-size:32px 32px;animation:_progress_1f1nw_1 1s linear infinite}@keyframes _progress_1f1nw_1{0%{background-position-x:0px}to{background-position-x:32px}}a.top-button,button.top-button{min-width:100px;text-decoration:none}a.top-button,a.top-button:hover{min-width:var(--top-forms-base-height);text-decoration:none}.top-button[data-top-icon]:not(:empty),.top-button[data-top-icon2]:not(:empty){justify-content:flex-start;text-align:left}.top-button[data-top-icon]{padding-left:0}.top-button[data-top-icon2]{padding-right:var(--top-select_arrow-width)}.top-button[data-top-icon2]:after{margin-left:auto}.top-button:empty{min-width:var(--top-forms-base-height)}.top-button[data-top-icon]:empty,.top-button[data-top-icon2]:empty{padding:0}.top-button.top-color_blue{--top-button-background-color: var(--color-blue-500)}.top-button.top-color_green{--top-button-background-color: var(--color-green-500)}.top-button.top-color_orange{--top-button-background-color: var(--color-orange-500)}.top-button.top-color_red{--top-button-background-color: var(--color-red-500)}.top-button.top-color_pink{--top-button-background-color: var(--color-pink-500)}.top-button.top-color_theme{--top-button-box-shadow-hover: none;--top-button-box-shadow-active: none;--top-button-box-shadow-selected: none;--top-icon-color: var(--color-text-2);--top-icon2-color: var(--color-text-2);--top-button-color: var(--color-text-1);--top-button-background-color: transparent;--top-button-background-color-hover: var(--color-secondary-opacity);--top-button-background-color-active: var(--color-secondary-2-opacity);--top-button-background-color-selected: var(--color-secondary-2-opacity)}.top-button.top-color_theme.top-active{--top-icon-color: var(--color-text-2)}.top-button.top-style_outline{--top-button-box-shadow: none;--top-button-box-shadow-hover: none;--top-button-box-shadow-active: none;--top-button-box-shadow-selected: none;--top-forms-border-color: var(--top-style_outline-color);--top-style_outline-color: var(--color-steel-400);--top-button-color: var(--top-style_outline-color);--top-button-background-color: var(--content-background-color);--top-button-background-color-hover: var(--color-theme-100);--top-button-background-color-active: var(--color-theme-150);--top-button-background-color-selected: var(--color-theme-125);--top-forms-border-width: 1px}.top-button.top-style_outline.top-color_theme{--top-button-color: var(--color-text)}.top-button.top-style_outline.top-color_blue{--top-style_outline-color: var(--color-blue-500)}.top-button.top-style_outline.top-color_green{--top-style_outline-color: var(--color-green-500)}.top-button.top-style_outline.top-color_orange{--top-style_outline-color: var(--color-orange-500)}.top-button.top-style_outline.top-color_red{--top-style_outline-color: var(--color-red-500)}.top-button.top-style_outline.top-color_pink{--top-style_outline-color: var(--color-pink-500)}.top-button.top-style_soft{--top-shadow-darken: none;--top-shadow-darken-2: none;--top-shadow-darken-3: none;--top-button-color: var(--color-text);--top-button-background-color: var(--color-secondary-opacity);--top-button-background-color-hover: var(--color-secondary-2-opacity);--top-button-background-color-active: var(--color-secondary-3-opacity);--top-button-background-color-selected: var(--color-secondary-3-opacity)}.top-button.top-style_soft.top-color_blue{--top-button-color: var(--color-blue-550)}.top-button.top-style_soft.top-color_orange{--top-button-color: var(--color-orange-500)}.top-button.top-style_soft.top-color_green{--top-button-color: var(--color-green-500)}.top-button.top-style_soft.top-color_red{--top-button-color: var(--color-red-500)}.top-button.top-style_soft.top-color_pink{--top-button-color: var(--color-pink-500)}.top-button.top-style_transparent{--top-shadow-darken: none;--top-shadow-darken-2: none;--top-shadow-darken-3: none;--top-button-color: var(--color-text);--top-button-background-color: transparent;--top-button-background-color-hover: transparent;--top-button-background-color-active: transparent;--top-button-background-color-selected: var(--color-steel-200)}.top-button.top-style_transparent:hover{opacity:.8}.top-button.top-style_transparent.top-color_blue{--top-button-color: var(--color-blue-450)}.top-button.top-style_transparent.top-color_green{--top-button-color: var(--color-green-450)}.top-button.top-style_transparent.top-color_orange{--top-button-color: var(--color-orange-450)}.top-button.top-style_transparent.top-color_red{--top-button-color: var(--color-red-450)}.top-button.top-style_transparent.top-color_pink{--top-button-color: var(--color-pink-450)}.top-button{--top-button-color: var(--color-white);--top-button-background-color: transparent;--top-button-background-color-hover: var(--top-button-background-color);--top-button-background-color-active: var(--top-button-background-color-hover);--top-button-background-color-selected: var(--top-button-background-color-hover);--top-button-box-shadow: none;--top-button-box-shadow-hover: var(--top-shadow-darken-2);--top-button-box-shadow-active: var(--top-shadow-darken-3);--top-button-box-shadow-selected: var(--top-shadow-darken-3);--top-forms-border-width: 0px;--top-icon-width: calc(var(--top-icon-size) + var(--top-forms-padding));--top-icon2-width: calc(var(--top-icon2-size) + var(--top-forms-padding))}.top-button.top-size_l{--top-forms-padding: var(--top-forms-padding_l);--top-forms-base-height: var(--top-forms-base-height_l)}.top-button.top-size_xl{--top-forms-padding: var(--top-forms-padding_xl);--top-forms-base-height: var(--top-forms-base-height_xl)}.top-forms-optionLabel{flex-grow:1}.top-forms-optionLabel_title{min-height:var(--top-forms-option-height);display:flex;align-items:center}.top-forms-optionLabel_title-disabled{color:var(--color-text-3)}.top-forms-optionLabel_description{color:var(--color-text-2);font-size:.85em;line-height:var(--top-forms-option-height)}.top-checkbox{cursor:pointer;display:inline-flex}.top-checkbox_input{cursor:inherit;border-radius:4px;background:var(--content-background-color);border:1px solid var(--top-forms-border-color);width:calc(var(--top-forms-option-height) - 3px * 2);height:calc(var(--top-forms-option-height) - 3px * 2)}.top-checkbox_input:before{content:" ";color:#fff;font-family:Topvisor-2;font-size:16px}.top-checkbox_input:hover{border-color:var(--top-forms-option-color);background:var(--color-theme-50)}.top-checkbox_input:checked,.top-checkbox_input:indeterminate{border-color:var(--top-forms-option-color);background:var(--top-forms-option-color)}.top-checkbox_input:checked:before{content:""}.top-checkbox_input:indeterminate:before{content:""}.top-checkbox_input:checked:hover,.top-checkbox_input:indeterminate:hover{border-color:var(--top-forms-option-color-hover);background:var(--top-forms-option-color-hover)}.top-checkbox_input:disabled{border-color:var(--color-line-1-opacity);background:var(--color-theme-50)}.top-checkbox_input:checked:disabled,.top-checkbox_input:indeterminate:disabled{border-color:transparent;background:var(--color-theme-400)}.top-checkbox_input.top-error{border-color:var(--color-negative)}.top-checkbox_input.top-error:hover{border-color:var(--color-negative-2)}.top-checkbox_input:checked.top-error,.top-checkbox_input:indeterminate.top-error{background:var(--color-negative)}.top-checkbox_input:checked.top-error:hover,.top-checkbox_input:indeterminate.top-error:hover{background:var(--color-negative-2)}.top-hint{--top-icon-size: 16px;--top-icon-width: var(--top-icon-size);border-radius:50%;background:var(--content-background-color);padding:1px;color:var(--color-text-4);line-height:1;z-index:1;pointer-events:all}.top-hint:hover{color:var(--color-text-3)}.top-input{--top-forms_clear-width: 0px;width:180px;position:relative;display:inline-flex;align-items:center;gap:var(--top-gap-1)}.top-input_input{background:var(--top-forms-background-color);height:var(--top-forms-base-height);padding:0;padding-right:max(var(--top-forms-padding),calc(var(--top-icon2-width) + var(--top-forms_clear-width)));padding-left:max(var(--top-forms-padding),var(--top-icon-width))}.top-input_input:hover{background:var(--top-forms-background-color-hover)}.top-input_input:focus{outline-color:var(--color-theme-75);outline-offset:0}.top-input[data-top-icon]:before,.top-input[data-top-icon2]:after{--top-icon-color: var(--color-text-secondary);--top-icon2-color: var(--color-text-secondary);position:absolute;z-index:3}.top-input[data-top-icon]:before{left:0}.top-input[data-top-icon2]:after{right:0}.top-input-withCleaner{--top-forms_clear-width: 24px}.top-input_cleaner{--top-icon-size: 20px;--top-icon-width: 20px;--top-icon-color: var(--color-text-3);cursor:pointer;border-radius:50%;width:24px;height:24px;position:absolute;right:calc(var(--top-forms-border-width) + max(var(--top-icon2-width),var(--top-forms-padding) / 2));z-index:1;display:flex;align-items:center;justify-content:center}.top-input_cleaner:hover{--top-icon-color: var(--color-text-2)}.top-input_input{width:50%;flex-grow:1}.top-input-datepicker{width:calc(105px + var(--top-icon-width) + var(--top-icon2-width))}.top-input_input-date{opacity:0;position:absolute;inset:0;z-index:-1}.top-input_input-date::-webkit-inner-spin-button{display:none}.top-input_input-date::-webkit-calendar-picker-indicator{opacity:0}.top-inputRange{max-width:320px;vertical-align:baseline;display:inline-flex;gap:8px}.top-inputRange_dash{height:var(--top-forms-base-height);color:var(--color-text-4);align-self:flex-end;display:inline-flex;align-items:center}.top-inputRange>.top-input{flex-grow:1}:root{--top-radio-background-color: var(--content-background-color);--top-radio-background-color-hover: var(--top-radio-background-color);--top-radio-background-color-active: var(--top-radio-background-color)}.top-radio{cursor:pointer}.top-radio_input{border-radius:50%;background:var(--content-background-color);border:1px solid var(--top-forms-border-color);width:calc(var(--top-forms-option-height) - 3px * 2);height:calc(var(--top-forms-option-height) - 3px * 2)}.top-radio_input:hover{border-color:var(--top-forms-option-color);background:var(--color-theme-50)}.top-radio_input:checked{border-color:var(--top-forms-option-color);border-width:5px}.top-radio_input:checked:hover{border-color:var(--top-forms-option-color-hover)}.top-radio_input:disabled{border-color:var(--color-line-1-opacity);background:var(--color-theme-50)}.top-radio_input:checked:disabled{border-color:var(--color-theme-400)}.top-radio_input.top-error{border-color:var(--color-negative)}.top-radio_input.top-error:hover{border-color:var(--color-negative-2)}.top-checkboxSwitcher{cursor:pointer;display:inline-flex;gap:4px}.top-checkboxSwitcher_input{border-radius:9px;border:none;background:var(--color-theme-100);width:36px;height:18px;position:relative}.top-checkboxSwitcher_input:before{content:"";border-radius:50%;background:var(--color-white);width:12px;height:12px;margin:3px;position:absolute;top:0;left:0;transition:left .1s}.top-checkboxSwitcher_input:hover{background:var(--color-theme-150)}.top-checkboxSwitcher_input:checked{background:var(--top-forms-option-color)}.top-checkboxSwitcher_input:checked:hover{background:var(--top-forms-option-color-hover)}.top-checkboxSwitcher_input:checked:before{left:50%}.top-checkboxSwitcher_input:disabled{background:var(--color-theme-400)}.top-checkboxSwitcher_input.top-error{background:var(--color-negative)}.top-checkboxSwitcher_input.top-error:hover{background:var(--color-negative-2)}.top-textarea{width:180px;display:inline-flex;align-items:center;position:relative}.top-textarea_textarea{background:var(--top-forms-background-color);width:100%;padding:var(--top-forms-padding);resize:none}.top-textarea_textarea:hover{background:var(--top-forms-background-color-hover)}.top-textarea_textarea:focus{outline-color:var(--color-theme-75);outline-offset:0px}.top-textarea_textarea.top-textarea_textarea-expandable{width:100%;height:100%;overflow:hidden;position:absolute;top:0;left:0}.top-textarea_pseudoContent{box-sizing:border-box;min-height:var(--c838a038);padding:var(--top-forms-padding);font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;pointer-events:none;opacity:0;z-index:-1}.top-textarea_hint{position:absolute;top:2px;right:2px}.top-select{--top-icon-color: var(--color-text-3);--top-icon2-color: var(--color-text-2);align-items:center;width:180px;max-width:100%;display:inline-flex}.top-select-error{--top-icon-color: var(--color-negative);--top-icon2-color: var(--color-negative)}.top-select_select{background-color:var(--top-forms-background-color);padding-left:var(--top-forms-padding);text-indent:clamp(0px,calc(var(--top-icon-both-width) - var(--top-forms-padding)),calc(var(--top-icon-both-width) - var(--top-forms-padding)));width:100%;height:var(--top-forms-base-height);text-overflow:ellipsis;white-space:nowrap;flex-grow:1;overflow:hidden}.top-select_select:focus{outline-color:var(--color-theme-75);outline-offset:0}.top-select_select:disabled{background:var(--color-theme-50)}.top-select optgroup{color:var(--color-text-1);font-style:normal}.top-select option{background:var(--content-background-color);color:var(--color-text-1)}@-moz-document url-prefix(){.top-select_select{text-indent:calc(clamp(0px,calc(var(--top-icon-both-width) - var(--top-forms-padding)),calc(var(--top-icon-both-width) - var(--top-forms-padding)))/2)}}@media only screen and (min-width: 900px){.top-changer{cursor:pointer;border-radius:100%;width:0;transform:translate(-44px);color:var(--color-text-secondary-2);font-size:16px;line-height:1;display:none;z-index:2;order:4}.top-changer:hover{color:var(--color-primary)}.top-changer:after{content:"";background-color:var(--top-forms-background-color);font-family:Topvisor-2}*:hover>.top-changer{display:block}}
2
+ `,document.head.appendChild(S);class k{static isRetina(){return"devicePixelRatio"in window&&window.devicePixelRatio>1}static isMobile(){return!!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|IEMobile|Opera Mini/i)}static isApp(){return navigator.userAgent.indexOf("Topvisor_App")!=-1}static isMacOS(){return navigator.userAgent.indexOf("Mac OS X")!==-1}static isSafari(){const e=/Chrome|Android/.test(navigator.userAgent);let n=/Safari/.test(navigator.userAgent);return e&&n&&(n=!1),n}static getCommandKeyLabel(){return this.isMacOS()?"⌘":"Ctrl"}}const R=100;let M;const _=new Map,y={width:window.innerWidth,height:window.innerHeight};function F(l){_.set(l,l)}function T(l){_.delete(l)}function P(l){clearTimeout(M),M=setTimeout(function(){l.topEvent={widthDiff:y.width-window.innerWidth,hightDiff:y.height-window.innerHeight},y.width=window.innerWidth,y.height=window.innerHeight,_.forEach(e=>e(l))},R)}window.addEventListener("resize",P);const V={addOnReize:F,removeOnResize:T},A={widthForMobile:900,dateFormat:"Y-m-d",gmt:(D=new Date().toString().match(/GMT(\S+)/))==null?void 0:D[1]},W={isMobile:!1,isMobileUA:!1,isRetina:!1,isApp:!1,isLandscape:!0,isPortrait:!1,size:0,dateFormat:"Y-m-d",gmt:(L=new Date().toString().match(/GMT(\S+)/))==null?void 0:L[1]},v=window,x=l=>{var e,n;if(!((n=(e=v==null?void 0:v.jQuery)==null?void 0:e.ui)!=null&&n.tooltip)){console.info("Для работы v-top-tooltip требуется глобальная загрузка jQuery UI Tooltip");return}return v.jQuery(l)},z=(l,e)=>{var r;const n=l.value??{};return n.content??=(r=e.props)==null?void 0:r.title,n.content=String(n.content).replace(/\r\n|\r|\n/g,"<br>"),n.position??={my:"bottom-18px",at:"top center"},n},U={mounted(l,e,n){var r;(r=x(l))==null||r.tooltip(z(e,n))},updated(l,e,n,r){var a;const t=z(e,n),s=(a=x(l))==null?void 0:a.tooltip("instance");s&&(s.options={...s.options,...t})},unmounted(l,e,n){var r;(r=x(l))==null||r.tooltip("destroy")}},$=window;class c{static L=o.reactive({Not_date:"Not date"});static page=($==null?void 0:$.page)||{};static options=A;static state=o.reactive({...W});static matchMediaIsMobile;static appendStyle(e,n=""){let r="all";n==="m"&&(r="(max-width: "+this.options.widthForMobile+"px)"),n==="pc"&&(r="(min-width: "+this.options.widthForMobile+"px)");const t=document.createElement("style");t.innerHTML=e,t.media=r,document.head.append(t)}static install(e,n){c.defineOptions(n),e.provide("top-core",c),this.installDirectives(e)}static installDirectives(e){e.directive("top-tooltip",U)}static defineOptions(e){e!=null&&e.widthForMobile&&(this.options.widthForMobile=e.widthForMobile),e!=null&&e.dateFormat&&(this.options.dateFormat=e.dateFormat),e!=null&&e.gmt&&(this.options.gmt=e.gmt),c.setState()}static setState(){c.matchMediaIsMobile=window.matchMedia(`(max-width: ${c.options.widthForMobile}px)`),c.state.isMobileUA=k.isMobile(),c.state.isRetina=k.isRetina(),c.state.isApp=k.isApp(),c.state.dateFormat=this.options.dateFormat,c.state.gmt=this.options.gmt,c.setStateByWindowSize(),V.addOnReize(c.onResize),c.onResize(),c.saveToCookie()}static onResize(){c.setStateByWindowSize(),document.documentElement.style.setProperty("--100vh",window.innerHeight+"px")}static setStateByWindowSize(){var e;c.state.isMobile=!!((e=c.matchMediaIsMobile)!=null&&e.matches),c.state.isLandscape=window.innerWidth>window.innerHeight,c.state.isPortrait=!c.state.isLandscape,c.state.size=window.innerWidth>window.innerHeight?window.innerWidth:window.innerHeight,c.saveToCookie()}static saveToCookie(){const e=[1,window.innerWidth,window.innerHeight,window.devicePixelRatio,Number(c.state.isMobile),Number(c.state.isRetina)];document.cookie="device="+e.join(",")+"; path=/;"}}class f{static stringToDate(e){return e.indexOf("T")===-1&&(e.length==10&&(e+=" 00:00:00"),e=e.replace(" ","T")+c.state.gmt),new Date(e)}static ms2Date(e,n=!0){let r;e!=null?r=new Date(e):r=new Date;const t=r.getDate().toString().padStart(2,"0"),s=String(r.getMonth()+1).padStart(2,"0"),a=r.getFullYear(),i=r.getHours().toString().padStart(2,"0"),p=r.getMinutes().toString().padStart(2,"0"),d=r.getSeconds().toString().padStart(2,"0");return r=a+"-"+s+"-"+t+" "+i+":"+p+":"+d,n&&(r=this.dateFormat(r)),r}static dateFormat(e,n=2,r=c.L.Not_date){if((!e||e.substring(0,10)==="0000-00-00")&&r&&r!=="0000-00-00")return r;const t=c.state.dateFormat.toLowerCase();let s=e.substring(0,10);s.length===7&&(s+="-01"),s+=" 00:00",s=s.replace(/-/g,"/");const a=new Date(s);if(isNaN(Number(a)))return r;let i=t.replace("y",String(a.getFullYear()).padStart(2,"0")).replace("m",String(a.getMonth()+1).padStart(2,"0")).replace("d",String(a.getDate()).padStart(2,"0"));if(e.length>10)switch(n){case 1:i+=" "+e.substring(11,13);break;case 2:i+=" "+e.substring(11,16);break;case 3:i+=" "+e.substring(11,19);break}return i}static dateUnformat(e,n=c.L.Not_date){if(!e)return n;if(e.match(/\d\d\d\d-\d\d-\d\d/))return e;const r=c.state.dateFormat.toLowerCase(),t=e.split(/\W/),s=r.split(/\W/);let a="",i="",p="";s.forEach((u,h)=>{switch(u){case"d":a=t[h];break;case"m":i=t[h];break;case"y":p=t[h];break}});let d=p+"-"+i+"-"+a;return d.match(/\d\d\d\d-\d\d-\d\d/)||(console.info("Неверный формат даты, будет возращена текущая дата, "+d),d=this.ms2Date(new Date().getTime(),!1).substring(0,10)),d}}const H=o.defineComponent({__name:"button",props:{color:{default:"blue"},styling:{default:""},size:{default:"s"},name:{},title:{},icon:{},icon2:{},href:{},disabled:{type:Boolean},isSubmit:{type:Boolean},isActive:{type:Boolean},isProgress:{type:Boolean}},setup(l){const e=l,n=o.computed(()=>e.href?"a":"button"),r=o.computed(()=>e.isSubmit?"submit":void 0);return(t,s)=>(o.openBlock(),o.createBlock(o.resolveDynamicComponent(n.value),{class:o.normalizeClass({"top-active":t.isActive,"top-disabled":t.disabled,"top-forms-focusable":!t.disabled,"top-button":!0,"top-button-progress":t.isProgress,[`top-size_${t.size}`]:!!t.size,[`top-color_${t.color}`]:!0,[`top-style_${t.styling}`]:!!t.styling}),name:t.name,title:t.title,href:t.href,type:r.value,"data-top-icon":t.icon||void 0,"data-top-icon2":t.icon2||void 0,disabled:t.disabled||void 0,inProgress:t.isProgress},{default:o.withCtx(()=>[o.renderSlot(t.$slots,"default",{},()=>[o.createTextVNode(o.toDisplayString(t.icon?"":"Button"),1)])]),_:3},8,["class","name","title","href","type","data-top-icon","data-top-icon2","disabled","inProgress"]))}}),I={"top-button":"top-button","top-active":"top-active","top-button-progress":"top-button-progress",progress:"_progress_1f1nw_1","top-color_blue":"top-color_blue","top-color_green":"top-color_green","top-color_orange":"top-color_orange","top-color_red":"top-color_red","top-color_pink":"top-color_pink","top-color_theme":"top-color_theme","top-style_outline":"top-style_outline","top-style_soft":"top-style_soft","top-style_transparent":"top-style_transparent","top-size_l":"top-size_l","top-size_xl":"top-size_xl"},m=(l,e)=>{const n=l.__vccOpts||l;for(const[r,t]of e)n[r]=t;return n},O=m(H,[["__cssModules",{$style:I}]]),j={class:"top-forms-optionLabel"},Y={key:0,class:"top-forms-optionLabel_description"},w=m(o.defineComponent({__name:"controlLabel",props:{description:{},disabled:{type:Boolean}},setup(l){return(e,n)=>(o.openBlock(),o.createElementBlock("div",j,[o.createElementVNode("div",{class:o.normalizeClass({"top-forms-optionLabel_title":!0,"top-forms-optionLabel_title-disabled":e.disabled})},[o.renderSlot(e.$slots,"default")],2),e.description?(o.openBlock(),o.createElementBlock("div",Y,o.toDisplayString(e.description),1)):o.createCommentVNode("",!0)]))}}),[["__cssModules",{$style:{"top-forms-optionLabel":"top-forms-optionLabel","top-forms-optionLabel_title":"top-forms-optionLabel_title","top-forms-optionLabel_title-disabled":"top-forms-optionLabel_title-disabled","top-forms-optionLabel_description":"top-forms-optionLabel_description"}}]]),G=["name","value","indeterminate","disabled"],K=m(o.defineComponent({__name:"checkbox",props:{modelValue:{type:[Boolean,Array,Set]},name:{},value:{},description:{},disabled:{type:Boolean},indeterminate:{type:Boolean},isError:{type:Boolean}},emits:["update:modelValue"],setup(l,{emit:e}){const n=l,r=o.computed({get(){return n.modelValue},set(t){e("update:modelValue",t)}});return(t,s)=>(o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-forms-optionWrapper":!0,"top-checkbox":!0,["top-checkbox_"+t.name]:t.name!=="","top-disabled":t.disabled,"top-error":t.isError&&!t.disabled})},[o.withDirectives(o.createElementVNode("input",{type:"checkbox",class:o.normalizeClass({"top-forms-focusable":!t.disabled,"top-forms-option":!0,"top-checkbox_input":!0,"top-error":t.isError&&!t.disabled}),name:t.name,"onUpdate:modelValue":s[0]||(s[0]=a=>r.value=a),value:t.value,indeterminate:t.indeterminate,disabled:t.disabled},null,10,G),[[o.vModelCheckbox,r.value]]),t.$slots.default?(o.openBlock(),o.createBlock(w,{key:0,description:t.description,disabled:t.disabled},{default:o.withCtx(()=>[o.renderSlot(t.$slots,"default")]),_:3},8,["description","disabled"])):o.createCommentVNode("",!0)],2))}}),[["__cssModules",{$style:{"top-checkbox":"top-checkbox","top-checkbox_input":"top-checkbox_input","top-error":"top-error"}}]]),Q=["title"],C=m(o.defineComponent({__name:"hint",props:{hint:{}},setup(l){return(e,n)=>(o.openBlock(),o.createElementBlock("span",{class:"top-hint","data-top-icon":"",title:e.hint},null,8,Q))}}),[["__cssModules",{$style:{"top-hint":"top-hint"}}]]),q=["data-top-icon","data-top-icon2"],X=["name","title","placeholder","disabled","readonly"],J=["onClick"],Z={key:1,class:"top-formsCaption"},B=m(o.defineComponent({inheritAttrs:!1,__name:"input",props:{modelValue:{},name:{},disabled:{type:Boolean},readonly:{type:Boolean},title:{},captionType:{default:""},size:{default:"s"},icon:{},icon2:{},addCleaner:{type:Boolean},isError:{type:Boolean},modificator:{}},emits:["update:modelValue"],setup(l,{emit:e}){const n=l,r=o.computed({get(){return n.modelValue},set(a){e("update:modelValue",a)}}),t=o.computed(()=>n.addCleaner&&!n.title||n.captionType!==""?"":n.title),s=()=>{e("update:modelValue","")};return(a,i)=>(o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-input":!0,["top-size_"+a.size]:!0,"top-disabled":a.disabled,["top-input-"+a.modificator]:!!a.modificator,"top-input-withCleaner":a.addCleaner&&r.value&&r.value!=="0000-00-00","top-formsCaptionWrapper":a.captionType!=="","top-formsCaptionWrapper-always":a.captionType==="top"}),"data-top-icon":a.icon,"data-top-icon2":a.icon2},[o.withDirectives(o.createElementVNode("input",o.mergeProps({type:"text",class:{"top-input_input":!0,["top-input_input-"+a.modificator]:!!a.modificator,"top-forms-focusable":!a.disabled,"top-error":a.isError},autocomplete:"off_always",name:a.name,"onUpdate:modelValue":i[0]||(i[0]=p=>r.value=p),title:a.title,placeholder:t.value,disabled:a.disabled,readonly:a.readonly,onKeydown:i[1]||(i[1]=o.withKeys(o.withModifiers(()=>(a.addCleaner||!!a.$slots.btn)&&s(),["stop"]),["esc"]))},a.$attrs),null,16,X),[[o.vModelText,r.value]]),a.addCleaner&&r.value&&r.value!=="0000-00-00"?(o.openBlock(),o.createElementBlock("span",{key:0,class:"top-input_cleaner","data-top-icon":"",onClick:o.withModifiers(s,["prevent"])},null,8,J)):o.createCommentVNode("",!0),a.captionType!==""?(o.openBlock(),o.createElementBlock("span",Z,o.toDisplayString(a.title),1)):o.createCommentVNode("",!0),o.renderSlot(a.$slots,"default")],10,q))}}),[["__cssModules",{$style:{"top-input":"top-input","top-input_input":"top-input_input","top-input-withCleaner":"top-input-withCleaner","top-input_cleaner":"top-input_cleaner"}}]]),oo=["modelValue"],to=!!document.documentElement.ontouchstart&&!!document.createElement("input").showPicker;let E=l=>{};const eo=m(o.defineComponent({__name:"inputDate",props:{modelValue:{},name:{},disabled:{type:Boolean},readonly:{type:Boolean},title:{},captionType:{},size:{},icon:{},icon2:{default:""},addCleaner:{type:Boolean},isError:{type:Boolean},modificator:{}},emits:["update:modelValue"],setup(l,{emit:e}){const n=l,r=o.ref(),t=o.computed({get(){return f.dateFormat(n.modelValue,2,"0000-00-00")},set(p){p=f.dateUnformat(p,"0000-00-00"),e("update:modelValue",p)}});let s=p=>{E(p)},a=p=>{const d=f.dateUnformat(p.target.value),u=f.dateFormat(d);if(!u||u===c.L.Not_date||p.target.value!==u){p.target.value=t.value;return}t.value=p.target.value};async function i(p){const d=await new Promise((h,g)=>N(["./datepicker-a0840577.amd"],h,g));E=d.oninput;const u=d.connectDatepicker(p.target,{onSelect:()=>a(p)});u&&(u.datepicker("show"),o.onUnmounted(()=>u.datepicker("destroy")))}return(p,d)=>o.unref(to)?(o.openBlock(),o.createBlock(o.unref(B),o.mergeProps({key:0},p.$props,{modelValue:t.value,readonly:"",onClick:d[1]||(d[1]=u=>r.value.showPicker())}),{default:o.withCtx(()=>[o.createElementVNode("input",{ref_key:"el",ref:r,type:"date",class:"top-input_input-date",modelValue:p.modelValue,onChange:d[0]||(d[0]=u=>t.value=u.target.value),tabindex:"-1"},null,40,oo)]),_:1},16,["modelValue"])):(o.openBlock(),o.createBlock(o.unref(B),o.mergeProps({key:1},p.$props,{modelValue:t.value,"onUpdate:modelValue":d[2]||(d[2]=u=>u===""?t.value="":""),onInput:o.unref(s),onFocusOnce:i,onChange:o.unref(a),modificator:"datepicker"}),null,16,["modelValue","onInput","onChange"]))}}),[["__cssModules",{$style:{"top-input-datepicker":"top-input-datepicker","top-input_input-date":"top-input_input-date"}}]]),ro={class:"top-inputRange"},no=o.createElementVNode("span",{class:"top-inputRange_dash"}," — ",-1),ao=m(o.defineComponent({__name:"inputRange",setup(l){return(e,n)=>(o.openBlock(),o.createElementBlock("div",ro,[o.renderSlot(e.$slots,"from"),no,o.renderSlot(e.$slots,"to")]))}}),[["__cssModules",{$style:{"top-inputRange":"top-inputRange","top-inputRange_dash":"top-inputRange_dash","top-input":"top-input"}}]]),io=["name","value","disabled"],lo=m(o.defineComponent({__name:"radio",props:{modelValue:{},value:{},name:{},description:{},disabled:{type:Boolean},isError:{type:Boolean}},emits:["update:modelValue"],setup(l,{emit:e}){const n=l,r=o.computed({get(){return n.modelValue},set(t){e("update:modelValue",t)}});return(t,s)=>(o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-forms-optionWrapper":!0,"top-radio":!0,["top-radio_"+t.name]:t.name!=="","top-disabled":t.disabled,"top-error":t.isError&&!t.disabled})},[o.withDirectives(o.createElementVNode("input",{type:"radio",class:o.normalizeClass({"top-forms-focusable":!t.disabled,"top-forms-option":!0,"top-radio_input":!0,"top-error":t.isError&&!t.disabled}),"onUpdate:modelValue":s[0]||(s[0]=a=>r.value=a),name:t.name,value:t.value,disabled:t.disabled},null,10,io),[[o.vModelRadio,r.value]]),t.$slots.default?(o.openBlock(),o.createBlock(w,{key:0,description:t.description,disabled:t.disabled},{default:o.withCtx(()=>[o.renderSlot(t.$slots,"default")]),_:3},8,["description","disabled"])):o.createCommentVNode("",!0)],2))}}),[["__cssModules",{$style:{"top-radio":"top-radio","top-radio_input":"top-radio_input","top-error":"top-error"}}]]),so=["name","value","disabled"],po=m(o.defineComponent({__name:"switcher",props:{modelValue:{type:[Boolean,Array,Set]},name:{},value:{},description:{},disabled:{type:Boolean},isError:{type:Boolean}},emits:["update:modelValue"],setup(l,{emit:e}){const n=l,r=o.computed({get(){return n.modelValue},set(t){e("update:modelValue",t)}});return(t,s)=>(o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-forms-optionWrapper":!0,"top-checkboxSwitcher":!0,"top-disabled":t.disabled,"top-error":t.isError&&!t.disabled})},[o.withDirectives(o.createElementVNode("input",{type:"checkbox",class:o.normalizeClass({"top-forms-focusable":!t.disabled,"top-forms-option":!0,"top-checkboxSwitcher_input":!0,"top-error":t.isError&&!t.disabled}),"onUpdate:modelValue":s[0]||(s[0]=a=>r.value=a),name:t.name,value:t.value,disabled:t.disabled},null,10,so),[[o.vModelCheckbox,r.value]]),t.$slots.default?(o.openBlock(),o.createBlock(w,{key:0,description:t.description,disabled:t.disabled},{default:o.withCtx(()=>[o.renderSlot(t.$slots,"default")]),_:3},8,["description","disabled"])):o.createCommentVNode("",!0)],2))}}),[["__cssModules",{$style:{"top-checkboxSwitcher":"top-checkboxSwitcher","top-checkboxSwitcher_input":"top-checkboxSwitcher_input","top-error":"top-error"}}]]),co=["name","placeholder","disabled","readonly","rows"],uo={key:0,class:"top-textarea_pseudoContent"},bo=m(o.defineComponent({inheritAttrs:!1,__name:"textarea",props:{modelValue:{},name:{},placeholder:{},rows:{default:5},minHeight:{default:120},expandable:{type:Boolean},disabled:{type:Boolean},readonly:{type:Boolean},isError:{type:Boolean},hint:{}},emits:["update:modelValue"],setup(l,{emit:e}){const n=l;o.useCssVars(t=>({c838a038:t.minHeight+"px"}));const r=o.computed({get(){return n.modelValue},set(t){e("update:modelValue",t)}});return(t,s)=>{const a=o.resolveDirective("top-tooltip");return o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-textarea":!0,["top-textarea-"+t.name]:t.name,"top-disabled":t.disabled})},[o.withDirectives(o.createElementVNode("textarea",o.mergeProps({type:"text",class:{"top-forms-focusable":!t.disabled,"top-textarea_textarea":!0,"top-textarea_textarea-expandable":t.expandable,"top-error":t.isError},autocomplete:"off_always",name:t.name,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly,rows:t.expandable?void 0:t.rows},t.$attrs,{"onUpdate:modelValue":s[0]||(s[0]=i=>r.value=i)}),null,16,co),[[o.vModelText,r.value]]),t.expandable?(o.openBlock(),o.createElementBlock("div",uo,o.toDisplayString(r.value+" "),1)):o.createCommentVNode("",!0),t.hint?o.withDirectives((o.openBlock(),o.createBlock(C,{key:1,class:"top-textarea_hint",hint:t.hint},null,8,["hint"])),[[a]]):o.createCommentVNode("",!0)],2)}}}),[["__cssModules",{$style:{"top-textarea":"top-textarea","top-textarea_textarea":"top-textarea_textarea","top-textarea_textarea-expandable":"top-textarea_textarea-expandable","top-textarea_pseudoContent":"top-textarea_pseudoContent","top-textarea_hint":"top-textarea_hint"}}]]),mo=["data-value","data-top-icon","data-top-icon2"],ho=["name","disabled"],go=["label","disabled"],fo=["value","selected","disabled"],ko=["value","selected","disabled"],yo={key:1,class:"top-formsCaption"},vo=m(o.defineComponent({__name:"select",props:{modelValue:{},options:{},name:{},disabled:{type:Boolean},icon:{},size:{default:"s"},addChanger:{type:Boolean},title:{},isError:{type:Boolean}},emits:["update:modelValue"],setup(l,{emit:e}){const n=l,r=o.computed({get(){return n.modelValue},set(i){e("update:modelValue",i)}}),t=o.computed(()=>{var i;return(i=s.value.get(r.value))==null?void 0:i.icon}),s=o.computed(()=>{const i=new Map;return n.options.forEach(p=>{if(!p.disabled){if(p.children){p.children.forEach(d=>{d.disabled||i.set(d.value,d)});return}i.set(p.value,p)}}),i});o.watch([o.toRef(n.modelValue),s],()=>{(r.value===null||r.value===void 0)&&s.value.size&&(console.warn("Пожалуйста, не передавайте в компонент Select значения null и undefined"),r.value=s.value.keys().next().value)},{immediate:!0});const a=()=>{const i=[...s.value.keys()],d=(i.indexOf(r.value)+1)%i.length;r.value=i[d]};return(i,p)=>(o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-select":!0,["top-select-"+i.name]:i.name,["top-size_"+i.size]:!0,"top-formsCaptionWrapper":!!i.title,"top-select-error":i.isError,"top-disabled":i.disabled}),"data-value":r.value,"data-top-icon":i.icon,"data-top-icon2":t.value},[o.withDirectives(o.createElementVNode("select",{class:o.normalizeClass({"top-forms-focusable":!i.disabled,"top-select_select":!0,"top-select_arrow":!0,"top-error":i.isError}),name:i.name,disabled:i.disabled,"onUpdate:modelValue":p[0]||(p[0]=d=>r.value=d)},[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.options.entries(),([d,u])=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[u.children?(o.openBlock(),o.createElementBlock("optgroup",{key:"group_"+u.value,label:u.title,disabled:u.disabled},[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(u.children.entries(),([h,g])=>(o.openBlock(),o.createElementBlock("option",{key:u.value,value:g.value,selected:g.value===r.value,disabled:g.disabled},o.toDisplayString(g.title),9,fo))),128))],8,go)):(o.openBlock(),o.createElementBlock("option",{key:u.value,value:u.value,selected:u.value===r.value,disabled:u.disabled},o.toDisplayString(u.title),9,ko))],64))),256))],10,ho),[[o.vModelSelect,r.value]]),i.addChanger&&s.value.size&&!i.disabled?(o.openBlock(),o.createElementBlock("span",{key:0,class:"top-changer",onClick:a})):o.createCommentVNode("",!0),i.title?(o.openBlock(),o.createElementBlock("span",yo,o.toDisplayString(i.title),1)):o.createCommentVNode("",!0)],10,mo))}}),[["__cssModules",{$style:{"top-select":"top-select","top-select-error":"top-select-error","top-select_select":"top-select_select","top-changer":"top-changer"}}]]);b.Button=O,b.ControlLabel=w,b.Core=c,b.Device=k,b.Events=V,b.Hint=C,b.Input=B,b.Textarea=bo,b.UtilsDate=f,b._export_sfc=m,b.checkbox=K,b.inputDate=eo,b.inputRange=ao,b.radio=lo,b.select=vo,b.switcher=po});
3
+ //# sourceMappingURL=forms-1aa30229.amd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forms-1aa30229.amd.js","sources":["../../src/core/utils/device.ts","../../src/core/core/events.ts","../../src/core/core/options.ts","../../src/core/core/state.ts","../../src/core/directives/tooltip.ts","../../src/core/core/core.ts","../../src/core/utils/date.ts","../../src/components/forms/button/button.vue","../../src/components/forms/checkbox/checkbox.vue","../../src/components/forms/input/input.vue","../../src/components/forms/inputDate/inputDate.vue","../../src/components/forms/radio/radio.vue","../../src/components/forms/switcher/switcher.vue","../../src/components/forms/textarea/textarea.vue","../../src/components/forms/select/select.vue"],"sourcesContent":["class Device {\r\n\r\n\tstatic isRetina () {\r\n\t\treturn ('devicePixelRatio' in window && window.devicePixelRatio > 1);\r\n\t}\r\n\r\n\t// определить, является ли устройство мобильным\r\n\tstatic isMobile (): boolean {\r\n\t\treturn !!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|IEMobile|Opera Mini/i);\r\n\t}\r\n\r\n\t// определить, открыт ли сайт в приложении\r\n\tstatic isApp () {\r\n\t\treturn (navigator.userAgent.indexOf('Topvisor_App') != -1);\r\n\t}\r\n\r\n\t// определить, является ли OS пользователя macOS\r\n\tstatic isMacOS () {\r\n\t\treturn navigator.userAgent.indexOf('Mac OS X') !== -1;\r\n\t}\r\n\r\n\t// определить, является ли текущий браузер пользователя Safari\r\n\tstatic isSafari () {\r\n\t\tconst isChrome = /Chrome|Android/.test(navigator.userAgent);\r\n\r\n\t\tlet isSafari = /Safari/.test(navigator.userAgent);\r\n\t\tif (isChrome && isSafari) {\r\n\t\t\tisSafari = false;\r\n\t\t}\r\n\r\n\t\treturn isSafari;\r\n\t};\r\n\r\n\t/**\r\n\t * Вернуть текст для обозначения клавиши Ctrl / Command в зависимости от OS\r\n\t * @returns {'Ctrl'|'⌘'}\r\n\t */\r\n\tstatic getCommandKeyLabel (): 'Ctrl' | '⌘' {\r\n\t\tif (this.isMacOS()) {\r\n\t\t\treturn '⌘';\r\n\t\t} else {\r\n\t\t\treturn 'Ctrl';\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\nexport default Device;\r\n","const onResizeDelay = 100;\r\n\r\nlet onResizeTimer: NodeJS.Timeout;\r\n\r\ntype TopEvent = Event & { topEvent: { widthDiff: number, hightDiff: number } }\r\n\r\n/**\r\n * Установленные обрабочики на событие изменения размеров окна\r\n */\r\nconst onResizeListeners: Map<(ev: TopEvent) => any, (ev: TopEvent) => any> = new Map();\r\n\r\n// зафиксированное состояние размеров окна\r\nconst windowSize = {\r\n\twidth: window.innerWidth,\r\n\theight: window.innerHeight,\r\n};\r\n\r\n/**\r\n * Добавить обработчик на событие изменения размеров экрана\r\n * вызов таких обработчиков будет опмизирован и объединен в одно событие\r\n */\r\nfunction addOnReize (listener: (this: Element, ev: TopEvent) => any) {\r\n\tonResizeListeners.set(listener, listener);\r\n}\r\n\r\n/**\r\n * Удаление обработчика на событие изменений размеров экрана\r\n */\r\nfunction removeOnResize (listener: (this: Element, ev: TopEvent) => any) {\r\n\tonResizeListeners.delete(listener);\r\n}\r\n\r\nfunction onResize (e: any) {\r\n\tclearTimeout(onResizeTimer);\r\n\r\n\tonResizeTimer = setTimeout(function () {\r\n\t\te.topEvent = {\r\n\t\t\twidthDiff: windowSize.width - window.innerWidth,\r\n\t\t\thightDiff: windowSize.height - window.innerHeight,\r\n\t\t};\r\n\r\n\t\twindowSize.width = window.innerWidth;\r\n\t\twindowSize.height = window.innerHeight;\r\n\r\n\t\tonResizeListeners.forEach((callback) => callback(e));\r\n\t}, onResizeDelay);\r\n}\r\n\r\nwindow.addEventListener('resize', onResize);\r\n\r\nexport default {\r\n\taddOnReize,\r\n\tremoveOnResize,\r\n};\r\n","/**\r\n * Конфигурация UI\r\n * Можно переопределить при подклчюении UI во Vue приложение через app.use(Core, options)\r\n */\r\nconst options = {\r\n\twidthForMobile: 900,\r\n\tdateFormat: 'Y-m-d',\r\n\r\n\t/**\r\n\t * Для Москвы: +0300\r\n\t */\r\n\tgmt: new Date().toString().match(/GMT(\\S+)/)?.[1],\r\n};\r\n\r\nexport default options;","/**\r\n * State UI для взаимодейсвтиями с приложениями Vue\r\n */\r\nconst state = {\r\n\t/**\r\n\t * Device by size\r\n\t * @see widthForMobile\r\n\t */\r\n\tisMobile: false,\r\n\r\n\t/**\r\n\t * Device by user agent\r\n\t */\r\n\tisMobileUA: false,\r\n\r\n\t/**\r\n\t * true, если плотность пикселей экрана больше 1\r\n\t */\r\n\tisRetina: false,\r\n\r\n\t/**\r\n\t * true, елси это приложение\r\n\t */\r\n\tisApp: false,\r\n\r\n\t/**\r\n\t * true при горизонтальном расположении устройства\r\n\t */\r\n\tisLandscape: true,\r\n\r\n\t/**\r\n\t * true при вертикальном расположении устройства\r\n\t */\r\n\tisPortrait: false,\r\n\tsize: 0,\r\n\r\n\t// См. core.options\r\n\tdateFormat: 'Y-m-d',\r\n\r\n\t// См. core.options\r\n\tgmt: new Date().toString().match(/GMT(\\S+)/)?.[1],\r\n};\r\n\r\nexport default state;","import type { DirectiveBinding, ObjectDirective, VNode } from 'vue';\r\n\r\nconst _window: any = window;\r\n\r\nconst $ = (el: VNode) => {\r\n\tif (!_window?.jQuery?.ui?.tooltip) {\r\n\t\tconsole.info('Для работы v-top-tooltip требуется глобальная загрузка jQuery UI Tooltip');\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\treturn _window.jQuery(el);\r\n};\r\n\r\nconst tvTooltipGenOptions = (binding: DirectiveBinding, vnode: VNode) => {\r\n\tconst options = binding.value ?? {};\r\n\r\n\toptions.content ??= vnode.props?.title;\r\n\toptions.content = String(options.content).replace(/\\r\\n|\\r|\\n/g, '<br>');\r\n\r\n\toptions.position ??= {\r\n\t\tmy: 'bottom-18px',\r\n\t\tat: 'top center',\r\n\t};\r\n\r\n\treturn options;\r\n};\r\n\r\nconst tooltip = {\r\n\tmounted(el: VNode, binding: DirectiveBinding, vnode: VNode) {\r\n\t\t$(el)?.tooltip(tvTooltipGenOptions(binding, vnode));\r\n\t},\r\n\r\n\tupdated(el: VNode, binding: DirectiveBinding, vnode: VNode, _prevVnode: VNode) {\r\n\t\t/**\r\n\t\t * В результате обновления может быть открыто несколько тултипов поэтому изменить опции, без перерисовки тултипа\r\n\t\t */\r\n\t\tconst options = tvTooltipGenOptions(binding, vnode);\r\n\t\tconst instance = $(el)?.tooltip('instance');\r\n\t\tif (!instance) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tinstance.options = {\r\n\t\t\t...instance.options,\r\n\t\t\t...options,\r\n\t\t};\r\n\t},\r\n\r\n\tunmounted(el: VNode, binding: DirectiveBinding, vnode: VNode) {\r\n\t\t$(el)?.tooltip('destroy');\r\n\t},\r\n} satisfies ObjectDirective;\r\n\r\nexport default tooltip;","import { reactive } from 'vue';\r\nimport Device from '@/core/utils/device';\r\nimport Events from '@/core/core/events';\r\nimport options from '@/core/core/options';\r\nimport state from '@/core/core/state';\r\nimport directiveTooltip from '@/core/directives/tooltip';\r\n\r\nconst _window: any = window;\r\n\r\nclass Core {\r\n\r\n\t/**\r\n\t * Настройки словаря\r\n\t */\r\n\tstatic L = reactive({\r\n\t\tNot_date: 'Not date',\r\n\t});\r\n\r\n\tstatic page = _window?.page || {};\r\n\r\n\tstatic options = options;\r\n\r\n\tstatic state = reactive({ ...state });\r\n\r\n\tstatic matchMediaIsMobile?: MediaQueryList;\r\n\r\n\t/**\r\n\t * Добавить на страницу стили, используется для загрузки стилей из js\r\n\t *\r\n\t * Условная загрузка стилей m и pc отключена в пользу производительсности, стили грузятся всегда, но применяются по условию\r\n\t * @param style - css стили в строке\r\n\t * @param type - если указать 'm' или 'pc', то стили будут применяться по условию в зависимости от настройки this.options.widthForMobile\r\n\t */\r\n\tstatic appendStyle(style: string, type: '' | 'm' | 'pc' = ''): void {\r\n\t\tlet media = 'all';\r\n\r\n\t\tif (type === 'm') {\r\n\t\t\tmedia = '(max-width: ' + this.options.widthForMobile + 'px)';\r\n\t\t}\r\n\r\n\t\tif (type === 'pc') {\r\n\t\t\tmedia = '(min-width: ' + this.options.widthForMobile + 'px)';\r\n\t\t}\r\n\r\n\t\tconst elStyle = document.createElement('style');\r\n\t\telStyle.innerHTML = style;\r\n\t\telStyle.media = media;\r\n\r\n\t\tdocument.head.append(elStyle);\r\n\t}\r\n\r\n\t/**\r\n\t * Установить как плагин в прилоежнии Vue\r\n\t * Core.state является общим для всех приложений Vue на странице\r\n\t * Core.options является общим для всех приложений Vue на странице\r\n\t * @param app - Vue App\r\n\t * @param {typeof options} options - параметры UI\r\n\t */\r\n\tstatic install(app: any, options: typeof this.options) {\r\n\t\tCore.defineOptions(options);\r\n\r\n\t\tapp.provide('top-core', Core);\r\n\r\n\t\tthis.installDirectives(app);\r\n\t}\r\n\r\n\tstatic installDirectives(app: any) {\r\n\t\tapp.directive('top-tooltip', directiveTooltip);\r\n\t}\r\n\r\n\t/**\r\n\t * Установить конфигурацию UI\r\n\t * @param {typeof options} options\r\n\t */\r\n\tstatic defineOptions(options: typeof this.options) {\r\n\t\tif (options?.widthForMobile) {\r\n\t\t\tthis.options.widthForMobile = options.widthForMobile;\r\n\t\t}\r\n\r\n\t\tif (options?.dateFormat) {\r\n\t\t\tthis.options.dateFormat = options.dateFormat;\r\n\t\t}\r\n\r\n\t\tif (options?.gmt) {\r\n\t\t\tthis.options.gmt = options.gmt;\r\n\t\t}\r\n\r\n\t\tCore.setState();\r\n\t}\r\n\r\n\tstatic setState() {\r\n\t\tCore.matchMediaIsMobile = window.matchMedia(`(max-width: ${Core.options.widthForMobile}px)`);\r\n\r\n\t\tCore.state.isMobileUA = Device.isMobile();\r\n\t\tCore.state.isRetina = Device.isRetina();\r\n\t\tCore.state.isApp = Device.isApp();\r\n\t\tCore.state.dateFormat = this.options.dateFormat;\r\n\t\tCore.state.gmt = this.options.gmt;\r\n\r\n\t\tCore.setStateByWindowSize();\r\n\r\n\t\t// пересчет значений, зависящих от рамзеров окна\r\n\t\tEvents.addOnReize(Core.onResize);\r\n\r\n\t\tCore.onResize();\r\n\r\n\t\tCore.saveToCookie();\r\n\t}\r\n\r\n\tstatic onResize() {\r\n\t\tCore.setStateByWindowSize();\r\n\r\n\t\t// честный vh\r\n\t\tdocument.documentElement.style.setProperty('--100vh', window.innerHeight + 'px');\r\n\t}\r\n\r\n\tstatic setStateByWindowSize() {\r\n\t\tCore.state.isMobile = !!Core.matchMediaIsMobile?.matches;\r\n\t\tCore.state.isLandscape = (window.innerWidth > window.innerHeight);\r\n\t\tCore.state.isPortrait = !Core.state.isLandscape;\r\n\t\tCore.state.size = (window.innerWidth > window.innerHeight) ? window.innerWidth : window.innerHeight;\r\n\r\n\t\tCore.saveToCookie();\r\n\t}\r\n\r\n\t/**\r\n\t * Сохранить информацию об устройстве в cookie\r\n\t */\r\n\tstatic saveToCookie() {\r\n\t\tconst device = [\r\n\t\t\t1,\r\n\t\t\twindow.innerWidth,\r\n\t\t\twindow.innerHeight,\r\n\t\t\twindow.devicePixelRatio,\r\n\t\t\tNumber(Core.state.isMobile),\r\n\t\t\tNumber(Core.state.isRetina),\r\n\t\t];\r\n\r\n\t\tdocument.cookie = 'device=' + device.join(',') + '; path=/;';\r\n\t}\r\n\r\n}\r\n\r\nexport default Core;","import Core from '@/core/core/core';\r\n\r\nclass UtilsDate {\r\n\r\n\t/**\r\n\t * Получить объект Date из строки\r\n\t * @param date - строка с датой\r\n\t */\r\n\tstatic stringToDate(date: string) {\r\n\t\tif (date.indexOf('T') === -1) {\r\n\t\t\tif (date.length == 10) {\r\n\t\t\t\tdate += ' 00:00:00';\r\n\t\t\t}\r\n\r\n\t\t\tdate = date.replace(' ', 'T') + Core.state.gmt;\r\n\t\t}\r\n\r\n\t\treturn new Date(date);\r\n\t}\r\n\r\n\t// Перевод миллисекунд (UTC) в дату-строку (время локальное)\r\n\r\n\t/**\r\n\t * Перевод миллисекунд (UTC) в дату-строку (время локальное)\r\n\t * @param {?number} ms\r\n\t * @param {?boolean} useFormat\r\n\t */\r\n\tstatic ms2Date(ms: number, useFormat: boolean = true): string {\r\n\t\tlet date;\r\n\t\tif (ms != undefined) {\r\n\t\t\tdate = new Date(ms);\r\n\t\t} else {\r\n\t\t\tdate = new Date();\r\n\t\t}\r\n\r\n\t\tconst d = date.getDate().toString().padStart(2, '0');\r\n\t\tconst m = String(date.getMonth() + 1).padStart(2, '0');\r\n\t\tconst Y = date.getFullYear();\r\n\t\tconst H = date.getHours().toString().padStart(2, '0');\r\n\t\tconst i = date.getMinutes().toString().padStart(2, '0');\r\n\t\tconst s = date.getSeconds().toString().padStart(2, '0');\r\n\r\n\t\tdate = Y + '-' + m + '-' + d + ' ' + H + ':' + i + ':' + s;\r\n\r\n\t\tif (useFormat) {\r\n\t\t\tdate = this.dateFormat(date);\r\n\t\t}\r\n\r\n\t\treturn date;\r\n\t}\r\n\r\n\t/**\r\n\t * Перевод даты в формат пользователя\r\n\t * @param {string} date\r\n\t * @param {0|1|2|3} time - 0: только дата, 1: дата и часы, 2: дата и часы с минутами, 3: дата и часы с минутами и секундами\r\n\t */\r\n\tstatic dateFormat(date: string, time: 0 | 1 | 2 | 3 = 2, emptyValue: string = Core.L.Not_date): string {\r\n\t\tif (!date || date.substring(0, 10) === '0000-00-00') {\r\n\t\t\tif (emptyValue && emptyValue !== '0000-00-00') {\r\n\t\t\t\treturn emptyValue;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst dateFormat = Core.state.dateFormat.toLowerCase();\r\n\r\n\t\tlet dateForObj = date.substring(0, 10);\r\n\r\n\t\tif (dateForObj.length === 7) {\r\n\t\t\tdateForObj += '-01';\r\n\t\t}\r\n\r\n\t\tdateForObj += ' 00:00';\r\n\r\n\t\t// safari fix\r\n\t\tdateForObj = dateForObj.replace(/-/g, '/');\r\n\r\n\t\tconst dateObject = new Date(dateForObj);\r\n\t\tif (isNaN(Number(dateObject))) {\r\n\t\t\treturn emptyValue;\r\n\t\t}\r\n\r\n\t\tlet result = dateFormat.\r\n\t\t\treplace('y', String(dateObject.getFullYear()).padStart(2, '0')).\r\n\t\t\treplace('m', String(dateObject.getMonth() + 1).padStart(2, '0')).\r\n\t\t\treplace('d', String(dateObject.getDate()).padStart(2, '0'));\r\n\r\n\t\tif (date.length > 10) {\r\n\t\t\tswitch (time) {\r\n\t\t\t\t// часы\r\n\t\t\t\tcase 1:\r\n\t\t\t\t\tresult += ' ' + date.substring(11, 13);\r\n\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t// часы и минуты\r\n\t\t\t\tcase 2:\r\n\t\t\t\t\tresult += ' ' + date.substring(11, 16);\r\n\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t// часы, минуты и секунды\r\n\t\t\t\tcase 3:\r\n\t\t\t\t\tresult += ' ' + date.substring(11, 19);\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * Перевод даты из формата пользователя в системный формат\r\n\t * @param {string} date\r\n\t */\r\n\tstatic dateUnformat(date: string, emptyValue: string = Core.L.Not_date): string {\r\n\t\tif (!date) {\r\n\t\t\treturn emptyValue;\r\n\t\t}\r\n\r\n\t\tif (date.match(/\\d\\d\\d\\d-\\d\\d-\\d\\d/)) {\r\n\t\t\treturn date;\r\n\t\t}\r\n\r\n\t\tconst dateFormat = Core.state.dateFormat.toLowerCase();\r\n\r\n\t\tconst dateChunks = date.split(/\\W/);\r\n\t\tconst dateFormatChunks = dateFormat.split(/\\W/);\r\n\r\n\t\tlet d = '';\r\n\t\tlet m = '';\r\n\t\tlet y = '';\r\n\r\n\t\tdateFormatChunks.forEach((type, index) => {\r\n\t\t\tswitch (type) {\r\n\t\t\t\tcase 'd':\r\n\t\t\t\t\td = dateChunks[index];\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'm':\r\n\t\t\t\t\tm = dateChunks[index];\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'y':\r\n\t\t\t\t\ty = dateChunks[index];\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet result = y + '-' + m + '-' + d;\r\n\r\n\t\tif (!result.match(/\\d\\d\\d\\d-\\d\\d-\\d\\d/)) {\r\n\t\t\tconsole.info('Неверный формат даты, будет возращена текущая дата, ' + result);\r\n\r\n\t\t\tresult = this.ms2Date((new Date()).getTime(), false).substring(0, 10);\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n}\r\n\r\nexport default UtilsDate;","<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\nimport type { Props } from './button';\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\tcolor: 'blue',\r\n\tstyling: '',\r\n\tsize: 's',\r\n});\r\n\r\nconst tagName = computed(() => props.href ? 'a' : 'button');\r\n\r\nconst type = computed(() => props.isSubmit ? 'submit' : undefined);\r\n</script>\r\n\r\n<template>\r\n\t<component\r\n\t\t:is=\"tagName\"\r\n\t\t:class=\"{\r\n\t\t\t['top-active']: isActive,\r\n\t\t\t['top-disabled']: disabled,\r\n\t\t\t['top-forms-focusable']: !disabled,\r\n\t\t\t['top-button']: true,\r\n\t\t\t['top-button-progress']: isProgress,\r\n\t\t\t[`top-size_${size}`]: !!size,\r\n\t\t\t[`top-color_${color}`]: true,\r\n\t\t\t[`top-style_${styling}`]: !!styling,\r\n\t\t}\"\r\n\t\t:name=\"name\"\r\n\t\t:title=\"title\"\r\n\t\t:href=\"href\"\r\n\t\t:type=\"type\"\r\n\t\t:data-top-icon=\"icon || undefined\"\r\n\t\t:data-top-icon2=\"icon2 || undefined\"\r\n\t\t:disabled=\"disabled || undefined\"\r\n\t\t:inProgress=\"isProgress\"\r\n\t>\r\n\t\t<!-- @slot Текст или HTML в кнопке -->\r\n\t\t<slot>\r\n\t\t\t{{ !icon ? 'Button' : '' }}\r\n\t\t</slot>\r\n\t</component>\r\n</template>\r\n\r\n<style module>\r\n@import \"./style/button.css\";\r\n@import \"./style/style-outline.css\";\r\n@import \"./style/style-soft.css\";\r\n@import \"./style/style-transparent.css\";\r\n\r\n.top-button {\r\n\t--top-button-color: var(--color-white);\r\n\t--top-button-background-color: transparent;\r\n\t--top-button-background-color-hover: var(--top-button-background-color);\r\n\t--top-button-background-color-active: var(--top-button-background-color-hover);\r\n\t--top-button-background-color-selected: var(--top-button-background-color-hover);\r\n\t--top-button-box-shadow: none;\r\n\t--top-button-box-shadow-hover: var(--top-shadow-darken-2);\r\n\t--top-button-box-shadow-active: var(--top-shadow-darken-3);\r\n\t--top-button-box-shadow-selected: var(--top-shadow-darken-3);\r\n\t--top-forms-border-width: 0px;\r\n\t--top-icon-width: calc(var(--top-icon-size) + var(--top-forms-padding));\r\n\t--top-icon2-width: calc(var(--top-icon2-size) + var(--top-forms-padding));\r\n}\r\n\r\n.top-button.top-size_l {\r\n\t--top-forms-padding: var(--top-forms-padding_l);\r\n\t--top-forms-base-height: var(--top-forms-base-height_l);\r\n}\r\n\r\n.top-button.top-size_xl {\r\n\t--top-forms-padding: var(--top-forms-padding_xl);\r\n\t--top-forms-base-height: var(--top-forms-base-height_xl);\r\n}\r\n</style>","<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\nimport type { Props, Emits } from './checkbox';\r\nimport ControlLabel from '../controlLabel/controlLabel.vue';\r\n\r\nconst props = defineProps<Props>();\r\nconst emit = defineEmits<Emits>();\r\n\r\nconst localValue = computed({\r\n\tget() {\r\n\t\treturn props.modelValue;\r\n\t},\r\n\tset(value) {\r\n\t\temit('update:modelValue', value);\r\n\t},\r\n});\r\n\r\n</script>\r\n\r\n<template>\r\n\t<label\r\n\t\t:class=\"{\r\n\t\t\t['top-forms-optionWrapper']: true,\r\n\t\t\t['top-checkbox']: true,\r\n\t\t\t['top-checkbox_' + name]: name !== '',\r\n\t\t\t['top-disabled']: disabled,\r\n\t\t\t['top-error']: isError && !disabled,\r\n\t\t}\"\r\n\t>\r\n\t\t<input\r\n\t\t\ttype=\"checkbox\"\r\n\t\t\t:class=\"{\r\n\t\t\t\t['top-forms-focusable']: !disabled,\r\n\t\t\t\t['top-forms-option']: true,\r\n\t\t\t\t['top-checkbox_input']: true,\r\n\t\t\t\t['top-error']: isError && !disabled,\r\n\t\t\t}\"\r\n\t\t\t:name=\"name\"\r\n\t\t\tv-model=\"localValue\"\r\n\t\t\t:value=\"value\"\r\n\t\t\t:indeterminate=\"indeterminate\"\r\n\t\t\t:disabled=\"disabled\"\r\n\t\t>\r\n\r\n\t\t<ControlLabel\r\n\t\t\tv-if=\"$slots.default\"\r\n\t\t\t:description=\"description\"\r\n\t\t\t:disabled=\"disabled\"\r\n\t\t>\r\n\t\t\t<!-- @slot Слот с заголовком -->\r\n\t\t\t<slot></slot>\r\n\t\t</ControlLabel>\r\n\t</label>\r\n</template>\r\n\r\n<style module>\r\n.top-checkbox {\r\n\tcursor: pointer;\r\n\tdisplay: inline-flex;\r\n}\r\n\r\n.top-checkbox_input {\r\n\tcursor: inherit;\r\n\tborder-radius: 4px;\r\n\tbackground: var(--content-background-color);\r\n\tborder: 1px solid var(--top-forms-border-color);\r\n\twidth: calc(var(--top-forms-option-height) - 3px * 2);\r\n\theight: calc(var(--top-forms-option-height) - 3px * 2);\r\n}\r\n\r\n.top-checkbox_input:before {\r\n\tcontent: ' ';\r\n\tcolor: #FFF;\r\n\tfont-family: 'Topvisor-2';\r\n\tfont-size: 16px;\r\n}\r\n\r\n.top-checkbox_input:hover {\r\n\tborder-color: var(--top-forms-option-color);\r\n\tbackground: var(--color-theme-50)\r\n}\r\n\r\n/* checked / indeterminate */\r\n.top-checkbox_input:checked,\r\n.top-checkbox_input:indeterminate {\r\n\tborder-color: var(--top-forms-option-color);\r\n\tbackground: var(--top-forms-option-color);\r\n}\r\n\r\n.top-checkbox_input:checked:before {\r\n\tcontent: '';\r\n}\r\n\r\n.top-checkbox_input:indeterminate:before {\r\n\tcontent: '';\r\n}\r\n\r\n.top-checkbox_input:checked:hover,\r\n.top-checkbox_input:indeterminate:hover {\r\n\tborder-color: var(--top-forms-option-color-hover);\r\n\tbackground: var(--top-forms-option-color-hover);\r\n}\r\n\r\n/* disabled selected */\r\n.top-checkbox_input:disabled {\r\n\tborder-color: var(--color-line-1-opacity);\r\n\tbackground: var(--color-theme-50);\r\n}\r\n\r\n.top-checkbox_input:checked:disabled,\r\n.top-checkbox_input:indeterminate:disabled {\r\n\tborder-color: transparent;\r\n\tbackground: var(--color-theme-400);\r\n}\r\n\r\n/* isError */\r\n.top-checkbox_input.top-error {\r\n\tborder-color: var(--color-negative);\r\n}\r\n\r\n.top-checkbox_input.top-error:hover {\r\n\tborder-color: var(--color-negative-2);\r\n}\r\n\r\n/* isError selected */\r\n.top-checkbox_input:checked.top-error,\r\n.top-checkbox_input:indeterminate.top-error {\r\n\tbackground: var(--color-negative);\r\n}\r\n\r\n.top-checkbox_input:checked.top-error:hover,\r\n.top-checkbox_input:indeterminate.top-error:hover {\r\n\tbackground: var(--color-negative-2);\r\n}\r\n</style>","<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\nimport type { Props, Emits } from './input';\r\n\r\ndefineOptions({\r\n\tinheritAttrs: false,\r\n});\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\tsize: 's',\r\n\tcaptionType: '',\r\n});\r\n\r\nconst emit = defineEmits<Emits>();\r\n\r\nconst localValue = computed({\r\n\tget() {\r\n\t\treturn props.modelValue;\r\n\t},\r\n\tset(value) {\r\n\t\temit('update:modelValue', value);\r\n\t},\r\n});\r\n\r\nconst placeholder = computed(() => {\r\n\tif (props.addCleaner && !props.title) {\r\n\t\treturn '';\r\n\t}\r\n\tif (props.captionType !== '') {\r\n\t\treturn '';\r\n\t}\r\n\r\n\treturn props.title;\r\n});\r\n\r\nconst clean = () => {\r\n\temit('update:modelValue', '');\r\n};\r\n</script>\r\n\r\n<template>\r\n\t<label\r\n\t\t:class=\"{\r\n\t\t\t['top-input']: true,\r\n\t\t\t['top-size_' + size]: true,\r\n\t\t\t['top-disabled']: disabled,\r\n\t\t\t['top-input-' + modificator]: !!modificator,\r\n\t\t\t['top-input-withCleaner']: addCleaner && localValue && localValue !== '0000-00-00',\r\n\t\t\t['top-formsCaptionWrapper']: captionType !== '',\r\n\t\t\t['top-formsCaptionWrapper-always']: captionType === 'top',\r\n\t\t}\"\r\n\t\t:data-top-icon=\"icon\"\r\n\t\t:data-top-icon2=\"icon2\"\r\n\t>\r\n\t\t<input\r\n\t\t\ttype=\"text\"\r\n\t\t\t:class=\"{\r\n\t\t\t\t['top-input_input']: true,\r\n\t\t\t\t['top-input_input-' + modificator]: !!modificator,\r\n\t\t\t\t['top-forms-focusable']: !disabled,\r\n\t\t\t\t['top-error']: isError,\r\n\t\t\t}\"\r\n\t\t\tautocomplete=\"off_always\"\r\n\t\t\t:name=\"name\"\r\n\t\t\tv-model=\"localValue\"\r\n\t\t\t:title=\"title\"\r\n\t\t\t:placeholder=\"placeholder\"\r\n\t\t\t:disabled=\"disabled\"\r\n\t\t\t:readonly=\"readonly\"\r\n\t\t\t@keydown.esc.stop=\"() => (addCleaner || !!$slots.btn) && clean()\"\r\n\t\t\t:=\"$attrs\"\r\n\t\t>\r\n\r\n\t\t<span\r\n\t\t\tv-if=\"addCleaner && localValue && localValue !== '0000-00-00'\"\r\n\t\t\tclass=\"top-input_cleaner\"\r\n\t\t\tdata-top-icon=\"\"\r\n\t\t\t@click.prevent=\"clean\"\r\n\t\t></span>\r\n\r\n\t\t<span\r\n\t\t\tv-if=\"captionType !== ''\"\r\n\t\t\tclass=\"top-formsCaption\"\r\n\t\t>\r\n\t\t\t{{ title }}\r\n\t\t</span>\r\n\r\n\t\t<!-- @slot Слот для вставки произвольного кода в label -->\r\n\t\t<slot></slot>\r\n\t</label>\r\n</template>\r\n\r\n<style module>\r\n.top-input {\r\n\t--top-forms_clear-width: 0px;\r\n\r\n\twidth: 180px;\r\n\tposition: relative;\r\n\tdisplay: inline-flex;\r\n\talign-items: center;\r\n\tgap: var(--top-gap-1);\r\n}\r\n\r\n.top-input_input {\r\n\tbackground: var(--top-forms-background-color);\r\n\theight: var(--top-forms-base-height);\r\n\tpadding: 0;\r\n\tpadding-right: calc(max(var(--top-forms-padding), calc(var(--top-icon2-width) + var(--top-forms_clear-width))));\r\n\tpadding-left: calc(max(var(--top-forms-padding), var(--top-icon-width)));\r\n}\r\n\r\n.top-input_input:hover {\r\n\tbackground: var(--top-forms-background-color-hover);\r\n}\r\n\r\n.top-input_input:focus {\r\n\toutline-color: var(--color-theme-75);\r\n\toutline-offset: 0;\r\n}\r\n\r\n/* значки */\r\n.top-input[data-top-icon]:before,\r\n.top-input[data-top-icon2]:after {\r\n\t--top-icon-color: var(--color-text-secondary);\r\n\t--top-icon2-color: var(--color-text-secondary);\r\n\r\n\tposition: absolute;\r\n\tz-index: 3;\r\n}\r\n\r\n.top-input[data-top-icon]:before {\r\n\tleft: 0;\r\n}\r\n\r\n.top-input[data-top-icon2]:after {\r\n\tright: 0;\r\n}\r\n\r\n/* cleaner */\r\n.top-input-withCleaner {\r\n\t--top-forms_clear-width: 24px;\r\n}\r\n\r\n.top-input_cleaner {\r\n\t--top-icon-size: 20px;\r\n\t--top-icon-width: 20px;\r\n\t--top-icon-color: var(--color-text-3);\r\n\r\n\tcursor: pointer;\r\n\tborder-radius: 50%;\r\n\twidth: 24px;\r\n\theight: 24px;\r\n\tposition: absolute;\r\n\tright: calc(var(--top-forms-border-width) + max(var(--top-icon2-width), var(--top-forms-padding) / 2));\r\n\tz-index: 1;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n}\r\n\r\n.top-input_cleaner:hover {\r\n\t--top-icon-color: var(--color-text-2);\r\n}\r\n\r\n/* TODO: перенести в inputsRange */\r\n.top-input_input {\r\n\twidth: 50%;\r\n\tflex-grow: 1;\r\n}\r\n</style>","<script lang=\"ts\">\r\nconst useNativeDatepicker = !!document.documentElement.ontouchstart && !!document.createElement('input').showPicker;\r\n\r\nlet onInputLazy = (_e: any) => { };\r\n</script>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref, computed, onUnmounted } from 'vue';\r\nimport UtilsDate from '@/core/utils/date';\r\nimport type { Props, Emits } from './inputDate';\r\nimport { Input } from '@/components/forms/forms';\r\nimport Core from '@/core/core/core';\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\ticon2: '',\r\n});\r\n\r\nconst emit = defineEmits<Emits>();\r\n\r\nconst el = ref();\r\n\r\nconst localValue = computed({\r\n\tget() {\r\n\t\treturn UtilsDate.dateFormat(props.modelValue, 2, '0000-00-00');\r\n\t},\r\n\r\n\tset(value) {\r\n\t\tvalue = UtilsDate.dateUnformat(value, '0000-00-00');\r\n\r\n\t\temit('update:modelValue', value);\r\n\t},\r\n});\r\n\r\nlet oninput = (e: any) => {\r\n\tonInputLazy(e);\r\n};\r\n\r\nlet onchange = (e: any) => {\r\n\tconst dateUnformat = UtilsDate.dateUnformat(e.target.value);\r\n\tconst dateFormat = UtilsDate.dateFormat(dateUnformat);\r\n\r\n\tif (!dateFormat || dateFormat === Core.L.Not_date || e.target.value !== dateFormat) {\r\n\t\te.target.value = localValue.value;\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tlocalValue.value = e.target.value;\r\n};\r\n\r\n/**\r\n * Инициализпация функций выбора дат\r\n *\r\n * Для не нативного datepicker\r\n */\r\nasync function init(e: any) {\r\n\tconst datepicker = await import('./datepicker');\r\n\r\n\t// формат ввода\r\n\tonInputLazy = datepicker.oninput;\r\n\r\n\t// datepicker\r\n\tconst $el = datepicker.connectDatepicker(e.target, {\r\n\t\tonSelect: () => onchange(e),\r\n\t});\r\n\r\n\tif ($el) {\r\n\t\t$el.datepicker('show');\r\n\r\n\t\tonUnmounted(() => $el.datepicker('destroy'));\r\n\t}\r\n}\r\n</script>\r\n\r\n<template>\r\n\t<Input\r\n\t\tv-if=\"useNativeDatepicker\"\r\n\t\t:=\"$props\"\r\n\t\t:modelValue=\"localValue\"\r\n\t\treadonly\r\n\t\t@click=\"el.showPicker()\"\r\n\t>\r\n\t\t<input\r\n\t\t\tref=\"el\"\r\n\t\t\ttype=\"date\"\r\n\t\t\tclass=\"top-input_input-date\"\r\n\t\t\t:modelValue=\"modelValue\"\r\n\t\t\t@change=\"(e: any) => localValue = e.target.value\"\r\n\t\t\ttabindex=\"-1\"\r\n\t\t/>\r\n\t</Input>\r\n\r\n\t<Input\r\n\t\tv-else\r\n\t\t:=\"$props\"\r\n\t\t:modelValue=\"localValue\"\r\n\t\t@update:modelValue=\"(newValue) => (newValue === '') ? localValue = '' : ''\"\r\n\t\t@input.date=\"oninput\"\r\n\t\t@focus.once.date=\"init\"\r\n\t\t@change.date=\"onchange\"\r\n\t\tmodificator=\"datepicker\"\r\n\t/>\r\n</template>\r\n\r\n<style module>\r\n.top-input-datepicker {\r\n\twidth: calc(105px + var(--top-icon-width) + var(--top-icon2-width));\r\n}\r\n\r\n.top-input_input-date {\r\n\topacity: 0;\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tright: 0;\r\n\tbottom: 0;\r\n\tleft: 0;\r\n\tz-index: -1;\r\n}\r\n\r\n.top-input_input-date::-webkit-inner-spin-button {\r\n\tdisplay: none;\r\n}\r\n\r\n.top-input_input-date::-webkit-calendar-picker-indicator {\r\n\topacity: 0;\r\n}\r\n</style>","<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\nimport type { Props, Emits } from './radio';\r\nimport ControlLabel from '../controlLabel/controlLabel.vue';\r\n\r\nconst props = defineProps<Props>();\r\nconst emit = defineEmits<Emits>();\r\n\r\nconst localValue = computed({\r\n\tget() {\r\n\t\treturn props.modelValue;\r\n\t},\r\n\tset(value) {\r\n\t\temit('update:modelValue', value);\r\n\t},\r\n});\r\n\r\n</script>\r\n\r\n<template>\r\n\t<label\r\n\t\t:class=\"{\r\n\t\t\t['top-forms-optionWrapper']: true,\r\n\t\t\t['top-radio']: true,\r\n\t\t\t['top-radio_' + name]: name !== '',\r\n\t\t\t['top-disabled']: disabled,\r\n\t\t\t['top-error']: isError && !disabled,\r\n\t\t}\"\r\n\t>\r\n\t\t<input\r\n\t\t\ttype=\"radio\"\r\n\t\t\t:class=\"{\r\n\t\t\t\t['top-forms-focusable']: !disabled,\r\n\t\t\t\t['top-forms-option']: true,\r\n\t\t\t\t['top-radio_input']: true,\r\n\t\t\t\t['top-error']: isError && !disabled,\r\n\t\t\t}\"\r\n\t\t\tv-model=\"localValue\"\r\n\t\t\t:name=\"name\"\r\n\t\t\t:value=\"value\"\r\n\t\t\t:disabled=\"disabled\"\r\n\t\t>\r\n\r\n\t\t<ControlLabel\r\n\t\t\tv-if=\"$slots.default\"\r\n\t\t\t:description=\"description\"\r\n\t\t\t:disabled=\"disabled\"\r\n\t\t>\r\n\t\t\t<!-- @slot Слот с заголовком -->\r\n\t\t\t<slot></slot>\r\n\t\t</ControlLabel>\r\n\t</label>\r\n</template>\r\n\r\n<style module>\r\n:root {\r\n\t--top-radio-background-color: var(--content-background-color);\r\n\t--top-radio-background-color-hover: var(--top-radio-background-color);\r\n\t--top-radio-background-color-active: var(--top-radio-background-color);\r\n}\r\n\r\n.top-radio {\r\n\tcursor: pointer;\r\n}\r\n\r\n.top-radio_input {\r\n\tborder-radius: 50%;\r\n\tbackground: var(--content-background-color);\r\n\tborder: 1px solid var(--top-forms-border-color);\r\n\twidth: calc(var(--top-forms-option-height) - 3px * 2);\r\n\theight: calc(var(--top-forms-option-height) - 3px * 2);\r\n}\r\n\r\n.top-radio_input:hover {\r\n\tborder-color: var(--top-forms-option-color);\r\n\tbackground: var(--color-theme-50)\r\n}\r\n\r\n.top-radio_input:checked {\r\n\tborder-color: var(--top-forms-option-color);\r\n\tborder-width: 5px;\r\n}\r\n\r\n.top-radio_input:checked:hover {\r\n\tborder-color: var(--top-forms-option-color-hover);\r\n}\r\n\r\n/* disabled */\r\n.top-radio_input:disabled {\r\n\tborder-color: var(--color-line-1-opacity);\r\n\tbackground: var(--color-theme-50);\r\n}\r\n\r\n/* disabled selected */\r\n.top-radio_input:checked:disabled {\r\n\tborder-color: var(--color-theme-400);\r\n}\r\n\r\n/* isError */\r\n.top-radio_input.top-error {\r\n\tborder-color: var(--color-negative);\r\n}\r\n\r\n.top-radio_input.top-error:hover {\r\n\tborder-color: var(--color-negative-2);\r\n}\r\n</style>","<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\nimport type { Props, Emits } from './switcher';\r\nimport ControlLabel from '../controlLabel/controlLabel.vue';\r\n\r\nconst props = defineProps<Props>();\r\nconst emit = defineEmits<Emits>();\r\n\r\nconst localValue = computed({\r\n\tget() {\r\n\t\treturn props.modelValue;\r\n\t},\r\n\tset(value) {\r\n\t\temit('update:modelValue', value);\r\n\t},\r\n});\r\n</script>\r\n\r\n<template>\r\n\t<label\r\n\t\t:class=\"{\r\n\t\t['top-forms-optionWrapper']: true,\r\n\t\t['top-checkboxSwitcher']: true,\r\n\t\t['top-disabled']: disabled,\r\n\t\t['top-error']: isError && !disabled,\r\n\t}\"\r\n\t>\r\n\t\t<input\r\n\t\t\ttype=\"checkbox\"\r\n\t\t\t:class=\"{\r\n\t\t\t\t['top-forms-focusable']: !disabled,\r\n\t\t\t\t['top-forms-option']: true,\r\n\t\t\t\t['top-checkboxSwitcher_input']: true,\r\n\t\t\t\t['top-error']: isError && !disabled,\r\n\t\t\t}\"\r\n\t\t\tv-model=\"localValue\"\r\n\t\t\t:name=\"name\"\r\n\t\t\t:value=\"value\"\r\n\t\t\t:disabled=\"disabled\"\r\n\t\t>\r\n\r\n\t\t<ControlLabel\r\n\t\t\tv-if=\"$slots.default\"\r\n\t\t\t:description=\"description\"\r\n\t\t\t:disabled=\"disabled\"\r\n\t\t>\r\n\t\t\t<!-- @slot Слот с заголовком -->\r\n\t\t\t<slot></slot>\r\n\t\t</ControlLabel>\r\n\t</label>\r\n</template>\r\n\r\n<style module>\r\n.top-checkboxSwitcher {\r\n\tcursor: pointer;\r\n\tdisplay: inline-flex;\r\n\tgap: 4px;\r\n}\r\n\r\n.top-checkboxSwitcher_input {\r\n\tborder-radius: 9px;\r\n\tborder: none;\r\n\tbackground: var(--color-theme-100);\r\n\twidth: 36px;\r\n\theight: 18px;\r\n\tposition: relative;\r\n}\r\n\r\n.top-checkboxSwitcher_input:before {\r\n\tcontent: '';\r\n\tborder-radius: 50%;\r\n\tbackground: var(--color-white);\r\n\twidth: 12px;\r\n\theight: 12px;\r\n\tmargin: 3px;\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tleft: 0;\r\n\r\n\ttransition: left 0.1s;\r\n}\r\n\r\n.top-checkboxSwitcher_input:hover {\r\n\tbackground: var(--color-theme-150);\r\n}\r\n\r\n/* checked */\r\n.top-checkboxSwitcher_input:checked {\r\n\tbackground: var(--top-forms-option-color);\r\n}\r\n\r\n.top-checkboxSwitcher_input:checked:hover {\r\n\tbackground: var(--top-forms-option-color-hover);\r\n}\r\n\r\n.top-checkboxSwitcher_input:checked:before {\r\n\tleft: 50%;\r\n}\r\n\r\n/* disabled */\r\n.top-checkboxSwitcher_input:disabled {\r\n\tbackground: var(--color-theme-400);\r\n}\r\n\r\n/* isError */\r\n.top-checkboxSwitcher_input.top-error {\r\n\tbackground: var(--color-negative);\r\n}\r\n\r\n.top-checkboxSwitcher_input.top-error:hover {\r\n\tbackground: var(--color-negative-2);\r\n}\r\n</style>","<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\nimport Hint from '@/components/forms/hint/hint.vue';\r\nimport type { Props, Emits } from './textarea';\r\n\r\ndefineOptions({\r\n\tinheritAttrs: false,\r\n});\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\trows: 5,\r\n\tminHeight: 120,\r\n});\r\n\r\nconst emit = defineEmits<Emits>();\r\n\r\nconst value = computed({\r\n\tget () {\r\n\t\treturn props.modelValue;\r\n\t},\r\n\tset (value) {\r\n\t\temit('update:modelValue', value);\r\n\t},\r\n});\r\n</script>\r\n\r\n<template>\r\n\t<label\r\n\t\t:class=\"{\r\n\t\t\t['top-textarea']: true,\r\n\t\t\t['top-textarea-' + name]: name,\r\n\t\t\t['top-disabled']: disabled,\r\n\t\t}\"\r\n\t>\r\n\t\t<textarea\r\n\t\t\ttype=\"text\"\r\n\t\t\t:class=\"{\r\n\t\t\t\t['top-forms-focusable']: !disabled,\r\n\t\t\t\t['top-textarea_textarea']: true,\r\n\t\t\t\t['top-textarea_textarea-expandable']: expandable,\r\n\t\t\t\t['top-error']: isError,\r\n\t\t\t}\"\r\n\t\t\tautocomplete=\"off_always\"\r\n\t\t\t:name=\"name\"\r\n\t\t\t:placeholder=\"placeholder\"\r\n\t\t\t:disabled=\"disabled\"\r\n\t\t\t:readonly=\"readonly\"\r\n\t\t\t:rows=\"!expandable ? rows : undefined\"\r\n\t\t\t:=\"$attrs\"\r\n\t\t\tv-model=\"value\"\r\n\t\t/>\r\n\r\n\t\t<div\r\n\t\t\tv-if=\"expandable\"\r\n\t\t\tclass=\"top-textarea_pseudoContent\"\r\n\t\t>\r\n\t\t\t{{ value + ' ' }}\r\n\t\t</div>\r\n\r\n\t\t<Hint\r\n\t\t\tv-if=\"hint\"\r\n\t\t\tclass=\"top-textarea_hint\"\r\n\t\t\t:hint=\"hint\"\r\n\t\t\tv-top-tooltip\r\n\t\t/>\r\n\t</label>\r\n</template>\r\n\r\n<style module>\r\n.top-textarea {\r\n\twidth: 180px;\r\n\tdisplay: inline-flex;\r\n\talign-items: center;\r\n\tposition: relative;\r\n}\r\n\r\n.top-textarea_textarea {\r\n\tbackground: var(--top-forms-background-color);\r\n\twidth: 100%;\r\n\tpadding: var(--top-forms-padding);\r\n\tresize: none;\r\n}\r\n\r\n.top-textarea_textarea:hover {\r\n\tbackground: var(--top-forms-background-color-hover);\r\n}\r\n\r\n.top-textarea_textarea:focus {\r\n\toutline-color: var(--color-theme-75);\r\n\toutline-offset: 0px;\r\n}\r\n\r\n.top-textarea_textarea.top-textarea_textarea-expandable {\r\n\twidth: 100%;\r\n\theight: 100%;\r\n\toverflow: hidden;\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tleft: 0;\r\n}\r\n\r\n.top-textarea_pseudoContent {\r\n\tbox-sizing: border-box;\r\n\tmin-height: v-bind(minHeight + 'px');\r\n\tpadding: var(--top-forms-padding);\r\n\tfont-size: 14px;\r\n\twhite-space: pre-wrap;\r\n\toverflow-wrap: anywhere;\r\n\tpointer-events: none;\r\n\topacity: 0;\r\n\tz-index: -1;\r\n}\r\n\r\n.top-textarea_hint {\r\n\tposition: absolute;\r\n\ttop: 2px;\r\n\tright: 2px;\r\n}\r\n</style>","<script setup lang=\"ts\">\r\nimport { toRef, computed, watch } from 'vue';\r\nimport type { Props, Emits } from './select';\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\tsize: 's',\r\n});\r\n\r\nconst emit = defineEmits<Emits>();\r\n\r\nconst localValue = computed({\r\n\tget() {\r\n\t\treturn props.modelValue;\r\n\t},\r\n\r\n\tset(value) {\r\n\t\temit('update:modelValue', value);\r\n\t},\r\n});\r\n\r\n/**\r\n * Иконка выбранного option\r\n */\r\nconst optionIcon = computed(() => {\r\n\treturn optionByValue.value.get(localValue.value)?.icon;\r\n});\r\n\r\n/**\r\n * Словарь с доступными options\r\n */\r\nconst optionByValue = computed(() => {\r\n\tconst res = new Map();\r\n\r\n\tprops.options.forEach((option) => {\r\n\t\tif (option.disabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (option.children) {\r\n\t\t\toption.children.forEach(subOption => {\r\n\t\t\t\tif (subOption.disabled) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tres.set(subOption.value, subOption);\r\n\t\t\t});\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tres.set(option.value, option);\r\n\t});\r\n\r\n\treturn res;\r\n});\r\n\r\n/**\r\n * Логика для обртаной своместимости:\r\n * - null - заменить на первое доступное значение\r\n * - undefined - заменить на первое доступное значение\r\n */\r\nwatch([\r\n\ttoRef(props.modelValue),\r\n\toptionByValue,\r\n], () => {\r\n\tif ((localValue.value === null || localValue.value === undefined) && optionByValue.value.size) {\r\n\t\tconsole.warn('Пожалуйста, не передавайте в компонент Select значения null и undefined');\r\n\r\n\t\tlocalValue.value = optionByValue.value.keys().next().value;\r\n\t}\r\n}, { immediate: true });\r\n\r\n/**\r\n * Выбрать следующее доступное значение\r\n */\r\nconst selectNextValue = () => {\r\n\tconst listEnabledValues = [...optionByValue.value.keys()];\r\n\tconst currentIndex = listEnabledValues.indexOf(localValue.value);\r\n\tconst nextIndex = (currentIndex + 1) % listEnabledValues.length;\r\n\r\n\tlocalValue.value = listEnabledValues[nextIndex];\r\n};\r\n</script>\r\n\r\n<template>\r\n\t<label\r\n\t\t:class=\"{\r\n\t\t\t['top-select']:true,\r\n\t\t\t['top-select-' + name]:name,\r\n\t\t\t['top-size_' + size]: true,\r\n\t\t\t['top-formsCaptionWrapper']: !!title,\r\n\t\t\t['top-select-error']: isError,\r\n\t\t\t['top-disabled']: disabled,\r\n\t\t}\"\r\n\t\t:data-value=\"localValue\"\r\n\t\t:data-top-icon=\"icon\"\r\n\t\t:data-top-icon2=\"optionIcon\"\r\n\t>\r\n\t\t<select\r\n\t\t\t:class=\"{\r\n\t\t\t\t['top-forms-focusable']: !disabled,\r\n\t\t\t\t['top-select_select']: true,\r\n\t\t\t\t['top-select_arrow']: true,\r\n\t\t\t\t['top-error']: isError,\r\n\t\t\t}\"\r\n\t\t\t:name=\"name\"\r\n\t\t\t:disabled=\"disabled\"\r\n\t\t\tv-model=\"localValue\"\r\n\t\t>\r\n\t\t\t<template v-for=\"[_index, option] of options.entries()\">\r\n\t\t\t\t<optgroup\r\n\t\t\t\t\tv-if=\"option.children\"\r\n\t\t\t\t\t:key=\"'group_' + option.value\"\r\n\t\t\t\t\t:label=\"option.title\"\r\n\t\t\t\t\t:disabled=\"option.disabled\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<option\r\n\t\t\t\t\t\tv-for=\"[_index, subOption] of option.children.entries()\"\r\n\t\t\t\t\t\t:key=\"option.value\"\r\n\t\t\t\t\t\t:value=\"subOption.value\"\r\n\t\t\t\t\t\t:selected=\"subOption.value === localValue\"\r\n\t\t\t\t\t\t:disabled=\"subOption.disabled\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{ subOption.title }}\r\n\t\t\t\t\t</option>\r\n\t\t\t\t</optgroup>\r\n\r\n\t\t\t\t<option\r\n\t\t\t\t\tv-else\r\n\t\t\t\t\t:key=\"option.value\"\r\n\t\t\t\t\t:value=\"option.value\"\r\n\t\t\t\t\t:selected=\"option.value === localValue\"\r\n\t\t\t\t\t:disabled=\"option.disabled\"\r\n\t\t\t\t>\r\n\t\t\t\t\t{{ option.title }}\r\n\t\t\t\t</option>\r\n\t\t\t</template>\r\n\t\t</select>\r\n\r\n\t\t<span\r\n\t\t\tv-if=\"addChanger && optionByValue.size && !disabled\"\r\n\t\t\tclass=\"top-changer\"\r\n\t\t\t@click=\"selectNextValue\"\r\n\t\t></span>\r\n\r\n\t\t<span\r\n\t\t\tv-if=\"title\"\r\n\t\t\tclass=\"top-formsCaption\"\r\n\t\t>\r\n\t\t\t{{ title }}\r\n\t\t</span>\r\n\t</label>\r\n</template>\r\n\r\n<style module>\r\n.top-select {\r\n\t--top-icon-color: var(--color-text-3);\r\n\t--top-icon2-color: var(--color-text-2);\r\n\r\n\talign-items: center;\r\n\twidth: 180px;\r\n\tmax-width: 100%;\r\n\tdisplay: inline-flex;\r\n}\r\n\r\n.top-select-error {\r\n\t--top-icon-color: var(--color-negative);\r\n\t--top-icon2-color: var(--color-negative);\r\n}\r\n\r\n.top-select_select {\r\n\tbackground-color: var(--top-forms-background-color);\r\n\r\n\t/* для select вместо padding нужно использовать text-indent */\r\n\tpadding-left: var(--top-forms-padding);\r\n\r\n\t/* если есть значки, добавить отступ на их ширину с учетом уже добавленного padding */\r\n\ttext-indent: calc(clamp(0px, calc(var(--top-icon-both-width) - var(--top-forms-padding)), calc(var(--top-icon-both-width) - var(--top-forms-padding))));\r\n\r\n\twidth: 100%;\r\n\theight: var(--top-forms-base-height);\r\n\ttext-overflow: ellipsis;\r\n\twhite-space: nowrap;\r\n\tflex-grow: 1;\r\n\toverflow: hidden;\r\n}\r\n\r\n.top-select_select:focus {\r\n\toutline-color: var(--color-theme-75);\r\n\toutline-offset: 0;\r\n}\r\n\r\n.top-select_select:disabled {\r\n\tbackground: var(--color-theme-50);\r\n}\r\n\r\n.top-select optgroup {\r\n\tcolor: var(--color-text-1);\r\n\tfont-style: normal;\r\n}\r\n\r\n.top-select option {\r\n\tbackground: var(--content-background-color);\r\n\tcolor: var(--color-text-1);\r\n}\r\n\r\n/* хром не мерняет цвет для optgroup option, стили оставлены по умолчанию */\r\n/*\r\n.top-select optgroup:disabled,\r\n.top-select optgroup option,\r\n.top-select option:disabled {\r\n\r\n}\r\n*/\r\n\r\n/* https://bugzilla.mozilla.org/show_bug.cgi?id=1743066 */\r\n@-moz-document url-prefix() {\r\n\t.top-select_select {\r\n\t\ttext-indent: calc(clamp(0px, calc(var(--top-icon-both-width) - var(--top-forms-padding)), calc(var(--top-icon-both-width) - var(--top-forms-padding))) / 2);\r\n\t}\r\n}\r\n\r\n@media only screen and (min-width: 900px) {\r\n\t/* changer */\r\n\t.top-changer {\r\n\t\tcursor: pointer;\r\n\t\tborder-radius: 100%;\r\n\t\twidth: 0;\r\n\t\ttransform: translateX(-44px);\r\n\t\tcolor: var(--color-text-secondary-2);\r\n\t\tfont-size: 16px;\r\n\t\tline-height: 1;\r\n\t\tdisplay: none;\r\n\t\tz-index: 2;\r\n\t\torder: 4;\r\n\t}\r\n\r\n\t.top-changer:hover {\r\n\t\tcolor: var(--color-primary);\r\n\t}\r\n\r\n\t.top-changer:after {\r\n\t\tcontent: '';\r\n\t\tbackground-color: var(--top-forms-background-color);\r\n\t\tfont-family: 'Topvisor-2';\r\n\t}\r\n\r\n\t*:hover > .top-changer {\r\n\t\tdisplay: block;\r\n\t}\r\n}\r\n</style>"],"names":["Device","isChrome","isSafari","onResizeDelay","onResizeTimer","onResizeListeners","windowSize","addOnReize","listener","removeOnResize","onResize","e","callback","Events","options","state","_window","$","el","tvTooltipGenOptions","binding","vnode","_a","tooltip","_prevVnode","instance","Core","reactive","style","type","media","elStyle","app","directiveTooltip","device","UtilsDate","date","ms","useFormat","d","m","Y","H","i","s","time","emptyValue","dateFormat","dateForObj","dateObject","result","dateChunks","dateFormatChunks","y","index","tagName","computed","props","localValue","value","emit","placeholder","clean","useNativeDatepicker","onInputLazy","_e","ref","oninput","onchange","dateUnformat","init","datepicker","resolve","reject","require","$el","onUnmounted","optionIcon","optionByValue","res","option","subOption","watch","toRef","selectNextValue","listEnabledValues","nextIndex"],"mappings":"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"}