@topvisor/ui 0.9.5 → 0.9.6

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 (45) hide show
  1. package/.chunks/{datepicker-cc0011e1.amd.js → datepicker-2f8eb2f7.amd.js} +2 -2
  2. package/.chunks/{datepicker-cc0011e1.amd.js.map → datepicker-2f8eb2f7.amd.js.map} +1 -1
  3. package/.chunks/{datepicker-78c2af5a.es.js → datepicker-a62ae260.es.js} +2 -2
  4. package/.chunks/{datepicker-78c2af5a.es.js.map → datepicker-a62ae260.es.js.map} +1 -1
  5. package/.chunks/forms-2250b8db.amd.js +3 -0
  6. package/.chunks/forms-2250b8db.amd.js.map +1 -0
  7. package/.chunks/{forms-9516aa6c.es.js → forms-260b848a.es.js} +5 -4
  8. package/.chunks/forms-260b848a.es.js.map +1 -0
  9. package/.chunks/{popup-d96418da.amd.js → popup-3a721019.amd.js} +2 -2
  10. package/.chunks/{popup-d96418da.amd.js.map → popup-3a721019.amd.js.map} +1 -1
  11. package/.chunks/{popup-70a8c892.es.js → popup-90783ce2.es.js} +2 -2
  12. package/.chunks/{popup-70a8c892.es.js.map → popup-90783ce2.es.js.map} +1 -1
  13. package/assets/core.css +1 -1
  14. package/assets/forms.css +1 -1
  15. package/core/core.amd.js +1 -1
  16. package/core/core.js +1 -1
  17. package/forms/forms.amd.js +1 -1
  18. package/forms/forms.js +1 -1
  19. package/forms/helpers.amd.js +1 -1
  20. package/forms/helpers.amd.js.map +1 -1
  21. package/forms/helpers.js +2 -2
  22. package/forms/helpers.js.map +1 -1
  23. package/formsExt/formsExt.amd.js +1 -1
  24. package/formsExt/formsExt.js +1 -1
  25. package/package.json +1 -1
  26. package/popup/popup.amd.js +1 -1
  27. package/popup/popup.js +1 -1
  28. package/popup/worker.amd.js +1 -1
  29. package/popup/worker.js +2 -2
  30. package/src/components/forms/button/button.stories.d.ts +6 -1
  31. package/src/components/forms/button/button.vue.d.ts +1 -0
  32. package/src/components/forms/helpers.d.ts +1 -1
  33. package/src/components/popup/popup/popup.stories.d.ts +1 -0
  34. package/src/components/tabs/tabs/tabs.stories.d.ts +1 -0
  35. package/tabs/tabs.amd.js +1 -1
  36. package/tabs/tabs.js +1 -1
  37. package/tabsView/tabsView.amd.js +1 -1
  38. package/tabsView/tabsView.js +1 -1
  39. package/utils/date.amd.js +1 -1
  40. package/utils/date.js +1 -1
  41. package/utils/device.amd.js +1 -1
  42. package/utils/device.js +1 -1
  43. package/.chunks/forms-9516aa6c.es.js.map +0 -1
  44. package/.chunks/forms-9972aba2.amd.js +0 -3
  45. package/.chunks/forms-9972aba2.amd.js.map +0 -1
