dev-process-kit 0.0.2-beta.1 → 0.0.3
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.
- package/README.md +22 -9
- package/dist/chunks/shared-B2K3LoOU.js +1016 -0
- package/dist/chunks/shared-BqW3KAJ4.js +613 -0
- package/dist/chunks/shared-Byv6cc0r.js +2779 -0
- package/dist/chunks/{shared-CmM4cgd6.js → shared-CKG_SQh5.js} +1 -1
- package/dist/chunks/shared-CPAT0Cgk.js +29 -0
- package/dist/chunks/shared-CwbzACTe.js +1874 -0
- package/dist/chunks/shared-DBDgdVsd.js +1 -0
- package/dist/chunks/shared-DMlMTd3c.js +1018 -0
- package/dist/chunks/shared-DaoPCw6-.js +556 -0
- package/dist/chunks/shared-DqB_TR20.js +1599 -0
- package/dist/chunks/shared-DsVxrO_3.js +609 -0
- package/dist/chunks/shared-iQIywbRc.js +676 -0
- package/dist/chunks/shared-xrCdgpNS.js +1 -0
- package/dist/components.js +1 -1
- package/dist/index.js +1 -1
- package/dist/templates/event-storming.js +1 -1
- package/dist/templates/example-mapping.js +1 -1
- package/dist/templates/grill.js +1 -1
- package/dist/templates/plain.js +1 -1
- package/dist/templates/prototype.js +1 -1
- package/dist/templates/slides.js +1 -0
- package/dist/templates/task-board.js +1 -0
- package/dist/templates/usm.js +1 -1
- package/package.json +4 -2
- package/dist/chunks/shared-5C6fORCL.js +0 -1404
- package/dist/chunks/shared-B1lFGiYZ.js +0 -1
- package/dist/chunks/shared-BEjjbZ0X.js +0 -2543
- package/dist/chunks/shared-BFAVBf4I.js +0 -1
- package/dist/chunks/shared-BybvAQye.js +0 -579
- package/dist/chunks/shared-DKxAm7wL.js +0 -27
- package/dist/chunks/shared-DgusMFKr.js +0 -1
- package/dist/chunks/shared-Dx0MEuAf.js +0 -921
- package/dist/chunks/shared-RclF4vSf.js +0 -692
- package/dist/chunks/shared-ao1beBgL.js +0 -544
- package/dist/chunks/shared-eiZoh1aF.js +0 -521
|
@@ -1,544 +0,0 @@
|
|
|
1
|
-
import{q as v,al as y,v as Y,aq as w,ab as l,as as D,ad as m,ae as g,ar as L,a7 as Me,ax as Ne,a8 as M,a9 as C,aa as P,P as Ye,f as Le,V as _,R as u,$ as F,a4 as Ce,k as Pe,_ as J,a0 as I,a1 as c,I as Ve,A as Be,K as Ue,i as qe,m as N,a2 as S,J as ze,B as Ge,au as je,T as X}from"./shared-5C6fORCL.js";import{s as Ke,D as He}from"./shared-BFAVBf4I.js";import{P as Z,r as Fe,p as Je,a as Xe}from"./shared-DKxAm7wL.js";import{o as V}from"./shared-DgusMFKr.js";const p={SET_ACTIVITY_NAME:v("SET_ACTIVITY_NAME","activity",y({name:m(l(),g(1))})),SET_STEP_NAME:v("SET_STEP_NAME","step",y({name:m(l(),g(1))})),REORDER_STEP:v("REORDER_STEP","step",y({after:w(l())}),{mode:"sequence"}),ADD_ACTIVITY:v("ADD_ACTIVITY","page",y({id:D,name:m(l(),g(1))}),{dedupeKey:Y}),ADD_STEP:v("ADD_STEP","activity",y({id:D,name:m(l(),g(1))}),{dedupeKey:Y}),DELETE_ACTIVITY:v("DELETE_ACTIVITY","activity",y({})),DELETE_STEP:v("DELETE_STEP","step",y({})),SET_STORY_NAME:v("SET_STORY_NAME","story",y({name:m(l(),g(1))})),SET_STORY_DESCRIPTION:v("SET_STORY_DESCRIPTION","story",y({description:l()})),SET_STORY_MILESTONE:v("SET_STORY_MILESTONE","story",y({milestoneId:w(l())})),MOVE_STORY:v("MOVE_STORY","story",y({activityId:m(l(),g(1)),stepId:m(l(),g(1)),milestoneId:w(l()),after:w(l())}),{mode:"sequence"}),REORDER_STORY:v("REORDER_STORY","story",y({after:w(l())}),{mode:"sequence"}),ADD_STORY:v("ADD_STORY","step",y({id:D,name:m(l(),g(1)),activityId:m(l(),g(1)),milestoneId:L(l())}),{dedupeKey:Y}),DELETE_STORY:v("DELETE_STORY","story",y({})),SET_MILESTONE_NAME:v("SET_MILESTONE_NAME","milestone",y({name:m(l(),g(1))})),ADD_MILESTONE:v("ADD_MILESTONE","page",y({id:D,name:m(l(),g(1))}),{dedupeKey:Y}),DELETE_MILESTONE:v("DELETE_MILESTONE","milestone",y({})),REORDER_MILESTONE:v("REORDER_MILESTONE","milestone",y({after:w(l())}),{mode:"sequence"})},Ze={setActivityName:(e,t)=>({type:"SET_ACTIVITY_NAME",target:{type:"activity",id:e},payload:{name:t}}),setStepName:(e,t)=>({type:"SET_STEP_NAME",target:{type:"step",id:e},payload:{name:t}})},Qe=M({id:m(l(),g(1)),name:m(l(),g(1))}),We=M({id:D,name:m(l(),g(1)),steps:C(P(Qe),[])}),et=M({id:m(l(),g(1)),name:m(l(),g(1))}),tt=M({id:D,name:m(l(),g(1)),description:L(l()),activityId:m(l(),g(1)),stepId:m(l(),g(1)),milestoneId:L(l())}),it=M({title:L(l()),activities:C(P(We),[]),milestones:C(P(et),[]),stories:C(P(tt),[])}),Q=e=>{const t=Me(it,e),i=new Map;for(const o of t.activities)for(const a of o.steps)i.set(a.id,o.id);const n=new Set(t.milestones.map(o=>o.id)),s=new Set,r=(o,a)=>{if(s.has(a))throw new Error(`duplicate id "${a}" in ${o}`);s.add(a)};for(const o of t.activities){r("activities",o.id);for(const a of o.steps)r("steps",a.id)}for(const o of t.milestones)r("milestones",o.id);for(const o of t.stories){r("stories",o.id);const a=i.get(o.stepId);if(a===void 0||a!==o.activityId)throw new Error(`story "${o.id}" references unknown activityId/stepId`);if(o.milestoneId!==void 0&&!n.has(o.milestoneId))throw new Error(`story "${o.id}" references unknown milestoneId "${o.milestoneId}"`)}return t},W=()=>({activities:[],milestones:[],stories:[]}),O=(e,t)=>{if(t!==void 0)return e.activities.find(i=>i.id===t)},z=(e,t)=>`${e}.${t}`,h=(e,t)=>{if(t===void 0)return;const i=Ne(t,2);if(i){const[n,s]=i;if(n===void 0||s===void 0)return;const r=e.activities.find(a=>a.id===n),o=r?.steps.find(a=>a.id===s);return r&&o?{activity:r,step:o}:void 0}if(!t.includes("."))for(const n of e.activities){const s=n.steps.find(r=>r.id===t);if(s)return{activity:n,step:s}}},k=(e,t)=>{if(t!==void 0)return e.milestones.find(i=>i.id===t)},b=(e,t)=>{if(t!==void 0)return e.stories.find(i=>i.id===t)},ee=e=>e.activities.flatMap(t=>t.steps.map(i=>({activity:t,step:i}))),nt=e=>({...e,stories:Ke(e.stories,[t=>`${t.activityId}/${t.stepId}/${t.milestoneId??""}`])}),B=(e,t,i)=>e.stories.filter(n=>n.stepId===t&&(n.milestoneId??void 0)===i),te=(e,t,i)=>e.stories.filter(n=>n.activityId===t&&(n.milestoneId??void 0)===i),x=e=>[...e.activities.map(t=>t.id),...e.activities.flatMap(t=>t.steps.map(i=>i.id)),...e.milestones.map(t=>t.id),...e.stories.map(t=>t.id)],st=(e,t)=>e.stories.filter(i=>i.stepId===t).length,ie=(e,t)=>{const i=Ye(p,t);if(i===null)return null;const n=i.target.id;switch(i.type){case"SET_ACTIVITY_NAME":{const{name:s}=i.payload;return e.activities.some(r=>r.id===n)?{...e,activities:e.activities.map(r=>r.id===n?{...r,name:s}:r)}:null}case"SET_STEP_NAME":{const{name:s}=i.payload,r=h(e,n);return r?{...e,activities:e.activities.map(o=>o.id===r.activity.id?{...o,steps:o.steps.map(a=>a.id===r.step.id?{...a,name:s}:a)}:o)}:null}case"REORDER_STEP":{const{after:s}=i.payload,r=h(e,n);if(!r)return null;const o=s===null?null:h(e,s);if(s!==null&&(!o||o.activity.id!==r.activity.id))return null;const a=se(r.activity.steps,r.step.id,o?.step.id??null);return a===null?null:{...e,activities:e.activities.map(d=>d.id===r.activity.id?{...d,steps:a}:d)}}case"ADD_ACTIVITY":{const s=i.payload;return e.activities.some(r=>r.id===s.id)?e:{...e,activities:[...e.activities,{id:s.id,name:s.name,steps:[]}]}}case"ADD_STEP":{const s=i.payload,r=e.activities.find(o=>o.id===n);return r?r.steps.some(o=>o.id===s.id)?e:{...e,activities:e.activities.map(o=>o.id===n?{...o,steps:[...o.steps,{id:s.id,name:s.name}]}:o)}:null}case"DELETE_ACTIVITY":{const s=e.activities.find(o=>o.id===n);if(!s)return null;const r=new Set(s.steps.map(o=>o.id));return{...e,activities:e.activities.filter(o=>o.id!==n),stories:e.stories.filter(o=>o.activityId!==n&&!r.has(o.stepId))}}case"DELETE_STEP":{const s=h(e,n);return s?{...e,activities:e.activities.map(r=>r.id===s.activity.id?{...r,steps:r.steps.filter(o=>o.id!==s.step.id)}:r),stories:e.stories.filter(r=>r.activityId!==s.activity.id||r.stepId!==s.step.id)}:null}case"SET_STORY_NAME":{const{name:s}=i.payload;return G(e,n,r=>({...r,name:s}))}case"SET_STORY_DESCRIPTION":{const{description:s}=i.payload;return G(e,n,r=>({...r,description:s}))}case"SET_STORY_MILESTONE":{const{milestoneId:s}=i.payload;return s!==null&&!k(e,s)?null:G(e,n,r=>s===null?j(r):{...r,milestoneId:s})}case"MOVE_STORY":{const s=i.payload,r=b(e,n);if(!r)return null;const o=h(e,s.stepId);if(!o||o.activity.id!==s.activityId||s.milestoneId!==null&&!k(e,s.milestoneId))return null;const a=s.milestoneId??void 0,d=a===void 0?{...j(r),activityId:o.activity.id,stepId:o.step.id}:{...r,activityId:o.activity.id,stepId:o.step.id,milestoneId:a};return ne(e,d,s.after)}case"REORDER_STORY":{const{after:s}=i.payload,r=b(e,n);return r?ne(e,r,s,!0):null}case"ADD_STORY":{const s=i.payload,r=h(e,t.target.id);if(!r||r.activity.id!==s.activityId||s.milestoneId!==void 0&&!k(e,s.milestoneId))return null;if(e.stories.some(a=>a.id===s.id))return e;const o={id:s.id,name:s.name,activityId:s.activityId,stepId:r.step.id,...s.milestoneId===void 0?{}:{milestoneId:s.milestoneId}};return{...e,stories:[...e.stories,o]}}case"DELETE_STORY":return e.stories.some(s=>s.id===n)?{...e,stories:e.stories.filter(s=>s.id!==n)}:null;case"SET_MILESTONE_NAME":{const{name:s}=i.payload;return e.milestones.some(r=>r.id===n)?{...e,milestones:e.milestones.map(r=>r.id===n?{...r,name:s}:r)}:null}case"ADD_MILESTONE":{const s=i.payload;return e.milestones.some(r=>r.id===s.id)?e:{...e,milestones:[...e.milestones,{id:s.id,name:s.name}]}}case"DELETE_MILESTONE":return e.milestones.some(s=>s.id===n)?{...e,milestones:e.milestones.filter(s=>s.id!==n),stories:e.stories.map(s=>s.milestoneId===n?j(s):s)}:null;case"REORDER_MILESTONE":{const{after:s}=i.payload,r=se(e.milestones,n,s);return r===null?null:{...e,milestones:r}}default:return Le(i)}},G=(e,t,i)=>e.stories.some(n=>n.id===t)?{...e,stories:e.stories.map(n=>n.id===t?i(n):n)}:null,j=e=>{const{milestoneId:t,...i}=e;return i},ne=(e,t,i,n=!1)=>{const s=t.milestoneId??void 0,r=e.stories.filter(f=>f.id!==t.id),o=r.filter(f=>f.stepId===t.stepId&&(f.milestoneId??void 0)===s);if(i!==null){const f=r.find(A=>A.id===i);if(!f||f.stepId!==t.stepId||(f.milestoneId??void 0)!==s)return null;if(n){const A=b(e,t.id);if(!A||f.stepId!==A.stepId||(f.milestoneId??void 0)!==(A.milestoneId??void 0))return null}}const a=i===null?[t,...o]:re(o,t,i),d=r.findIndex(f=>f.stepId===t.stepId&&(f.milestoneId??void 0)===s),$=new Set(o.map(f=>f.id)),E=r.filter(f=>!$.has(f.id)),T=d<0?E.length:Math.min(d,E.length),Ae=[...E.slice(0,T),...a,...E.slice(T)];return{...e,stories:Ae}},se=(e,t,i)=>{if(!e.some(r=>r.id===t)||i!==null&&!e.some(r=>r.id===i))return null;if(i===t)return[...e];const n=e.find(r=>r.id===t);if(n===void 0)return null;const s=e.filter(r=>r.id!==t);return re(s,n,i)},re=(e,t,i)=>{const n=[...e],s=i===null?-1:n.findIndex(r=>r.id===i);return n.splice(s+1,0,t),n},U=(e,t)=>{const i=typeof t=="string"?t:"",n=typeof e=="string"?e:void 0;return n===void 0?`\u2192 \u300C${i}\u300D`:`\u300C${n}\u300D\u2192\u300C${i}\u300D`},rt={SET_ACTIVITY_NAME:(e,t)=>({title:"\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3\u540D\u3092\u5909\u66F4",tone:"update",body:U(O(t,e.target.id)?.name,u(p.SET_ACTIVITY_NAME,e).name??"")}),SET_STEP_NAME:(e,t)=>({title:"\u30B9\u30C6\u30C3\u30D7\u540D\u3092\u5909\u66F4",tone:"update",body:U(h(t,e.target.id)?.step.name,u(p.SET_STEP_NAME,e).name??"")}),REORDER_STEP:e=>({title:"\u30B9\u30C6\u30C3\u30D7\u306E\u9806\u5E8F\u3092\u5909\u66F4",tone:"move",body:u(p.REORDER_STEP,e).after===null||u(p.REORDER_STEP,e).after===void 0?"\u2192 \u5148\u982D\u3078":`\u2192 \u300C${String(u(p.REORDER_STEP,e).after)}\u300D\u306E\u76F4\u5F8C\u3078`}),ADD_ACTIVITY:e=>({title:"\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3\u3092\u8FFD\u52A0",tone:"create",body:`+ \u300C${u(p.ADD_ACTIVITY,e).name??""}\u300D`}),ADD_STEP:e=>({title:"\u30B9\u30C6\u30C3\u30D7\u3092\u8FFD\u52A0",tone:"create",body:`+ \u300C${u(p.ADD_STEP,e).name??""}\u300D`}),DELETE_ACTIVITY:(e,t)=>({title:"\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3\u3092\u524A\u9664",tone:"delete",body:`\u2212 \u300C${O(t,e.target.id)?.name??e.target.id}\u300D`}),DELETE_STEP:(e,t)=>({title:"\u30B9\u30C6\u30C3\u30D7\u3092\u524A\u9664",tone:"delete",body:`\u2212 \u300C${h(t,e.target.id)?.step.name??e.target.id}\u300D`}),SET_STORY_NAME:(e,t)=>({title:"\u30B9\u30C8\u30FC\u30EA\u30FC\u540D\u3092\u5909\u66F4",tone:"update",body:U(b(t,e.target.id)?.name,u(p.SET_STORY_NAME,e).name??"")}),SET_STORY_DESCRIPTION:e=>({title:"\u30B9\u30C8\u30FC\u30EA\u30FC\u306E\u8AAC\u660E\u3092\u66F4\u65B0",tone:"update",body:`\u2192 \u300C${String(u(p.SET_STORY_DESCRIPTION,e).description??"").slice(0,90)}\u300D`}),SET_STORY_MILESTONE:(e,t)=>({title:"\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3\u3092\u5909\u66F4",tone:"move",body:u(p.SET_STORY_MILESTONE,e).milestoneId===null||u(p.SET_STORY_MILESTONE,e).milestoneId===void 0?"\u2192 \u672A\u5272\u5F53\u3078":`\u2192 ${k(t,String(u(p.SET_STORY_MILESTONE,e).milestoneId))?.name??String(u(p.SET_STORY_MILESTONE,e).milestoneId)}`}),MOVE_STORY:(e,t)=>({title:"\u30B9\u30C8\u30FC\u30EA\u30FC\u3092\u79FB\u52D5",tone:"move",body:`\u2192 ${h(t,String(u(p.MOVE_STORY,e).stepId))?.step.name??String(u(p.MOVE_STORY,e).stepId??"")}`}),REORDER_STORY:e=>({title:"\u30B9\u30C8\u30FC\u30EA\u30FC\u306E\u9806\u5E8F\u3092\u5909\u66F4",tone:"move",body:u(p.REORDER_STORY,e).after===null||u(p.REORDER_STORY,e).after===void 0?"\u2192 \u5148\u982D\u3078":`\u2192 \u300C${String(u(p.REORDER_STORY,e).after)}\u300D\u306E\u76F4\u5F8C\u3078`}),ADD_STORY:e=>({title:"\u30B9\u30C8\u30FC\u30EA\u30FC\u3092\u8FFD\u52A0",tone:"create",body:`+ \u300C${u(p.ADD_STORY,e).name??""}\u300D`}),DELETE_STORY:(e,t)=>({title:"\u30B9\u30C8\u30FC\u30EA\u30FC\u3092\u524A\u9664",tone:"delete",body:`\u2212 \u300C${b(t,e.target.id)?.name??e.target.id}\u300D`}),SET_MILESTONE_NAME:(e,t)=>({title:"\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3\u540D\u3092\u5909\u66F4",tone:"update",body:U(k(t,e.target.id)?.name,u(p.SET_MILESTONE_NAME,e).name??"")}),ADD_MILESTONE:e=>({title:"\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3\u3092\u8FFD\u52A0",tone:"create",body:`+ \u300C${u(p.ADD_MILESTONE,e).name??""}\u300D`}),DELETE_MILESTONE:(e,t)=>({title:"\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3\u3092\u524A\u9664",tone:"delete",body:`\u2212 \u300C${k(t,e.target.id)?.name??e.target.id}\u300D`}),REORDER_MILESTONE:e=>({title:"\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3\u306E\u9806\u5E8F\u3092\u5909\u66F4",tone:"move",body:u(p.REORDER_MILESTONE,e).after===null||u(p.REORDER_MILESTONE,e).after===void 0?"\u2192 \u5148\u982D\u3078":`\u2192 \u300C${String(u(p.REORDER_MILESTONE,e).after)}\u300D\u306E\u76F4\u5F8C\u3078`})},oe=(e,t,i)=>{let n;try{const s=rt[e.type];n=s?s(e,i??t):{title:e.type,tone:"meta"}}catch{n={title:e.type,tone:"meta"}}return{title:n.title,targetLabel:de(t,e.target),tone:n.tone,...n.body===void 0?{}:{summary:n.body}}},ae=e=>`${e.type} ${_(e.target)} ${JSON.stringify(e.payload)}`,de=(e,t)=>{try{switch(t.type){case"activity":{const i=O(e,t.id);return i?`\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3 \xB7 ${i.name}`:`\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3 \xB7 ${t.id} (missing)`}case"step":{const i=h(e,t.id)?.step;return i?`\u30B9\u30C6\u30C3\u30D7 \xB7 ${i.name}`:`\u30B9\u30C6\u30C3\u30D7 \xB7 ${t.id} (missing)`}case"story":{const i=b(e,t.id);return i?`\u30B9\u30C8\u30FC\u30EA\u30FC \xB7 ${i.name}`:`\u30B9\u30C8\u30FC\u30EA\u30FC \xB7 ${t.id} (missing)`}case"milestone":{const i=k(e,t.id);return i?`\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3 \xB7 ${i.name}`:`\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3 \xB7 ${t.id} (missing)`}case"page":return`\u30DE\u30C3\u30D7 \xB7 ${K(e)}`;default:return`${t.type} \xB7 ${t.id}`}}catch{return`${t.type} \xB7 ${t.id}`}},le=(e,t)=>{const i=[{value:"page:usm",label:"\u30DE\u30C3\u30D7\u5168\u4F53",group:"\u30DE\u30C3\u30D7"}];for(const n of e.activities){i.push({value:_({type:"activity",id:n.id}),label:n.name,group:"\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3"});for(const s of n.steps)i.push({value:_({type:"step",id:z(n.id,s.id)}),label:`${n.name} \u203A ${s.name}`,group:"\u30B9\u30C6\u30C3\u30D7"})}for(const n of e.milestones)i.push({value:_({type:"milestone",id:n.id}),label:n.name,group:"\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3"});for(const n of e.stories)i.push({value:_({type:"story",id:n.id}),label:n.name,group:"\u30B9\u30C8\u30FC\u30EA\u30FC"});return i},ot=(e,t)=>{const i=e.stories.find(n=>n.id===t.story);if(i)return{value:_({type:"story",id:i.id}),label:i.name,group:"\u30B9\u30C8\u30FC\u30EA\u30FC"};for(const n of e.activities){const s=n.steps.find(r=>r.id===t.step);if(s)return{value:_({type:"step",id:z(n.id,s.id)}),label:s.name,group:"\u30B9\u30C6\u30C3\u30D7"}}return null},K=e=>e.title??"User Story Mapping",ce=(e,t)=>{const i=h(e,t.step),n=i?.activity??O(e,t.activity)??e.activities[0],s=i?.step??n?.steps.find(a=>a.id===t.step)??n?.steps[0],r=b(e,t.story),o={...t};return n?o.activity=n.id:delete o.activity,s?o.step=s.id:delete o.step,r?o.story=r.id:delete o.story,o.view=t.view==="group"?"group":"activity",o},pe=(e,t)=>{switch(t.type){case"activity":return O(e,t.id)!==void 0;case"step":return h(e,t.id)!==void 0;case"story":return b(e,t.id)!==void 0;case"milestone":return k(e,t.id)!==void 0;case"page":return!0;default:return!1}},ue={name:"usm",label:"User Story Mapping",parseBase:Q,emptyBase:W,actions:p,apply:ie,canonicalState:nt,hasTarget:pe,canonicalTarget:(e,t)=>{if(t.type!=="step")return t;const i=h(e,t.id);return i?{...t,id:z(i.activity.id,i.step.id)}:t},describe:oe,serialize:ae,resolveNavigation:ce,commentTargets:(e,t)=>le(e),currentTarget:(e,t)=>ot(e,t),title:K},at={width:300,height:260},dt=F`
|
|
2
|
-
:host {
|
|
3
|
-
display: grid;
|
|
4
|
-
gap: 5px;
|
|
5
|
-
background: var(--dpk-paper-raised);
|
|
6
|
-
border: 1px solid var(--dpk-rule);
|
|
7
|
-
border-radius: var(--dpk-radius);
|
|
8
|
-
box-shadow: var(--dpk-shadow-xs);
|
|
9
|
-
padding: 10px 12px 8px;
|
|
10
|
-
cursor: pointer;
|
|
11
|
-
transition:
|
|
12
|
-
box-shadow 200ms ease,
|
|
13
|
-
transform 200ms ease,
|
|
14
|
-
border-color 200ms ease;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
:host(:hover) {
|
|
18
|
-
border-color: var(--dpk-rule-strong);
|
|
19
|
-
box-shadow: var(--dpk-shadow-sm);
|
|
20
|
-
transform: translateY(-1px);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
:host([focused]) {
|
|
24
|
-
border-color: var(--dpk-blue);
|
|
25
|
-
box-shadow:
|
|
26
|
-
var(--dpk-shadow),
|
|
27
|
-
0 0 0 2px rgba(51, 102, 204, 0.12);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
:host([dragging]) {
|
|
31
|
-
opacity: 0.45;
|
|
32
|
-
transform: none;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
.card-name {
|
|
36
|
-
font-size: 13px;
|
|
37
|
-
font-weight: 620;
|
|
38
|
-
letter-spacing: -0.01em;
|
|
39
|
-
line-height: 1.3;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
.card-text {
|
|
43
|
-
font-size: 11.5px;
|
|
44
|
-
line-height: 1.5;
|
|
45
|
-
color: var(--dpk-ink-soft);
|
|
46
|
-
white-space: pre-wrap;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
.card-tools {
|
|
50
|
-
display: flex;
|
|
51
|
-
gap: 2px;
|
|
52
|
-
align-items: center;
|
|
53
|
-
justify-content: flex-end;
|
|
54
|
-
margin-top: 2px;
|
|
55
|
-
padding-top: 5px;
|
|
56
|
-
border-top: 1px solid var(--dpk-rule);
|
|
57
|
-
opacity: 0;
|
|
58
|
-
transition: opacity 150ms ease;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
:host(:hover) .card-tools,
|
|
62
|
-
:host([focused]) .card-tools,
|
|
63
|
-
:host([data-mode='editing']) .card-tools,
|
|
64
|
-
:host([data-mode='commenting']) .card-tools {
|
|
65
|
-
opacity: 1;
|
|
66
|
-
}
|
|
67
|
-
`;class lt extends Ce{static{this.styles=[Pe,dt,J]}static{this.properties={story:{attribute:!1},notes:{attribute:!1},mode:{type:String,reflect:!0,attribute:"data-mode"},focused:{type:Boolean,reflect:!0},dragging:{type:Boolean,reflect:!0},onIntent:{attribute:!1}}}#e="";#n=new Z(this);constructor(){super(),this.story=null,this.notes=[],this.mode="view",this.focused=!1,this.dragging=!1,this.onIntent=null,this.addEventListener("click",()=>this.#t({kind:"select"}))}updated(t){if(t.has("mode")&&(this.mode!=="commenting"&&(this.#e=""),this.mode==="editing"&&this.renderRoot.querySelector("dpk-component-inline-edit")?.startEditing()),this.mode!=="commenting")return;const i=this.renderRoot.querySelector(".comment-pop"),n=this.renderRoot.querySelector('[data-role="comment"]');i&&n&&this.#n.open(i,n,at)}render(){const t=this.story;if(!t)return I;const i=this.mode==="editing",n=this.mode==="commenting";return c`
|
|
68
|
-
<div class="card-name">
|
|
69
|
-
${i?c`<dpk-component-inline-edit
|
|
70
|
-
.value=${t.name}
|
|
71
|
-
.label=${"\u30B9\u30C8\u30FC\u30EA\u30FC\u540D"}
|
|
72
|
-
@dpk-commit=${V(s=>this.#t({kind:"rename",name:s}))}
|
|
73
|
-
></dpk-component-inline-edit>`:c`<span>${t.name}</span>`}
|
|
74
|
-
</div>
|
|
75
|
-
${t.description?c`<div class="card-text">${t.description}</div>`:I}
|
|
76
|
-
<div class="card-tools">
|
|
77
|
-
<button
|
|
78
|
-
class="dpk-icon-btn"
|
|
79
|
-
type="button"
|
|
80
|
-
data-role="edit"
|
|
81
|
-
aria-label="タイトルを編集"
|
|
82
|
-
data-active=${String(i)}
|
|
83
|
-
@click=${this.#i({kind:"toggle-edit"})}
|
|
84
|
-
>
|
|
85
|
-
${Ve()}
|
|
86
|
-
</button>
|
|
87
|
-
<button
|
|
88
|
-
class="dpk-icon-btn"
|
|
89
|
-
type="button"
|
|
90
|
-
data-role="comment"
|
|
91
|
-
aria-label="コメント"
|
|
92
|
-
data-active=${String(n)}
|
|
93
|
-
@click=${this.#i({kind:"toggle-comment"})}
|
|
94
|
-
>
|
|
95
|
-
${Be()}
|
|
96
|
-
${this.notes.length>0?c`<span class="dpk-icon-badge">${this.notes.length}</span>`:I}
|
|
97
|
-
</button>
|
|
98
|
-
<button
|
|
99
|
-
class="dpk-icon-btn"
|
|
100
|
-
type="button"
|
|
101
|
-
data-role="delete"
|
|
102
|
-
aria-label="削除"
|
|
103
|
-
@click=${this.#i({kind:"delete"})}
|
|
104
|
-
>
|
|
105
|
-
${Ue()}
|
|
106
|
-
</button>
|
|
107
|
-
</div>
|
|
108
|
-
${n?this.#s():I}
|
|
109
|
-
`}#s(){return Fe(Je(this.#e,this.notes.map(qe)),t=>{t.kind==="input"?(this.#e=t.body,this.requestUpdate()):this.#t(t)})}#i(t){return i=>{i.stopPropagation(),this.#t(t)}}#t(t){this.onIntent?.(t)}}const ct=()=>{customElements.get("dpk-internal-usm-story-card")||customElements.define("dpk-internal-usm-story-card",lt)},q=(e,t,i)=>{const n=e.at(-1)??null;if(t===null||i==="end")return n;const s=e.indexOf(t);return s<0?n:i==="after"?t:s===0?null:e.at(s-1)??null},me=(e,t,i,n,s)=>{const r=B(e,t.stepId,t.milestoneId).filter(o=>o.id!==i).map(o=>o.id);return{type:"MOVE_STORY",target:{type:"story",id:i},payload:{activityId:t.activityId,stepId:t.stepId,milestoneId:t.milestoneId??null,after:q(r,n,s)}}},ge=(e,t,i,n,s,r)=>{const o=b(e,n);if(!o||o.activityId!==t)return null;const a=te(e,t,i).filter(d=>d.id!==n).map(d=>d.id);return{type:"MOVE_STORY",target:{type:"story",id:n},payload:{activityId:t,stepId:o.stepId,milestoneId:i??null,after:q(a,s,r)}}},ve=(e,t,i,n,s)=>{const r=B(e,n,s).filter(o=>o.id!==t);return{type:"MOVE_STORY",target:{type:"story",id:t},payload:{activityId:i,stepId:n,milestoneId:s??null,after:r.at(-1)?.id??null}}},ye=(e,t,i,n)=>{if(!e.includes(t))return null;const s=e.filter(r=>r!==t);return{type:"REORDER_MILESTONE",target:{type:"milestone",id:t},payload:{after:q(s,i,n)}}},fe=e=>{const t=N("new-activity",x(e.state));if(!e.dispatch({type:"ADD_ACTIVITY",target:{type:"page",id:"usm"},payload:{id:t,name:"\u65B0\u3057\u3044\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3"}}).ok)return;const n=N("new-step",[...x(e.state),t]);e.dispatch({type:"ADD_STEP",target:{type:"activity",id:t},payload:{id:n,name:"\u65B0\u3057\u3044\u30B9\u30C6\u30C3\u30D7"}}),e.navigate({activity:t,step:null,story:null})},pt=(e,t)=>{const i=N("new-step",x(e.state));e.dispatch({type:"ADD_STEP",target:{type:"activity",id:t},payload:{id:i,name:"\u65B0\u3057\u3044\u30B9\u30C6\u30C3\u30D7"}})},ut=e=>{const t=N("new-milestone",x(e.state));e.dispatch({type:"ADD_MILESTONE",target:{type:"page",id:"usm"},payload:{id:t,name:"\u65B0\u3057\u3044\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3"}})},Ee=(e,t,i,n)=>{const s=N("new-story",x(e.state));e.dispatch({type:"ADD_STORY",target:{type:"step",id:i},payload:{id:s,name:"\u65B0\u3057\u3044\u30B9\u30C8\u30FC\u30EA\u30FC",activityId:t,...n===void 0?{}:{milestoneId:n}}}).ok&&e.navigate({activity:t,step:i,story:s})},R={kind:"idle"},H=(e,t)=>e.kind!=="idle"&&e.storyId===t,he=(e,t)=>H(e,t)&&(e.kind==="editing"||e.kind==="commenting")?e.kind:"view",be=(e,t,i)=>{switch(i.kind){case"toggle-edit":return e.kind==="editing"&&e.storyId===t?R:{kind:"editing",storyId:t};case"toggle-comment":return e.kind==="commenting"&&e.storyId===t?R:{kind:"commenting",storyId:t};case"rename":case"comment":case"dismiss":case"delete":return H(e,t)?R:e;case"select":return e}},Te=e=>[...e.milestones.map(({id:t,name:i})=>({id:t,name:i})),{id:void 0,name:"\u672A\u5272\u5F53"}],mt=e=>c`
|
|
110
|
-
<div class="empty">
|
|
111
|
-
<h2>バックボーンがまだありません</h2>
|
|
112
|
-
<p>アクティビティとステップを追加すると、ここにストーリーマップが現れます。</p>
|
|
113
|
-
<button class="dpk-btn dpk-btn--accent" type="button" @click=${()=>fe(e)}>
|
|
114
|
-
+ 最初のアクティビティ
|
|
115
|
-
</button>
|
|
116
|
-
</div>
|
|
117
|
-
`,gt=e=>{const{context:t}=e,i=ee(t.state);if(i.length===0)return mt(t);const n=t.navigation.view==="group"?"group":"activity";return c`
|
|
118
|
-
<div class="view-tabs" role="tablist" aria-label="まとめる単位">
|
|
119
|
-
${Se(t,"activity",n,"\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3")}
|
|
120
|
-
${Se(t,"group",n,"\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3\u30B0\u30EB\u30FC\u30D7")}
|
|
121
|
-
</div>
|
|
122
|
-
${n==="activity"?vt(e,i):yt(e)}
|
|
123
|
-
`},Se=(e,t,i,n)=>{const s=t===i;return c`<a
|
|
124
|
-
class="tab"
|
|
125
|
-
role="tab"
|
|
126
|
-
data-current=${String(s)}
|
|
127
|
-
aria-selected=${s?"true":"false"}
|
|
128
|
-
href=${e.hashFor({view:t})}
|
|
129
|
-
>${n}</a
|
|
130
|
-
>`},vt=(e,t)=>{const{context:i}=e,{state:n}=i,s=Te(n);return c`
|
|
131
|
-
<div class="map-scroll">
|
|
132
|
-
<div class="map" style=${`--cols:${t.length+1}`} data-testid="usm-map">
|
|
133
|
-
<div class="map-row">
|
|
134
|
-
<div class="corner">
|
|
135
|
-
<span class="dpk-label">アクティビティグループ →</span>
|
|
136
|
-
</div>
|
|
137
|
-
${S(n.activities,r=>r.id,r=>Ie(i,r.id,`grid-column: span ${Math.max(r.steps.length,1)}`))}
|
|
138
|
-
${$e(i)}
|
|
139
|
-
</div>
|
|
140
|
-
<div class="map-row">
|
|
141
|
-
${ke()}
|
|
142
|
-
${S(t,({activity:r,step:o})=>`${r.id}.${o.id}`,({step:r})=>c`
|
|
143
|
-
<div class="col-head" data-current=${String(i.navigation.step===r.id)}>
|
|
144
|
-
<h4>
|
|
145
|
-
<dpk-component-inline-edit
|
|
146
|
-
.value=${r.name}
|
|
147
|
-
.label=${"\u30B9\u30C6\u30C3\u30D7\u540D"}
|
|
148
|
-
@dpk-commit=${V(o=>i.dispatch({type:"SET_STEP_NAME",target:{type:"step",id:r.id},payload:{name:o}}))}
|
|
149
|
-
@click=${o=>o.stopPropagation()}
|
|
150
|
-
></dpk-component-inline-edit>
|
|
151
|
-
</h4>
|
|
152
|
-
</div>
|
|
153
|
-
`)}
|
|
154
|
-
<div class="corner"><span class="dpk-label">—</span></div>
|
|
155
|
-
</div>
|
|
156
|
-
${S(s,r=>r.id,r=>Oe(e,r,c`${S(t,({activity:o,step:a})=>`${o.id}.${a.id}`,({activity:o,step:a})=>ft(e,{activityId:o.id,stepId:a.id,milestoneId:r.id}))}`))}
|
|
157
|
-
${_e(i,t.length)}
|
|
158
|
-
</div>
|
|
159
|
-
</div>
|
|
160
|
-
`},yt=e=>{const{context:t}=e,{state:i}=t,n=Te(i);return c`
|
|
161
|
-
<div class="map-scroll">
|
|
162
|
-
<div class="map" style=${`--cols:${i.activities.length+1}`} data-testid="usm-map-group">
|
|
163
|
-
<div class="map-row">
|
|
164
|
-
${ke()}
|
|
165
|
-
${S(i.activities,s=>s.id,s=>Ie(t,s.id))}
|
|
166
|
-
${$e(t)}
|
|
167
|
-
</div>
|
|
168
|
-
${S(n,s=>s.id,s=>Oe(e,s,c`${S(i.activities,r=>r.id,r=>Et(e,r.id,s.id))}`))}
|
|
169
|
-
${_e(t,i.activities.length)}
|
|
170
|
-
</div>
|
|
171
|
-
</div>
|
|
172
|
-
`},ke=()=>c`<div class="corner">
|
|
173
|
-
<span class="dpk-label">アクティビティ →</span>
|
|
174
|
-
<span class="dpk-label">マイルストーン ↓</span>
|
|
175
|
-
</div>`,Ie=(e,t,i)=>{const n=e.state.activities.find(s=>s.id===t);return n?c`
|
|
176
|
-
<div class="act-head" style=${i??I}>
|
|
177
|
-
<dpk-component-inline-edit
|
|
178
|
-
.value=${n.name}
|
|
179
|
-
.label=${"\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3\u540D"}
|
|
180
|
-
@dpk-commit=${V(s=>e.dispatch({type:"SET_ACTIVITY_NAME",target:{type:"activity",id:n.id},payload:{name:s}}))}
|
|
181
|
-
></dpk-component-inline-edit>
|
|
182
|
-
<button
|
|
183
|
-
class="dpk-icon-btn"
|
|
184
|
-
type="button"
|
|
185
|
-
aria-label="このアクティビティにステップを追加"
|
|
186
|
-
@click=${()=>pt(e,n.id)}
|
|
187
|
-
>
|
|
188
|
-
${ze()}
|
|
189
|
-
</button>
|
|
190
|
-
</div>
|
|
191
|
-
`:c`<div class="act-head"></div>`},$e=e=>c`<div class="act-head">
|
|
192
|
-
<button class="dpk-btn dpk-btn--ghost" type="button" @click=${()=>fe(e)}>+ アクティビティ</button>
|
|
193
|
-
</div>`,_e=(e,t)=>c`<div class="map-row">
|
|
194
|
-
<div class="row-head">
|
|
195
|
-
<button class="dpk-btn dpk-btn--ghost" type="button" @click=${()=>ut(e)}>
|
|
196
|
-
+ マイルストーン
|
|
197
|
-
</button>
|
|
198
|
-
</div>
|
|
199
|
-
${Array.from({length:t+1},()=>c`<div class="cell"></div>`)}
|
|
200
|
-
</div>`,Oe=(e,t,i)=>{const{context:n,drag:s,handlers:r}=e,o=t.id;if(o===void 0)return c`<div class="map-row" data-draggable="false" data-row-dragging="false" data-row-drop="false">
|
|
201
|
-
<div class="row-head" data-milestone="" draggable="false"><span>${t.name}</span></div>
|
|
202
|
-
${i}
|
|
203
|
-
<div class="cell"></div>
|
|
204
|
-
</div>`;const a=`row:${o}`,d=s.target({key:a,accepts:"milestone",hovered:bt,onDrop:E=>r.dropOnMilestoneRow(o,E)}),$=s.source({type:"milestone",id:o});return c`
|
|
205
|
-
<div
|
|
206
|
-
class="map-row"
|
|
207
|
-
data-draggable="true"
|
|
208
|
-
data-row-dragging=${String(s.isDragging("milestone",o))}
|
|
209
|
-
data-row-drop=${String(s.isOver(a))}
|
|
210
|
-
@dragenter=${d.dragenter}
|
|
211
|
-
@dragover=${d.dragover}
|
|
212
|
-
@dragleave=${d.dragleave}
|
|
213
|
-
@drop=${d.drop}
|
|
214
|
-
>
|
|
215
|
-
<div
|
|
216
|
-
class="row-head"
|
|
217
|
-
data-milestone=${o}
|
|
218
|
-
draggable="true"
|
|
219
|
-
@dragstart=${E=>{ht(E),$.dragstart(E)}}
|
|
220
|
-
@dragend=${$.dragend}
|
|
221
|
-
>
|
|
222
|
-
<span class="row-grip" aria-hidden="true">${Ge()}</span
|
|
223
|
-
><dpk-component-inline-edit
|
|
224
|
-
draggable="false"
|
|
225
|
-
.value=${t.name}
|
|
226
|
-
.label=${"\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3\u540D"}
|
|
227
|
-
@dpk-commit=${V(E=>n.dispatch({type:"SET_MILESTONE_NAME",target:{type:"milestone",id:o},payload:{name:E}}))}
|
|
228
|
-
></dpk-component-inline-edit>
|
|
229
|
-
</div>
|
|
230
|
-
${i}
|
|
231
|
-
<div class="cell"></div>
|
|
232
|
-
</div>
|
|
233
|
-
`},ft=(e,t)=>{const{context:i,drag:n,handlers:s}=e,r=B(i.state,t.stepId,t.milestoneId),o=`cell:${t.stepId}:${t.milestoneId??""}`,a=n.target({key:o,accepts:"story",hovered:we,onDrop:d=>s.dropOnCell(t,d)});return c`
|
|
234
|
-
<div
|
|
235
|
-
class="cell"
|
|
236
|
-
data-step=${t.stepId}
|
|
237
|
-
data-milestone=${t.milestoneId??""}
|
|
238
|
-
data-drop=${String(n.isOver(o))}
|
|
239
|
-
@dragenter=${a.dragenter}
|
|
240
|
-
@dragover=${a.dragover}
|
|
241
|
-
@dragleave=${a.dragleave}
|
|
242
|
-
@drop=${a.drop}
|
|
243
|
-
>
|
|
244
|
-
<div class="card-list" data-testid=${`cell-${t.stepId}-${t.milestoneId??"unassigned"}`}>
|
|
245
|
-
${S(r,d=>d.id,d=>Re(e,d))}
|
|
246
|
-
</div>
|
|
247
|
-
<button
|
|
248
|
-
class="dpk-btn dpk-btn--ghost add-cell"
|
|
249
|
-
type="button"
|
|
250
|
-
title="このマスにストーリーを追加"
|
|
251
|
-
@click=${()=>Ee(i,t.activityId,t.stepId,t.milestoneId)}
|
|
252
|
-
>
|
|
253
|
-
+ 追加
|
|
254
|
-
</button>
|
|
255
|
-
</div>
|
|
256
|
-
`},Et=(e,t,i)=>{const{context:n,drag:s,handlers:r}=e,{state:o}=n,a=te(o,t,i),d=o.activities.find(T=>T.id===t)?.steps[0],$=`group:${t}:${i??""}`,E=s.target({key:$,accepts:"story",hovered:we,onDrop:T=>r.dropOnGroupCell(t,i,T)});return c`
|
|
257
|
-
<div
|
|
258
|
-
class="cell"
|
|
259
|
-
data-activity=${t}
|
|
260
|
-
data-milestone=${i??""}
|
|
261
|
-
data-drop=${String(s.isOver($))}
|
|
262
|
-
@dragenter=${E.dragenter}
|
|
263
|
-
@dragover=${E.dragover}
|
|
264
|
-
@dragleave=${E.dragleave}
|
|
265
|
-
@drop=${E.drop}
|
|
266
|
-
>
|
|
267
|
-
<div class="card-list" data-testid=${`group-cell-${t}-${i??"unassigned"}`}>
|
|
268
|
-
${S(a,T=>T.id,T=>Re(e,T))}
|
|
269
|
-
</div>
|
|
270
|
-
${d?c`<button
|
|
271
|
-
class="dpk-btn dpk-btn--ghost add-cell"
|
|
272
|
-
type="button"
|
|
273
|
-
aria-label="このマスにストーリーを追加"
|
|
274
|
-
@click=${()=>Ee(n,t,d.id,i)}
|
|
275
|
-
>
|
|
276
|
-
+ 追加
|
|
277
|
-
</button>`:I}
|
|
278
|
-
</div>
|
|
279
|
-
`},Re=(e,t)=>{const{context:i,mode:n,drag:s,handlers:r}=e,o=i.comments.filter(d=>d.target.type==="story"&&d.target.id===t.id),a=s.source({type:"story",id:t.id});return c`<dpk-internal-usm-story-card
|
|
280
|
-
data-story=${t.id}
|
|
281
|
-
draggable="true"
|
|
282
|
-
.story=${t}
|
|
283
|
-
.notes=${o}
|
|
284
|
-
.mode=${he(n,t.id)}
|
|
285
|
-
.onIntent=${d=>r.cardIntent(t.id,d)}
|
|
286
|
-
?focused=${i.navigation.story===t.id}
|
|
287
|
-
?dragging=${s.isDragging("story",t.id)}
|
|
288
|
-
@dragstart=${a.dragstart}
|
|
289
|
-
@dragend=${a.dragend}
|
|
290
|
-
></dpk-internal-usm-story-card>`},we=e=>{const t=e.target instanceof Element?e.target.closest("dpk-internal-usm-story-card"):null;return t?{id:t.getAttribute("data-story"),element:t}:null},ht=e=>{const i=(e.currentTarget instanceof Element?e.currentTarget:null)?.closest(".map-row");if(!i||!e.dataTransfer)return;const n=i.getBoundingClientRect();e.dataTransfer.setDragImage(i,e.clientX-n.left,e.clientY-n.top)},bt=e=>{const t=e.target instanceof Element?e.target.closest(".map-row"):null,i=t?.querySelector(".row-head[data-milestone]");if(!t||!i)return null;const n=i.getAttribute("data-milestone");return{id:n===""?null:n,element:t}},Tt=(e,t,i)=>{if(t.kind!=="picking-step")return I;const n=b(e.state,t.storyId),s=O(e.state,t.activityId);if(!n||!s)return I;const r=s.steps[0]?.id;return c`<div class="comment-pop move-dialog" id="move-dialog" popover="manual">
|
|
291
|
-
<span class="dpk-label">移動先のアクティビティ</span>
|
|
292
|
-
<select class="dpk-select" aria-label="移動先" data-move-dialog>
|
|
293
|
-
${s.steps.map(o=>c`<option value=${o.id} ?selected=${o.id===r}>${o.name}</option>`)}
|
|
294
|
-
</select>
|
|
295
|
-
<div class="pop-actions">
|
|
296
|
-
<button
|
|
297
|
-
class="dpk-btn dpk-btn--accent"
|
|
298
|
-
type="button"
|
|
299
|
-
@click=${o=>{const d=(je(o.currentTarget,HTMLElement)?.closest("#move-dialog")??null)?.querySelector("select")?.value??r;d?i.confirm(d):i.cancel()}}
|
|
300
|
-
>
|
|
301
|
-
移動する
|
|
302
|
-
</button>
|
|
303
|
-
<button class="dpk-btn" type="button" @click=${i.cancel}>キャンセル</button>
|
|
304
|
-
</div>
|
|
305
|
-
</div>`},St=F`
|
|
306
|
-
:host {
|
|
307
|
-
--dpk-usm-accent: var(--dpk-blue);
|
|
308
|
-
}
|
|
309
|
-
.map-scroll {
|
|
310
|
-
/* A wide table must scroll inside itself and never widen the template shell. */
|
|
311
|
-
min-width: 0;
|
|
312
|
-
max-width: 100%;
|
|
313
|
-
overflow-x: auto;
|
|
314
|
-
padding-bottom: 12px;
|
|
315
|
-
}
|
|
316
|
-
.map {
|
|
317
|
-
display: grid;
|
|
318
|
-
gap: 0;
|
|
319
|
-
min-width: max-content;
|
|
320
|
-
border: 1px solid var(--dpk-rule);
|
|
321
|
-
border-radius: var(--dpk-radius-lg);
|
|
322
|
-
background: var(--dpk-paper-raised);
|
|
323
|
-
box-shadow: var(--dpk-shadow);
|
|
324
|
-
overflow: hidden;
|
|
325
|
-
}
|
|
326
|
-
.map-row {
|
|
327
|
-
display: grid;
|
|
328
|
-
grid-template-columns: 140px repeat(var(--cols), minmax(180px, 240px));
|
|
329
|
-
}
|
|
330
|
-
.map-row + .map-row {
|
|
331
|
-
border-top: 1px solid var(--dpk-rule-strong);
|
|
332
|
-
}
|
|
333
|
-
.corner,
|
|
334
|
-
.act-head,
|
|
335
|
-
.col-head,
|
|
336
|
-
.row-head,
|
|
337
|
-
.cell {
|
|
338
|
-
padding: 10px;
|
|
339
|
-
}
|
|
340
|
-
.corner {
|
|
341
|
-
background: linear-gradient(135deg, var(--dpk-paper-sunken), var(--dpk-paper-inset));
|
|
342
|
-
display: grid;
|
|
343
|
-
gap: 2px;
|
|
344
|
-
align-content: start;
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
/* Unit toggle above the table (group band vs one column per activity). */
|
|
348
|
-
.view-tabs {
|
|
349
|
-
display: inline-flex;
|
|
350
|
-
justify-self: start;
|
|
351
|
-
gap: 2px;
|
|
352
|
-
padding: 3px;
|
|
353
|
-
margin-bottom: 12px;
|
|
354
|
-
border: 1px solid var(--dpk-rule);
|
|
355
|
-
border-radius: 999px;
|
|
356
|
-
background: var(--dpk-paper-sunken);
|
|
357
|
-
box-shadow: inset 0 1px 2px rgba(20, 28, 44, 0.04);
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
.tab {
|
|
361
|
-
padding: 4px 14px;
|
|
362
|
-
border-radius: 999px;
|
|
363
|
-
font-size: 12px;
|
|
364
|
-
font-weight: 500;
|
|
365
|
-
text-decoration: none;
|
|
366
|
-
color: var(--dpk-ink-soft);
|
|
367
|
-
white-space: nowrap;
|
|
368
|
-
transition:
|
|
369
|
-
background 120ms ease,
|
|
370
|
-
color 120ms ease;
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
.tab:hover {
|
|
374
|
-
color: var(--dpk-ink);
|
|
375
|
-
background: var(--dpk-paper-raised);
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
.tab[data-current='true'] {
|
|
379
|
-
background: var(--dpk-paper-raised);
|
|
380
|
-
color: var(--dpk-ink);
|
|
381
|
-
font-weight: 600;
|
|
382
|
-
box-shadow: var(--dpk-shadow-xs);
|
|
383
|
-
}
|
|
384
|
-
.act-head {
|
|
385
|
-
border-left: 1px solid var(--dpk-rule);
|
|
386
|
-
background: linear-gradient(180deg, var(--dpk-paper-sunken), var(--dpk-paper-inset));
|
|
387
|
-
display: flex;
|
|
388
|
-
align-items: center;
|
|
389
|
-
justify-content: space-between;
|
|
390
|
-
gap: 4px;
|
|
391
|
-
font-size: 13px;
|
|
392
|
-
font-weight: 600;
|
|
393
|
-
}
|
|
394
|
-
.col-head {
|
|
395
|
-
border-left: 1px solid var(--dpk-rule);
|
|
396
|
-
background: var(--dpk-paper-sunken);
|
|
397
|
-
transition: background 150ms ease;
|
|
398
|
-
}
|
|
399
|
-
.col-head[data-current='true'] {
|
|
400
|
-
background: linear-gradient(180deg, rgba(51, 102, 204, 0.06), rgba(51, 102, 204, 0.03));
|
|
401
|
-
box-shadow: inset 0 2px 0 var(--dpk-blue);
|
|
402
|
-
}
|
|
403
|
-
.col-head h4 {
|
|
404
|
-
font-size: 13px;
|
|
405
|
-
margin: 0;
|
|
406
|
-
}
|
|
407
|
-
.row-head {
|
|
408
|
-
display: flex;
|
|
409
|
-
align-items: center;
|
|
410
|
-
gap: 6px;
|
|
411
|
-
background: var(--dpk-paper-sunken);
|
|
412
|
-
font-size: 12px;
|
|
413
|
-
font-weight: 600;
|
|
414
|
-
transition: background 150ms ease;
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
.row-head[draggable='true'] {
|
|
418
|
-
cursor: grab;
|
|
419
|
-
-webkit-user-select: none;
|
|
420
|
-
user-select: none;
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
.row-head[draggable='true'] dpk-component-inline-edit {
|
|
424
|
-
-webkit-user-drag: none;
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
.row-head[draggable='true']:active {
|
|
428
|
-
cursor: grabbing;
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
.row-grip {
|
|
432
|
-
flex: 0 0 auto;
|
|
433
|
-
display: inline-flex;
|
|
434
|
-
color: var(--dpk-ink-faint);
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
.row-grip svg {
|
|
438
|
-
display: block;
|
|
439
|
-
width: 15px;
|
|
440
|
-
height: 15px;
|
|
441
|
-
}
|
|
442
|
-
|
|
443
|
-
/* Row-level drag affordance: hover highlights the entire .map-row. */
|
|
444
|
-
.map-row[data-draggable='true']:hover > .row-head {
|
|
445
|
-
background: linear-gradient(90deg, var(--dpk-blue-soft), var(--dpk-paper-sunken));
|
|
446
|
-
}
|
|
447
|
-
.map-row[data-draggable='true']:hover > .cell {
|
|
448
|
-
background: linear-gradient(90deg, rgba(51, 102, 204, 0.03), var(--dpk-paper-raised));
|
|
449
|
-
}
|
|
450
|
-
.map-row[data-draggable='true']:hover .row-grip {
|
|
451
|
-
color: var(--dpk-blue);
|
|
452
|
-
}
|
|
453
|
-
.map-row[data-draggable='true'] {
|
|
454
|
-
cursor: grab;
|
|
455
|
-
}
|
|
456
|
-
.map-row[data-draggable='true']:active {
|
|
457
|
-
cursor: grabbing;
|
|
458
|
-
}
|
|
459
|
-
|
|
460
|
-
/*
|
|
461
|
-
* Dragging state: entire row fades. Never disable pointer events on the
|
|
462
|
-
* source here: Lit applies this state in the microtask right after
|
|
463
|
-
* \`dragstart\`, and Blink then re-hit-tests the pointer and aborts the drag
|
|
464
|
-
* when the source is no longer under it.
|
|
465
|
-
*/
|
|
466
|
-
.map-row[data-row-dragging='true'] {
|
|
467
|
-
opacity: 0.45;
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
/* Drop target: entire row highlights. */
|
|
471
|
-
.map-row[data-row-drop='true'] {
|
|
472
|
-
outline: 2px dashed var(--dpk-blue);
|
|
473
|
-
outline-offset: -2px;
|
|
474
|
-
}
|
|
475
|
-
.map-row[data-row-drop='true'] > .row-head {
|
|
476
|
-
background: var(--dpk-blue-soft);
|
|
477
|
-
}
|
|
478
|
-
.map-row[data-row-drop='true'] > .cell {
|
|
479
|
-
background: linear-gradient(135deg, var(--dpk-blue-soft), rgba(51, 102, 204, 0.04));
|
|
480
|
-
}
|
|
481
|
-
.cell {
|
|
482
|
-
border-left: 1px solid var(--dpk-rule);
|
|
483
|
-
border-top: 1px solid var(--dpk-rule);
|
|
484
|
-
display: flex;
|
|
485
|
-
flex-direction: column;
|
|
486
|
-
gap: 8px;
|
|
487
|
-
min-height: 100px;
|
|
488
|
-
background: var(--dpk-paper-raised);
|
|
489
|
-
transition: background 150ms ease;
|
|
490
|
-
}
|
|
491
|
-
.cell[data-drop='true'] {
|
|
492
|
-
background: linear-gradient(135deg, var(--dpk-blue-soft), rgba(51, 102, 204, 0.04));
|
|
493
|
-
outline: 2px dashed var(--dpk-blue);
|
|
494
|
-
outline-offset: -2px;
|
|
495
|
-
}
|
|
496
|
-
.card-list {
|
|
497
|
-
display: grid;
|
|
498
|
-
gap: 8px;
|
|
499
|
-
align-content: start;
|
|
500
|
-
flex: 1 1 auto;
|
|
501
|
-
}
|
|
502
|
-
.add-cell {
|
|
503
|
-
margin-top: auto;
|
|
504
|
-
opacity: 0;
|
|
505
|
-
transition: opacity 180ms ease;
|
|
506
|
-
border: 1px dashed var(--dpk-rule-strong);
|
|
507
|
-
border-radius: var(--dpk-radius-sm);
|
|
508
|
-
background: transparent;
|
|
509
|
-
color: var(--dpk-ink-faint);
|
|
510
|
-
padding: 4px 8px;
|
|
511
|
-
font-size: 11.5px;
|
|
512
|
-
}
|
|
513
|
-
.add-cell:hover {
|
|
514
|
-
background: var(--dpk-blue-soft);
|
|
515
|
-
border-color: var(--dpk-blue);
|
|
516
|
-
color: var(--dpk-blue);
|
|
517
|
-
}
|
|
518
|
-
.cell:hover .add-cell {
|
|
519
|
-
opacity: 1;
|
|
520
|
-
}
|
|
521
|
-
.empty {
|
|
522
|
-
border: 1px dashed var(--dpk-rule-strong);
|
|
523
|
-
border-radius: var(--dpk-radius-lg);
|
|
524
|
-
padding: 28px 24px;
|
|
525
|
-
background: var(--dpk-paper-raised);
|
|
526
|
-
max-width: 620px;
|
|
527
|
-
display: grid;
|
|
528
|
-
gap: 10px;
|
|
529
|
-
}
|
|
530
|
-
.count {
|
|
531
|
-
font-family: var(--dpk-mono);
|
|
532
|
-
font-variant-numeric: tabular-nums;
|
|
533
|
-
font-size: 10px;
|
|
534
|
-
color: var(--dpk-ink-faint);
|
|
535
|
-
}
|
|
536
|
-
|
|
537
|
-
/* Step picker shown after a cross-activity drop. */
|
|
538
|
-
.move-dialog {
|
|
539
|
-
min-width: 220px;
|
|
540
|
-
}
|
|
541
|
-
`,kt={width:300,height:240};class De extends X{constructor(){super(),this.definition=ue,this.#e=new He(this),this.#n=new Z(this),this.mode=R}static{this.styles=[X.styles,St,J]}static{this.properties={mode:{state:!0}}}#e;#n;renderRegions(t){return{main:this.#s(t)}}updated(){if(super.updated(),this.mode.kind!=="picking-step")return;const t=this.renderRoot.querySelector("#move-dialog");t&&this.#n.open(t,Xe(this.mode.point.x,this.mode.point.y),kt)}#s(t){return c`
|
|
542
|
-
${gt({context:t,mode:this.mode,drag:this.#e,handlers:{cardIntent:(i,n)=>this.#i(i,n),dropOnCell:(i,n)=>this.#t(i,n),dropOnGroupCell:(i,n,s)=>this.#r(i,n,s),dropOnMilestoneRow:(i,n)=>this.#o(i,n)}})}
|
|
543
|
-
${Tt(t,this.mode,{confirm:i=>this.#a(i),cancel:()=>this.mode=R})}
|
|
544
|
-
`}#i(t,i){const n=this.context();switch(i.kind){case"select":{const s=b(n.state,t);s&&n.navigate({step:s.stepId,story:s.id});break}case"rename":n.dispatch({type:"SET_STORY_NAME",target:{type:"story",id:t},payload:{name:i.name}});break;case"comment":n.dispatch({type:"comment",target:`story:${t}`,payload:{body:i.body}});break;case"delete":n.dispatch({type:"DELETE_STORY",target:{type:"story",id:t},payload:{}});break}this.mode=be(this.mode,t,i)}#t(t,i){const n=this.context();n.dispatch(me(n.state,t,i.item.id,i.hoveredId,i.place))}#r(t,i,n){const s=this.context(),r=b(s.state,n.item.id);if(!r)return;if(r.activityId!==t){this.mode={kind:"picking-step",storyId:r.id,activityId:t,milestoneId:i,point:{x:n.event.clientX,y:n.event.clientY}};return}const o=ge(s.state,t,i,r.id,n.hoveredId,n.place);o&&s.dispatch(o)}#o(t,i){const n=this.context(),s=n.state.milestones.map(o=>o.id),r=ye(s,i.item.id,i.hoveredId,i.place);r&&n.dispatch(r)}#a(t){const i=this.mode;if(i.kind!=="picking-step")return;const n=this.context();n.dispatch(ve(n.state,i.storyId,i.activityId,t,i.milestoneId)),this.mode=R}}const xe=()=>{ct(),customElements.get("dpk-template-usm")||customElements.define("dpk-template-usm",De)},It=Object.freeze(Object.defineProperty({__proto__:null,DpkTemplateUsm:De,IDLE_MODE:R,allUsmIds:x,applyUsmAction:ie,cardModeOf:he,defineUsmElement:xe,describeUsmAction:oe,dropAfter:q,emptyUsmBase:W,findActivity:O,findMilestone:k,findStep:h,findStory:b,flatSteps:ee,modeConcerns:H,parseUsmBase:Q,reduceCardIntent:be,resolveCellDrop:me,resolveGroupDrop:ge,resolveMilestoneDrop:ye,resolvePickedStepMove:ve,resolveUsmNavigation:ce,serializeUsmAction:ae,storiesInCell:B,storyCountForStep:st,usmAction:Ze,usmActions:p,usmCommentTargets:le,usmDefinition:ue,usmHasTarget:pe,usmTargetLabel:de,usmTitle:K},Symbol.toStringTag,{value:"Module"}));export{xe as d,It as i};
|