PageSourceSearch

https://padwork.ru/build/assets/Index-JRaNDjx0.js

js padwork.ru collected 2026-10-08 00:46:38 UTC 16,772 bytes, 1 lines download raw bytes

1import{d as T,C as m,N as V,J as o,D as ne,R as be,u as e,O as he,f as ke,I as s,K as a,G as _,z as p,F as v,A as h,M as q,B as K,E as u,T as R,U as J,j as A,r as L}from"./fullcalendar-Dkc-EwSr.js";import{_ as we,u as Ce,d as $e,e as Ve}from"./AppAdacLayout.vue_vue_type_script_setup_true_lang-3q3T7LSt.js";import{_ as k}from"./InputError.vue_vue_type_script_setup_true_lang-DBx4bZIN.js";import{_ as x}from"./index-55kevTyW.js";import{_ as H,a as Q,b as W,c as X}from"./DialogTitle.vue_vue_type_script_setup_true_lang-CnD9e-Y9.js";import{_ as ze}from"./DialogClose.vue_vue_type_script_setup_true_lang-BBtFoVo6.js";import{_ as Y}from"./DialogContent.vue_vue_type_script_setup_true_lang-BtyzP4_Z.js";import{_ as Z}from"./DialogFooter.vue_vue_type_script_setup_true_lang-BM9qtNmI.js";import{c as Ue,f as Se,b as De}from"./utils-jWIVhZo8.js";import{_ as $}from"./Input.vue_vue_type_script_setup_true_lang-CegJCFFO.js";import{_ as F}from"./Label.vue_vue_type_script_setup_true_lang-CkTMGf85.js";import{_ as Be}from"./TablePagination.vue_vue_type_script_setup_true_lang-ZwD2LmWD.js";import{d as ee,_ as te,a as se,b as le,c as G}from"./SelectValue.vue_vue_type_script_setup_true_lang-DDZQjZKB.js";import{i as Le,_ as je}from"./SelectGroup.vue_vue_type_script_setup_true_lang-BVX5Yb2i.js";import{P as Ae}from"./Primitive-CQiDEoJj.js";import{a as Fe,h as Ge,u as ae}from"./app-3AN8HzNg.js";import{t as oe}from"./index-ibvesCal.js";import{P as re}from"./plus-BTt0DQAN.js";import{A as Te}from"./arrow-up-oPBiNmmA.js";import{A as Pe}from"./arrow-down-BZe3sznG.js";import{T as j}from"./trash-2-BTM8rHtx.js";import"./index-DE4duBNV.js";import"./index-B9irkoS-.js";import"./useForwardPropsEmits-BfAtLY9F.js";import"./DialogTitle-CZE5NeWc.js";import"./useForwardExpose-C98yF6ti.js";import"./Teleport-EzJ4yyn0.js";import"./index-tRZqOmAf.js";import"./x-B0UB_BaG.js";import"./createLucideIcon-B_BsjdCW.js";import"./index-wUgDF1WJ.js";import"./useInitials-Bqp9fOJW.js";import"./PopperContent-DOVsokDd.js";import"./VisuallyHidden-DyiOSjlz.js";import"./useArrowNavigation-D-pctMGk.js";import"./useTypeahead-BxaP9DsR.js";import"./RovingFocusGroup-BKHVahvh.js";import"./Collection-DhriBEtI.js";import"./index-CsXOAvvm.js";import"./settings-BR9N6VyH.js";import"./download-BJ8kD0o0.js";import"./chevrons-up-down-BVsCeSKh.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./chevron-right-xt332YxU.js";import"./Sonner.vue_vue_type_script_setup_true_lang-BMcPSWzo.js";import"./chevron-left-BoBFvC7m.js";import"./useNonce-CTb6tWEL.js";import"./chevron-down-DdmTMy42.js";import"./chevron-up-DxjNKU0I.js";import"./check-VaTBq0kM.js";import"./ohash.D__AXeF1-C-E83dC9.js";import"./useFormControl-DfC8rP8m.js";/* empty css            */import"./highlight-NyLe0hZZ.js";import"./lodash-Bc66MGl4.js";var Ee=T({__name:"SelectLabel",props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},setup(z){const w=z,y=Le({id:""});return(g,P)=>(m(),V(e(Ae),be(w,{id:e(y).id}),{default:o(()=>[ne(g.$slots,"default")]),_:3},16,["id"]))}}),Ie=Ee;const Me=T({__name:"SelectLabel",props:{for:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(z){const w=z;return(y,g)=>(m(),V(e(Ie),{"data-slot":"select-label",class:he(e(Ue)("px-2 py-1.5 text-sm font-medium",w.class))},{default:o(()=>[ne(y.$slots,"default")]),_:3},8,["class"]))}}),Ne={class:"px-4 py-6 sm:px-6 lg:px-8"},Oe={class:"sm:flex sm:items-center"},qe={class:"sm:flex-auto"},Ke={class:"text-base font-semibold text-gray-900"},Re={class:"mt-8 flow-root"},Je={class:"-mx-4 -my-2 overflow-x-auto sm:-mx-6 lg:-mx-8"},He={class:"inline-block min-w-full py-2 align-middle sm:px-6 lg:px-8"},Qe={class:"overflow-hidden shadow-sm ring-1 ring-black/5 sm:rounded-lg"},We={class:"min-w-full divide-y divide-gray-300"},Xe={class:"divide-y divide-gray-200 bg-white"},Ye={class:"py-4 pr-3 pl-4 text-sm font-medium whitespace-nowrap text-gray-900 sm:pl-6"},Ze={class:"px-3 py-4 text-sm whitespace-nowrap text-gray-500"},et={class:"px-3 py-4 text-sm text-gray-900"},tt={key:0,class:"max-w-xl text-gray-700"},st={class:"mt-1.5 flex flex-wrap gap-1.5"},lt={class:"text-gray-400"},at={class:"relative flex justify-end gap-4 py-4 pr-4 pl-3 text-right text-sm font-medium whitespace-nowrap sm:pr-6"},ot=["onClick"],rt=["onClick"],nt={class:"flex flex-col gap-4 overflow-y-auto px-6 py-4"},it={class:"grid gap-4 sm:grid-cols-2"},dt={class:"flex flex-col gap-2"},mt={class:"flex flex-col gap-2"},ut={class:"flex flex-col gap-2"},pt={class:"flex items-center justify-between"},ct={class:"flex flex-wrap items-center gap-2"},ft={class:"ml-auto flex items-center gap-1"},_t={class:"mt-3 space-y-3"},xt={class:"grid gap-2 sm:grid-cols-[1fr_2fr_auto]"},vt={class:"flex items-start gap-2"},yt=["onUpdate:modelValue"],gt={key:2,class:"mt-2 space-y-2 pl-6"},bt=["onClick"],ht={class:"flex flex-col gap-4 overflow-y-auto px-6 py-4"},ws=T({__name:"Index",setup(z){const w=[{title:"Обновления",href:"#"}],y=A(()=>ae().props.updates),g=A(()=>ae().props.types),P=A(()=>{const r=Object.entries(g.value),t=l=>r.filter(([,i])=>i.category===l).map(([i,d])=>({value:i,label:d.label}));return[{label:"Шаблоны досок",options:t("template")},{label:"Разделы",options:t("section")},{label:"Общее",options:t("platform")}].filter(l=>l.options.length>0)}),E=()=>({name:"",desc:"",text:"",children:[]}),U=()=>({kind:"update",type:"platform",items:[E()]}),n=Fe({name:"",release_date:"",summary:"",groups:[U()]});function ie(r){return r?.length?r.map(t=>
1({kind:t.kind??"update",type:t.type,items:t.items.map(l=>({name:l.name??"",desc:l.desc??"",text:l.text??"",children:(l.children??[]).map(i=>({text:i.text}))}))})):[U()]}const b=L(null);ke(b,r=>{r?(n.name=r.name,n.summary=r.summary??"",n.release_date=Se(r.release_date),n.groups=ie(r.groups)):(n.reset(),n.groups=[U()])});const C=L(!1),S=L(!1),D=L(null),de=()=>{b.value=null,C.value=!0},me=r=>{b.value=r,C.value=!0},ue=r=>{D.value=r,S.value=!0},pe=()=>n.groups.push(U()),ce=r=>n.groups.splice(r,1),I=(r,t)=>{const l=r+t;if(l<0||l>=n.groups.length)return;const[i]=n.groups.splice(r,1);n.groups.splice(l,0,i)},fe=r=>r.items.push(E()),M=(r,t)=>r.items.splice(t,1),_e=(r,t)=>r.items[t].children.push({text:""}),xe=(r,t,l)=>r.items[t].children.splice(l,1),B=r=>n.errors[r],ve=r=>r.map(t=>({kind:t.kind,type:t.type,items:t.items.map(l=>({...t.kind==="new"?{name:l.name,desc:l.desc}:{text:l.text},children:l.children.filter(i=>i.text.trim()!=="")}))})),ye=()=>{const r={onError:t=>oe.error(t?.toast_message??"Проверьте заполнение формы"),onSuccess:()=>{oe("Сохранено"),C.value=!1,b.value=null},preserveScroll:!0,preserveState:!0};n.transform(t=>({...t,groups:ve(t.groups)})).submit(b.value?Ce({padwork_update:b.value.id}):$e(),r)},ge=()=>{n.delete(Ve({padwork_update:D.value.id}).url,{onSuccess:()=>{S.value=!1,D.value=null}})};return(r,t)=>(m(),V(we,{breadcrumbs:w},{default:o(()=>[s(e(Ge),{title:"Обновления"}),a("div",Ne,[a("div",Oe,[a("div",qe,[a("h1",Ke," Обновления ("+_(y.value.total)+") ",1)]),a("div",{class:"mt-4 sm:mt-0 sm:ml-16 sm:flex-none"},[a("button",{type:"button",class:"block rounded-md bg-primary-600 px-3 py-2 text-center text-sm font-semibold text-white shadow-xs hover:bg-primary-500 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600",onClick:de}," Добавить ")])]),a("div",Re,[a("div",Je,[a("div",He,[a("div",Qe,[a("table",We,[t[5]||(t[5]=a("thead",{class:"bg-gray-50"},[a("tr",null,[a("th",{scope:"col",class:"py-3.5 pr-3 pl-4 text-left text-sm font-semibold text-gray-900 sm:pl-6"}," Версия "),a("th",{scope:"col",class:"px-3 py-3.5 text-left text-sm font-semibold text-gray-900"}," Дата релиза "),a("th",{scope:"col",class:"px-3 py-3.5 text-left text-sm font-semibold text-gray-900"}," Содержание "),a("th",{scope:"col",class:"relative py-3.5 pr-4 pl-3 sm:pr-6"},[a("span",{class:"sr-only"},"Edit")])])],-1)),a("tbody",Xe,[(m(!0),p(v,null,h(y.value.data,l=>(m(),p("tr",{key:l.id},[a("td",Ye,_(l.name),1),a("td",Ze,_(e(De)(l.release_date)),1),a("td",et,[l.summary?(m(),p("p",tt,_(l.summary),1)):q("",!0),a("div",st,[(m(!0),p(v,null,h(l.groups??[],(i,d)=>(m(),p("span",{key:d,class:"inline-flex items-center gap-1 rounded-full bg-gray-100 px-2 py-0.5 text-xs text-gray-700"},[a("span",{class:"size-1.5 rounded-full",style:K({backgroundColor:g.value[i.type]?.tone??"#64748b"})},null,4),u(" "+_(g.value[i.type]?.label??i.type)+" ",1),a("span",lt,"· "+_(i.items.length),1)]))),128))])]),a("td",at,[a("span",{onClick:i=>me(l),class:"text-primary-600 hover:cursor-pointer hover:text-primary-900"},"Редактировать",8,ot),a("span",{onClick:i=>ue(l),class:"text-red-600 hover:cursor-pointer hover:text-red-900"},"Удалить",8,rt)])]))),128))])])])])])]),s(Be,{links:y.value},null,8,["links"]),s(e(H),{open:C.value,"onUpdate:open":t[3]||(t[3]=l=>C.value=l)},{default:o(()=>[s(e(Y),{class:"max-h-[90dvh] grid-rows-[auto_minmax(0,1fr)_auto] p-0 sm:max-w-4xl"},{default:o(()=>[s(e(Q),{class:"p-6 pb-0"},{default:o(()=>[s(e(W),null,{default:o(()=>[u(_(b.value?"Редактирование обновления":"Создание обновления"),1)]),_:1}),s(e(X),null,{default:o(()=>[...t[6]||(t[6]=[u(" Структурированный список изменений релиза ",-1)])]),_:1})]),_:1}),a("div",nt,[a("div",it,[a("div",dt,[s(e(F),{for:"version"},{default:o(()=>[...t[7]||(t[7]=[u("Версия",-1)])]),_:1}),s(e($),{id:"version",type:"text",placeholder:"1.24.0",modelValue:e(n).name,"onUpdate:modelValue":t[0]||(t[0]=l=>e(n).name=l)},null,8,["modelValue"]),s(k,{message:e(n).errors.name},null,8,["message"])]),a("div",mt,[s(e(F),{for:"release_date"},{default:o(()=>[...t[8]||(t[8]=[u("Дата и время",-1)])]),_:1}),s(e($),{id:"release_date",type:"datetime-local",modelValue:e(n).release_date,"onUpdate:modelValue":t[1]||(t[1]=l=>e(n).release_date=l)},null,8,["modelValue"]),s(k,{message:e(n).errors.release_date},null,8,["message"])])]),a("div",ut,[s(e(F),{for:"summary"},{default:o(()=>[...t[9]||(t[9]=[u(" Кратко ",-1),a("span",{class:"font-normal text-muted-foreground"},"— для карточки релиза на лендинге и дашборде",-1)])]),_:1}),R(a("textarea",{id:"summary","onUpdate:modelValue":t[2]||(t[2]=l=>e(n).summary=l),rows:"2",class:"field-sizing-content min-h-16 rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs placeholder:text-muted-foreground focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-hidden",placeholder:"Большой апдейт ретроспектив: 10 шаблонов от «Лодки» до KALM…"},null,512),[[J,e(n).summary]]),s(k,{message:e(n).errors.summary},null,8,["message"])]),a("div",pt,[t[11]||(t[11]=a("h3",{class:"text-sm font-semibold text-foreground"}," Группы изменений ",-1)),s(e(x),{type:"button",variant:"outline",size:"sm",onClick:pe},{default:o(()=>[s(e(re),{class:"size-4"}),t[10]||(t[10]=u(" Добавить группу ",-1))]),_:1})]),s(k,{message:e(n).errors.groups}
1,null,8,["message"]),(m(!0),p(v,null,h(e(n).groups,(l,i)=>(m(),p("div",{key:i,class:"rounded-lg border p-4"},[a("div",ct,[s(e(ee),{modelValue:l.kind,"onUpdate:modelValue":d=>l.kind=d},{default:o(()=>[s(e(te),{class:"w-44"},{default:o(()=>[s(e(se))]),_:1}),s(e(le),null,{default:o(()=>[s(e(G),{value:"update"},{default:o(()=>[...t[12]||(t[12]=[u("Обновление",-1)])]),_:1}),s(e(G),{value:"new"},{default:o(()=>[...t[13]||(t[13]=[u("Новые шаблоны",-1)])]),_:1})]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"]),s(e(ee),{modelValue:l.type,"onUpdate:modelValue":d=>l.type=d},{default:o(()=>[s(e(te),{class:"w-52"},{default:o(()=>[s(e(se),{placeholder:"Тип доски / раздел"})]),_:1}),s(e(le),null,{default:o(()=>[(m(!0),p(v,null,h(P.value,d=>(m(),V(e(je),{key:d.label},{default:o(()=>[s(e(Me),null,{default:o(()=>[u(_(d.label),1)]),_:2},1024),(m(!0),p(v,null,h(d.options,c=>(m(),V(e(G),{key:c.value,value:c.value},{default:o(()=>[a("span",{class:"mr-1 inline-block size-2 rounded-full",style:K({backgroundColor:g.value[c.value]?.tone})},null,4),u(" "+_(c.label),1)]),_:2},1032,["value"]))),128))]),_:2},1024))),128))]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"]),a("div",ft,[s(e(x),{type:"button",variant:"ghost",size:"icon",disabled:i===0,onClick:d=>I(i,-1)},{default:o(()=>[s(e(Te),{class:"size-4"})]),_:1},8,["disabled","onClick"]),s(e(x),{type:"button",variant:"ghost",size:"icon",disabled:i===e(n).groups.length-1,onClick:d=>I(i,1)},{default:o(()=>[s(e(Pe),{class:"size-4"})]),_:1},8,["disabled","onClick"]),s(e(x),{type:"button",variant:"ghost",size:"icon",class:"text-red-600 hover:text-red-700",disabled:e(n).groups.length===1,onClick:d=>ce(i)},{default:o(()=>[s(e(j),{class:"size-4"})]),_:1},8,["disabled","onClick"])])]),s(k,{class:"mt-2",message:B(`groups.${i}.type`)??B(`groups.${i}.items`)},null,8,["message"]),a("div",_t,[(m(!0),p(v,null,h(l.items,(d,c)=>(m(),p("div",{key:c,class:"rounded-md bg-muted/40 p-3"},[l.kind==="new"?(m(),p(v,{key:0},[a("div",xt,[s(e($),{modelValue:d.name,"onUpdate:modelValue":f=>d.name=f,placeholder:"Название шаблона"},null,8,["modelValue","onUpdate:modelValue"]),s(e($),{modelValue:d.desc,"onUpdate:modelValue":f=>d.desc=f,placeholder:"Короткое описание"},null,8,["modelValue","onUpdate:modelValue"]),s(e(x),{type:"button",variant:"ghost",size:"icon",class:"text-red-600 hover:text-red-700",disabled:l.items.length===1,onClick:f=>M(l,c)},{default:o(()=>[s(e(j),{class:"size-4"})]),_:1},8,["disabled","onClick"])]),s(k,{class:"mt-1",message:B(`groups.${i}.items.${c}.name`)},null,8,["message"])],64)):(m(),p(v,{key:1},[a("div",vt,[R(a("textarea",{"onUpdate:modelValue":f=>d.text=f,rows:"2",class:"field-sizing-content min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs placeholder:text-muted-foreground focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-hidden",placeholder:"Что изменилось"},null,8,yt),[[J,d.text]]),s(e(x),{type:"button",variant:"ghost",size:"icon",class:"text-red-600 hover:text-red-700",disabled:l.items.length===1,onClick:f=>M(l,c)},{default:o(()=>[s(e(j),{class:"size-4"})]),_:1},8,["disabled","onClick"])]),t[14]||(t[14]=a("p",{class:"mt-1 text-xs text-muted-foreground"},[u(" Ссылки: "),a("code",null,"[текст](https://…)"),u(" или просто URL — отрендерятся как кликабельные. Поддерживаются теги <strong>, <em>, <u>. ")],-1)),s(k,{class:"mt-1",message:B(`groups.${i}.items.${c}.text`)},null,8,["message"])],64)),d.children.length?(m(),p("div",gt,[(m(!0),p(v,null,h(d.children,(f,N)=>(m(),p("div",{key:N,class:"flex items-center gap-2"},[s(e($),{modelValue:f.text,"onUpdate:modelValue":O=>f.text=O,placeholder:"Подпункт"},null,8,["modelValue","onUpdate:modelValue"]),s(e(x),{type:"button",variant:"ghost",size:"icon",class:"text-red-600 hover:text-red-700",onClick:O=>xe(l,c,N)},{default:o(()=>[s(e(j),{class:"size-4"})]),_:1},8,["onClick"])]))),128))])):q("",!0),a("button",{type:"button",class:"mt-2 ml-6 text-xs font-medium text-primary-600 hover:underline",onClick:f=>_e(l,c)}," + Подпункт ",8,bt)]))),128)),s(e(x),{type:"button",variant:"outline",size:"sm",onClick:d=>fe(l)},{default:o(()=>[s(e(re),{class:"size-4"}),u(" "+_(l.kind==="new"?"Добавить шаблон":"Добавить пункт"),1)]),_:2},1032,["onClick"])])]))),128))]),s(e(Z),{class:"p-6 pt-0"},{default:o(()=>[s(e(x),{onClick:ye,disabled:e(n).processing,type:"submit"},{default:o(()=>[...t[15]||(t[15]=[u(" Сохранить ",-1)])]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["open"]),s(e(H),{open:S.value,"onUpdate:open":t[4]||(t[4]=l=>S.value=l)},{default:o(()=>[s(e(Y),{class:"max-h-[90dvh] grid-rows-[auto_minmax(0,1fr)_auto] p-0 sm:max-w-4xl"},{default:o(()=>[s(e(Q),{class:"p-6 pb-0"},{default:o(()=>[s(e(W),null,{default:o(()=>[...t[16]||(t[16]=[u("Удаление обновления",-1)])]),_:1}),s(e(X),null,{default:o(()=>[...t[17]||(t[17]=[u(" Подтвердите ",-1)])]),_:1})]),_:1}
1),a("div",ht,[a("p",null," Вы действительно хотите удалить обновление "+_(D.value?.name)+"? ",1)]),s(e(Z),{class:"p-6 pt-0"},{default:o(()=>[s(e(x),{onClick:ge,disabled:e(n).processing,variant:"destructive"},{default:o(()=>[...t[18]||(t[18]=[u(" Удалить ",-1)])]),_:1},8,["disabled"]),s(e(ze),null,{default:o(()=>[s(e(x),{variant:"outline"},{default:o(()=>[...t[19]||(t[19]=[u(" Отмена ",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["open"])])]),_:1}))}});export{ws as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.