@@ -1,2 +1,2 @@
1
- define(["require","exports","vue","../.chunks/forms-9972aba2.amd","../require/css.amd!../assets/formsExt.css"],function(K,y,e,u){"use strict";if(typeof e>"u")var e=window.Vue;const v={key:0,class:"top-editArea_title"},V={class:"top-editArea_footer"},b=e.defineComponent({__name:"editArea",props:{modelValue:{},title:{},cancelText:{default:"Отмена"},submitText:{default:"Отправить"},attachToKeyboard:{type:Boolean},name:{},placeholder:{},rows:{},minHeight:{},expandable:{type:Boolean,default:!0},disabled:{type:Boolean},readonly:{type:Boolean},isError:{type:Boolean},hint:{}},emits:["update:modelValue","cancel"],setup(p,{emit:c}){const r=p,d=c,n=e.ref(""),l=e.ref(r.modelValue);e.watch(e.toRef(r,"modelValue"),()=>{l.value=r.modelValue});const o=e.computed(()=>l.value!==r.modelValue),i=t=>{d("update:modelValue",t)},a=()=>{d("cancel"),l.value=r.modelValue};return(t,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-editArea":!0,"top-editArea-attachedToKeyboard":t.attachToKeyboard})},[t.title?(e.openBlock(),e.createElementBlock("div",v,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass({"top-editArea_form":!0,"top-error":t.isError,"top-focus":n.value=="focus"})},[e.createVNode(u.Textarea,{modelValue:l.value,"onUpdate:modelValue":s[0]||(s[0]=m=>l.value=m),name:t.name,placeholder:t.placeholder,rows:t.rows,minHeight:t.minHeight,expandable:t.expandable,disabled:t.disabled,readonly:t.readonly,isError:t.isError,hint:t.hint,class:"top-editArea_element",onFocus:s[1]||(s[1]=m=>n.value="focus"),onBlur:s[2]||(s[2]=m=>n.value=""),onKeyup:[e.withKeys(a,["esc"]),s[3]||(s[3]=e.withKeys(e.withModifiers(m=>i(l.value),["ctrl"]),["enter"]))]},null,8,["modelValue","name","placeholder","rows","minHeight","expandable","disabled","readonly","isError","hint"]),e.createElementVNode("div",V,[o.value&&(!t.attachToKeyboard||t.modelValue)?(e.openBlock(),e.createBlock(u.Button,{key:0,class:"top-editArea_button",color:"theme",icon:t.attachToKeyboard?"":"",onClick:a},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.attachToKeyboard?"":t.cancelText),1)]),_:1},8,["icon"])):e.createCommentVNode("",!0),e.createVNode(u.Button,{class:"top-editArea_button",icon:t.attachToKeyboard?"":"",onClick:s[4]||(s[4]=m=>i(l.value))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.attachToKeyboard?"":t.submitText),1)]),_:1},8,["icon"])])],2)],2))}}),f={$style:{"top-editArea":"top-editArea","top-editArea_title":"top-editArea_title","top-editArea_form":"top-editArea_form","top-textarea":"top-textarea","top-editArea_element":"top-editArea_element","top-textarea_textarea":"top-textarea_textarea","top-editArea_footer":"top-editArea_footer","top-editArea-attachedToKeyboard":"top-editArea-attachedToKeyboard"}},h=u._export_sfc(b,[["__cssModules",f]]),B={class:"top-editInput"},k=e.defineComponent({__name:"editInput",props:{modelValue:{},input:{},button:{}},emits:["update:modelValue"],setup(p,{emit:c}){const r=p,d=e.ref(r.modelValue);e.watch(e.toRef(r.modelValue),()=>{d.value=r.modelValue});const n=c,l=()=>{n("update:modelValue",d.value)};return(o,i)=>(e.openBlock(),e.createElementBlock("div",B,[e.createVNode(u.Input,e.mergeProps(o.input,{onKeydownCapture:i[0]||(i[0]=e.withKeys(e.withModifiers(a=>d.value=o.modelValue,["stop"]),["esc"])),onKeydown:e.withKeys(e.withModifiers(l,["stop"]),["enter"]),modelValue:d.value,"onUpdate:modelValue":i[1]||(i[1]=a=>d.value=a)}),null,16,["onKeydown","modelValue"]),d.value!==o.modelValue?(e.openBlock(),e.createBlock(u.Button,e.mergeProps({key:0,icon:"",styling:"soft"},o.button,{onClick:l}),{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},16)):e.createCommentVNode("",!0)]))}}),w={$style:{"top-editInput":"top-editInput","top-input":"top-input"}},_=u._export_sfc(k,[["__cssModules",w]]),A=["data-top-icon","onClick"],C={key:0,class:"top-radioGroup_circle"},$=["value","disabled"],E=e.defineComponent({__name:"radioGroup",props:{modelValue:{},radiosProps:{},showIndicator:{type:Boolean},size:{default:"s"},isError:{type:Boolean}},emits:["update:modelValue"],setup(p,{emit:c}){const r=p,d=c,n=e.computed({get(){return r.modelValue},set(o){d("update:modelValue",o)}}),l="radioGroup-"+Math.random();return(o,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-radioGroup":!0,"top-scrollBarXHidding":!0,["top-size_"+o.size]:!!o.size,"top-error":o.isError})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.radiosProps,a=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass({"top-radioGroup_item-selected":a.value===n.value,"top-radioGroup_item":!0,"top-forms-focusable":!0,"top-disabled":a.disabled}),"data-top-icon":a.icon,onClick:t=>n.value=a.value},[e.createTextVNode(e.toDisplayString(a.title)+" ",1),o.showIndicator?(e.openBlock(),e.createElementBlock("span",C)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":i[0]||(i[0]=t=>n.value=t),name:l,type:"radio",class:e.normalizeClass({"top-unvisible":!0}),value:a.value,disabled:a.disabled},null,8,$),[[e.vModelRadio,n.value]])],10,A))),256))],2))}}),g={$style:{"top-scrollBarXHidding":"top-scrollBarXHidding","top-radioGroup":"top-radioGroup","top-radioGroup_item":"top-radioGroup_item","top-radioGroup_item-selected":"top-radioGroup_item-selected","top-radioGroup_circle":"top-radioGroup_circle","top-disabled":"top-disabled","top-error":"top-error"}},T=u._export_sfc(E,[["__cssModules",g]]);y.EditArea=h,y.EditInput=_,y.RadioGroup=T,Object.defineProperty(y,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","vue","../.chunks/forms-2250b8db.amd","../require/css.amd!../assets/formsExt.css"],function(K,y,e,u){"use strict";if(typeof e>"u")var e=window.Vue;const v={key:0,class:"top-editArea_title"},V={class:"top-editArea_footer"},b=e.defineComponent({__name:"editArea",props:{modelValue:{},title:{},cancelText:{default:"Отмена"},submitText:{default:"Отправить"},attachToKeyboard:{type:Boolean},name:{},placeholder:{},rows:{},minHeight:{},expandable:{type:Boolean,default:!0},disabled:{type:Boolean},readonly:{type:Boolean},isError:{type:Boolean},hint:{}},emits:["update:modelValue","cancel"],setup(p,{emit:c}){const r=p,d=c,n=e.ref(""),l=e.ref(r.modelValue);e.watch(e.toRef(r,"modelValue"),()=>{l.value=r.modelValue});const o=e.computed(()=>l.value!==r.modelValue),i=t=>{d("update:modelValue",t)},a=()=>{d("cancel"),l.value=r.modelValue};return(t,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-editArea":!0,"top-editArea-attachedToKeyboard":t.attachToKeyboard})},[t.title?(e.openBlock(),e.createElementBlock("div",v,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass({"top-editArea_form":!0,"top-error":t.isError,"top-focus":n.value=="focus"})},[e.createVNode(u.Textarea,{modelValue:l.value,"onUpdate:modelValue":s[0]||(s[0]=m=>l.value=m),name:t.name,placeholder:t.placeholder,rows:t.rows,minHeight:t.minHeight,expandable:t.expandable,disabled:t.disabled,readonly:t.readonly,isError:t.isError,hint:t.hint,class:"top-editArea_element",onFocus:s[1]||(s[1]=m=>n.value="focus"),onBlur:s[2]||(s[2]=m=>n.value=""),onKeyup:[e.withKeys(a,["esc"]),s[3]||(s[3]=e.withKeys(e.withModifiers(m=>i(l.value),["ctrl"]),["enter"]))]},null,8,["modelValue","name","placeholder","rows","minHeight","expandable","disabled","readonly","isError","hint"]),e.createElementVNode("div",V,[o.value&&(!t.attachToKeyboard||t.modelValue)?(e.openBlock(),e.createBlock(u.Button,{key:0,class:"top-editArea_button",color:"theme",icon:t.attachToKeyboard?"":"",onClick:a},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.attachToKeyboard?"":t.cancelText),1)]),_:1},8,["icon"])):e.createCommentVNode("",!0),e.createVNode(u.Button,{class:"top-editArea_button",icon:t.attachToKeyboard?"":"",onClick:s[4]||(s[4]=m=>i(l.value))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.attachToKeyboard?"":t.submitText),1)]),_:1},8,["icon"])])],2)],2))}}),f={$style:{"top-editArea":"top-editArea","top-editArea_title":"top-editArea_title","top-editArea_form":"top-editArea_form","top-textarea":"top-textarea","top-editArea_element":"top-editArea_element","top-textarea_textarea":"top-textarea_textarea","top-editArea_footer":"top-editArea_footer","top-editArea-attachedToKeyboard":"top-editArea-attachedToKeyboard"}},h=u._export_sfc(b,[["__cssModules",f]]),B={class:"top-editInput"},k=e.defineComponent({__name:"editInput",props:{modelValue:{},input:{},button:{}},emits:["update:modelValue"],setup(p,{emit:c}){const r=p,d=e.ref(r.modelValue);e.watch(e.toRef(r.modelValue),()=>{d.value=r.modelValue});const n=c,l=()=>{n("update:modelValue",d.value)};return(o,i)=>(e.openBlock(),e.createElementBlock("div",B,[e.createVNode(u.Input,e.mergeProps(o.input,{onKeydownCapture:i[0]||(i[0]=e.withKeys(e.withModifiers(a=>d.value=o.modelValue,["stop"]),["esc"])),onKeydown:e.withKeys(e.withModifiers(l,["stop"]),["enter"]),modelValue:d.value,"onUpdate:modelValue":i[1]||(i[1]=a=>d.value=a)}),null,16,["onKeydown","modelValue"]),d.value!==o.modelValue?(e.openBlock(),e.createBlock(u.Button,e.mergeProps({key:0,icon:"",styling:"soft"},o.button,{onClick:l}),{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},16)):e.createCommentVNode("",!0)]))}}),w={$style:{"top-editInput":"top-editInput","top-input":"top-input"}},_=u._export_sfc(k,[["__cssModules",w]]),A=["data-top-icon","onClick"],C={key:0,class:"top-radioGroup_circle"},$=["value","disabled"],E=e.defineComponent({__name:"radioGroup",props:{modelValue:{},radiosProps:{},showIndicator:{type:Boolean},size:{default:"s"},isError:{type:Boolean}},emits:["update:modelValue"],setup(p,{emit:c}){const r=p,d=c,n=e.computed({get(){return r.modelValue},set(o){d("update:modelValue",o)}}),l="radioGroup-"+Math.random();return(o,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-radioGroup":!0,"top-scrollBarXHidding":!0,["top-size_"+o.size]:!!o.size,"top-error":o.isError})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.radiosProps,a=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass({"top-radioGroup_item-selected":a.value===n.value,"top-radioGroup_item":!0,"top-forms-focusable":!0,"top-disabled":a.disabled}),"data-top-icon":a.icon,onClick:t=>n.value=a.value},[e.createTextVNode(e.toDisplayString(a.title)+" ",1),o.showIndicator?(e.openBlock(),e.createElementBlock("span",C)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":i[0]||(i[0]=t=>n.value=t),name:l,type:"radio",class:e.normalizeClass({"top-unvisible":!0}),value:a.value,disabled:a.disabled},null,8,$),[[e.vModelRadio,n.value]])],10,A))),256))],2))}}),g={$style:{"top-scrollBarXHidding":"top-scrollBarXHidding","top-radioGroup":"top-radioGroup","top-radioGroup_item":"top-radioGroup_item","top-radioGroup_item-selected":"top-radioGroup_item-selected","top-radioGroup_circle":"top-radioGroup_circle","top-disabled":"top-disabled","top-error":"top-error"}},T=u._export_sfc(E,[["__cssModules",g]]);y.EditArea=h,y.EditInput=_,y.RadioGroup=T,Object.defineProperty(y,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=formsExt.amd.js.map
@@ -1,6 +1,6 @@
1
1
  import { insertToPage as I } from "../utils/css.js";
2
2
  import { defineComponent as G, ref as f, watch as K, toRef as k, computed as C, openBlock as n, createElementBlock as p, normalizeClass as v, toDisplayString as y, createCommentVNode as b, createElementVNode as h, createVNode as A, withKeys as V, withModifiers as _, createBlock as E, withCtx as T, createTextVNode as $, mergeProps as w, renderSlot as H, Fragment as z, renderList as N, withDirectives as P, vModelRadio as S } from "vue";
3
- import { T as U, B, _ as g, I as R } from "../.chunks/forms-9516aa6c.es.js";
3
+ import { T as U, B, _ as g, I as R } from "../.chunks/forms-260b848a.es.js";
4
4
  const M = ["../assets/formsExt.css"].map((u) => import.meta.resolve(u));
5
5
  await I(M);
6
6
  const X = {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@topvisor/ui",
3
3
  "private": false,
4
- "version": "0.9.5",
4
+ "version": "0.9.6",
5
5
  "type": "module",
6
6
  "description": "Topvisor UI-kit Vue",
7
7
  "author": "Topvisor",
@@ -1,2 +1,2 @@
1
- define(["require","exports","vue","../.chunks/forms-9972aba2.amd","./worker.amd","../utils/dom.amd","../require/css.amd!../assets/popup.css"],function(P,c,e,d,i,$){"use strict";if(typeof e>"u")var e=window.Vue;const m=e.defineComponent({__name:"opener",props:{id:{},pos:{default:"3"},notch:{type:Boolean,default:!0},openByHover:{type:Boolean},posBy:{default:"fixed"}},setup(a){const t=a,p=t.id||Math.random()+"";let s;function u(n){setTimeout(()=>{s=n.nextElementSibling,s&&l(s)})}e.onUpdated(()=>{s&&l(s)});function l(n){n.dataset.topPopup="vue-"+p,n.dataset.topPopupId=p,n.dataset.topPopupP=t.pos,n.dataset.topPopupPosBy=t.posBy,n.dataset.topPopupNotch=t.notch?"true":"",n.dataset.topPopupOpenByHover=t.openByHover?"true":""}return(n,C)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("template",{ref:u}),e.renderSlot(n.$slots,"default")],64))}}),S="",f={key:0,class:"top-popup_header"},B={key:0,class:"top-as-a closer"},y={key:1,class:"top-popup_content"},k={key:2,class:"top-popup_content"},_={key:3,class:"top-popup_footer"},h=e.defineComponent({__name:"popup",props:{id:{default:""},class:{},pos:{default:"3"},notch:{type:Boolean,default:!0},openByHover:{type:Boolean},posBy:{default:"fixed"}},emits:["open","close"],setup(a,{emit:t}){const p=a,s=t,u=p.id||Math.random()+"",l=e.ref(null),r={onOpen:async o=>{o.elPopupInner.innerText="",l.value=o.elPopupInner,r.opened=!0,r.popup=o,s("open")},onClose:o=>{l.value=null,r.opened=!1,r.popup=null,s("close")},classRef:e.toRef(p,"class"),opened:!1,popup:null};return i.PopupWorker.regVueComponent(u,r),e.onUnmounted(()=>{i.PopupWorker.unregVueComponent(u)}),(o,b)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[o.$slots.opener?(e.openBlock(),e.createBlock(m,{key:0,id:e.unref(u),pos:o.pos,posBy:o.posBy,notch:o.notch,openByHover:o.openByHover},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"opener")]),_:3},8,["id","pos","posBy","notch","openByHover"])):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createBlock(e.Teleport,{key:1,to:l.value},[o.$slots.header||e.unref(d.Core).state.isMobile?(e.openBlock(),e.createElementBlock("div",f,[e.unref(d.Core).state.isMobile?(e.openBlock(),e.createElementBlock("span",B,e.toDisplayString(r.popup.options.i18n.Close),1)):e.createCommentVNode("",!0),e.renderSlot(o.$slots,"header")])):e.createCommentVNode("",!0),o.$slots.content?(e.openBlock(),e.createElementBlock("div",y,[e.renderSlot(o.$slots,"content")])):e.createCommentVNode("",!0),o.$slots.contentList?(e.openBlock(),e.createElementBlock("ul",k,[e.renderSlot(o.$slots,"contentList")])):e.createCommentVNode("",!0),o.$slots.footer?(e.openBlock(),e.createElementBlock("div",_,[e.renderSlot(o.$slots,"footer")])):e.createCommentVNode("",!0)],8,["to"])):e.createCommentVNode("",!0)],64))}}),v=e.defineComponent({inheritAttrs:!1,__name:"listItem",props:{type:{default:"button"},closeByClick:{type:Boolean,default:!0}},setup(a){const t=a;return(p,s)=>(e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass({"top-popup_liNoSelectable":t.type!=="button"})},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p.$attrs.href?"a":"div"),e.mergeProps({class:{"top-popup_listItem":!0,"top-popup_listItem-button":t.type==="button",a:t.type==="button","top-popup_listItem-title":t.type==="title","top-popup_listItem-delimiter":t.type==="delimiter","top-popup-noCloser":!p.closeByClick}},p.$attrs),{default:e.withCtx(()=>[e.renderSlot(p.$slots,"default")]),_:3},16,["class"]))],2))}});c.Popup=h,c.PopupListItem=v,c.PopupOpener=m,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","vue","../.chunks/forms-2250b8db.amd","./worker.amd","../utils/dom.amd","../require/css.amd!../assets/popup.css"],function(P,c,e,d,i,$){"use strict";if(typeof e>"u")var e=window.Vue;const m=e.defineComponent({__name:"opener",props:{id:{},pos:{default:"3"},notch:{type:Boolean,default:!0},openByHover:{type:Boolean},posBy:{default:"fixed"}},setup(a){const t=a,p=t.id||Math.random()+"";let s;function u(n){setTimeout(()=>{s=n.nextElementSibling,s&&l(s)})}e.onUpdated(()=>{s&&l(s)});function l(n){n.dataset.topPopup="vue-"+p,n.dataset.topPopupId=p,n.dataset.topPopupP=t.pos,n.dataset.topPopupPosBy=t.posBy,n.dataset.topPopupNotch=t.notch?"true":"",n.dataset.topPopupOpenByHover=t.openByHover?"true":""}return(n,C)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("template",{ref:u}),e.renderSlot(n.$slots,"default")],64))}}),S="",f={key:0,class:"top-popup_header"},B={key:0,class:"top-as-a closer"},y={key:1,class:"top-popup_content"},k={key:2,class:"top-popup_content"},_={key:3,class:"top-popup_footer"},h=e.defineComponent({__name:"popup",props:{id:{default:""},class:{},pos:{default:"3"},notch:{type:Boolean,default:!0},openByHover:{type:Boolean},posBy:{default:"fixed"}},emits:["open","close"],setup(a,{emit:t}){const p=a,s=t,u=p.id||Math.random()+"",l=e.ref(null),r={onOpen:async o=>{o.elPopupInner.innerText="",l.value=o.elPopupInner,r.opened=!0,r.popup=o,s("open")},onClose:o=>{l.value=null,r.opened=!1,r.popup=null,s("close")},classRef:e.toRef(p,"class"),opened:!1,popup:null};return i.PopupWorker.regVueComponent(u,r),e.onUnmounted(()=>{i.PopupWorker.unregVueComponent(u)}),(o,b)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[o.$slots.opener?(e.openBlock(),e.createBlock(m,{key:0,id:e.unref(u),pos:o.pos,posBy:o.posBy,notch:o.notch,openByHover:o.openByHover},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"opener")]),_:3},8,["id","pos","posBy","notch","openByHover"])):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createBlock(e.Teleport,{key:1,to:l.value},[o.$slots.header||e.unref(d.Core).state.isMobile?(e.openBlock(),e.createElementBlock("div",f,[e.unref(d.Core).state.isMobile?(e.openBlock(),e.createElementBlock("span",B,e.toDisplayString(r.popup.options.i18n.Close),1)):e.createCommentVNode("",!0),e.renderSlot(o.$slots,"header")])):e.createCommentVNode("",!0),o.$slots.content?(e.openBlock(),e.createElementBlock("div",y,[e.renderSlot(o.$slots,"content")])):e.createCommentVNode("",!0),o.$slots.contentList?(e.openBlock(),e.createElementBlock("ul",k,[e.renderSlot(o.$slots,"contentList")])):e.createCommentVNode("",!0),o.$slots.footer?(e.openBlock(),e.createElementBlock("div",_,[e.renderSlot(o.$slots,"footer")])):e.createCommentVNode("",!0)],8,["to"])):e.createCommentVNode("",!0)],64))}}),v=e.defineComponent({inheritAttrs:!1,__name:"listItem",props:{type:{default:"button"},closeByClick:{type:Boolean,default:!0}},setup(a){const t=a;return(p,s)=>(e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass({"top-popup_liNoSelectable":t.type!=="button"})},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p.$attrs.href?"a":"div"),e.mergeProps({class:{"top-popup_listItem":!0,"top-popup_listItem-button":t.type==="button",a:t.type==="button","top-popup_listItem-title":t.type==="title","top-popup_listItem-delimiter":t.type==="delimiter","top-popup-noCloser":!p.closeByClick}},p.$attrs),{default:e.withCtx(()=>[e.renderSlot(p.$slots,"default")]),_:3},16,["class"]))],2))}});c.Popup=h,c.PopupListItem=v,c.PopupOpener=m,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=popup.amd.js.map
package/popup/popup.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { insertToPage as C } from "../utils/css.js";
2
2
  import { defineComponent as y, onUpdated as k, openBlock as p, createElementBlock as l, Fragment as h, createElementVNode as I, renderSlot as i, ref as b, toRef as g, onUnmounted as H, createBlock as f, unref as m, withCtx as v, createCommentVNode as u, Teleport as S, toDisplayString as N, normalizeClass as T, resolveDynamicComponent as M, mergeProps as V } from "vue";
