UNPKG

@topvisor/ui

Version:

Topvisor UI-kit Vue

3 lines (2 loc) 18.1 kB
define(["require","exports","vue","../.chunks/forms-DHThMe8-.amd","../.chunks/listItem.vue_vue_type_script_setup_true_lang-DFQ66WTg.amd","../.chunks/widgetInput.vue_vue_type_script_setup_true_lang-Depb8q1d.amd","../.chunks/popupHint.vue_vue_type_style_index_0_lang-Cce9ZdtW.amd","../utils/keyboard.amd","../.chunks/menu.vue_vue_type_style_index_0_lang-pAW8vFcF.amd","../require/css.amd!../assets/formsExt.css","../require/css.amd!../assets/popupHint.css"],(function(te,w,e,C,E,_,oe,I,S){"use strict";if(typeof e>"u")var e=window.Vue;const N={class:"top-editArea_footer"},M=e.defineComponent({__name:"editArea",props:{defaultValue:{default:""},title:{},cancelText:{default:"Cancel"},submitText:{default:"Send"},closeText:{default:"Close"},isFocused:{type:Boolean},forceShowCloseBtn:{type:Boolean},attachToKeyboard:{type:Boolean},modelValue:{},name:{},placeholder:{},styling:{},rows:{},minHeight:{},expandable:{type:Boolean,default:!0},disabled:{type:Boolean},readonly:{type:Boolean},isError:{type:Boolean},hint:{},maxLength:{}},emits:["submit","close","clickOnTitle"],setup(r,{emit:t}){const l=r,a=t,c=e.ref(l.defaultValue),s=e.ref(l.isFocused),n=e.computed(()=>c.value!==l.defaultValue),u=d=>{a("submit",d),c.value=l.defaultValue},p=()=>{if(l.forceShowCloseBtn&&!n.value){a("close");return}c.value=l.defaultValue},k=()=>{l.attachToKeyboard&&a("clickOnTitle")};return(d,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-editArea":!0,"top-editArea-attachedToKeyboard":d.attachToKeyboard})},[d.title?(e.openBlock(),e.createElementBlock("div",{key:0,class:"top-editArea_title",onClick:f[0]||(f[0]=B=>k())},e.toDisplayString(d.title),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass({"top-editArea_form":!0,"top-forms-focusable":!0,"top-as-input":!0,"top-error":d.isError,"top-focus":s.value})},[e.createVNode(C._sfc_main$11,{modelValue:c.value,"onUpdate:modelValue":f[1]||(f[1]=B=>c.value=B),name:d.name,placeholder:d.placeholder,rows:d.rows,minHeight:d.minHeight,expandable:d.expandable,disabled:d.disabled,readonly:d.readonly,isError:d.isError,hint:d.hint,class:"top-editArea_element",onFocus:f[2]||(f[2]=()=>s.value=!0),onBlur:f[3]||(f[3]=()=>s.value=!1),onKeyup:[e.withKeys(p,["esc"]),f[4]||(f[4]=e.withKeys(e.withModifiers(B=>u(c.value),["ctrl"]),["enter"]))]},null,8,["modelValue","name","placeholder","rows","minHeight","expandable","disabled","readonly","isError","hint"]),e.createElementVNode("div",N,[n.value||d.forceShowCloseBtn?(e.openBlock(),e.createBlock(C._sfc_main$1,{key:0,icon:d.$core.state.isMobile?"":"",class:"top-editArea_button",color:"theme",styling:"soft",onClick:p},e.createSlots({_:2},[d.$core.state.isMobile?void 0:{name:"default",fn:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(d.cancelText),1)]),key:"0"}]),1032,["icon"])):e.createCommentVNode("",!0),n.value?(e.openBlock(),e.createBlock(C._sfc_main$1,{key:1,class:"top-editArea_button",icon:d.$core.state.isMobile?"":"",onClick:f[5]||(f[5]=B=>u(c.value))},e.createSlots({_:2},[d.$core.state.isMobile?void 0:{name:"default",fn:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(d.submitText),1)]),key:"0"}]),1032,["icon"])):e.createCommentVNode("",!0)])],2)],2))}}),L={class:"top-editInput"},z=e.defineComponent({__name:"editInput",props:{modelValue:{},input:{},button:{}},emits:["update:modelValue"],setup(r,{emit:t}){const l=r,a=e.ref(l.modelValue);e.watch(e.toRef(l.modelValue),()=>{a.value=l.modelValue});const c=t,s=()=>{c("update:modelValue",a.value)};return(n,u)=>(e.openBlock(),e.createElementBlock("div",L,[e.createVNode(C._sfc_main,e.mergeProps(n.input,{onKeydownCapture:u[0]||(u[0]=e.withKeys(e.withModifiers(p=>a.value=n.modelValue,["stop"]),["esc"])),onKeydown:e.withKeys(e.withModifiers(s,["stop"]),["enter"]),modelValue:a.value,"onUpdate:modelValue":u[1]||(u[1]=p=>a.value=p)}),null,16,["onKeydown","modelValue"]),a.value!==n.modelValue?(e.openBlock(),e.createBlock(C._sfc_main$1,e.mergeProps({key:0,icon:"",styling:"soft"},n.button,{onClick:s}),null,16)):e.createCommentVNode("",!0)]))}}),$=e.defineComponent({__name:"optionGroup",props:e.mergeModels({modelValue:{},items:{},size:{default:"s"},showIndicator:{type:Boolean},isError:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=e.useModel(r,"modelValue"),l=r,a=e.ref(null);e.watch(t,()=>{var n,u;const s=l.items.map(p=>p.value);Array.isArray(t.value)?t.value.find(k=>!s.includes(k))&&(t.value=t.value.filter(k=>s.includes(k))):s.includes(t.value)||(t.value=s[0]??""),(u=(n=a.value)==null?void 0:n.querySelector(".radioGroup_item-selected"))==null||u.scrollIntoView()},{immediate:!0});const c="optionGroup-"+Math.random();return(s,n)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"elRef",ref:a,class:e.normalizeClass({"top-optionGroup":!0,["top-optionGroup-showIndicator_"+Number(s.showIndicator)]:!0,"top-scrollBarXHidding":!0,["top-size_"+s.size]:!!s.size,"top-error":s.isError})},[Array.isArray(t.value)?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(s.items,u=>(e.openBlock(),e.createBlock(C._sfc_main$4,{class:e.normalizeClass({"top-optionGroup_item-selected":t.value.includes(u.value),"top-optionGroup_item":!0}),modelValue:t.value,"onUpdate:modelValue":n[0]||(n[0]=p=>t.value=p),value:u.value,disabled:u.disabled,isError:s.isError,"data-top-icon":u.icon},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.title),1)]),_:2},1032,["class","modelValue","value","disabled","isError","data-top-icon"]))),256)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(s.items,u=>(e.openBlock(),e.createBlock(C._sfc_main$8,{class:e.normalizeClass({"top-optionGroup_item-selected":u.value===t.value,"top-optionGroup_item":!0}),modelValue:t.value,"onUpdate:modelValue":n[1]||(n[1]=p=>t.value=p),name:c,value:u.value,disabled:u.disabled,isError:s.isError,"data-top-icon":u.icon},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.title),1)]),_:2},1032,["class","modelValue","value","disabled","isError","data-top-icon"]))),256))],2))}}),D=e.defineComponent({__name:"radioGroup",props:e.mergeModels({modelValue:{},items:{},size:{},showIndicator:{type:Boolean},isError:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=e.useModel(r,"modelValue");return(l,a)=>(e.openBlock(),e.createBlock($,{class:"top-radioGroup",modelValue:t.value,"onUpdate:modelValue":a[0]||(a[0]=c=>t.value=c),items:l.$props.items,size:l.$props.size,showIndicator:l.$props.showIndicator,isError:l.$props.isError},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["modelValue","items","size","showIndicator","isError"]))}}),K=e.defineComponent({__name:"checkboxGroup",props:e.mergeModels({modelValue:{},items:{},size:{},showIndicator:{type:Boolean},isError:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=e.useModel(r,"modelValue");return(l,a)=>(e.openBlock(),e.createBlock($,{class:"top-checkboxGroup",modelValue:t.value,"onUpdate:modelValue":a[0]||(a[0]=c=>t.value=c),items:l.$props.items,size:l.$props.size,showIndicator:l.$props.showIndicator,isError:l.$props.isError},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["modelValue","items","size","showIndicator","isError"]))}}),R={class:"top-selector2_itemMulti top-ellipsis"},P=e.defineComponent({__name:"itemMulti",props:{id:{},name:{}},emits:["delete"],setup(r){return(t,l)=>(e.openBlock(),e.createElementBlock("div",R,[e.createTextVNode(e.toDisplayString(t.name)+" ",1),e.createElementVNode("span",{class:"top-selector2_itemMultiDelete","data-top-icon":"",onClick:l[0]||(l[0]=a=>t.$emit("delete",t.id)),onMousedown:l[1]||(l[1]=e.withModifiers(()=>{},["stop"]))},null,32)]))}}),q=(r,t,l,a)=>{const c=e.ref([]),s=new Map,n=e.ref(!1);let u="",p;r&&!r.params.limit&&(r.params.limit=100);const k=async()=>{if(!r)return;let v;if(a){v=JSON.stringify(r.params);const b=s.get(v);if(b)return b}n.value=!0;const h=await r.call();if(n.value=!1,h.errors)return;if(!Array.isArray(h.result)){console.warn("Array expected in `res.result`");return}const T=h.result.findIndex(b=>b.id===void 0||b.name===void 0);if(T!==-1){console.warn(`В result[${T}] нет id или name`);return}return v&&s.set(v,h),h},d=async v=>{if(!r)return;if(v){if(!p||n.value)return;r.params.offset=p}else r.params.offset=0;t==null||t(u);const h=await k();h&&(p=h.nextOffset,v?c.value=c.value.concat(h.result):c.value=h.result)},f=C.debounce(()=>d(!1),200);return{apiRequest:r,items:c,isLoading:n,load:d,setSearchTextAndLoad:(v,h=!0)=>{r&&(v.length<l||v===u&&c.value.length||(u=v,h?f():d(!1)))}}},G=0,A=(r,t,l=!0)=>l&&t.id===null?Array.isArray(r)?r.some(a=>a.id===t.id&&a.name===t.name):t.name===r.name:Array.isArray(r)?r.some(a=>a.id===t.id):t.id===r.id,O=(r,t,l,a,c,s,n,u)=>{const p=e.ref(""),k={id:G,name:C.useI18n().Common.All},d=()=>{p.value="",u.items.value=[]},f=()=>!(!u.apiRequest||s.value!=="inline"||p.value.length>=n),B=e.computed(()=>{var o;const y=[];return!l&&a.value&&y.push(k),(o=t.value)==null||o.forEach(i=>y.push({...i})),y}),v=e.computed(()=>{const y=p.value.toLowerCase(),o=I.invertKeyboardLayout(y);let i=[];return B.value.forEach(g=>{const m=g.name.toLowerCase();(g.id===Number(y)||m.includes(y)||m.includes(o))&&(m===y||m===o?i.unshift(g):i.push(g))}),i.push(...u.items.value),c.value&&p.value&&(!i.length||i[0].name.toLowerCase()!==y)&&i.push({id:null,name:p.value}),l&&(i=i.filter(g=>!A(r.value,g))),i});return{searchText:p,resetSearch:d,genIsShort:f,items:B,itemsForShow:v,selectItem:y=>{l&&Array.isArray(r.value)?A(r.value,y)||(r.value=[...r.value,y]):r.value=y},selectNextItem:()=>{if(!Array.isArray(r.value)){const o=(v.value.findIndex(i=>i.id===r.value.id)+1)%v.value.length;r.value={...v.value[o]}}},deleteItemById:async y=>{Array.isArray(r.value)&&(r.value=r.value.filter(o=>o.id!==y))}}},F={key:0,class:"top-selector2_activeItems"},H={key:1,class:"top-selector2_activeName top-ellipsis"},U={key:2,class:"top-selector2_placeholder top-ellipsis"},W=e.defineComponent({__name:"selector2",props:e.mergeModels({modelValue:{},items:{default:()=>[]},title:{},disabled:{type:Boolean},modificator:{},size:{default:"s"},isError:{type:Boolean},searchType:{default:"popup"},placeholder:{},api:{},apiSetSearchParams:{},minLength:{default:0},useCache:{type:Boolean},appendSearchToResult:{type:Boolean},multiselect:{type:Boolean},appendAllValue:{type:Boolean},addChanger:{type:Boolean},buttonProps:{},selectedAsPlaceholder:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,l=e.useModel(r,"modelValue"),a=e.computed(()=>t.searchType==="inline"&&t.multiselect||t.searchType==="inline"&&C.Core.state.isMobile?"popup":t.searchType);let c=0;a.value==="inline"&&t.minLength&&(c=t.minLength);const s=q(t.api,t.apiSetSearchParams,c,t.useCache),n=O(l,e.toRef(t,"items"),t.multiselect,e.toRef(t,"appendAllValue"),e.toRef(t,"appendSearchToResult"),a,c,s),u=e.computed(()=>t.buttonProps?"TopButton":a.value==="inline"?"TopInput":"div"),p=e.ref(null),k=()=>{var o;return(o=p.value)==null?void 0:o.popup};s.apiRequest&&e.watch(n.searchText,()=>{var o;s.setSearchTextAndLoad(n.searchText.value),a.value==="inline"&&n.genIsShort()&&((o=k())==null||o.close())}),e.watch(l,()=>{a.value==="inline"&&n.resetSearch()});const d=e.computed(()=>{var o;return Array.isArray(l.value)||t.multiselect||!t.selectedAsPlaceholder&&a.value!=="inline"?t.placeholder:((o=l.value)==null?void 0:o.name)||t.placeholder}),f=o=>{var m,V;let i=!1;switch(o.key){case"Delete":case"Backspace":Array.isArray(l.value)&&(o.preventDefault(),o.stopPropagation(),l.value.pop());break;case"ArrowUp":case"ArrowRight":case"ArrowDown":case"ArrowLeft":case"Enter":case" ":i=!0;break;case"Escape":a.value==="inline"&&n.resetSearch();break}const g=o.key.length===1&&!o.ctrlKey&&!o.metaKey;(a.value==="popup"||a.value==="inline")&&g&&(i=!0),(m=k())!=null&&m.elPopup&&(i=!1),i&&(a.value==="popup"&&(o.preventDefault(),o.stopPropagation(),g&&(n.searchText.value||(n.searchText.value=o.key))),(V=o.currentTarget)==null||V.click())};let B=!1;const v=o=>{var i;B||a.value==="inline"&&((i=o.currentTarget)==null||i.click())},h=o=>{var i,g;o.preventDefault(),B=!0,(g=(i=o.currentTarget)==null?void 0:i.parentElement)==null||g.focus(),B=!1,n.selectNextItem()},T=()=>{var o;if(B=!0,s.apiRequest){if(n.genIsShort()){(o=k())==null||o.close();return}s.setSearchTextAndLoad(n.searchText.value,!1)}},b=()=>{setTimeout(()=>{B=!1},100),a.value==="popup"&&n.searchText.value&&n.resetSearch()},y=o=>{const i=o.target;i.scrollTop/(i.scrollHeight-i.offsetHeight)>.8&&s.load(!0)};return window.__STORYBOOK_PREVIEW__&&(e.watch(()=>t.multiselect,()=>{t.multiselect?Array.isArray(l.value)||(l.value=[{id:1,name:"Выбери меня"}]):Array.isArray(l.value)&&(l.value={id:null,name:""})},{immediate:!0}),e.watch(()=>t.searchType,()=>{setTimeout(()=>{location.reload()},500)})),(o,i)=>{const g=e.resolveDirective("top-focus");return e.openBlock(),e.createBlock(e.unref(E._sfc_main),{ref_key:"popupRef",ref:p,onOpen:i[3]||(i[3]=m=>T()),onClose:i[4]||(i[4]=m=>b()),onScrollContentList:i[5]||(i[5]=m=>e.unref(s)?y(m):void 0),notch:a.value!=="inline",transitionDuration:0},e.createSlots({opener:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(e.resolveDynamicComponent(u.value),e.mergeProps(o.buttonProps,{ref:"subcomponentSelector",class:{"top-selector2":!0,"top-selector2-multiselect":o.multiselect,["top-selector2-"+o.modificator]:!!o.modificator,"top-as-input":!o.buttonProps,"top-as-selector":!0,["top-size_"+o.size]:!0,"top-disabled":o.disabled,"top-forms-focusable":!o.disabled,"top-error":o.isError},tabindex:"0",onKeydown:f,placeholder:d.value,modelValue:e.unref(n).searchText.value,"onUpdate:modelValue":i[0]||(i[0]=m=>e.unref(n).searchText.value=m),onFocus:v,onBlur:i[1]||(i[1]=m=>{var V;return(V=k())!=null&&V.isClosed?e.unref(n).resetSearch():""})}),{default:e.withCtx(()=>[o.multiselect?(e.openBlock(),e.createElementBlock("div",F,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,m=>(e.openBlock(),e.createBlock(P,{id:m.id,name:m.name,onDelete:e.unref(n).deleteItemById},null,8,["id","name","onDelete"]))),256))])):e.createCommentVNode("",!0),a.value!=="inline"&&!o.multiselect?(e.openBlock(),e.createElementBlock("span",H,e.toDisplayString(Array.isArray(l.value)?"":l.value.name),1)):e.createCommentVNode("",!0),o.multiselect&&!l.value.length?(e.openBlock(),e.createElementBlock("span",U,e.toDisplayString(d.value),1)):e.createCommentVNode("",!0),o.addChanger&&!o.buttonProps&&!o.multiselect&&e.unref(n).items.value.length>1&&!o.disabled?(e.openBlock(),e.createElementBlock("span",{key:3,class:"top-changer top-changer-selector top-popup_widget","data-top-popup-disabled":"true",onClick:h})):e.createCommentVNode("",!0)]),_:1},16,["class","placeholder","modelValue"])),[[g,o.isError,void 0,{onupdate:!0}]])]),contentList:e.withCtx(()=>{var m;return[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(n).itemsForShow.value,V=>(e.openBlock(),e.createBlock(e.unref(E._sfc_main$2),{class:e.normalizeClass({"top-active":!Array.isArray(l.value)&&!o.multiselect&&l.value.id===V.id&&l.value.name===V.name}),key:V.id??void 0,closeByClick:!o.multiselect||e.unref(C.Core).state.isMobile,onClick:le=>e.unref(n).selectItem(V)},{default:e.withCtx(()=>[o.$slots.item?e.renderSlot(o.$slots,"item",{key:0,item:V}):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(V.name),1)],64))]),_:2},1032,["class","closeByClick","onClick"]))),128)),!e.unref(s).isLoading.value&&!e.unref(n).itemsForShow.value.length?(e.openBlock(),e.createBlock(e.unref(E._sfc_main$2),{key:0,type:"regular"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.$i18n.Common.No_results),1)]),_:1})):e.createCommentVNode("",!0),e.unref(s).isLoading.value&&(o.searchType!=="popup"||(m=e.unref(s).apiRequest)!=null&&m.params.offset)?(e.openBlock(),e.createBlock(e.unref(E._sfc_main$2),{key:1,type:"regular"},{default:e.withCtx(()=>[e.createVNode(e.unref(C._sfc_main$12),{type:"circles"})]),_:1})):e.createCommentVNode("",!0)]}),_:2},[a.value==="popup"?{name:"widget",fn:e.withCtx(()=>{var m;return[e.createVNode(e.unref(_._sfc_main),{title:"Поиск",icon:"",modelValue:e.unref(n).searchText.value,"onUpdate:modelValue":i[2]||(i[2]=V=>e.unref(n).searchText.value=V),isLoading:e.unref(s).isLoading.value&&!((m=e.unref(s).apiRequest)!=null&&m.params.offset),placeholder:d.value},null,8,["modelValue","isLoading","placeholder"])]}),key:"0"}:void 0]),1032,["notch"])}}}),j=["data-top-icon"],J={class:"top-info_text"},X={key:0,class:"top-info_value"},Y=e.defineComponent({__name:"info",props:{icon:{},styling:{default:"default"},size:{default:"default"}},setup(r){return(t,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-info":!0,["top-size_"+t.size]:!0,["top-info-styling_"+t.styling]:!0}),"data-top-icon":t.icon},[e.createElementVNode("div",J,[e.renderSlot(t.$slots,"default")]),t.$slots.additional?(e.openBlock(),e.createElementBlock("span",X,[e.renderSlot(t.$slots,"additional")])):e.createCommentVNode("",!0)],10,j))}}),Q={key:0,class:"top-policy"},Z={class:"top-policy_title"},x=["innerHTML"],ee=e.defineComponent({__name:"policy",props:{title:{},description:{},acceptText:{}},emits:["accept"],setup(r,{emit:t}){const l=t,a=e.ref(!0),c=()=>{a.value=!1,l("accept")};return(s,n)=>a.value?(e.openBlock(),e.createElementBlock("div",Q,[e.createElementVNode("div",Z,e.toDisplayString(s.title),1),e.createElementVNode("div",{class:"top-policy_description",innerHTML:s.description},null,8,x),e.createVNode(e.unref(C._sfc_main$1),{size:"m",onClick:c},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.acceptText),1)]),_:1})])):e.createCommentVNode("",!0)}});w.TopMenu=S._sfc_main,w.TopCheckboxGroup=K,w.TopEditArea=M,w.TopEditInput=z,w.TopInfo=Y,w.TopPolicy=ee,w.TopRadioGroup=D,w.TopSelector2=W,Object.defineProperty(w,Symbol.toStringTag,{value:"Module"})})); //# sourceMappingURL=formsExt.amd.js.map