3
- import { C as _ } from "../.chunks/forms-9516aa6c.es.js";
3
+ import { C as _ } from "../.chunks/forms-260b848a.es.js";
4
4
  import { PopupWorker as B } from "./worker.js";
5
5
  import "../utils/dom.js";
6
6
  const $ = ["../assets/popup.css"].map((r) => import.meta.resolve(r));
@@ -1,2 +1,2 @@
1
- define(["require","exports","../.chunks/forms-9972aba2.amd","../utils/dom.amd","vue"],function(require,exports,forms,utils_dom,vue){"use strict";if(typeof vue>"u")var vue=window.Vue;class WorkerEvents{static init(){document.addEventListener("mouseover",t=>{var o;(o=t.target.dataset)!=null&&o.topPopupOpenByHover&&t.target.click()}),document.addEventListener("scroll",()=>{forms.Core.isMobile||Worker$1.getAll().forEach(t=>Worker$1.close(t))}),forms.Events.addOnReize(t=>{forms.Core.state.isMobile&&t.topEvent.widthDiff&&Worker$1.getAll().forEach(o=>Worker$1.close(o))}),document.addEventListener("click",this.onclick)}static async onclick(t){var s,r,a,p;let o;switch(!0){case!!((s=t.target.dataset)!=null&&s.topPopup):o=t.target;break;case!!((r=t.target.parentElement)!=null&&r.dataset.topPopup):o=t.target.parentElement;break;case!!((p=(a=t.target.parentElement)==null?void 0:a.parentElement)!=null&&p.dataset.topPopup):o=t.target.parentElement.parentElement;break}o&&(o.dataset.topPopupDisabled||o.dataset.topPopupOpened||(t.preventDefault(),await Worker$1.openByOpener(o)))}}let decoratorBeforeOpen,decoratorAfterOpen,decoratorIsIgnoreOuterClick,i18n={Close:"Close"};class Worker{static noClose=!1;static vueConnectors=new Map;static onInitApp(e){decoratorBeforeOpen=e==null?void 0:e.decoratorBeforeOpen,decoratorAfterOpen=e==null?void 0:e.decoratorAfterOpen,decoratorIsIgnoreOuterClick=e==null?void 0:e.decoratorIsIgnoreOuterClick,i18n=e==null?void 0:e.i18n}static getPopup(e){return utils_dom.default.storage(e,"Popup")}static getAll(){return utils_dom.default.querySelectorAllArray(document,".top-popup-wrapper")}static getAllVisible(){return utils_dom.default.querySelectorAllVisible(document,".top-popup-wrapper")}static async openByOpener(e){const t={};return t.popup=e.dataset.topPopup,e.dataset.topPopupP&&(t.p=parseInt(e.dataset.topPopupP)),e.dataset.topPopupNotch&&(t.notch=e.dataset.topPopupNotch),e.dataset.topPopupClass&&(t.class=e.dataset.topPopupClass),e.dataset.topPopupPosBy&&(t.posBy=e.dataset.topPopupPosBy),e.dataset.topPopupFront&&(t.frontSelector=e.dataset.topPopupFront),e.dataset.topPopupInvertX&&(t.invertX=e.dataset.topPopupInvertX),e.dataset.topPopupOpenByHover&&(t.openByHover=e.dataset.topPopupOpenByHover),e.dataset.topPopupUseOriginal&&(t.useOriginal=e.dataset.topPopupUseOriginal),await Worker.open(e,t)}static async open(elOpener,options){elOpener.dataset.topPopupOpened="opened";const{default:Popup}=await new Promise((e,t)=>require(["../.chunks/popup-d96418da.amd"],e,t));if(typeof jQuery=="function"){const $elOpener=jQuery(elOpener);if($elOpener.data("aftershow")){let afterShow=$elOpener.data("aftershow");typeof afterShow=="string"&&(afterShow=eval(afterShow.replace(/\W/g,""))),$elOpener.one("aftershow.top-menu-popup",afterShow)}if($elOpener.data("afterclose")){let afterclose=$elOpener.data("afterclose");typeof afterclose=="string"&&(afterclose=eval(afterclose.replace(/\W/g,""))),$elOpener.one("afterclose.top-menu-popup",afterclose)}}return options.isFullScreen=forms.Core.state.isMobile,options.i18n=i18n,await new Popup(elOpener,options)}static close(e){const t=Worker.getPopup(e);t&&t.close()}static recalcPosition(e){const t=Worker.getPopup(e);t&&(t.recalcPosition(),HelperCommon.genHasScroll($(t.elPopupBody)))}static scrollToActive(e){if(!utils_dom.default.querySelectorVisible(e,"ul.top-popup_content > li > .top-active"))return;const o=e.querySelector("ul.top-popup_content"),s=utils_dom.default.querySelectorAllVisible(e,"ul.top-popup_content > li");e.classList.add("top-popup-wrapper-no_animate"),setTimeout(()=>e.classList.remove("top-popup-wrapper-no_animate"),100);let r=100;for(const p of s){if(p.querySelector(":scope > .top-active"))break;r+=p.offsetHeight}const a=o.offsetHeight;r>a?o.scrollTop=r-a:o.scrollTop=0}static decoratorBeforeOpen(e){decoratorBeforeOpen&&decoratorBeforeOpen(e)}static decoratorAfterOpen(e){decoratorAfterOpen&&decoratorAfterOpen(e)}static decoratorIsIgnoreOuterClick(e){return decoratorIsIgnoreOuterClick?decoratorIsIgnoreOuterClick(e):!1}static regVueComponent(e,t){if(Worker.vueConnectors.get(e))throw"Vue component Popup use duplicated id: "+e;Worker.vueConnectors.set(e,t)}static unregVueComponent(e){Worker.vueConnectors.delete(e)}}WorkerEvents.init(Worker,forms.Core);const Worker$1=Worker;exports.PopupWorker=Worker$1,exports.default=Worker$1,Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
1
+ define(["require","exports","../.chunks/forms-2250b8db.amd","../utils/dom.amd","vue"],function(require,exports,forms,utils_dom,vue){"use strict";if(typeof vue>"u")var vue=window.Vue;class WorkerEvents{static init(){document.addEventListener("mouseover",t=>{var o;(o=t.target.dataset)!=null&&o.topPopupOpenByHover&&t.target.click()}),document.addEventListener("scroll",()=>{forms.Core.isMobile||Worker$1.getAll().forEach(t=>Worker$1.close(t))}),forms.Events.addOnReize(t=>{forms.Core.state.isMobile&&t.topEvent.widthDiff&&Worker$1.getAll().forEach(o=>Worker$1.close(o))}),document.addEventListener("click",this.onclick)}static async onclick(t){var s,r,a,p;let o;switch(!0){case!!((s=t.target.dataset)!=null&&s.topPopup):o=t.target;break;case!!((r=t.target.parentElement)!=null&&r.dataset.topPopup):o=t.target.parentElement;break;case!!((p=(a=t.target.parentElement)==null?void 0:a.parentElement)!=null&&p.dataset.topPopup):o=t.target.parentElement.parentElement;break}o&&(o.dataset.topPopupDisabled||o.dataset.topPopupOpened||(t.preventDefault(),await Worker$1.openByOpener(o)))}}let decoratorBeforeOpen,decoratorAfterOpen,decoratorIsIgnoreOuterClick,i18n={Close:"Close"};class Worker{static noClose=!1;static vueConnectors=new Map;static onInitApp(e){decoratorBeforeOpen=e==null?void 0:e.decoratorBeforeOpen,decoratorAfterOpen=e==null?void 0:e.decoratorAfterOpen,decoratorIsIgnoreOuterClick=e==null?void 0:e.decoratorIsIgnoreOuterClick,i18n=e==null?void 0:e.i18n}static getPopup(e){return utils_dom.default.storage(e,"Popup")}static getAll(){return utils_dom.default.querySelectorAllArray(document,".top-popup-wrapper")}static getAllVisible(){return utils_dom.default.querySelectorAllVisible(document,".top-popup-wrapper")}static async openByOpener(e){const t={};return t.popup=e.dataset.topPopup,e.dataset.topPopupP&&(t.p=parseInt(e.dataset.topPopupP)),e.dataset.topPopupNotch&&(t.notch=e.dataset.topPopupNotch),e.dataset.topPopupClass&&(t.class=e.dataset.topPopupClass),e.dataset.topPopupPosBy&&(t.posBy=e.dataset.topPopupPosBy),e.dataset.topPopupFront&&(t.frontSelector=e.dataset.topPopupFront),e.dataset.topPopupInvertX&&(t.invertX=e.dataset.topPopupInvertX),e.dataset.topPopupOpenByHover&&(t.openByHover=e.dataset.topPopupOpenByHover),e.dataset.topPopupUseOriginal&&(t.useOriginal=e.dataset.topPopupUseOriginal),await Worker.open(e,t)}static async open(elOpener,options){elOpener.dataset.topPopupOpened="opened";const{default:Popup}=await new Promise((e,t)=>require(["../.chunks/popup-3a721019.amd"],e,t));if(typeof jQuery=="function"){const $elOpener=jQuery(elOpener);if($elOpener.data("aftershow")){let afterShow=$elOpener.data("aftershow");typeof afterShow=="string"&&(afterShow=eval(afterShow.replace(/\W/g,""))),$elOpener.one("aftershow.top-menu-popup",afterShow)}if($elOpener.data("afterclose")){let afterclose=$elOpener.data("afterclose");typeof afterclose=="string"&&(afterclose=eval(afterclose.replace(/\W/g,""))),$elOpener.one("afterclose.top-menu-popup",afterclose)}}return options.isFullScreen=forms.Core.state.isMobile,options.i18n=i18n,await new Popup(elOpener,options)}static close(e){const t=Worker.getPopup(e);t&&t.close()}static recalcPosition(e){const t=Worker.getPopup(e);t&&(t.recalcPosition(),HelperCommon.genHasScroll($(t.elPopupBody)))}static scrollToActive(e){if(!utils_dom.default.querySelectorVisible(e,"ul.top-popup_content > li > .top-active"))return;const o=e.querySelector("ul.top-popup_content"),s=utils_dom.default.querySelectorAllVisible(e,"ul.top-popup_content > li");e.classList.add("top-popup-wrapper-no_animate"),setTimeout(()=>e.classList.remove("top-popup-wrapper-no_animate"),100);let r=100;for(const p of s){if(p.querySelector(":scope > .top-active"))break;r+=p.offsetHeight}const a=o.offsetHeight;r>a?o.scrollTop=r-a:o.scrollTop=0}static decoratorBeforeOpen(e){decoratorBeforeOpen&&decoratorBeforeOpen(e)}static decoratorAfterOpen(e){decoratorAfterOpen&&decoratorAfterOpen(e)}static decoratorIsIgnoreOuterClick(e){return decoratorIsIgnoreOuterClick?decoratorIsIgnoreOuterClick(e):!1}static regVueComponent(e,t){if(Worker.vueConnectors.get(e))throw"Vue component Popup use duplicated id: "+e;Worker.vueConnectors.set(e,t)}static unregVueComponent(e){Worker.vueConnectors.delete(e)}}WorkerEvents.init(Worker,forms.Core);const Worker$1=Worker;exports.PopupWorker=Worker$1,exports.default=Worker$1,Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
2
2
  //# sourceMappingURL=worker.amd.js.map
package/popup/worker.js CHANGED
@@ -1,4 +1,4 @@
1
- import { C as Core, E as Events } from "../.chunks/forms-9516aa6c.es.js";
1
+ import { C as Core, E as Events } from "../.chunks/forms-260b848a.es.js";
2
2
  import DOM from "../utils/dom.js";
3
3
  import "vue";
4
4
  class WorkerEvents {
@@ -79,7 +79,7 @@ class Worker {
79
79
  */
80
80
  static async open(elOpener, options) {
81
81
  elOpener.dataset.topPopupOpened = "opened";
82
- const { default: Popup } = await import("../.chunks/popup-70a8c892.es.js");
82
+ const { default: Popup } = await import("../.chunks/popup-90783ce2.es.js");
83
83
  if (typeof jQuery == "function") {
84
84
  const $elOpener = jQuery(elOpener);
85
85
  if ($elOpener.data("aftershow")) {
@@ -188,6 +188,7 @@ declare const meta: {
188
188
  }, {}, string, {}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
189
189
  $slots: {
190
190
  default?(_: {}): any;
191
+ html?(_: {}): any;
191
192
  };
192
193
  });
193
194
  tags: string[];
@@ -205,7 +206,11 @@ declare const meta: {
205
206
  };
206
207
  };
207
208
  type Story = StoryObj<typeof meta>;
208
- export declare const Playground: {};
209
+ export declare const Playground: {
210
+ args: {
211
+ default: string;
212
+ };
213
+ };
209
214
  export declare const Overview: Story;
210
215
  export declare const Regular: {
211
216
  args: {
@@ -13,6 +13,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
13
13
  styling: import("./button").Style;
14
14
  }, {}>, {
15
15
  default?(_: {}): any;
16
+ html?(_: {}): any;
16
17
  }>;
17
18
  export default _default;
18
19
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
@@ -4,7 +4,7 @@
4
4
  export declare const sizes: {
5
5
  readonly xs: "xs";
6
6
  readonly s: "s";
7
+ readonly m: "m";
7
8
  readonly l: "l";
8
- readonly xl: "xl";
9
9
  };
10
10
  export type Size = typeof sizes[keyof typeof sizes];
@@ -551,6 +551,7 @@ export declare const Playground: {
551
551
  }, {}, string, {}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
552
552
  $slots: {
553
553
  default?(_: {}): any;
554
+ html?(_: {}): any;
554
555
  };
555
556
  });
556
557
  };
@@ -451,6 +451,7 @@ export declare const Overview: {
451
451
  }, {}, string, {}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
452
452
  $slots: {
453
453
  default?(_: {}): any;
454
+ html?(_: {}): any;
454
455
  };
455
456
  });
456
457
  Textarea: import("vue").DefineComponent<{
package/tabs/tabs.amd.js CHANGED
@@ -1,2 +1,2 @@
1
- define(["require","exports","vue","../.chunks/forms-9972aba2.amd","../require/css.amd!../assets/tabs.css"],function(k,s,e,o){"use strict";if(typeof e>"u")var e=window.Vue;const l={class:e.normalizeClass({"top-tabs":!0})},d={key:0,class:"top-tabs_header"},c={class:"top-tabs_contents"},r=e.defineComponent({__name:"tabs",props:{id:{}},setup(a){return(t,n)=>(e.openBlock(),e.createElementBlock("div",l,[e.renderSlot(t.$slots,"buttons"),t.$slots.header?(e.openBlock(),e.createElementBlock("div",d,[e.renderSlot(t.$slots,"header")])):e.createCommentVNode("",!0),e.createElementVNode("div",c,[e.renderSlot(t.$slots,"contents")])]))}}),b={$style:{"top-tabs":"top-tabs","top-tabs_header":"top-tabs_header","top-tabs_contents":"top-tabs_contents","top-tabs_tabInput":"top-tabs_tabInput","top-tabs_content":"top-tabs_content"}},p=o._export_sfc(r,[["__cssModules",b]]),_=["id","name","value","checked","disabled"],i=["for"],u=e.defineComponent({__name:"tab",props:{tabsId:{},name:{},title:{},active:{type:Boolean},disabled:{type:Boolean}},setup(a){return(t,n)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("input",{type:"radio",class:"top-tabs_tabInput top-unvisible",id:t.tabsId+t.name,name:t.tabsId,value:t.name,checked:t.active,disabled:t.disabled},null,8,_),e.createElementVNode("label",{class:e.normalizeClass({"top-tabs_tabLabel":!0,"top-forms-focusable":!0,"top-disabled":t.disabled}),for:t.tabsId+t.name},[e.renderSlot(t.$slots,"default")],10,i)],64))}}),m={$style:{"top-tabs_tabLabel":"top-tabs_tabLabel","top-tabs_tabInput":"top-tabs_tabInput","top-disabled":"top-disabled"}},f=o._export_sfc(u,[["__cssModules",m]]),$=["data-tabs-name"],h=e.defineComponent({__name:"content",props:{name:{}},setup(a){return(t,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-tabs_content":!0}),"data-tabs-name":t.name},[e.renderSlot(t.$slots,"default")],8,$))}}),y={$style:{"top-tabs_content":"top-tabs_content"}},v=o._export_sfc(h,[["__cssModules",y]]);s.Tabs=p,s.TabsContent=v,s.TabsTab=f,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","vue","../.chunks/forms-2250b8db.amd","../require/css.amd!../assets/tabs.css"],function(k,s,e,o){"use strict";if(typeof e>"u")var e=window.Vue;const l={class:e.normalizeClass({"top-tabs":!0})},d={key:0,class:"top-tabs_header"},c={class:"top-tabs_contents"},r=e.defineComponent({__name:"tabs",props:{id:{}},setup(a){return(t,n)=>(e.openBlock(),e.createElementBlock("div",l,[e.renderSlot(t.$slots,"buttons"),t.$slots.header?(e.openBlock(),e.createElementBlock("div",d,[e.renderSlot(t.$slots,"header")])):e.createCommentVNode("",!0),e.createElementVNode("div",c,[e.renderSlot(t.$slots,"contents")])]))}}),b={$style:{"top-tabs":"top-tabs","top-tabs_header":"top-tabs_header","top-tabs_contents":"top-tabs_contents","top-tabs_tabInput":"top-tabs_tabInput","top-tabs_content":"top-tabs_content"}},p=o._export_sfc(r,[["__cssModules",b]]),_=["id","name","value","checked","disabled"],i=["for"],u=e.defineComponent({__name:"tab",props:{tabsId:{},name:{},title:{},active:{type:Boolean},disabled:{type:Boolean}},setup(a){return(t,n)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("input",{type:"radio",class:"top-tabs_tabInput top-unvisible",id:t.tabsId+t.name,name:t.tabsId,value:t.name,checked:t.active,disabled:t.disabled},null,8,_),e.createElementVNode("label",{class:e.normalizeClass({"top-tabs_tabLabel":!0,"top-forms-focusable":!0,"top-disabled":t.disabled}),for:t.tabsId+t.name},[e.renderSlot(t.$slots,"default")],10,i)],64))}}),m={$style:{"top-tabs_tabLabel":"top-tabs_tabLabel","top-tabs_tabInput":"top-tabs_tabInput","top-disabled":"top-disabled"}},f=o._export_sfc(u,[["__cssModules",m]]),$=["data-tabs-name"],h=e.defineComponent({__name:"content",props:{name:{}},setup(a){return(t,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-tabs_content":!0}),"data-tabs-name":t.name},[e.renderSlot(t.$slots,"default")],8,$))}}),y={$style:{"top-tabs_content":"top-tabs_content"}},v=o._export_sfc(h,[["__cssModules",y]]);s.Tabs=p,s.TabsContent=v,s.TabsTab=f,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=tabs.amd.js.map
package/tabs/tabs.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { insertToPage as c } from "../utils/css.js";
2
2
  import { defineComponent as b, openBlock as a, createElementBlock as o, renderSlot as s, createCommentVNode as _, createElementVNode as n, normalizeClass as l, Fragment as i } from "vue";
3
- import { _ as p } from "../.chunks/forms-9516aa6c.es.js";
3
+ import { _ as p } from "../.chunks/forms-260b848a.es.js";
4
4
  const r = ["../assets/tabs.css"].map((e) => import.meta.resolve(e));
5
5
  await c(r);
6
6
  const u = {
@@ -1,2 +1,2 @@
1
- define(["require","exports","vue","../popup/popup.amd","../.chunks/forms-9972aba2.amd","../popup/worker.amd","../utils/dom.amd","../require/css.amd!../assets/tabsView.css"],function(Y,c,e,d,u,Z,x){"use strict";if(typeof e>"u")var e=window.Vue;const S=(o,t)=>(e.provide(o,t),t),y=o=>{const t=e.inject(o);if(!t)throw Error("Попытка использовать tabsView state до его инициализации");return t},w=(o,t)=>`top:tabsView:${String(o)}:${t}`,p={init:S,use:y,loadLocalStorge:(o,t)=>{if(!t.key)return;const n=w(o,t.key);try{const s=JSON.parse(localStorage.getItem(n));typeof s==typeof t[o]&&(t[o]=s)}catch{console.warn(new Error(`В localStorage[${n}] не корректный json`))}},addSaverLocalStorge:(o,t)=>{if(!t.key)return;const n=w(o,t.key);e.watch(e.toRef(t,o),()=>{localStorage.setItem(n,JSON.stringify(t[o]))},{immediate:!0})}},f=Symbol(),k=(o,t)=>{const n=e.reactive({key:o.keyForSaveState,showMenuInPopup:o.showMenuInPopup,isShort:!1,activeItemName:e.computed({get(){return o.modelValue},set(s){t("update:modelValue",s)}})});return v(o,n),p.init(f,n)},m=()=>p.use(f),v=(o,t)=>{if(o.isShortable){const n="isShort";p.loadLocalStorge(n,t),p.addSaverLocalStorge(n,t)}},I={key:1,class:"top-ellipsis"},$=e.defineComponent({__name:"menuItem",props:{name:{},href:{},icon:{},disabled:{type:Boolean}},setup(o){const t=o,n=e.computed(()=>s.showMenuInPopup?d.PopupListItem:t.href?"a":"button"),s=m();return(a,l)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.value),{class:e.normalizeClass({"top-tabsView_menuItem":!e.unref(s).showMenuInPopup,"top-active":a.name&&e.unref(s).activeItemName===a.name,"top-disabled":a.disabled}),href:a.href,"data-top-icon":a.icon||void 0,disabled:a.disabled||void 0,onClick:l[0]||(l[0]=i=>a.name?e.unref(s).activeItemName=a.name:null)},{default:e.withCtx(()=>[e.unref(s).showMenuInPopup?e.renderSlot(a.$slots,"default",{key:0}):a.$slots.default&&!e.unref(s).isShort?(e.openBlock(),e.createElementBlock("span",I,[e.renderSlot(a.$slots,"default")])):e.createCommentVNode("",!0)]),_:3},8,["class","href","data-top-icon","disabled"]))}}),M={$style:{"top-tabsView_menuItem":"top-tabsView_menuItem","top-active":"top-active","top-forms-option":"top-forms-option","top-formsCaption":"top-formsCaption","top-disabled":"top-disabled"}},_=u._export_sfc($,[["__cssModules",M]]),B={class:"top-tabsView_menuOpener"},g=["data-top-icon"],P={class:"top-ellipsis"},C=e.createElementVNode("div",{class:"top-tabsView_menuOpenerIcon","data-top-icon":""},null,-1),N={class:"top-tabsView_menuList"},E={class:"top-tabsView_menuFooter"},T=e.defineComponent({__name:"menu",props:{isShortable:{type:Boolean}},setup(o){const t=m(),n=e.useSlots(),s=new Map,a=e.computed(()=>{let i=s.get(t.activeItemName);return i||(l(),s.get(t.activeItemName)||null)}),l=()=>{if(!n.default)return;const i=n.default().find(r=>r.key==="_menu");i&&i.children.forEach(r=>{var V,h;if(r.type.__name!==_.__name||!r.props.name)return;const b={title:((h=(V=r.children).default)==null?void 0:h.call(V)[0].children).trim(),icon:r.props.icon};s.set(r.props.name,b)})};return(i,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-tabsView_menu":!0,"top-tabsView_menu-inPopup_0":!e.unref(t).showMenuInPopup,"top-tabsView_menu-inPopup_1":e.unref(t).showMenuInPopup,"top-tabsView_menu-short":e.unref(t).isShort&&!e.unref(t).showMenuInPopup})},[e.unref(t).showMenuInPopup?(e.openBlock(),e.createBlock(e.unref(d.Popup),{key:0},{opener:e.withCtx(()=>[e.createElementVNode("div",B,[a.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"top-tabsView_menuOpenerActiveItem","data-top-icon":a.value.icon},[e.createElementVNode("span",P,e.toDisplayString(a.value.title),1)],8,g)):e.createCommentVNode("",!0),C])]),contentList:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3})):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",N,[e.renderSlot(i.$slots,"default")]),e.createElementVNode("div",E,[i.isShortable?(e.openBlock(),e.createBlock(_,{key:0,icon:e.unref(t).isShort?"":"",onClick:r[0]||(r[0]=b=>e.unref(t).isShort=!e.unref(t).isShort)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(t).isShort?"":"Свернуть")+" ",1)]),_:1},8,["icon"])):e.createCommentVNode("",!0)])],64))],2))}}),L={$style:{"top-tabsView_menu-inPopup_0":"top-tabsView_menu-inPopup_0","top-tabsView_menu-inPopup_1":"top-tabsView_menu-inPopup_1","top-tabsView_menu-short":"top-tabsView_menu-short","top-tabsView_menu":"top-tabsView_menu","top-tabsView_menuOpener":"top-tabsView_menuOpener","top-tabsView_menuOpenerIcon":"top-tabsView_menuOpenerIcon","top-tabsView_menuOpenerActiveItem":"top-tabsView_menuOpenerActiveItem","top-tabsView_menuList":"top-tabsView_menuList","top-tabsView_menuFooter":"top-tabsView_menuFooter","top-tabsView_menuItem":"top-tabsView_menuItem"}},O=u._export_sfc(T,[["__cssModules",L]]),D={class:"top-tabsView_contents"},F=e.defineComponent({__name:"tabsView",props:{modelValue:{},showMenuInPopup:{type:Boolean},isShortable:{type:Boolean,default:!1},keyForSaveState:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,a=k(n,t);return e.watchEffect(()=>{a.showMenuInPopup=n.showMenuInPopup??u.Core.state.isMobile}),(l,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-tabsView":!0,"top-tabsView-inPopup":e.unref(a).showMenuInPopup})},[e.createVNode(O,{isShortable:l.isShortable},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"menu")]),_:3},8,["isShortable"]),e.createElementVNode("div",D,[e.renderSlot(l.$slots,"contents")])],2))}}),j={$style:{"top-tabsView":"top-tabsView","top-tabsView-inPopup":"top-tabsView-inPopup","top-tabsView_contents":"top-tabsView_contents"}},z=u._export_sfc(F,[["__cssModules",j]]),K={"top-tabsView_menuDelimeter":"top-tabsView_menuDelimeter"},q={},A={class:"top-tabsView_menuDelimeter"};function J(o,t){return e.openBlock(),e.createElementBlock("div",A)}const R={$style:K},G=u._export_sfc(q,[["render",J],["__cssModules",R]]),H=e.defineComponent({__name:"menuTitle",props:{isSubtitle:{type:Boolean}},setup(o){const t=m();return(n,s)=>e.unref(t).showMenuInPopup?(e.openBlock(),e.createBlock(e.unref(d.PopupListItem),{key:0,type:"title"},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:3})):e.unref(t).isShort?(e.openBlock(),e.createBlock(G,{key:1})):(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass({"top-tabsView_menuTitle":!0,"top-tabsView_menuTitle-subtitle":n.isSubtitle})},[e.renderSlot(n.$slots,"default")],2))}}),Q={$style:{"top-tabsView_menuTitle":"top-tabsView_menuTitle","top-tabsView_menuTitle-subtitle":"top-tabsView_menuTitle-subtitle"}},U=u._export_sfc(H,[["__cssModules",Q]]),W={key:0,class:"top-tabsView_content"},X=e.defineComponent({__name:"content",props:{name:{}},setup(o){const t=m();return(n,s)=>e.unref(t).activeItemName===n.name?(e.openBlock(),e.createElementBlock("div",W,[e.renderSlot(n.$slots,"default")])):e.createCommentVNode("",!0)}});c.TabsView=z,c.TabsViewContent=X,c.TabsViewMenuItem=_,c.TabsViewMenuTitle=U,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","vue","../popup/popup.amd","../.chunks/forms-2250b8db.amd","../popup/worker.amd","../utils/dom.amd","../require/css.amd!../assets/tabsView.css"],function(Y,c,e,d,u,Z,x){"use strict";if(typeof e>"u")var e=window.Vue;const S=(o,t)=>(e.provide(o,t),t),y=o=>{const t=e.inject(o);if(!t)throw Error("Попытка использовать tabsView state до его инициализации");return t},w=(o,t)=>`top:tabsView:${String(o)}:${t}`,p={init:S,use:y,loadLocalStorge:(o,t)=>{if(!t.key)return;const n=w(o,t.key);try{const s=JSON.parse(localStorage.getItem(n));typeof s==typeof t[o]&&(t[o]=s)}catch{console.warn(new Error(`В localStorage[${n}] не корректный json`))}},addSaverLocalStorge:(o,t)=>{if(!t.key)return;const n=w(o,t.key);e.watch(e.toRef(t,o),()=>{localStorage.setItem(n,JSON.stringify(t[o]))},{immediate:!0})}},f=Symbol(),k=(o,t)=>{const n=e.reactive({key:o.keyForSaveState,showMenuInPopup:o.showMenuInPopup,isShort:!1,activeItemName:e.computed({get(){return o.modelValue},set(s){t("update:modelValue",s)}})});return v(o,n),p.init(f,n)},m=()=>p.use(f),v=(o,t)=>{if(o.isShortable){const n="isShort";p.loadLocalStorge(n,t),p.addSaverLocalStorge(n,t)}},I={key:1,class:"top-ellipsis"},$=e.defineComponent({__name:"menuItem",props:{name:{},href:{},icon:{},disabled:{type:Boolean}},setup(o){const t=o,n=e.computed(()=>s.showMenuInPopup?d.PopupListItem:t.href?"a":"button"),s=m();return(a,l)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.value),{class:e.normalizeClass({"top-tabsView_menuItem":!e.unref(s).showMenuInPopup,"top-active":a.name&&e.unref(s).activeItemName===a.name,"top-disabled":a.disabled}),href:a.href,"data-top-icon":a.icon||void 0,disabled:a.disabled||void 0,onClick:l[0]||(l[0]=i=>a.name?e.unref(s).activeItemName=a.name:null)},{default:e.withCtx(()=>[e.unref(s).showMenuInPopup?e.renderSlot(a.$slots,"default",{key:0}):a.$slots.default&&!e.unref(s).isShort?(e.openBlock(),e.createElementBlock("span",I,[e.renderSlot(a.$slots,"default")])):e.createCommentVNode("",!0)]),_:3},8,["class","href","data-top-icon","disabled"]))}}),M={$style:{"top-tabsView_menuItem":"top-tabsView_menuItem","top-active":"top-active","top-forms-option":"top-forms-option","top-formsCaption":"top-formsCaption","top-disabled":"top-disabled"}},_=u._export_sfc($,[["__cssModules",M]]),B={class:"top-tabsView_menuOpener"},g=["data-top-icon"],P={class:"top-ellipsis"},C=e.createElementVNode("div",{class:"top-tabsView_menuOpenerIcon","data-top-icon":""},null,-1),N={class:"top-tabsView_menuList"},E={class:"top-tabsView_menuFooter"},T=e.defineComponent({__name:"menu",props:{isShortable:{type:Boolean}},setup(o){const t=m(),n=e.useSlots(),s=new Map,a=e.computed(()=>{let i=s.get(t.activeItemName);return i||(l(),s.get(t.activeItemName)||null)}),l=()=>{if(!n.default)return;const i=n.default().find(r=>r.key==="_menu");i&&i.children.forEach(r=>{var V,h;if(r.type.__name!==_.__name||!r.props.name)return;const b={title:((h=(V=r.children).default)==null?void 0:h.call(V)[0].children).trim(),icon:r.props.icon};s.set(r.props.name,b)})};return(i,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-tabsView_menu":!0,"top-tabsView_menu-inPopup_0":!e.unref(t).showMenuInPopup,"top-tabsView_menu-inPopup_1":e.unref(t).showMenuInPopup,"top-tabsView_menu-short":e.unref(t).isShort&&!e.unref(t).showMenuInPopup})},[e.unref(t).showMenuInPopup?(e.openBlock(),e.createBlock(e.unref(d.Popup),{key:0},{opener:e.withCtx(()=>[e.createElementVNode("div",B,[a.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"top-tabsView_menuOpenerActiveItem","data-top-icon":a.value.icon},[e.createElementVNode("span",P,e.toDisplayString(a.value.title),1)],8,g)):e.createCommentVNode("",!0),C])]),contentList:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3})):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",N,[e.renderSlot(i.$slots,"default")]),e.createElementVNode("div",E,[i.isShortable?(e.openBlock(),e.createBlock(_,{key:0,icon:e.unref(t).isShort?"":"",onClick:r[0]||(r[0]=b=>e.unref(t).isShort=!e.unref(t).isShort)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(t).isShort?"":"Свернуть")+" ",1)]),_:1},8,["icon"])):e.createCommentVNode("",!0)])],64))],2))}}),L={$style:{"top-tabsView_menu-inPopup_0":"top-tabsView_menu-inPopup_0","top-tabsView_menu-inPopup_1":"top-tabsView_menu-inPopup_1","top-tabsView_menu-short":"top-tabsView_menu-short","top-tabsView_menu":"top-tabsView_menu","top-tabsView_menuOpener":"top-tabsView_menuOpener","top-tabsView_menuOpenerIcon":"top-tabsView_menuOpenerIcon","top-tabsView_menuOpenerActiveItem":"top-tabsView_menuOpenerActiveItem","top-tabsView_menuList":"top-tabsView_menuList","top-tabsView_menuFooter":"top-tabsView_menuFooter","top-tabsView_menuItem":"top-tabsView_menuItem"}},O=u._export_sfc(T,[["__cssModules",L]]),D={class:"top-tabsView_contents"},F=e.defineComponent({__name:"tabsView",props:{modelValue:{},showMenuInPopup:{type:Boolean},isShortable:{type:Boolean,default:!1},keyForSaveState:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,a=k(n,t);return e.watchEffect(()=>{a.showMenuInPopup=n.showMenuInPopup??u.Core.state.isMobile}),(l,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-tabsView":!0,"top-tabsView-inPopup":e.unref(a).showMenuInPopup})},[e.createVNode(O,{isShortable:l.isShortable},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"menu")]),_:3},8,["isShortable"]),e.createElementVNode("div",D,[e.renderSlot(l.$slots,"contents")])],2))}}),j={$style:{"top-tabsView":"top-tabsView","top-tabsView-inPopup":"top-tabsView-inPopup","top-tabsView_contents":"top-tabsView_contents"}},z=u._export_sfc(F,[["__cssModules",j]]),K={"top-tabsView_menuDelimeter":"top-tabsView_menuDelimeter"},q={},A={class:"top-tabsView_menuDelimeter"};function J(o,t){return e.openBlock(),e.createElementBlock("div",A)}const R={$style:K},G=u._export_sfc(q,[["render",J],["__cssModules",R]]),H=e.defineComponent({__name:"menuTitle",props:{isSubtitle:{type:Boolean}},setup(o){const t=m();return(n,s)=>e.unref(t).showMenuInPopup?(e.openBlock(),e.createBlock(e.unref(d.PopupListItem),{key:0,type:"title"},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:3})):e.unref(t).isShort?(e.openBlock(),e.createBlock(G,{key:1})):(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass({"top-tabsView_menuTitle":!0,"top-tabsView_menuTitle-subtitle":n.isSubtitle})},[e.renderSlot(n.$slots,"default")],2))}}),Q={$style:{"top-tabsView_menuTitle":"top-tabsView_menuTitle","top-tabsView_menuTitle-subtitle":"top-tabsView_menuTitle-subtitle"}},U=u._export_sfc(H,[["__cssModules",Q]]),W={key:0,class:"top-tabsView_content"},X=e.defineComponent({__name:"content",props:{name:{}},setup(o){const t=m();return(n,s)=>e.unref(t).activeItemName===n.name?(e.openBlock(),e.createElementBlock("div",W,[e.renderSlot(n.$slots,"default")])):e.createCommentVNode("",!0)}});c.TabsView=z,c.TabsViewContent=X,c.TabsViewMenuItem=_,c.TabsViewMenuTitle=U,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=tabsView.amd.js.map
@@ -1,7 +1,7 @@
1
1
  import { insertToPage as N } from "../utils/css.js";
2
2
  import { provide as B, inject as L, watch as C, toRef as D, reactive as E, computed as y, defineComponent as w, openBlock as i, createBlock as d, resolveDynamicComponent as F, normalizeClass as h, unref as s, withCtx as _, renderSlot as u, createElementBlock as c, createCommentVNode as V, useSlots as K, createElementVNode as m, toDisplayString as M, Fragment as j, createTextVNode as A, watchEffect as J, createVNode as z } from "vue";
3
3
  import { PopupListItem as P, Popup as R } from "../popup/popup.js";
4
- import { _ as b, C as U } from "../.chunks/forms-9516aa6c.es.js";
4
+ import { _ as b, C as U } from "../.chunks/forms-260b848a.es.js";
5
5
  import "../popup/worker.js";
6
6
  import "../utils/dom.js";
7
7
  const O = ["../assets/tabsView.css"].map((t) => import.meta.resolve(t));
package/utils/date.amd.js CHANGED
@@ -1,2 +1,2 @@
1
- define(["require","exports","../.chunks/forms-9972aba2.amd","vue"],function(n,e,t,a){"use strict";if(typeof a>"u")var a=window.Vue;e.dateFormat=t.dateFormat,e.dateUnformat=t.dateUnformat,e.genDate=t.genDate,e.stringToDate=t.stringToDate,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","../.chunks/forms-2250b8db.amd","vue"],function(n,e,t,a){"use strict";if(typeof a>"u")var a=window.Vue;e.dateFormat=t.dateFormat,e.dateUnformat=t.dateUnformat,e.genDate=t.genDate,e.stringToDate=t.stringToDate,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=date.amd.js.map
package/utils/date.js CHANGED
@@ -1,4 +1,4 @@
1
- import { d as o, h as r, f as s, s as m } from "../.chunks/forms-9516aa6c.es.js";
1
+ import { d as o, h as r, f as s, s as m } from "../.chunks/forms-260b848a.es.js";
2
2
  import "vue";
3
3
  export {
4
4
  o as dateFormat,
@@ -1,2 +1,2 @@
1
- define(["require","exports","../.chunks/forms-9972aba2.amd","vue"],function(n,i,e,a){"use strict";if(typeof a>"u")var a=window.Vue;i.getCommandKeyLabel=e.getCommandKeyLabel,i.isApp=e.isApp,i.isMacOS=e.isMacOS,i.isMobile=e.isMobile,i.isRetina=e.isRetina,i.isSafari=e.isSafari,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","../.chunks/forms-2250b8db.amd","vue"],function(n,i,e,a){"use strict";if(typeof a>"u")var a=window.Vue;i.getCommandKeyLabel=e.getCommandKeyLabel,i.isApp=e.isApp,i.isMacOS=e.isMacOS,i.isMobile=e.isMobile,i.isRetina=e.isRetina,i.isSafari=e.isSafari,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=device.amd.js.map
package/utils/device.js CHANGED
@@ -1,4 +1,4 @@
1
- import { g as e, b as o, c as m, a as p, i as r, e as t } from "../.chunks/forms-9516aa6c.es.js";
1
+ import { g as e, b as o, c as m, a as p, i as r, e as t } from "../.chunks/forms-260b848a.es.js";
2
2
  import "vue";
3
3
  export {
4
4
  e as getCommandKeyLabel,
@@ -1 +0,0 @@
1
- {"version":3,"file":"forms-9516aa6c.es.js","sources":["../../src/core/utils/device.ts","../../src/core/core/page.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/avatar/avatar.vue","../../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":["export function isRetina() {\r\n\treturn ('devicePixelRatio' in window && window.devicePixelRatio > 1);\r\n}\r\n\r\n// определить, является ли устройство мобильным\r\nexport function isMobile(): boolean {\r\n\treturn !!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|IEMobile|Opera Mini/i);\r\n}\r\n\r\n// определить, открыт ли сайт в приложении\r\nexport function isApp() {\r\n\treturn (navigator.userAgent.indexOf('Topvisor_App') != -1);\r\n}\r\n\r\n// определить, является ли OS пользователя macOS\r\nexport function isMacOS() {\r\n\treturn navigator.userAgent.indexOf('Mac OS X') !== -1;\r\n}\r\n\r\n// определить, является ли текущий браузер пользователя Safari\r\nexport function isSafari() {\r\n\tconst isChrome = /Chrome|Android/.test(navigator.userAgent);\r\n\r\n\tlet isSafari = /Safari/.test(navigator.userAgent);\r\n\tif (isChrome && isSafari) {\r\n\t\tisSafari = false;\r\n\t}\r\n\r\n\treturn isSafari;\r\n};\r\n\r\n/**\r\n * Вернуть текст для обозначения клавиши Ctrl / Command в зависимости от OS\r\n * @returns {'Ctrl'|'⌘'}\r\n */\r\nexport function getCommandKeyLabel(): 'Ctrl' | '⌘' {\r\n\tif (isMacOS()) {\r\n\t\treturn '⌘';\r\n\t} else {\r\n\t\treturn 'Ctrl';\r\n\t}\r\n}","class Page {\r\n\r\n}\r\n\r\nexport default Page;","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 { isMobile, isRetina, isApp } from '@/core/utils/device';\r\nimport Page from '@/core/core/page';\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 Page = 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 = isMobile();\r\n\t\tCore.state.isRetina = isRetina();\r\n\t\tCore.state.isApp = 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\n/**\r\n * Получить объект Date из строки\r\n * @param date - строка с датой\r\n */\r\nexport function stringToDate(date: string) {\r\n\tif (date.indexOf('T') === -1) {\r\n\t\tif (date.length == 10) {\r\n\t\t\tdate += ' 00:00:00';\r\n\t\t}\r\n\r\n\t\tdate = date.replace(' ', 'T') + Core.state.gmt;\r\n\t}\r\n\r\n\treturn new Date(date);\r\n}\r\n\r\n/**\r\n * Генерация строки с датой в формате Y-m-d H:i:s или в формате Core.state.dateFormat, если указан useFormat = true\r\n * @param {?number} timestamp\r\n * @param {?boolean} useFormat\r\n * @param {0|1|2|3} time - 0: только дата, 1: дата и часы, 2: дата и часы с минутами, 3: дата и часы с минутами и секундами\r\n */\r\nexport function genDate(timestamp: number, useFormat: boolean = true, time: 0 | 1 | 2 | 3 = 0): string {\r\n\tlet date;\r\n\tif (timestamp != undefined) {\r\n\t\tdate = new Date(timestamp);\r\n\t} else {\r\n\t\tdate = new Date();\r\n\t}\r\n\r\n\tconst Y = date.getFullYear();\r\n\tconst m = String(date.getMonth() + 1).padStart(2, '0');\r\n\tconst d = date.getDate().toString().padStart(2, '0');\r\n\r\n\tconst H = date.getHours().toString().padStart(2, '0');\r\n\tconst i = date.getMinutes().toString().padStart(2, '0');\r\n\tconst s = date.getSeconds().toString().padStart(2, '0');\r\n\r\n\tdate = Y + '-' + m + '-' + d;\r\n\r\n\tif (time) date += ' ';\r\n\tif (time >= 1) date += H;\r\n\tif (time >= 2) date += ':' + i;\r\n\tif (time >= 3) date += ':' + s;\r\n\r\n\tif (useFormat) {\r\n\t\tdate = dateFormat(date, time);\r\n\t}\r\n\r\n\treturn date;\r\n}\r\n\r\n/**\r\n * Перевод даты в формат пользователя\r\n * @param {string} date - строка в формате Y-m-d H:i:s\r\n * @param {0|1|2|3} time - 0: только дата, 1: дата и часы, 2: дата и часы с минутами, 3: дата и часы с минутами и секундами\r\n * @param {string} emptyValue - значение, которое надо вернуть, если дата не указана\r\n */\r\nexport function dateFormat(date: string, time: 0 | 1 | 2 | 3 = 2, emptyValue: string = Core.L.Not_date): string {\r\n\tif (!date || date.substring(0, 10) === '0000-00-00') {\r\n\t\tif (emptyValue && emptyValue !== '0000-00-00') {\r\n\t\t\treturn emptyValue;\r\n\t\t}\r\n\t}\r\n\r\n\tconst dateFormat = Core.state.dateFormat.toLowerCase();\r\n\r\n\tlet dateForObj = date.substring(0, 10);\r\n\r\n\tif (dateForObj.length === 7) {\r\n\t\tdateForObj += '-01';\r\n\t}\r\n\r\n\tdateForObj += ' 00:00';\r\n\r\n\t// safari fix\r\n\tdateForObj = dateForObj.replace(/-/g, '/');\r\n\r\n\tconst dateObject = new Date(dateForObj);\r\n\tif (isNaN(Number(dateObject))) {\r\n\t\treturn emptyValue;\r\n\t}\r\n\r\n\tlet result = dateFormat.\r\n\t\treplace('y', String(dateObject.getFullYear()).padStart(2, '0')).\r\n\t\treplace('m', String(dateObject.getMonth() + 1).padStart(2, '0')).\r\n\t\treplace('d', String(dateObject.getDate()).padStart(2, '0'));\r\n\r\n\tif (date.length > 10) {\r\n\t\tswitch (time) {\r\n\t\t\t// часы\r\n\t\t\tcase 1:\r\n\t\t\t\tresult += ' ' + date.substring(11, 13);\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t// часы и минуты\r\n\t\t\tcase 2:\r\n\t\t\t\tresult += ' ' + date.substring(11, 16);\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t// часы, минуты и секунды\r\n\t\t\tcase 3:\r\n\t\t\t\tresult += ' ' + date.substring(11, 19);\r\n\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n\r\n/**\r\n * Перевод даты из формата пользователя в системный формат\r\n * @param {string} date - строка в формате Y-m-d H:i:s\r\n * @param {string} emptyValue - значение, которое надо вернуть, если дата не указана\r\n */\r\nexport function dateUnformat(date: string, emptyValue: string = Core.L.Not_date): string {\r\n\tif (!date) {\r\n\t\treturn emptyValue;\r\n\t}\r\n\r\n\tif (date.match(/\\d\\d\\d\\d-\\d\\d-\\d\\d/)) {\r\n\t\treturn date;\r\n\t}\r\n\r\n\tconst dateFormat = Core.state.dateFormat.toLowerCase();\r\n\r\n\tconst dateChunks = date.split(/\\W/);\r\n\tconst dateFormatChunks = dateFormat.split(/\\W/);\r\n\r\n\tlet d = '';\r\n\tlet m = '';\r\n\tlet y = '';\r\n\r\n\tdateFormatChunks.forEach((type, index) => {\r\n\t\tswitch (type) {\r\n\t\t\tcase 'd':\r\n\t\t\t\td = dateChunks[index];\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'm':\r\n\t\t\t\tm = dateChunks[index];\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'y':\r\n\t\t\t\ty = dateChunks[index];\r\n\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t});\r\n\r\n\tlet result = y + '-' + m + '-' + d;\r\n\r\n\tif (!result.match(/\\d\\d\\d\\d-\\d\\d-\\d\\d/)) {\r\n\t\tconsole.info('Неверный формат даты, будет возращена текущая дата, ' + result);\r\n\r\n\t\tresult = genDate((new Date()).getTime(), false).substring(0, 10);\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n","<script lang=\"ts\" setup>\r\nimport { computed } from 'vue';\r\nimport type { Props } from './avatar';\r\nimport { dateFormat } from '@/core/utils/date';\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\tsize: 64,\r\n});\r\n\r\n// TODO: сделать компонент i18n\r\nconst i18n = {\r\n\tuser: {\r\n\t\tOnline: 'Онлайн',\r\n\t\tLastSeen: 'Заходил(а)',\r\n\t},\r\n};\r\n\r\nconst titleStatus = computed(() => {\r\n\tif (props.isOnline) {\r\n\t\treturn i18n.user.Online;\r\n\t}\r\n\r\n\tif (props.lastActiveTime) {\r\n\t\treturn i18n.user.LastSeen + ': ' + dateFormat(props.lastActiveTime, 2);\r\n\t}\r\n});\r\n</script>\r\n\r\n<template>\r\n\t<div class=\"top-avatar\">\r\n\t\t<img\r\n\t\t\tclass=\"top-avatar_image\"\r\n\t\t\t:src=\"image\"\r\n\t\t\t:title=\"props.nickname + (titleStatus ? `\\n${titleStatus}` : '')\"\r\n\t\t\talt=\"\"\r\n\t\t>\r\n\r\n\t\t<div\r\n\t\t\tv-if=\"isOnline\"\r\n\t\t\tclass=\"top-avatar_status\"\r\n\t\t\t:title=\"titleStatus\"\r\n\t\t>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<style module>\r\n.top-avatar {\r\n\tdisplay: flex;\r\n\theight: v-bind(size+ \"px\");\r\n\tleft: 0;\r\n\tposition: relative;\r\n\ttop: 0;\r\n\twidth: v-bind(size+ \"px\");\r\n\tflex-grow: 0;\r\n\tflex-shrink: 0;\r\n}\r\n\r\n.top-avatar_image {\r\n\tborder-radius: 50%;\r\n\theight: 100%;\r\n\twidth: 100%;\r\n}\r\n\r\n.top-avatar_status {\r\n\tbackground-color: var(--color-green-500);\r\n\tborder: 2px solid var(--content-background-color);\r\n\tborder-radius: 50%;\r\n\tbottom: 0;\r\n\theight: 25%;\r\n\tposition: absolute;\r\n\tright: 0;\r\n\twidth: 25%;\r\n}\r\n</style>","<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<span\r\n\t\t\tv-if=\"$slots.default\"\r\n\t\t\tclass=\"top-ellipsis\"\r\n\t\t>\r\n\t\t\t<!-- @slot Текст или HTML в кнопке -->\r\n\t\t\t<slot>\r\n\t\t\t\t{{ !icon ? 'Button' : '' }}\r\n\t\t\t</slot>\r\n\t\t</span>\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 { dateFormat, dateUnformat } 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\nonUnmounted(() => {\r\n\tif ($el) {\r\n\t\t$el.datepicker('destroy');\r\n\t}\r\n});\r\n\r\nconst el = ref();\r\nlet $el: any;\r\n\r\nconst localValue = computed({\r\n\tget() {\r\n\t\treturn dateFormat(props.modelValue, 2, '0000-00-00');\r\n\t},\r\n\r\n\tset(value) {\r\n\t\tvalue = 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 date = dateUnformat(e.target.value);\r\n\tconst dateFormatted = dateFormat(date);\r\n\r\n\tif (!dateFormatted || dateFormatted === Core.L.Not_date || e.target.value !== dateFormatted) {\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\t$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\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":["isRetina","isMobile","isApp","isMacOS","isSafari","isChrome","isSafari2","getCommandKeyLabel","Page","onResizeDelay","onResizeTimer","onResizeListeners","windowSize","addOnReize","listener","removeOnResize","onResize","e","callback","Events","options","_a","state","_window$1","$","el","_b","tvTooltipGenOptions","binding","vnode","tooltip","_prevVnode","instance","_window","Core","reactive","style","type","media","elStyle","app","options2","device","stringToDate","date","genDate","timestamp","useFormat","time","Y","m","d","H","s","dateFormat","emptyValue","dateFormat2","dateForObj","dateObject","result","dateUnformat","dateChunks","dateFormatChunks","y","index","props","__props","i18n","titleStatus","computed","tagName","emit","__emit","localValue","value","placeholder","clean","useNativeDatepicker","onInputLazy","_e","onUnmounted","$el","ref","oninput","onchange","dateFormatted","init","datepicker","value2","optionIcon","optionByValue","res","option","subOption","watch","toRef","selectNextValue","listEnabledValues","nextIndex"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- define(["require","exports","vue","../require/css.amd!../assets/forms.css"],function(O,u,e){var A,P;"use strict";if(typeof e>"u")var e=window.Vue;function S(){return"devicePixelRatio"in window&&window.devicePixelRatio>1}function E(){return!!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|IEMobile|Opera Mini/i)}function C(){return navigator.userAgent.indexOf("Topvisor_App")!=-1}function z(){return navigator.userAgent.indexOf("Mac OS X")!==-1}function W(){const n=/Chrome|Android/.test(navigator.userAgent);let o=/Safari/.test(navigator.userAgent);return n&&o&&(o=!1),o}function H(){return z()?"⌘":"Ctrl"}class I{}const U=100;let D;const $=new Map,g={width:window.innerWidth,height:window.innerHeight};function j(n){$.set(n,n)}function Y(n){$.delete(n)}function K(n){clearTimeout(D),D=setTimeout(function(){n.topEvent={widthDiff:g.width-window.innerWidth,hightDiff:g.height-window.innerHeight},g.width=window.innerWidth,g.height=window.innerHeight,$.forEach(o=>o(n))},U)}window.addEventListener("resize",K);const L={addOnReize:j,removeOnResize:Y},G={widthForMobile:900,dateFormat:"Y-m-d",gmt:(A=new Date().toString().match(/GMT(\S+)/))==null?void 0:A[1]},Q={isMobile:!1,isMobileUA:!1,isRetina:!1,isApp:!1,isLandscape:!0,isPortrait:!1,size:0,dateFormat:"Y-m-d",gmt:(P=new Date().toString().match(/GMT(\S+)/))==null?void 0:P[1]},k=window,_=n=>{var o,s;if(!((s=(o=k==null?void 0:k.jQuery)==null?void 0:o.ui)!=null&&s.tooltip)){console.info("Для работы v-top-tooltip требуется глобальная загрузка jQuery UI Tooltip");return}return k.jQuery(n)},N=(n,o)=>{var i;const s=n.value??{};return s.content??=(i=o.props)==null?void 0:i.title,s.content=String(s.content).replace(/\r\n|\r|\n/g,"<br>"),s.position??={my:"bottom-18px",at:"top center"},s},q={mounted(n,o,s){var i;(i=_(n))==null||i.tooltip(N(o,s))},updated(n,o,s,i){var d;const a=N(o,s),t=(d=_(n))==null?void 0:d.tooltip("instance");t&&(t.options={...t.options,...a})},unmounted(n,o,s){var i;(i=_(n))==null||i.tooltip("destroy")}},B=window;class p{static L=e.reactive({Not_date:"Not date"});static page=(B==null?void 0:B.page)||{};static Page=I;static options=G;static state=e.reactive({...Q});static matchMediaIsMobile;static appendStyle(o,s=""){let i="all";s==="m"&&(i="(max-width: "+this.options.widthForMobile+"px)"),s==="pc"&&(i="(min-width: "+this.options.widthForMobile+"px)");const a=document.createElement("style");a.innerHTML=o,a.media=i,document.head.append(a)}static install(o,s){p.defineOptions(s),o.provide("top-core",p),this.installDirectives(o)}static installDirectives(o){o.directive("top-tooltip",q)}static defineOptions(o){o!=null&&o.widthForMobile&&(this.options.widthForMobile=o.widthForMobile),o!=null&&o.dateFormat&&(this.options.dateFormat=o.dateFormat),o!=null&&o.gmt&&(this.options.gmt=o.gmt),p.setState()}static setState(){p.matchMediaIsMobile=window.matchMedia(`(max-width: ${p.options.widthForMobile}px)`),p.state.isMobileUA=E(),p.state.isRetina=S(),p.state.isApp=C(),p.state.dateFormat=this.options.dateFormat,p.state.gmt=this.options.gmt,p.setStateByWindowSize(),L.addOnReize(p.onResize),p.onResize(),p.saveToCookie()}static onResize(){p.setStateByWindowSize(),document.documentElement.style.setProperty("--100vh",window.innerHeight+"px")}static setStateByWindowSize(){var o;p.state.isMobile=!!((o=p.matchMediaIsMobile)!=null&&o.matches),p.state.isLandscape=window.innerWidth>window.innerHeight,p.state.isPortrait=!p.state.isLandscape,p.state.size=window.innerWidth>window.innerHeight?window.innerWidth:window.innerHeight,p.saveToCookie()}static saveToCookie(){const o=[1,window.innerWidth,window.innerHeight,window.devicePixelRatio,Number(p.state.isMobile),Number(p.state.isRetina)];document.cookie="device="+o.join(",")+"; path=/;"}}function X(n){return n.indexOf("T")===-1&&(n.length==10&&(n+=" 00:00:00"),n=n.replace(" ","T")+p.state.gmt),new Date(n)}function T(n,o=!0,s=0){let i;n!=null?i=new Date(n):i=new Date;const a=i.getFullYear(),t=String(i.getMonth()+1).padStart(2,"0"),d=i.getDate().toString().padStart(2,"0"),r=i.getHours().toString().padStart(2,"0"),l=i.getMinutes().toString().padStart(2,"0"),f=i.getSeconds().toString().padStart(2,"0");return i=a+"-"+t+"-"+d,s&&(i+=" "),s>=1&&(i+=r),s>=2&&(i+=":"+l),s>=3&&(i+=":"+f),o&&(i=y(i,s)),i}function y(n,o=2,s=p.L.Not_date){if((!n||n.substring(0,10)==="0000-00-00")&&s&&s!=="0000-00-00")return s;const i=p.state.dateFormat.toLowerCase();let a=n.substring(0,10);a.length===7&&(a+="-01"),a+=" 00:00",a=a.replace(/-/g,"/");const t=new Date(a);if(isNaN(Number(t)))return s;let d=i.replace("y",String(t.getFullYear()).padStart(2,"0")).replace("m",String(t.getMonth()+1).padStart(2,"0")).replace("d",String(t.getDate()).padStart(2,"0"));if(n.length>10)switch(o){case 1:d+=" "+n.substring(11,13);break;case 2:d+=" "+n.substring(11,16);break;case 3:d+=" "+n.substring(11,19);break}return d}function M(n,o=p.L.Not_date){if(!n)return o;if(n.match(/\d\d\d\d-\d\d-\d\d/))return n;const s=p.state.dateFormat.toLowerCase(),i=n.split(/\W/),a=s.split(/\W/);let t="",d="",r="";a.forEach((f,c)=>{switch(f){case"d":t=i[c];break;case"m":d=i[c];break;case"y":r=i[c];break}});let l=r+"-"+d+"-"+t;return l.match(/\d\d\d\d-\d\d-\d\d/)||(console.info("Неверный формат даты, будет возращена текущая дата, "+l),l=T(new Date().getTime(),!1).substring(0,10)),l}const J={class:"top-avatar"},Z=["src","title"],x=["title"],ee=e.defineComponent({__name:"avatar",props:{size:{default:64},image:{},nickname:{},isOnline:{type:Boolean},lastActiveTime:{}},setup(n){e.useCssVars(a=>({c65930ac:a.size+"px"}));const o=n,s={user:{Online:"Онлайн",LastSeen:"Заходил(а)"}},i=e.computed(()=>{if(o.isOnline)return s.user.Online;if(o.lastActiveTime)return s.user.LastSeen+": "+y(o.lastActiveTime,2)});return(a,t)=>(e.openBlock(),e.createElementBlock("div",J,[e.createElementVNode("img",{class:"top-avatar_image",src:a.image,title:o.nickname+(i.value?`
2
- ${i.value}`:""),alt:""},null,8,Z),a.isOnline?(e.openBlock(),e.createElementBlock("div",{key:0,class:"top-avatar_status",title:i.value},null,8,x)):e.createCommentVNode("",!0)]))}}),te={"top-avatar":"top-avatar","top-avatar_image":"top-avatar_image","top-avatar_status":"top-avatar_status"},b=(n,o)=>{const s=n.__vccOpts||n;for(const[i,a]of o)s[i]=a;return s},oe=b(ee,[["__cssModules",{$style:te}]]),ae={key:0,class:"top-ellipsis"},ne=b(e.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(n){const o=n,s=e.computed(()=>o.href?"a":"button"),i=e.computed(()=>o.isSubmit?"submit":void 0);return(a,t)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value),{class:e.normalizeClass({"top-active":a.isActive,"top-disabled":a.disabled,"top-forms-focusable":!a.disabled,"top-button":!0,"top-button-progress":a.isProgress,[`top-size_${a.size}`]:!!a.size,[`top-color_${a.color}`]:!0,[`top-style_${a.styling}`]:!!a.styling}),name:a.name,title:a.title,href:a.href,type:i.value,"data-top-icon":a.icon||void 0,"data-top-icon2":a.icon2||void 0,disabled:a.disabled||void 0,inProgress:a.isProgress},{default:e.withCtx(()=>[a.$slots.default?(e.openBlock(),e.createElementBlock("span",ae,[e.renderSlot(a.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(a.icon?"":"Button"),1)])])):e.createCommentVNode("",!0)]),_:3},8,["class","name","title","href","type","data-top-icon","data-top-icon2","disabled","inProgress"]))}}),[["__cssModules",{$style:{"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"}}]]),se={class:"top-forms-optionLabel"},w=b(e.defineComponent({__name:"controlLabel",props:{description:{},disabled:{type:Boolean}},setup(n){return(o,s)=>(e.openBlock(),e.createElementBlock("div",se,[e.createElementVNode("div",{class:e.normalizeClass({"top-forms-optionLabel_title":!0,"top-forms-optionLabel_title-disabled":o.disabled})},[e.renderSlot(o.$slots,"default")],2),o.description?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["top-forms-optionLabel_description",{"top-forms-optionLabel_description-disabled":o.disabled}])},e.toDisplayString(o.description),3)):e.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","top-forms-optionLabel_description-disabled":"top-forms-optionLabel_description-disabled"}}]]),ie=["name","value","indeterminate","disabled"],le=b(e.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(n,{emit:o}){const s=n,i=o,a=e.computed({get(){return s.modelValue},set(t){i("update:modelValue",t)}});return(t,d)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass({"top-forms-optionWrapper":!0,"top-checkbox":!0,["top-checkbox_"+t.name]:t.name!=="","top-disabled":t.disabled,"top-error":t.isError&&!t.disabled})},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:e.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":d[0]||(d[0]=r=>a.value=r),value:t.value,indeterminate:t.indeterminate,disabled:t.disabled},null,10,ie),[[e.vModelCheckbox,a.value]]),t.$slots.default?(e.openBlock(),e.createBlock(w,{key:0,description:t.description,disabled:t.disabled},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},8,["description","disabled"])):e.createCommentVNode("",!0)],2))}}),[["__cssModules",{$style:{"top-checkbox":"top-checkbox","top-checkbox_input":"top-checkbox_input","top-error":"top-error"}}]]),re=["title"],F=b(e.defineComponent({__name:"hint",props:{hint:{}},setup(n){return(o,s)=>(e.openBlock(),e.createElementBlock("span",{class:"top-hint","data-top-icon":"",title:o.hint},null,8,re))}}),[["__cssModules",{$style:{"top-hint":"top-hint"}}]]),de=["data-top-icon","data-top-icon2"],pe=["name","title","placeholder","disabled","readonly"],ce={key:1,class:"top-formsCaption"},V=b(e.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(n,{emit:o}){const s=n,i=o,a=e.computed({get(){return s.modelValue},set(r){i("update:modelValue",r)}}),t=e.computed(()=>s.addCleaner&&!s.title||s.captionType!==""?"":s.title),d=()=>{i("update:modelValue","")};return(r,l)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass({"top-input":!0,["top-size_"+r.size]:!0,"top-disabled":r.disabled,["top-input-"+r.modificator]:!!r.modificator,"top-input-withCleaner":r.addCleaner&&a.value&&a.value!=="0000-00-00","top-formsCaptionWrapper":r.captionType!=="","top-formsCaptionWrapper-always":r.captionType==="top"}),"data-top-icon":r.icon,"data-top-icon2":r.icon2},[e.withDirectives(e.createElementVNode("input",e.mergeProps({type:"text",class:{"top-input_input":!0,["top-input_input-"+r.modificator]:!!r.modificator,"top-forms-focusable":!r.disabled,"top-error":r.isError},autocomplete:"off_always",name:r.name,"onUpdate:modelValue":l[0]||(l[0]=f=>a.value=f),title:r.title,placeholder:t.value,disabled:r.disabled,readonly:r.readonly,onKeydown:l[1]||(l[1]=e.withKeys(e.withModifiers(()=>(r.addCleaner||!!r.$slots.btn)&&d(),["stop"]),["esc"]))},r.$attrs),null,16,pe),[[e.vModelText,a.value]]),r.addCleaner&&a.value&&a.value!=="0000-00-00"?(e.openBlock(),e.createElementBlock("span",{key:0,class:"top-input_cleaner","data-top-icon":"",onClick:e.withModifiers(d,["prevent"])})):e.createCommentVNode("",!0),r.captionType!==""?(e.openBlock(),e.createElementBlock("span",ce,e.toDisplayString(r.title),1)):e.createCommentVNode("",!0),e.renderSlot(r.$slots,"default")],10,de))}}),[["__cssModules",{$style:{"top-input":"top-input","top-input_input":"top-input_input","top-input-withCleaner":"top-input-withCleaner","top-input_cleaner":"top-input_cleaner"}}]]),ue=["modelValue"],me=!!document.documentElement.ontouchstart&&!!document.createElement("input").showPicker;let R=n=>{};const fe=b(e.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(n,{emit:o}){const s=n,i=o;e.onUnmounted(()=>{t&&t.datepicker("destroy")});const a=e.ref();let t;const d=e.computed({get(){return y(s.modelValue,2,"0000-00-00")},set(c){c=M(c,"0000-00-00"),i("update:modelValue",c)}});let r=c=>{R(c)},l=c=>{const m=M(c.target.value),h=y(m);if(!h||h===p.L.Not_date||c.target.value!==h){c.target.value=d.value;return}d.value=c.target.value};async function f(c){const m=await new Promise((h,v)=>O(["./datepicker-cc0011e1.amd"],h,v));R=m.oninput,t=m.connectDatepicker(c.target,{onSelect:()=>l(c)}),t&&t.datepicker("show")}return(c,m)=>e.unref(me)?(e.openBlock(),e.createBlock(e.unref(V),e.mergeProps({key:0},c.$props,{modelValue:d.value,readonly:"",onClick:m[1]||(m[1]=h=>a.value.showPicker())}),{default:e.withCtx(()=>[e.createElementVNode("input",{ref_key:"el",ref:a,type:"date",class:"top-input_input-date",modelValue:c.modelValue,onChange:m[0]||(m[0]=h=>d.value=h.target.value),tabindex:"-1"},null,40,ue)]),_:1},16,["modelValue"])):(e.openBlock(),e.createBlock(e.unref(V),e.mergeProps({key:1},c.$props,{modelValue:d.value,"onUpdate:modelValue":m[2]||(m[2]=h=>h===""?d.value="":""),onInput:e.unref(r),onFocusOnce:f,onChange:e.unref(l),modificator:"datepicker"}),null,16,["modelValue","onInput","onChange"]))}}),[["__cssModules",{$style:{"top-input-datepicker":"top-input-datepicker","top-input_input-date":"top-input_input-date"}}]]),be={class:"top-inputRange"},he=e.createElementVNode("span",{class:"top-inputRange_dash"}," — ",-1),ve=b(e.defineComponent({__name:"inputRange",setup(n){return(o,s)=>(e.openBlock(),e.createElementBlock("div",be,[e.renderSlot(o.$slots,"from"),he,e.renderSlot(o.$slots,"to")]))}}),[["__cssModules",{$style:{"top-inputRange":"top-inputRange","top-inputRange_dash":"top-inputRange_dash","top-input":"top-input"}}]]),ye=["name","value","disabled"],ge=b(e.defineComponent({__name:"radio",props:{modelValue:{},value:{},name:{},description:{},disabled:{type:Boolean},isError:{type:Boolean}},emits:["update:modelValue"],setup(n,{emit:o}){const s=n,i=o,a=e.computed({get(){return s.modelValue},set(t){i("update:modelValue",t)}});return(t,d)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass({"top-forms-optionWrapper":!0,"top-radio":!0,["top-radio_"+t.name]:t.name!=="","top-disabled":t.disabled,"top-error":t.isError&&!t.disabled})},[e.withDirectives(e.createElementVNode("input",{type:"radio",class:e.normalizeClass({"top-forms-focusable":!t.disabled,"top-forms-option":!0,"top-radio_input":!0,"top-error":t.isError&&!t.disabled}),"onUpdate:modelValue":d[0]||(d[0]=r=>a.value=r),name:t.name,value:t.value,disabled:t.disabled},null,10,ye),[[e.vModelRadio,a.value]]),t.$slots.default?(e.openBlock(),e.createBlock(w,{key:0,description:t.description,disabled:t.disabled},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},8,["description","disabled"])):e.createCommentVNode("",!0)],2))}}),[["__cssModules",{$style:{"top-radio":"top-radio","top-radio_input":"top-radio_input","top-error":"top-error"}}]]),ke=["name","value","disabled"],we=b(e.defineComponent({__name:"switcher",props:{modelValue:{type:[Boolean,Array,Set]},name:{},value:{},description:{},disabled:{type:Boolean},isError:{type:Boolean}},emits:["update:modelValue"],setup(n,{emit:o}){const s=n,i=o,a=e.computed({get(){return s.modelValue},set(t){i("update:modelValue",t)}});return(t,d)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass({"top-forms-optionWrapper":!0,"top-checkboxSwitcher":!0,"top-disabled":t.disabled,"top-error":t.isError&&!t.disabled})},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:e.normalizeClass({"top-forms-focusable":!t.disabled,"top-forms-option":!0,"top-checkboxSwitcher_input":!0,"top-error":t.isError&&!t.disabled}),"onUpdate:modelValue":d[0]||(d[0]=r=>a.value=r),name:t.name,value:t.value,disabled:t.disabled},null,10,ke),[[e.vModelCheckbox,a.value]]),t.$slots.default?(e.openBlock(),e.createBlock(w,{key:0,description:t.description,disabled:t.disabled},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},8,["description","disabled"])):e.createCommentVNode("",!0)],2))}}),[["__cssModules",{$style:{"top-checkboxSwitcher":"top-checkboxSwitcher","top-checkboxSwitcher_input":"top-checkboxSwitcher_input","top-error":"top-error"}}]]),$e=["name","placeholder","disabled","readonly","rows"],_e={key:0,class:"top-textarea_pseudoContent"},Be=b(e.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(n,{emit:o}){e.useCssVars(t=>({c838a038:t.minHeight+"px"}));const s=n,i=o,a=e.computed({get(){return s.modelValue},set(t){i("update:modelValue",t)}});return(t,d)=>{const r=e.resolveDirective("top-tooltip");return e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass({"top-textarea":!0,["top-textarea-"+t.name]:t.name,"top-disabled":t.disabled})},[e.withDirectives(e.createElementVNode("textarea",e.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":d[0]||(d[0]=l=>a.value=l)}),null,16,$e),[[e.vModelText,a.value]]),t.expandable?(e.openBlock(),e.createElementBlock("div",_e,e.toDisplayString(a.value+" "),1)):e.createCommentVNode("",!0),t.hint?e.withDirectives((e.openBlock(),e.createBlock(F,{key:1,class:"top-textarea_hint",hint:t.hint},null,8,["hint"])),[[r]]):e.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"}}]]),Me=["data-value","data-top-icon","data-top-icon2"],Ve=["name","disabled"],Se=["label","disabled"],Ee=["value","selected","disabled"],Ce=["value","selected","disabled"],ze={key:1,class:"top-formsCaption"},De=b(e.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(n,{emit:o}){const s=n,i=o,a=e.computed({get(){return s.modelValue},set(l){i("update:modelValue",l)}}),t=e.computed(()=>{var l;return(l=d.value.get(a.value))==null?void 0:l.icon}),d=e.computed(()=>{const l=new Map;return s.options.forEach(f=>{if(!f.disabled){if(f.children){f.children.forEach(c=>{c.disabled||l.set(c.value,c)});return}l.set(f.value,f)}}),l});e.watch([e.toRef(s.modelValue),d],()=>{(a.value===null||a.value===void 0)&&d.value.size&&(console.warn("Пожалуйста, не передавайте в компонент Select значения null и undefined"),a.value=d.value.keys().next().value)},{immediate:!0});const r=()=>{const l=[...d.value.keys()],c=(l.indexOf(a.value)+1)%l.length;a.value=l[c]};return(l,f)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass({"top-select":!0,["top-select-"+l.name]:l.name,["top-size_"+l.size]:!0,"top-formsCaptionWrapper":!!l.title,"top-select-error":l.isError,"top-disabled":l.disabled}),"data-value":a.value,"data-top-icon":l.icon,"data-top-icon2":t.value},[e.withDirectives(e.createElementVNode("select",{class:e.normalizeClass({"top-forms-focusable":!l.disabled,"top-select_select":!0,"top-select_arrow":!0,"top-error":l.isError}),name:l.name,disabled:l.disabled,"onUpdate:modelValue":f[0]||(f[0]=c=>a.value=c)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.options.entries(),([c,m])=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[m.children?(e.openBlock(),e.createElementBlock("optgroup",{key:"group_"+m.value,label:m.title,disabled:m.disabled},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.children.entries(),([h,v])=>(e.openBlock(),e.createElementBlock("option",{key:m.value,value:v.value,selected:v.value===a.value,disabled:v.disabled},e.toDisplayString(v.title),9,Ee))),128))],8,Se)):(e.openBlock(),e.createElementBlock("option",{key:m.value,value:m.value,selected:m.value===a.value,disabled:m.disabled},e.toDisplayString(m.title),9,Ce))],64))),256))],10,Ve),[[e.vModelSelect,a.value]]),l.addChanger&&d.value.size&&!l.disabled?(e.openBlock(),e.createElementBlock("span",{key:0,class:"top-changer",onClick:r})):e.createCommentVNode("",!0),l.title?(e.openBlock(),e.createElementBlock("span",ze,e.toDisplayString(l.title),1)):e.createCommentVNode("",!0)],10,Me))}}),[["__cssModules",{$style:{"top-select":"top-select","top-select-error":"top-select-error","top-select_select":"top-select_select","top-changer":"top-changer"}}]]);u.Button=ne,u.ControlLabel=w,u.Core=p,u.Events=L,u.Hint=F,u.Input=V,u.Textarea=Be,u._export_sfc=b,u.avatar=oe,u.checkbox=le,u.dateFormat=y,u.dateUnformat=M,u.genDate=T,u.getCommandKeyLabel=H,u.inputDate=fe,u.inputRange=ve,u.isApp=C,u.isMacOS=z,u.isMobile=E,u.isRetina=S,u.isSafari=W,u.radio=ge,u.select=De,u.stringToDate=X,u.switcher=we});
3
- //# sourceMappingURL=forms-9972aba2.amd.js.map