@shtabapp/ui-kit 1.77.0 → 1.78.2

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 (166) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/SChartBar-BAO2FtIO.cjs +1 -0
  3. package/dist/SChartBar-DHjm1H0N.js +304 -0
  4. package/dist/{SChartBurnup-joKIDLFb.cjs → SChartBurnup-9s2KNzCr.cjs} +1 -1
  5. package/dist/{SChartBurnup-BeQWgnGT.js → SChartBurnup-B1KU1E5B.js} +63 -63
  6. package/dist/SChartHorizontalBar-DwY63iRT.cjs +1 -0
  7. package/dist/SChartHorizontalBar-VKU0b6Jx.js +245 -0
  8. package/dist/{SChartLegend-dDqLhvIj.js → SChartLegend-At0mMO09.js} +1 -1
  9. package/dist/{SChartLegend-D1gPKGm0.cjs → SChartLegend-DQMLr6yV.cjs} +1 -1
  10. package/dist/{SChartLine-BV8Ytso5.js → SChartLine-rnEsQv-q.js} +35 -35
  11. package/dist/{SChartLine-DeJjaBmo.cjs → SChartLine-tj-AapTr.cjs} +1 -1
  12. package/dist/SChartMultiLine-C4jjmLEb.js +282 -0
  13. package/dist/SChartMultiLine-dtd6k59D.cjs +1 -0
  14. package/dist/{SChartPie-DccW5J0b.cjs → SChartPie-Ddk8r-_I.cjs} +1 -1
  15. package/dist/{SChartPie-BiLoxutQ.js → SChartPie-Ebg7WSga.js} +31 -31
  16. package/dist/{SChartProgress-DSxJqRA0.js → SChartProgress-DRSh_taf.js} +27 -27
  17. package/dist/{SChartProgress-Cpdkad6Q.cjs → SChartProgress-DozBX6ve.cjs} +1 -1
  18. package/dist/SChartScatter-DilWNoz0.cjs +1 -0
  19. package/dist/SChartScatter-DnmTw18x.js +249 -0
  20. package/dist/SChartStackedArea-BJ5HsJzQ.cjs +1 -0
  21. package/dist/SChartStackedArea-zIygTOp8.js +278 -0
  22. package/dist/SChartStackedBar-CXpVSagd.js +350 -0
  23. package/dist/SChartStackedBar-Dj6esSCS.cjs +2 -0
  24. package/dist/{applyChartHighlightedYTick-BHVwiljn.cjs → applyChartHighlightedYTick-CKsVe7PW.cjs} +1 -1
  25. package/dist/{applyChartHighlightedYTick-DmsstRVM.js → applyChartHighlightedYTick-DOxlsWPd.js} +1 -1
  26. package/dist/buildChartMirrorScale-CBUIRPYX.cjs +1 -0
  27. package/dist/buildChartMirrorScale-_PhGNiFR.js +15 -0
  28. package/dist/buildMultiLineChartScales-BweU2ftq.cjs +1 -0
  29. package/dist/buildMultiLineChartScales-DbRe2UFD.js +38 -0
  30. package/dist/components/SChartBar/SChartBar.types.d.ts +4 -0
  31. package/dist/components/SChartBar/SChartBar.types.d.ts.map +1 -1
  32. package/dist/components/SChartBar/SChartBar.vue.d.ts.map +1 -1
  33. package/dist/components/SChartBar/utils/buildBarChartConfig.d.ts +3 -1
  34. package/dist/components/SChartBar/utils/buildBarChartConfig.d.ts.map +1 -1
  35. package/dist/components/SChartBar/utils/createBarValueLabelPlugin.d.ts.map +1 -1
  36. package/dist/components/SChartHorizontalBar/SChartHorizontalBar.types.d.ts +12 -0
  37. package/dist/components/SChartHorizontalBar/SChartHorizontalBar.types.d.ts.map +1 -1
  38. package/dist/components/SChartHorizontalBar/SChartHorizontalBar.vue.d.ts.map +1 -1
  39. package/dist/components/SChartHorizontalBar/utils/buildSChartHorizontalBarConfig.d.ts +6 -0
  40. package/dist/components/SChartHorizontalBar/utils/buildSChartHorizontalBarConfig.d.ts.map +1 -1
  41. package/dist/components/SChartMultiLine/SChartMultiLine.types.d.ts +2 -0
  42. package/dist/components/SChartMultiLine/SChartMultiLine.types.d.ts.map +1 -1
  43. package/dist/components/SChartMultiLine/SChartMultiLine.vue.d.ts.map +1 -1
  44. package/dist/components/SChartMultiLine/utils/buildMultiLineChartConfig.d.ts +2 -1
  45. package/dist/components/SChartMultiLine/utils/buildMultiLineChartConfig.d.ts.map +1 -1
  46. package/dist/components/SChartMultiLine/utils/demoMultiLineSeries.d.ts +1 -0
  47. package/dist/components/SChartMultiLine/utils/demoMultiLineSeries.d.ts.map +1 -1
  48. package/dist/components/SChartScatter/SChartScatter.types.d.ts +51 -0
  49. package/dist/components/SChartScatter/SChartScatter.types.d.ts.map +1 -0
  50. package/dist/components/SChartScatter/SChartScatter.vue.d.ts +12 -0
  51. package/dist/components/SChartScatter/SChartScatter.vue.d.ts.map +1 -0
  52. package/dist/components/SChartScatter/index.d.ts +3 -0
  53. package/dist/components/SChartScatter/index.d.ts.map +1 -0
  54. package/dist/components/SChartScatter/utils/buildScatterChartConfig.d.ts +20 -0
  55. package/dist/components/SChartScatter/utils/buildScatterChartConfig.d.ts.map +1 -0
  56. package/dist/components/SChartScatter/utils/demoScatter.d.ts +6 -0
  57. package/dist/components/SChartScatter/utils/demoScatter.d.ts.map +1 -0
  58. package/dist/components/SChartScatter/utils/skeletonScatter.d.ts +5 -0
  59. package/dist/components/SChartScatter/utils/skeletonScatter.d.ts.map +1 -0
  60. package/dist/components/SChartStackedArea/SChartStackedArea.types.d.ts +5 -1
  61. package/dist/components/SChartStackedArea/SChartStackedArea.types.d.ts.map +1 -1
  62. package/dist/components/SChartStackedArea/SChartStackedArea.vue.d.ts.map +1 -1
  63. package/dist/components/SChartStackedArea/utils/buildStackedAreaChartConfig.d.ts +3 -1
  64. package/dist/components/SChartStackedArea/utils/buildStackedAreaChartConfig.d.ts.map +1 -1
  65. package/dist/components/SChartStackedArea/utils/demoStackedSeries.d.ts +2 -0
  66. package/dist/components/SChartStackedArea/utils/demoStackedSeries.d.ts.map +1 -1
  67. package/dist/components/SChartStackedBar/SChartStackedBar.types.d.ts +21 -0
  68. package/dist/components/SChartStackedBar/SChartStackedBar.types.d.ts.map +1 -1
  69. package/dist/components/SChartStackedBar/SChartStackedBar.vue.d.ts.map +1 -1
  70. package/dist/components/SChartStackedBar/index.d.ts +1 -1
  71. package/dist/components/SChartStackedBar/index.d.ts.map +1 -1
  72. package/dist/components/SChartStackedBar/utils/buildStackedBarChartConfig.d.ts +7 -1
  73. package/dist/components/SChartStackedBar/utils/buildStackedBarChartConfig.d.ts.map +1 -1
  74. package/dist/components/SChartStackedBar/utils/createStackedBarTotalsPlugin.d.ts +6 -0
  75. package/dist/components/SChartStackedBar/utils/createStackedBarTotalsPlugin.d.ts.map +1 -0
  76. package/dist/components/SChartStackedBar/utils/createStackedBarTrendPlugin.d.ts +10 -0
  77. package/dist/components/SChartStackedBar/utils/createStackedBarTrendPlugin.d.ts.map +1 -0
  78. package/dist/components/SChartStackedBar/utils/demoStackedBarSeries.d.ts +2 -0
  79. package/dist/components/SChartStackedBar/utils/demoStackedBarSeries.d.ts.map +1 -1
  80. package/dist/{createChartCrosshairPlugin-EqMlaexu.js → createChartCrosshairPlugin-B4LrgKjG.js} +1 -1
  81. package/dist/{createChartCrosshairPlugin-BTPv09h4.cjs → createChartCrosshairPlugin-COIICTCz.cjs} +1 -1
  82. package/dist/{createChartMarkersPlugin-BKxLg4pL.cjs → createChartMarkersPlugin-L7qomZVK.cjs} +1 -1
  83. package/dist/{createChartMarkersPlugin-DPvfZp_e.js → createChartMarkersPlugin-bAEeP-5Z.js} +1 -1
  84. package/dist/createCustomTooltipCallbacks-CxeEfJLl.js +12 -0
  85. package/dist/createCustomTooltipCallbacks-oRAimZTt.cjs +1 -0
  86. package/dist/entries/chart-bar.cjs +1 -1
  87. package/dist/entries/chart-bar.js +1 -1
  88. package/dist/entries/chart-burnup.cjs +1 -1
  89. package/dist/entries/chart-burnup.js +1 -1
  90. package/dist/entries/chart-horizontal-bar.cjs +1 -1
  91. package/dist/entries/chart-horizontal-bar.js +1 -1
  92. package/dist/entries/chart-line.cjs +1 -1
  93. package/dist/entries/chart-line.js +1 -1
  94. package/dist/entries/chart-multi-line.cjs +1 -1
  95. package/dist/entries/chart-multi-line.js +1 -1
  96. package/dist/entries/chart-pie.cjs +1 -1
  97. package/dist/entries/chart-pie.js +1 -1
  98. package/dist/entries/chart-progress.cjs +1 -1
  99. package/dist/entries/chart-progress.js +1 -1
  100. package/dist/entries/chart-scatter.cjs +1 -0
  101. package/dist/entries/chart-scatter.d.ts +3 -0
  102. package/dist/entries/chart-scatter.d.ts.map +1 -0
  103. package/dist/entries/chart-scatter.js +2 -0
  104. package/dist/entries/chart-stacked-area.cjs +1 -1
  105. package/dist/entries/chart-stacked-area.js +1 -1
  106. package/dist/entries/chart-stacked-bar.cjs +1 -1
  107. package/dist/entries/chart-stacked-bar.d.ts +1 -1
  108. package/dist/entries/chart-stacked-bar.d.ts.map +1 -1
  109. package/dist/entries/chart-stacked-bar.js +1 -1
  110. package/dist/index.cjs +1 -1
  111. package/dist/index.d.ts +3 -1
  112. package/dist/index.d.ts.map +1 -1
  113. package/dist/index.js +185 -184
  114. package/dist/resolveBarStackedSeriesColor-BDJ7XBIB.cjs +1 -0
  115. package/dist/resolveBarStackedSeriesColor-zEV1Ps7h.js +11 -0
  116. package/dist/resolveChartLabelFont-D_Pxt-gs.cjs +1 -0
  117. package/dist/resolveChartLabelFont-WtZd0pFD.js +4 -0
  118. package/dist/{resolveCssColorValue-DH_SEZj4.js → resolveCssColorValue-BBK7CTmP.js} +1 -1
  119. package/dist/resolveCssColorValue-D3fS-cK8.cjs +1 -0
  120. package/dist/{resolveSeriesPaletteColor-DoPeNP_F.js → resolveSeriesPaletteColor-Bk52kyZo.js} +2 -2
  121. package/dist/resolveSeriesPaletteColor-CVEsFs0o.cjs +1 -0
  122. package/dist/{resolveStackedChartContext-D4tuSA6Z.cjs → resolveStackedChartContext-BE3ZW2Sf.cjs} +1 -1
  123. package/dist/{resolveStackedChartContext-BbCzct6O.js → resolveStackedChartContext-Dc6Foe7D.js} +1 -1
  124. package/dist/uikit-components.css +1 -1
  125. package/dist/useChartInteractivity-Yk7qEYgl.cjs +2 -0
  126. package/dist/{useChartInteractivity-DygkiRA1.js → useChartInteractivity-sgbPZgcH.js} +58 -57
  127. package/dist/utils/chart/bar/createStackedBarTooltipCallbacks.d.ts.map +1 -1
  128. package/dist/utils/chart/core/buildChartMirrorScale.d.ts +27 -0
  129. package/dist/utils/chart/core/buildChartMirrorScale.d.ts.map +1 -0
  130. package/dist/utils/chart/core/chartCssVariables.d.ts +1 -0
  131. package/dist/utils/chart/core/chartCssVariables.d.ts.map +1 -1
  132. package/dist/utils/chart/core/chartInteractivity.d.ts +6 -0
  133. package/dist/utils/chart/core/chartInteractivity.d.ts.map +1 -1
  134. package/dist/utils/chart/core/createCustomTooltipCallbacks.d.ts +8 -0
  135. package/dist/utils/chart/core/createCustomTooltipCallbacks.d.ts.map +1 -0
  136. package/dist/utils/chart/core/registerChartJs.d.ts.map +1 -1
  137. package/dist/utils/chart/css/resolveChartLabelFont.d.ts +7 -0
  138. package/dist/utils/chart/css/resolveChartLabelFont.d.ts.map +1 -0
  139. package/dist/utils/chart/horizontalBar/buildHorizontalBarChartConfig.d.ts +7 -1
  140. package/dist/utils/chart/horizontalBar/buildHorizontalBarChartConfig.d.ts.map +1 -1
  141. package/dist/utils/chart/horizontalBar/buildHorizontalBarChartScales.d.ts +3 -1
  142. package/dist/utils/chart/horizontalBar/buildHorizontalBarChartScales.d.ts.map +1 -1
  143. package/dist/utils/chart/horizontalBar/createHorizontalBarValueLabelPlugin.d.ts +10 -0
  144. package/dist/utils/chart/horizontalBar/createHorizontalBarValueLabelPlugin.d.ts.map +1 -0
  145. package/dist/utils/chart/index.d.ts +1 -0
  146. package/dist/utils/chart/index.d.ts.map +1 -1
  147. package/dist/utils/chart/multiLine/buildMultiLineChartScales.d.ts +16 -21
  148. package/dist/utils/chart/multiLine/buildMultiLineChartScales.d.ts.map +1 -1
  149. package/package.json +7 -2
  150. package/dist/SChartBar-BvytQ-2z.js +0 -293
  151. package/dist/SChartBar-BzCeNCsi.cjs +0 -1
  152. package/dist/SChartHorizontalBar-C40Yroue.js +0 -176
  153. package/dist/SChartHorizontalBar-Dwln3uuE.cjs +0 -1
  154. package/dist/SChartMultiLine-7_HcvVEQ.js +0 -279
  155. package/dist/SChartMultiLine-Cl9Pf3Wp.cjs +0 -1
  156. package/dist/SChartStackedArea-B28offwE.js +0 -254
  157. package/dist/SChartStackedArea-Ce7xyhp1.cjs +0 -1
  158. package/dist/SChartStackedBar-C77FlKGS.js +0 -245
  159. package/dist/SChartStackedBar-CqUDrFJ3.cjs +0 -1
  160. package/dist/buildMultiLineChartScales-Di-yTvEB.js +0 -41
  161. package/dist/buildMultiLineChartScales-lVP6h9H4.cjs +0 -1
  162. package/dist/resolveBarStackedSeriesColor-CjwUxrUx.js +0 -11
  163. package/dist/resolveBarStackedSeriesColor-Czkj5bJY.cjs +0 -1
  164. package/dist/resolveCssColorValue-BFMo08-w.cjs +0 -1
  165. package/dist/resolveSeriesPaletteColor-BepW1gdW.cjs +0 -1
  166. package/dist/useChartInteractivity-CaZ37kX-.cjs +0 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,21 @@
1
+ ## [@shtabapp/ui-kit-v1.78.2](https://gitlab.com/mstikharev/shtab-ui-kit/compare/@shtabapp/ui-kit@1.78.1...@shtabapp/ui-kit@1.78.2) (2026-10-21)
2
+
3
+ ### Bug Fixes
4
+
5
+ * **checkbox:** не менять высоту строки при включении чекбокса ([197c2d3](https://gitlab.com/mstikharev/shtab-ui-kit/commit/197c2d35a482af34e9e677ba4245b9b2877f3d53))
6
+
7
+ ## [@shtabapp/ui-kit-v1.78.1](https://gitlab.com/mstikharev/shtab-ui-kit/compare/@shtabapp/ui-kit@1.78.0...@shtabapp/ui-kit@1.78.1) (2026-10-20)
8
+
9
+ ### Bug Fixes
10
+
11
+ * **charts:** totalLabel в SChartStackedArea подписывает сумму в тултипе, а не в легенде ([de818cb](https://gitlab.com/mstikharev/shtab-ui-kit/commit/de818cbd88597ce093ac1491c45cb092abddd4b2))
12
+
13
+ ## [@shtabapp/ui-kit-v1.78.0](https://gitlab.com/mstikharev/shtab-ui-kit/compare/@shtabapp/ui-kit@1.77.0...@shtabapp/ui-kit@1.78.0) (2026-10-20)
14
+
15
+ ### Features
16
+
17
+ * **charts:** высота SChartLine и SChartMultiLine в токенах — переопределяется с обёртки ([5401772](https://gitlab.com/mstikharev/shtab-ui-kit/commit/5401772085e26766e8a94eac7887d4b98b1b125d))
18
+
1
19
  ## [@shtabapp/ui-kit-v1.77.0](https://gitlab.com/mstikharev/shtab-ui-kit/compare/@shtabapp/ui-kit@1.76.0...@shtabapp/ui-kit@1.77.0) (2026-10-18)
2
20
 
3
21
  ### Features
@@ -0,0 +1 @@
1
+ const e=require("./useChartInteractivity-Yk7qEYgl.cjs"),t=require("./SChartLegend-DQMLr6yV.cjs"),n=require("./resolveCssColorValue-D3fS-cK8.cjs"),r=require("./buildCartesianChartScales-Dck5yBMo.cjs"),i=require("./resolveChartValueRange-DBCYLCXs.cjs"),a=require("./resolveBarStackedSeriesColor-BDJ7XBIB.cjs"),o=require("./buildChartMirrorScale-CBUIRPYX.cjs"),s=require("./resolveChartLabelFont-D_Pxt-gs.cjs"),c=require("./applyChartHighlightedYTick-CKsVe7PW.cjs"),l=require("./splitChartAxisLabel-DAmQOJn6.cjs"),u=require("./buildChartSeriesPoints-Cqo2ed-n.cjs"),d=require("./useHasListener-BPgtbbo6.cjs");let f=require("vue");var p=1,m=[4,4],h=`500 10px var(--s-ui-font-family-label)`,g=4,_=e=>e.length>0&&new Set(e).size===1,v=({target:t,colorHostElement:r,rightAxisId:i})=>({id:`barTargetLine`,afterDatasetsDraw(a){if(!t||t.values.length===0)return;let o=t.axis===`right`?i:`y`,s=a.scales[o],c=a.scales.x;if(!s||!c)return;let{ctx:l,chartArea:u}=a,d=t.color?n.t(t.color,r):e.S(e.D.grid,r);l.save(),l.strokeStyle=d,l.lineWidth=p,l.setLineDash(t.solid?[]:m);let[f]=t.values;if(f!==void 0&&_(t.values)){let e=s.getPixelForValue(f);l.beginPath(),l.moveTo(u.left,e),l.lineTo(u.right,e),l.stroke(),t.label&&(l.setLineDash([]),l.fillStyle=d,l.font=h,l.textAlign=`left`,l.fillText(t.label,u.left,e-g))}else{let e=(u.right-u.left)/t.values.length;t.values.forEach((t,n)=>{if(t<=0)return;let r=s.getPixelForValue(t);l.beginPath(),l.moveTo(u.left+e*n,r),l.lineTo(u.left+e*(n+1),r),l.stroke()})}l.restore()}}),y=4,b=10,x=500,S=({colorHostElement:t,formatValue:n})=>({id:`barValueLabel`,afterDatasetsDraw(r){let i=e.S(e.D.barValueLabel,t),a=e.S(e.D.barValueLabelMuted,t),{ctx:o}=r;o.save(),o.font=s.t({size:b,weight:x,colorHostElement:t}),o.textAlign=`center`,r.data.datasets.forEach((t,s)=>{r.isDatasetVisible(s)&&r.getDatasetMeta(s).data.forEach((c,l)=>{let u=t.data[l];if(typeof u!=`number`)return;let d=u<0;o.fillStyle=e.o(r,s,l)?a:i,o.textBaseline=d?`top`:`bottom`,o.fillText(n?n(u):String(u),c.x,d?c.y+y:c.y-y)})}),o.restore()}}),C=5,w=4,T=12,E=`yRight`,D=1.05,O=16,k=.92,A=1,j=(e,t,n,r)=>i.t(e.flatMap(e=>e.points.map(e=>e.value*D)),{yMin:t,yMax:n,yStep:r}),M=({seriesList:t,colorHostElement:i,yMax:s,yMin:u,yStep:d=C,rightYMax:f,rightYStep:p=C,mirrorYAxis:m=!1,target:h,skeleton:g=!1,showValues:_=!1,formatValue:y,formatYTick:b,mode:x=`grouped`,categories:D=[],highlightedYTick:M,maxBarThickness:N,formatTooltip:P,onPointClick:F})=>{if(t.length===0)return null;let I=t.filter(e=>e.axis!==`right`),L=t.filter(e=>e.axis===`right`),R=e.S(e.D.axisLabel,i),z=e.S(e.D.grid,i),B=e.S(e.D.tooltipBackground,i),V=e.S(e.D.tooltipText,i),H=e.S(e.D.barAxisLabelMuted,i),U=j(I,u,s,d),W=j(L,void 0,f,p),G=x===`histogram`,K=D.map(e=>n.t(e.color,i)),q=r.t({axisLabelColor:R,gridColor:z,yMin:U.min,yMax:U.max,yStep:d,xTickFontSize:T,...b?{formatYAxisTick:e=>typeof e==`number`?b(e):e}:{}}),J=M&&!g?c.t(q.y.ticks,{highlightedTick:M,yStep:d,axisLabelColor:R,colorHostElement:i}):{ticks:q.y.ticks},Y=G?{...q.y,display:!1}:{...q.y,...J},X=(e,t)=>o.n({min:e,max:t,tickOptions:J}),Z=L.length>0?{[E]:X(W.min,W.max)}:m&&!G?{[o.t]:X(U.min,U.max)}:{},Q={x:{...q.x,...G?{border:{display:!0,color:z}}:{},ticks:{...q.x.ticks,color:({chart:t,index:n})=>e.i(t,n)?H:R}},y:Y,...Z},$=e.r({kind:`segment`,skeleton:g,colorHostElement:i,onElementIndexClick:F});return{type:`bar`,data:{labels:t[0]?.points.map(e=>l.t(e.label))??[],datasets:t.map((e,t)=>{let r=a.t(t,i,e.fillColor,g),o=e.points.map(e=>e.fillColor?n.t(e.fillColor,i):(e.category===void 0?void 0:K[e.category])??r);return{label:e.label,data:e.points.map(e=>e.value),backgroundColor:o,hoverBackgroundColor:o,borderWidth:0,hoverBorderWidth:0,borderRadius:w,yAxisID:e.axis===`right`?E:`y`,...N?{maxBarThickness:N}:{},captions:e.points.map(e=>e.caption),categories:e.points.map(e=>e.category),...G?{barPercentage:k,categoryPercentage:A}:{}}})},options:{responsive:!0,maintainAspectRatio:!1,layout:_?{padding:{top:O}}:void 0,onHover:$.onHover,onClick:$.onClick,hover:g?void 0:{mode:`nearest`,intersect:!0},interaction:e.f(g,{mode:`nearest`,intersect:!0}),plugins:{legend:{display:!1},tooltip:{enabled:e.p(g),backgroundColor:B,titleColor:V,bodyColor:V,displayColors:!1,...P?{callbacks:{title:()=>[],label:e=>P(e.dataIndex,e.datasetIndex)}}:{}}},scales:Q},plugins:e.m(g,[v({target:h,colorHostElement:i,rightAxisId:E}),..._?[S({colorHostElement:i,formatValue:y})]:[],...$.plugins])}},N=[`5 неделя`,`6 неделя`,`7 неделя`,`8 неделя`,`9 неделя`,`10 неделя`],P=[{label:`Series 1`,points:u.t(N,[28,34,24,42,30,36])},{label:`Series 2`,points:u.t(N,[18,22,16,28,20,24])}],F={class:`s-ui-chart-bar__canvas-wrap`},I=(0,f.defineComponent)({__name:`SChartBar`,props:{series:{default:()=>[]},mode:{default:`grouped`},loading:{type:Boolean,default:!1},yMax:{},yMin:{},yStep:{},rightYMax:{},rightYStep:{},mirrorYAxis:{type:Boolean,default:!1},target:{},showLegend:{type:Boolean,default:!0},showValues:{type:Boolean,default:!1},formatValue:{type:Function},formatYTick:{type:Function},categories:{default:()=>[]},highlightedYTick:{},legendSize:{},maxBarThickness:{},formatTooltip:{type:Function}},emits:[`pointClick`],setup(r,{expose:i,emit:o}){let s=o,c=(0,f.useTemplateRef)(`chartRootRef`),l=(0,f.useTemplateRef)(`chartCanvasRef`),p=(0,f.computed)(()=>r.loading?P:r.mode===`grouped`?r.series:r.series.slice(0,1)),m=(e,t)=>{let n=p.value[t],r=n?.points[e];n&&r&&s(`pointClick`,e,t,r,n)},h=d.t(`onPointClick`),g=(0,f.computed)(()=>!r.loading&&r.series.length===0?null:M({seriesList:p.value,colorHostElement:c.value,yMax:r.loading?50:r.yMax,yMin:r.loading?void 0:r.yMin,yStep:r.loading?10:r.yStep,rightYMax:r.rightYMax,rightYStep:r.rightYStep,mirrorYAxis:r.mirrorYAxis,target:r.loading?void 0:r.target,skeleton:r.loading,showValues:r.showValues,formatValue:r.formatValue,formatYTick:r.formatYTick,mode:r.mode,categories:r.categories,highlightedYTick:r.highlightedYTick,maxBarThickness:r.maxBarThickness,formatTooltip:r.formatTooltip,onPointClick:h()?m:void 0})),_=(0,f.computed)(()=>!r.loading&&r.categories.length>0),v=(0,f.computed)(()=>_.value?r.categories.map(e=>({label:e.label,color:n.t(e.color,c.value)})):u.n(p.value,(e,t)=>a.t(e,c.value,t,r.loading))),y=(0,f.computed)(()=>r.loading||!r.target?.legendLabel?[]:[{label:r.target.legendLabel,color:r.target.color?n.t(r.target.color,c.value):e.S(e.D.grid,c.value),marker:`line`}]),b=(0,f.computed)(()=>[...v.value,...y.value]),{chartInstance:x}=e.n({canvasRef:l,config:g,enabled:(0,f.computed)(()=>r.loading||r.series.length>0)}),{exportImage:S,handleLegendItemHover:C}=e.t({chartInstance:x,canvasRef:l,colorHostElement:c,legendDimKind:()=>_.value?`category`:`series`}),w=e=>{C(e!==null&&e<v.value.length?e:null)};return i({exportImage:S}),(n,i)=>((0,f.openBlock)(),(0,f.createElementBlock)(`div`,{ref_key:`chartRootRef`,ref:c,class:(0,f.normalizeClass)([`s-ui-chart-bar`,{"s-ui-chart-bar--skeleton":r.loading}])},[(0,f.createElementVNode)(`div`,F,[(0,f.createVNode)((0,f.unref)(e.C),{loading:r.loading},{default:(0,f.withCtx)(()=>[(0,f.createElementVNode)(`canvas`,{ref_key:`chartCanvasRef`,ref:l,class:`s-ui-chart-bar__canvas`},null,512)]),_:1},8,[`loading`])]),r.showLegend&&b.value.length?((0,f.openBlock)(),(0,f.createBlock)((0,f.unref)(t.t),{key:0,items:b.value,size:r.legendSize,disabled:r.loading,interactive:!r.loading,onItemHover:w},null,8,[`items`,`size`,`disabled`,`interactive`])):(0,f.createCommentVNode)(``,!0)],2))}});Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return I}});
@@ -0,0 +1,304 @@
1
+ import { C as e, D as t, S as n, f as r, i, m as a, n as o, o as s, p as c, r as l, t as u } from "./useChartInteractivity-sgbPZgcH.js";
2
+ import { t as d } from "./SChartLegend-At0mMO09.js";
3
+ import { t as f } from "./resolveCssColorValue-BBK7CTmP.js";
4
+ import { t as p } from "./buildCartesianChartScales-EofFq3ry.js";
5
+ import { t as m } from "./resolveChartValueRange-DZybnmaX.js";
6
+ import { t as h } from "./resolveBarStackedSeriesColor-zEV1Ps7h.js";
7
+ import { n as g, t as _ } from "./buildChartMirrorScale-_PhGNiFR.js";
8
+ import { t as v } from "./resolveChartLabelFont-WtZd0pFD.js";
9
+ import { t as y } from "./applyChartHighlightedYTick-DOxlsWPd.js";
10
+ import { t as b } from "./splitChartAxisLabel-D-IFyucJ.js";
11
+ import { n as x, t as S } from "./buildChartSeriesPoints-BTyOpkin.js";
12
+ import { t as C } from "./useHasListener-RSjlUyqH.js";
13
+ import { computed as w, createBlock as T, createCommentVNode as E, createElementBlock as D, createElementVNode as O, createVNode as k, defineComponent as A, normalizeClass as j, openBlock as M, unref as N, useTemplateRef as P, withCtx as F } from "vue";
14
+ //#region src/components/SChartBar/utils/createBarTargetLinePlugin.ts
15
+ var I = 1, L = [4, 4], R = "500 10px var(--s-ui-font-family-label)", z = 4, B = (e) => e.length > 0 && new Set(e).size === 1, ee = ({ target: e, colorHostElement: r, rightAxisId: i }) => ({
16
+ id: "barTargetLine",
17
+ afterDatasetsDraw(a) {
18
+ if (!e || e.values.length === 0) return;
19
+ let o = e.axis === "right" ? i : "y", s = a.scales[o], c = a.scales.x;
20
+ if (!s || !c) return;
21
+ let { ctx: l, chartArea: u } = a, d = e.color ? f(e.color, r) : n(t.grid, r);
22
+ l.save(), l.strokeStyle = d, l.lineWidth = I, l.setLineDash(e.solid ? [] : L);
23
+ let [p] = e.values;
24
+ if (p !== void 0 && B(e.values)) {
25
+ let t = s.getPixelForValue(p);
26
+ l.beginPath(), l.moveTo(u.left, t), l.lineTo(u.right, t), l.stroke(), e.label && (l.setLineDash([]), l.fillStyle = d, l.font = R, l.textAlign = "left", l.fillText(e.label, u.left, t - z));
27
+ } else {
28
+ let t = (u.right - u.left) / e.values.length;
29
+ e.values.forEach((e, n) => {
30
+ if (e <= 0) return;
31
+ let r = s.getPixelForValue(e);
32
+ l.beginPath(), l.moveTo(u.left + t * n, r), l.lineTo(u.left + t * (n + 1), r), l.stroke();
33
+ });
34
+ }
35
+ l.restore();
36
+ }
37
+ }), V = 4, H = 10, U = 500, te = ({ colorHostElement: e, formatValue: r }) => ({
38
+ id: "barValueLabel",
39
+ afterDatasetsDraw(i) {
40
+ let a = n(t.barValueLabel, e), o = n(t.barValueLabelMuted, e), { ctx: c } = i;
41
+ c.save(), c.font = v({
42
+ size: H,
43
+ weight: U,
44
+ colorHostElement: e
45
+ }), c.textAlign = "center", i.data.datasets.forEach((e, t) => {
46
+ i.isDatasetVisible(t) && i.getDatasetMeta(t).data.forEach((n, l) => {
47
+ let u = e.data[l];
48
+ if (typeof u != "number") return;
49
+ let d = u < 0;
50
+ c.fillStyle = s(i, t, l) ? o : a, c.textBaseline = d ? "top" : "bottom", c.fillText(r ? r(u) : String(u), n.x, d ? n.y + V : n.y - V);
51
+ });
52
+ }), c.restore();
53
+ }
54
+ }), W = 5, ne = 4, re = 12, G = "yRight", K = 1.05, ie = 16, ae = .92, oe = 1, q = (e, t, n, r) => m(e.flatMap((e) => e.points.map((e) => e.value * K)), {
55
+ yMin: t,
56
+ yMax: n,
57
+ yStep: r
58
+ }), J = ({ seriesList: e, colorHostElement: o, yMax: s, yMin: u, yStep: d = W, rightYMax: m, rightYStep: v = W, mirrorYAxis: x = !1, target: S, skeleton: C = !1, showValues: w = !1, formatValue: T, formatYTick: E, mode: D = "grouped", categories: O = [], highlightedYTick: k, maxBarThickness: A, formatTooltip: j, onPointClick: M }) => {
59
+ if (e.length === 0) return null;
60
+ let N = e.filter((e) => e.axis !== "right"), P = e.filter((e) => e.axis === "right"), F = n(t.axisLabel, o), I = n(t.grid, o), L = n(t.tooltipBackground, o), R = n(t.tooltipText, o), z = n(t.barAxisLabelMuted, o), B = q(N, u, s, d), V = q(P, void 0, m, v), H = D === "histogram", U = O.map((e) => f(e.color, o)), K = p({
61
+ axisLabelColor: F,
62
+ gridColor: I,
63
+ yMin: B.min,
64
+ yMax: B.max,
65
+ yStep: d,
66
+ xTickFontSize: re,
67
+ ...E ? { formatYAxisTick: (e) => typeof e == "number" ? E(e) : e } : {}
68
+ }), J = k && !C ? y(K.y.ticks, {
69
+ highlightedTick: k,
70
+ yStep: d,
71
+ axisLabelColor: F,
72
+ colorHostElement: o
73
+ }) : { ticks: K.y.ticks }, Y = H ? {
74
+ ...K.y,
75
+ display: !1
76
+ } : {
77
+ ...K.y,
78
+ ...J
79
+ }, X = (e, t) => g({
80
+ min: e,
81
+ max: t,
82
+ tickOptions: J
83
+ }), Z = P.length > 0 ? { [G]: X(V.min, V.max) } : x && !H ? { [_]: X(B.min, B.max) } : {}, Q = {
84
+ x: {
85
+ ...K.x,
86
+ ...H ? { border: {
87
+ display: !0,
88
+ color: I
89
+ } } : {},
90
+ ticks: {
91
+ ...K.x.ticks,
92
+ color: ({ chart: e, index: t }) => i(e, t) ? z : F
93
+ }
94
+ },
95
+ y: Y,
96
+ ...Z
97
+ }, $ = l({
98
+ kind: "segment",
99
+ skeleton: C,
100
+ colorHostElement: o,
101
+ onElementIndexClick: M
102
+ });
103
+ return {
104
+ type: "bar",
105
+ data: {
106
+ labels: e[0]?.points.map((e) => b(e.label)) ?? [],
107
+ datasets: e.map((e, t) => {
108
+ let n = h(t, o, e.fillColor, C), r = e.points.map((e) => e.fillColor ? f(e.fillColor, o) : (e.category === void 0 ? void 0 : U[e.category]) ?? n);
109
+ return {
110
+ label: e.label,
111
+ data: e.points.map((e) => e.value),
112
+ backgroundColor: r,
113
+ hoverBackgroundColor: r,
114
+ borderWidth: 0,
115
+ hoverBorderWidth: 0,
116
+ borderRadius: ne,
117
+ yAxisID: e.axis === "right" ? G : "y",
118
+ ...A ? { maxBarThickness: A } : {},
119
+ captions: e.points.map((e) => e.caption),
120
+ categories: e.points.map((e) => e.category),
121
+ ...H ? {
122
+ barPercentage: ae,
123
+ categoryPercentage: oe
124
+ } : {}
125
+ };
126
+ })
127
+ },
128
+ options: {
129
+ responsive: !0,
130
+ maintainAspectRatio: !1,
131
+ layout: w ? { padding: { top: ie } } : void 0,
132
+ onHover: $.onHover,
133
+ onClick: $.onClick,
134
+ hover: C ? void 0 : {
135
+ mode: "nearest",
136
+ intersect: !0
137
+ },
138
+ interaction: r(C, {
139
+ mode: "nearest",
140
+ intersect: !0
141
+ }),
142
+ plugins: {
143
+ legend: { display: !1 },
144
+ tooltip: {
145
+ enabled: c(C),
146
+ backgroundColor: L,
147
+ titleColor: R,
148
+ bodyColor: R,
149
+ displayColors: !1,
150
+ ...j ? { callbacks: {
151
+ title: () => [],
152
+ label: (e) => j(e.dataIndex, e.datasetIndex)
153
+ } } : {}
154
+ }
155
+ },
156
+ scales: Q
157
+ },
158
+ plugins: a(C, [
159
+ ee({
160
+ target: S,
161
+ colorHostElement: o,
162
+ rightAxisId: G
163
+ }),
164
+ ...w ? [te({
165
+ colorHostElement: o,
166
+ formatValue: T
167
+ })] : [],
168
+ ...$.plugins
169
+ ])
170
+ };
171
+ }, Y = [
172
+ "5 неделя",
173
+ "6 неделя",
174
+ "7 неделя",
175
+ "8 неделя",
176
+ "9 неделя",
177
+ "10 неделя"
178
+ ], X = [{
179
+ label: "Series 1",
180
+ points: S(Y, [
181
+ 28,
182
+ 34,
183
+ 24,
184
+ 42,
185
+ 30,
186
+ 36
187
+ ])
188
+ }, {
189
+ label: "Series 2",
190
+ points: S(Y, [
191
+ 18,
192
+ 22,
193
+ 16,
194
+ 28,
195
+ 20,
196
+ 24
197
+ ])
198
+ }], Z = { class: "s-ui-chart-bar__canvas-wrap" }, Q = /* @__PURE__ */ A({
199
+ __name: "SChartBar",
200
+ props: {
201
+ series: { default: () => [] },
202
+ mode: { default: "grouped" },
203
+ loading: {
204
+ type: Boolean,
205
+ default: !1
206
+ },
207
+ yMax: {},
208
+ yMin: {},
209
+ yStep: {},
210
+ rightYMax: {},
211
+ rightYStep: {},
212
+ mirrorYAxis: {
213
+ type: Boolean,
214
+ default: !1
215
+ },
216
+ target: {},
217
+ showLegend: {
218
+ type: Boolean,
219
+ default: !0
220
+ },
221
+ showValues: {
222
+ type: Boolean,
223
+ default: !1
224
+ },
225
+ formatValue: { type: Function },
226
+ formatYTick: { type: Function },
227
+ categories: { default: () => [] },
228
+ highlightedYTick: {},
229
+ legendSize: {},
230
+ maxBarThickness: {},
231
+ formatTooltip: { type: Function }
232
+ },
233
+ emits: ["pointClick"],
234
+ setup(r, { expose: i, emit: a }) {
235
+ let s = a, c = P("chartRootRef"), l = P("chartCanvasRef"), p = w(() => r.loading ? X : r.mode === "grouped" ? r.series : r.series.slice(0, 1)), m = (e, t) => {
236
+ let n = p.value[t], r = n?.points[e];
237
+ n && r && s("pointClick", e, t, r, n);
238
+ }, g = C("onPointClick"), _ = w(() => !r.loading && r.series.length === 0 ? null : J({
239
+ seriesList: p.value,
240
+ colorHostElement: c.value,
241
+ yMax: r.loading ? 50 : r.yMax,
242
+ yMin: r.loading ? void 0 : r.yMin,
243
+ yStep: r.loading ? 10 : r.yStep,
244
+ rightYMax: r.rightYMax,
245
+ rightYStep: r.rightYStep,
246
+ mirrorYAxis: r.mirrorYAxis,
247
+ target: r.loading ? void 0 : r.target,
248
+ skeleton: r.loading,
249
+ showValues: r.showValues,
250
+ formatValue: r.formatValue,
251
+ formatYTick: r.formatYTick,
252
+ mode: r.mode,
253
+ categories: r.categories,
254
+ highlightedYTick: r.highlightedYTick,
255
+ maxBarThickness: r.maxBarThickness,
256
+ formatTooltip: r.formatTooltip,
257
+ onPointClick: g() ? m : void 0
258
+ })), v = w(() => !r.loading && r.categories.length > 0), y = w(() => v.value ? r.categories.map((e) => ({
259
+ label: e.label,
260
+ color: f(e.color, c.value)
261
+ })) : x(p.value, (e, t) => h(e, c.value, t, r.loading))), b = w(() => r.loading || !r.target?.legendLabel ? [] : [{
262
+ label: r.target.legendLabel,
263
+ color: r.target.color ? f(r.target.color, c.value) : n(t.grid, c.value),
264
+ marker: "line"
265
+ }]), S = w(() => [...y.value, ...b.value]), { chartInstance: A } = o({
266
+ canvasRef: l,
267
+ config: _,
268
+ enabled: w(() => r.loading || r.series.length > 0)
269
+ }), { exportImage: I, handleLegendItemHover: L } = u({
270
+ chartInstance: A,
271
+ canvasRef: l,
272
+ colorHostElement: c,
273
+ legendDimKind: () => v.value ? "category" : "series"
274
+ }), R = (e) => {
275
+ L(e !== null && e < y.value.length ? e : null);
276
+ };
277
+ return i({ exportImage: I }), (t, n) => (M(), D("div", {
278
+ ref_key: "chartRootRef",
279
+ ref: c,
280
+ class: j(["s-ui-chart-bar", { "s-ui-chart-bar--skeleton": r.loading }])
281
+ }, [O("div", Z, [k(N(e), { loading: r.loading }, {
282
+ default: F(() => [O("canvas", {
283
+ ref_key: "chartCanvasRef",
284
+ ref: l,
285
+ class: "s-ui-chart-bar__canvas"
286
+ }, null, 512)]),
287
+ _: 1
288
+ }, 8, ["loading"])]), r.showLegend && S.value.length ? (M(), T(N(d), {
289
+ key: 0,
290
+ items: S.value,
291
+ size: r.legendSize,
292
+ disabled: r.loading,
293
+ interactive: !r.loading,
294
+ onItemHover: R
295
+ }, null, 8, [
296
+ "items",
297
+ "size",
298
+ "disabled",
299
+ "interactive"
300
+ ])) : E("", !0)], 2));
301
+ }
302
+ });
303
+ //#endregion
304
+ export { Q as t };
@@ -1 +1 @@
1
- const e=require("./useChartInteractivity-CaZ37kX-.cjs"),t=require("./SChartLegend-D1gPKGm0.cjs"),n=require("./createChartCrosshairPlugin-BTPv09h4.cjs"),r=require("./buildMultiLineChartScales-lVP6h9H4.cjs");let i=require("vue");var a=(t,n)=>({id:`sUiChartBurnupTodayLine`,beforeDatasetsDraw(r){if(t<0)return;let{ctx:i,chartArea:a}=r,o=r.scales.x;if(!a||!o)return;let s=e.b(e.T.burnupToday,n),c=o.getPixelForValue(t);i.save(),i.beginPath(),i.moveTo(c,a.top),i.lineTo(c,a.bottom),i.lineWidth=1,i.strokeStyle=s,i.stroke(),i.restore()}}),o=8,s=4,c=5,l=12,u=12,d=60,f=12,p=e=>{if(typeof window>`u`)return`500 10px sans-serif`;let t=e??document.documentElement;return`500 10px ${getComputedStyle(t).getPropertyValue(`--s-ui-font-family-label`).trim()||`sans-serif`}`},m=(e,t,n,r,i,a)=>{let o=Math.min(a,r/2,i/2);e.beginPath(),e.moveTo(t+o,n),e.lineTo(t+r-o,n),e.arcTo(t+r,n,t+r,n+o,o),e.lineTo(t+r,n+i-o),e.arcTo(t+r,n+i,t+r-o,n+i,o),e.lineTo(t+o,n+i),e.arcTo(t,n+i,t,n+i-o,o),e.lineTo(t,n+o),e.arcTo(t,n,t+o,n,o),e.closePath()},h=({tagLines:t,factDatasetIndex:n,todayIndex:r},i)=>({id:`sUiChartBurnupTag`,afterDatasetsDraw(a){if(r<0||t.length===0)return;let h=a.getDatasetMeta(n)?.data[r],{chartArea:g}=a;if(!h||!g)return;let _=e.b(e.T.burnupToday,i),v=e.b(e.T.burnupTagBackground,i),{ctx:y}=a;y.save(),y.font=p(i),y.textAlign=`center`,y.textBaseline=`middle`;let b=t.reduce((e,t)=>Math.max(e,y.measureText(t).width),0),x=Math.max(d,b+o*2),S=t.length*u+s+c,C=Math.min(Math.max(h.x-x/2,g.left),g.right-x),w=Math.max(h.y-f-S,g.top);m(y,C,w,x,S,l),y.fillStyle=v,y.fill(),y.lineWidth=1,y.strokeStyle=_,y.stroke(),y.fillStyle=_,t.forEach((e,t)=>{y.fillText(e,C+x/2,w+s+u*(t+.5))}),y.restore()}}),g=(e,t)=>t>=0&&e>t,_=({todayIndex:e,futureLabel:t,resolveTitle:n})=>({title:t=>{let r=t[0];return!r||g(r.dataIndex,e)?``:n?.(r.dataIndex)??`${r.label}`},label:n=>g(n.dataIndex,e)?t:`${n.dataset.label??``}: ${n.parsed.y??0}%`}),v=e=>t=>!g(t.dataIndex,e)||t.datasetIndex===0,y=1,b=1,x=2,S=[8,8],C=[9,9],w=2,T=25,E=e=>e.reduce((e,t,n)=>t.fact===null?e:n,-1),D=(e,t)=>e.goal??t,O=(e,t,n)=>{let r=e.reduce((e,n)=>Math.max(e,n.plan,n.fact??0,D(n,t)),t);return Math.ceil(r/n)*n},k=(e,t)=>t.some(e=>e.label===``)?{...e,x:{...e.x,ticks:{...e.x.ticks,autoSkip:!1,maxRotation:0}}}:e,A=({points:t,colorHostElement:i,goalValue:o=100,goalLabel:s=`Цель`,planLabel:c=`План`,factLabel:l=`Факт`,futureLabel:u=`Этот день ещё не наступил`,yStep:d=T,mirrorYAxis:f=!0,showTag:p=!0,skeleton:m=!1})=>{if(t.length===0)return null;let g=e.b(e.T.axisLabel,i),A=e.b(e.T.grid,i),j=e.b(e.T.tooltipBackground,i),M=e.b(e.T.tooltipText,i),N=e.b(e.T.skeletonSeries,i),P=m?N:e.b(e.T.burnupGoal,i),F=m?N:e.b(e.T.burnupPlan,i),I=m?N:e.b(e.T.burnupFact,i),L=e.b(e.T.burnupFactFillStart,i),R=e.b(e.T.burnupFactFillEnd,i),z=E(t),B=z>=0?t[z]:void 0,V=B?[`${l.toLowerCase()} ${B.fact}%`,`${c.toLowerCase()} ${B.plan}%`]:[];return{type:`line`,data:{labels:t.map(e=>e.label),datasets:[{label:s,data:t.map(e=>D(e,o)),borderColor:P,backgroundColor:P,borderWidth:y,borderDash:S,fill:!1,pointRadius:0,pointHoverRadius:0,tension:0},{label:c,data:t.map(e=>e.plan),borderColor:F,backgroundColor:F,borderWidth:b,borderDash:C,fill:!1,pointRadius:0,pointHoverRadius:0,tension:.4},{label:l,data:t.map(e=>e.fact??null),borderColor:I,backgroundColor:m?I:t=>e.l(t,L,R),borderWidth:x,fill:!m,spanGaps:!1,pointRadius:0,pointHoverRadius:4,tension:.4}]},options:{responsive:!0,maintainAspectRatio:!1,interaction:e.u(m,{mode:`index`,intersect:!1}),plugins:{legend:{display:!1},tooltip:{enabled:e.d(m),backgroundColor:j,titleColor:M,bodyColor:M,displayColors:!1,position:e.g,yAlign:`bottom`,xAlign:`center`,caretPadding:8,filter:v(z),callbacks:_({todayIndex:z,futureLabel:u,resolveTitle:e=>t[e]?.tooltipLabel})}},scales:k(r.t({axisLabelColor:g,gridColor:A,yMin:0,yMax:O(t,o,d),yStep:d,mirrorYAxis:f,formatYAxisTick:e=>`${e}%`}),t)},plugins:e.f(m,[n.t(i),a(z,i),...p?[h({tagLines:V,factDatasetIndex:w,todayIndex:z},i)]:[]])}},j=[8,15,23,31,38,46,54,62,69,77,85,92,96,100],M=[5,10,16,22,28,34,40,45,50,54,57,60,null,null],N=j.map((e,t)=>({label:`Д${t+1}`,plan:e,fact:M[t]})),P={class:`s-ui-chart-burnup__canvas-wrap`},F=(0,i.defineComponent)({__name:`SChartBurnup`,props:{points:{default:()=>[]},loading:{type:Boolean,default:!1},goalValue:{default:100},goalLabel:{default:`Цель`},planLabel:{default:`План`},factLabel:{default:`Факт`},futureLabel:{default:`Этот день ещё не наступил`},yStep:{default:25},mirrorYAxis:{type:Boolean,default:!0},showTag:{type:Boolean,default:!0}},setup(n,{expose:r}){let a=(0,i.useTemplateRef)(`chartRootRef`),o=(0,i.useTemplateRef)(`chartCanvasRef`),s=(0,i.computed)(()=>n.loading?N:n.points),c=(0,i.computed)(()=>!n.loading&&n.points.length===0?null:A({points:s.value,colorHostElement:a.value,goalValue:n.goalValue,goalLabel:n.goalLabel,planLabel:n.planLabel,factLabel:n.factLabel,futureLabel:n.futureLabel,yStep:n.yStep,mirrorYAxis:n.mirrorYAxis,showTag:n.showTag,skeleton:n.loading})),l=(0,i.computed)(()=>[{label:n.goalLabel,cssVariable:e.T.burnupGoal},{label:n.planLabel,cssVariable:e.T.burnupPlan},{label:n.factLabel,cssVariable:e.T.burnupFact}].map(t=>({label:t.label.toLowerCase(),color:e.b(n.loading?e.T.skeletonSeries:t.cssVariable,a.value)}))),{chartInstance:u}=e.n({canvasRef:o,config:c,enabled:(0,i.computed)(()=>n.loading||n.points.length>0)}),{exportImage:d}=e.t({chartInstance:u,canvasRef:o,colorHostElement:a});return r({exportImage:d}),(r,s)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{ref_key:`chartRootRef`,ref:a,class:(0,i.normalizeClass)([`s-ui-chart-burnup`,{"s-ui-chart-burnup--skeleton":n.loading}])},[(0,i.createElementVNode)(`div`,P,[(0,i.createVNode)((0,i.unref)(e.x),{loading:n.loading},{default:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`canvas`,{ref_key:`chartCanvasRef`,ref:o,class:`s-ui-chart-burnup__canvas`},null,512)]),_:1},8,[`loading`])]),(0,i.createVNode)((0,i.unref)(t.t),{items:l.value,disabled:n.loading},null,8,[`items`,`disabled`])],2))}});Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return F}});
1
+ const e=require("./useChartInteractivity-Yk7qEYgl.cjs"),t=require("./SChartLegend-DQMLr6yV.cjs"),n=require("./createChartCrosshairPlugin-COIICTCz.cjs"),r=require("./buildMultiLineChartScales-BweU2ftq.cjs");let i=require("vue");var a=(t,n)=>({id:`sUiChartBurnupTodayLine`,beforeDatasetsDraw(r){if(t<0)return;let{ctx:i,chartArea:a}=r,o=r.scales.x;if(!a||!o)return;let s=e.S(e.D.burnupToday,n),c=o.getPixelForValue(t);i.save(),i.beginPath(),i.moveTo(c,a.top),i.lineTo(c,a.bottom),i.lineWidth=1,i.strokeStyle=s,i.stroke(),i.restore()}}),o=8,s=4,c=5,l=12,u=12,d=60,f=12,p=e=>{if(typeof window>`u`)return`500 10px sans-serif`;let t=e??document.documentElement;return`500 10px ${getComputedStyle(t).getPropertyValue(`--s-ui-font-family-label`).trim()||`sans-serif`}`},m=(e,t,n,r,i,a)=>{let o=Math.min(a,r/2,i/2);e.beginPath(),e.moveTo(t+o,n),e.lineTo(t+r-o,n),e.arcTo(t+r,n,t+r,n+o,o),e.lineTo(t+r,n+i-o),e.arcTo(t+r,n+i,t+r-o,n+i,o),e.lineTo(t+o,n+i),e.arcTo(t,n+i,t,n+i-o,o),e.lineTo(t,n+o),e.arcTo(t,n,t+o,n,o),e.closePath()},h=({tagLines:t,factDatasetIndex:n,todayIndex:r},i)=>({id:`sUiChartBurnupTag`,afterDatasetsDraw(a){if(r<0||t.length===0)return;let h=a.getDatasetMeta(n)?.data[r],{chartArea:g}=a;if(!h||!g)return;let _=e.S(e.D.burnupToday,i),v=e.S(e.D.burnupTagBackground,i),{ctx:y}=a;y.save(),y.font=p(i),y.textAlign=`center`,y.textBaseline=`middle`;let b=t.reduce((e,t)=>Math.max(e,y.measureText(t).width),0),x=Math.max(d,b+o*2),S=t.length*u+s+c,C=Math.min(Math.max(h.x-x/2,g.left),g.right-x),w=Math.max(h.y-f-S,g.top);m(y,C,w,x,S,l),y.fillStyle=v,y.fill(),y.lineWidth=1,y.strokeStyle=_,y.stroke(),y.fillStyle=_,t.forEach((e,t)=>{y.fillText(e,C+x/2,w+s+u*(t+.5))}),y.restore()}}),g=(e,t)=>t>=0&&e>t,_=({todayIndex:e,futureLabel:t,resolveTitle:n})=>({title:t=>{let r=t[0];return!r||g(r.dataIndex,e)?``:n?.(r.dataIndex)??`${r.label}`},label:n=>g(n.dataIndex,e)?t:`${n.dataset.label??``}: ${n.parsed.y??0}%`}),v=e=>t=>!g(t.dataIndex,e)||t.datasetIndex===0,y=1,b=1,x=2,S=[8,8],C=[9,9],w=2,T=25,E=e=>e.reduce((e,t,n)=>t.fact===null?e:n,-1),D=(e,t)=>e.goal??t,O=(e,t,n)=>{let r=e.reduce((e,n)=>Math.max(e,n.plan,n.fact??0,D(n,t)),t);return Math.ceil(r/n)*n},k=(e,t)=>t.some(e=>e.label===``)?{...e,x:{...e.x,ticks:{...e.x.ticks,autoSkip:!1,maxRotation:0}}}:e,A=({points:t,colorHostElement:i,goalValue:o=100,goalLabel:s=`Цель`,planLabel:c=`План`,factLabel:l=`Факт`,futureLabel:u=`Этот день ещё не наступил`,yStep:d=T,mirrorYAxis:f=!0,showTag:p=!0,skeleton:m=!1})=>{if(t.length===0)return null;let g=e.S(e.D.axisLabel,i),A=e.S(e.D.grid,i),j=e.S(e.D.tooltipBackground,i),M=e.S(e.D.tooltipText,i),N=e.S(e.D.skeletonSeries,i),P=m?N:e.S(e.D.burnupGoal,i),F=m?N:e.S(e.D.burnupPlan,i),I=m?N:e.S(e.D.burnupFact,i),L=e.S(e.D.burnupFactFillStart,i),R=e.S(e.D.burnupFactFillEnd,i),z=E(t),B=z>=0?t[z]:void 0,V=B?[`${l.toLowerCase()} ${B.fact}%`,`${c.toLowerCase()} ${B.plan}%`]:[];return{type:`line`,data:{labels:t.map(e=>e.label),datasets:[{label:s,data:t.map(e=>D(e,o)),borderColor:P,backgroundColor:P,borderWidth:y,borderDash:S,fill:!1,pointRadius:0,pointHoverRadius:0,tension:0},{label:c,data:t.map(e=>e.plan),borderColor:F,backgroundColor:F,borderWidth:b,borderDash:C,fill:!1,pointRadius:0,pointHoverRadius:0,tension:.4},{label:l,data:t.map(e=>e.fact??null),borderColor:I,backgroundColor:m?I:t=>e.d(t,L,R),borderWidth:x,fill:!m,spanGaps:!1,pointRadius:0,pointHoverRadius:4,tension:.4}]},options:{responsive:!0,maintainAspectRatio:!1,interaction:e.f(m,{mode:`index`,intersect:!1}),plugins:{legend:{display:!1},tooltip:{enabled:e.p(m),backgroundColor:j,titleColor:M,bodyColor:M,displayColors:!1,position:e.v,yAlign:`bottom`,xAlign:`center`,caretPadding:8,filter:v(z),callbacks:_({todayIndex:z,futureLabel:u,resolveTitle:e=>t[e]?.tooltipLabel})}},scales:k(r.t({axisLabelColor:g,gridColor:A,yMin:0,yMax:O(t,o,d),yStep:d,mirrorYAxis:f,formatYAxisTick:e=>`${e}%`}),t)},plugins:e.m(m,[n.t(i),a(z,i),...p?[h({tagLines:V,factDatasetIndex:w,todayIndex:z},i)]:[]])}},j=[8,15,23,31,38,46,54,62,69,77,85,92,96,100],M=[5,10,16,22,28,34,40,45,50,54,57,60,null,null],N=j.map((e,t)=>({label:`Д${t+1}`,plan:e,fact:M[t]})),P={class:`s-ui-chart-burnup__canvas-wrap`},F=(0,i.defineComponent)({__name:`SChartBurnup`,props:{points:{default:()=>[]},loading:{type:Boolean,default:!1},goalValue:{default:100},goalLabel:{default:`Цель`},planLabel:{default:`План`},factLabel:{default:`Факт`},futureLabel:{default:`Этот день ещё не наступил`},yStep:{default:25},mirrorYAxis:{type:Boolean,default:!0},showTag:{type:Boolean,default:!0}},setup(n,{expose:r}){let a=(0,i.useTemplateRef)(`chartRootRef`),o=(0,i.useTemplateRef)(`chartCanvasRef`),s=(0,i.computed)(()=>n.loading?N:n.points),c=(0,i.computed)(()=>!n.loading&&n.points.length===0?null:A({points:s.value,colorHostElement:a.value,goalValue:n.goalValue,goalLabel:n.goalLabel,planLabel:n.planLabel,factLabel:n.factLabel,futureLabel:n.futureLabel,yStep:n.yStep,mirrorYAxis:n.mirrorYAxis,showTag:n.showTag,skeleton:n.loading})),l=(0,i.computed)(()=>[{label:n.goalLabel,cssVariable:e.D.burnupGoal},{label:n.planLabel,cssVariable:e.D.burnupPlan},{label:n.factLabel,cssVariable:e.D.burnupFact}].map(t=>({label:t.label.toLowerCase(),color:e.S(n.loading?e.D.skeletonSeries:t.cssVariable,a.value)}))),{chartInstance:u}=e.n({canvasRef:o,config:c,enabled:(0,i.computed)(()=>n.loading||n.points.length>0)}),{exportImage:d}=e.t({chartInstance:u,canvasRef:o,colorHostElement:a});return r({exportImage:d}),(r,s)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{ref_key:`chartRootRef`,ref:a,class:(0,i.normalizeClass)([`s-ui-chart-burnup`,{"s-ui-chart-burnup--skeleton":n.loading}])},[(0,i.createElementVNode)(`div`,P,[(0,i.createVNode)((0,i.unref)(e.C),{loading:n.loading},{default:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`canvas`,{ref_key:`chartCanvasRef`,ref:o,class:`s-ui-chart-burnup__canvas`},null,512)]),_:1},8,[`loading`])]),(0,i.createVNode)((0,i.unref)(t.t),{items:l.value,disabled:n.loading},null,8,[`items`,`disabled`])],2))}});Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return F}});
@@ -1,16 +1,16 @@
1
- import { T as e, b as t, d as n, f as r, g as i, l as a, n as o, t as s, u as c, x as l } from "./useChartInteractivity-DygkiRA1.js";
2
- import { t as u } from "./SChartLegend-dDqLhvIj.js";
3
- import { t as d } from "./createChartCrosshairPlugin-EqMlaexu.js";
4
- import { t as f } from "./buildMultiLineChartScales-Di-yTvEB.js";
1
+ import { C as e, D as t, S as n, d as r, f as i, m as a, n as o, p as s, t as c, v as l } from "./useChartInteractivity-sgbPZgcH.js";
2
+ import { t as u } from "./SChartLegend-At0mMO09.js";
3
+ import { t as d } from "./createChartCrosshairPlugin-B4LrgKjG.js";
4
+ import { t as f } from "./buildMultiLineChartScales-DbRe2UFD.js";
5
5
  import { computed as p, createElementBlock as m, createElementVNode as h, createVNode as g, defineComponent as _, normalizeClass as v, openBlock as y, unref as b, useTemplateRef as x, withCtx as S } from "vue";
6
6
  //#region src/utils/chart/burnup/createBurnupTodayLinePlugin.ts
7
- var C = (n, r) => ({
7
+ var C = (e, r) => ({
8
8
  id: "sUiChartBurnupTodayLine",
9
9
  beforeDatasetsDraw(i) {
10
- if (n < 0) return;
10
+ if (e < 0) return;
11
11
  let { ctx: a, chartArea: o } = i, s = i.scales.x;
12
12
  if (!o || !s) return;
13
- let c = t(e.burnupToday, r), l = s.getPixelForValue(n);
13
+ let c = n(t.burnupToday, r), l = s.getPixelForValue(e);
14
14
  a.save(), a.beginPath(), a.moveTo(l, o.top), a.lineTo(l, o.bottom), a.lineWidth = 1, a.strokeStyle = c, a.stroke(), a.restore();
15
15
  }
16
16
  }), w = 8, T = 4, E = 5, D = 12, O = 12, k = 60, A = 12, j = (e) => {
@@ -20,16 +20,16 @@ var C = (n, r) => ({
20
20
  }, M = (e, t, n, r, i, a) => {
21
21
  let o = Math.min(a, r / 2, i / 2);
22
22
  e.beginPath(), e.moveTo(t + o, n), e.lineTo(t + r - o, n), e.arcTo(t + r, n, t + r, n + o, o), e.lineTo(t + r, n + i - o), e.arcTo(t + r, n + i, t + r - o, n + i, o), e.lineTo(t + o, n + i), e.arcTo(t, n + i, t, n + i - o, o), e.lineTo(t, n + o), e.arcTo(t, n, t + o, n, o), e.closePath();
23
- }, N = ({ tagLines: n, factDatasetIndex: r, todayIndex: i }, a) => ({
23
+ }, N = ({ tagLines: e, factDatasetIndex: r, todayIndex: i }, a) => ({
24
24
  id: "sUiChartBurnupTag",
25
25
  afterDatasetsDraw(o) {
26
- if (i < 0 || n.length === 0) return;
26
+ if (i < 0 || e.length === 0) return;
27
27
  let s = o.getDatasetMeta(r)?.data[i], { chartArea: c } = o;
28
28
  if (!s || !c) return;
29
- let l = t(e.burnupToday, a), u = t(e.burnupTagBackground, a), { ctx: d } = o;
29
+ let l = n(t.burnupToday, a), u = n(t.burnupTagBackground, a), { ctx: d } = o;
30
30
  d.save(), d.font = j(a), d.textAlign = "center", d.textBaseline = "middle";
31
- let f = n.reduce((e, t) => Math.max(e, d.measureText(t).width), 0), p = Math.max(k, f + w * 2), m = n.length * O + T + E, h = Math.min(Math.max(s.x - p / 2, c.left), c.right - p), g = Math.max(s.y - A - m, c.top);
32
- M(d, h, g, p, m, D), d.fillStyle = u, d.fill(), d.lineWidth = 1, d.strokeStyle = l, d.stroke(), d.fillStyle = l, n.forEach((e, t) => {
31
+ let f = e.reduce((e, t) => Math.max(e, d.measureText(t).width), 0), p = Math.max(k, f + w * 2), m = e.length * O + T + E, h = Math.min(Math.max(s.x - p / 2, c.left), c.right - p), g = Math.max(s.y - A - m, c.top);
32
+ M(d, h, g, p, m, D), d.fillStyle = u, d.fill(), d.lineWidth = 1, d.strokeStyle = l, d.stroke(), d.fillStyle = l, e.forEach((e, t) => {
33
33
  d.fillText(e, h + p / 2, g + T + O * (t + .5));
34
34
  }), d.restore();
35
35
  }
@@ -52,17 +52,17 @@ var C = (n, r) => ({
52
52
  maxRotation: 0
53
53
  }
54
54
  }
55
- } : e, J = ({ points: o, colorHostElement: s, goalValue: l = 100, goalLabel: u = "Цель", planLabel: p = "План", factLabel: m = "Факт", futureLabel: h = "Этот день ещё не наступил", yStep: g = U, mirrorYAxis: _ = !0, showTag: v = !0, skeleton: y = !1 }) => {
56
- if (o.length === 0) return null;
57
- let b = t(e.axisLabel, s), x = t(e.grid, s), S = t(e.tooltipBackground, s), w = t(e.tooltipText, s), T = t(e.skeletonSeries, s), E = y ? T : t(e.burnupGoal, s), D = y ? T : t(e.burnupPlan, s), O = y ? T : t(e.burnupFact, s), k = t(e.burnupFactFillStart, s), A = t(e.burnupFactFillEnd, s), j = W(o), M = j >= 0 ? o[j] : void 0, P = M ? [`${m.toLowerCase()} ${M.fact}%`, `${p.toLowerCase()} ${M.plan}%`] : [];
55
+ } : e, J = ({ points: e, colorHostElement: o, goalValue: c = 100, goalLabel: u = "Цель", planLabel: p = "План", factLabel: m = "Факт", futureLabel: h = "Этот день ещё не наступил", yStep: g = U, mirrorYAxis: _ = !0, showTag: v = !0, skeleton: y = !1 }) => {
56
+ if (e.length === 0) return null;
57
+ let b = n(t.axisLabel, o), x = n(t.grid, o), S = n(t.tooltipBackground, o), w = n(t.tooltipText, o), T = n(t.skeletonSeries, o), E = y ? T : n(t.burnupGoal, o), D = y ? T : n(t.burnupPlan, o), O = y ? T : n(t.burnupFact, o), k = n(t.burnupFactFillStart, o), A = n(t.burnupFactFillEnd, o), j = W(e), M = j >= 0 ? e[j] : void 0, P = M ? [`${m.toLowerCase()} ${M.fact}%`, `${p.toLowerCase()} ${M.plan}%`] : [];
58
58
  return {
59
59
  type: "line",
60
60
  data: {
61
- labels: o.map((e) => e.label),
61
+ labels: e.map((e) => e.label),
62
62
  datasets: [
63
63
  {
64
64
  label: u,
65
- data: o.map((e) => G(e, l)),
65
+ data: e.map((e) => G(e, c)),
66
66
  borderColor: E,
67
67
  backgroundColor: E,
68
68
  borderWidth: L,
@@ -74,7 +74,7 @@ var C = (n, r) => ({
74
74
  },
75
75
  {
76
76
  label: p,
77
- data: o.map((e) => e.plan),
77
+ data: e.map((e) => e.plan),
78
78
  borderColor: D,
79
79
  backgroundColor: D,
80
80
  borderWidth: R,
@@ -86,9 +86,9 @@ var C = (n, r) => ({
86
86
  },
87
87
  {
88
88
  label: m,
89
- data: o.map((e) => e.fact ?? null),
89
+ data: e.map((e) => e.fact ?? null),
90
90
  borderColor: O,
91
- backgroundColor: y ? O : (e) => a(e, k, A),
91
+ backgroundColor: y ? O : (e) => r(e, k, A),
92
92
  borderWidth: z,
93
93
  fill: !y,
94
94
  spanGaps: !1,
@@ -101,19 +101,19 @@ var C = (n, r) => ({
101
101
  options: {
102
102
  responsive: !0,
103
103
  maintainAspectRatio: !1,
104
- interaction: c(y, {
104
+ interaction: i(y, {
105
105
  mode: "index",
106
106
  intersect: !1
107
107
  }),
108
108
  plugins: {
109
109
  legend: { display: !1 },
110
110
  tooltip: {
111
- enabled: n(y),
111
+ enabled: s(y),
112
112
  backgroundColor: S,
113
113
  titleColor: w,
114
114
  bodyColor: w,
115
115
  displayColors: !1,
116
- position: i,
116
+ position: l,
117
117
  yAlign: "bottom",
118
118
  xAlign: "center",
119
119
  caretPadding: 8,
@@ -121,7 +121,7 @@ var C = (n, r) => ({
121
121
  callbacks: F({
122
122
  todayIndex: j,
123
123
  futureLabel: h,
124
- resolveTitle: (e) => o[e]?.tooltipLabel
124
+ resolveTitle: (t) => e[t]?.tooltipLabel
125
125
  })
126
126
  }
127
127
  },
@@ -129,20 +129,20 @@ var C = (n, r) => ({
129
129
  axisLabelColor: b,
130
130
  gridColor: x,
131
131
  yMin: 0,
132
- yMax: K(o, l, g),
132
+ yMax: K(e, c, g),
133
133
  yStep: g,
134
134
  mirrorYAxis: _,
135
135
  formatYAxisTick: (e) => `${e}%`
136
- }), o)
136
+ }), e)
137
137
  },
138
- plugins: r(y, [
139
- d(s),
140
- C(j, s),
138
+ plugins: a(y, [
139
+ d(o),
140
+ C(j, o),
141
141
  ...v ? [N({
142
142
  tagLines: P,
143
143
  factDatasetIndex: H,
144
144
  todayIndex: j
145
- }, s)] : []
145
+ }, o)] : []
146
146
  ])
147
147
  };
148
148
  }, Y = [
@@ -202,58 +202,58 @@ var C = (n, r) => ({
202
202
  default: !0
203
203
  }
204
204
  },
205
- setup(n, { expose: r }) {
206
- let i = x("chartRootRef"), a = x("chartCanvasRef"), c = p(() => n.loading ? Z : n.points), d = p(() => !n.loading && n.points.length === 0 ? null : J({
207
- points: c.value,
208
- colorHostElement: i.value,
209
- goalValue: n.goalValue,
210
- goalLabel: n.goalLabel,
211
- planLabel: n.planLabel,
212
- factLabel: n.factLabel,
213
- futureLabel: n.futureLabel,
214
- yStep: n.yStep,
215
- mirrorYAxis: n.mirrorYAxis,
216
- showTag: n.showTag,
217
- skeleton: n.loading
205
+ setup(r, { expose: i }) {
206
+ let a = x("chartRootRef"), s = x("chartCanvasRef"), l = p(() => r.loading ? Z : r.points), d = p(() => !r.loading && r.points.length === 0 ? null : J({
207
+ points: l.value,
208
+ colorHostElement: a.value,
209
+ goalValue: r.goalValue,
210
+ goalLabel: r.goalLabel,
211
+ planLabel: r.planLabel,
212
+ factLabel: r.factLabel,
213
+ futureLabel: r.futureLabel,
214
+ yStep: r.yStep,
215
+ mirrorYAxis: r.mirrorYAxis,
216
+ showTag: r.showTag,
217
+ skeleton: r.loading
218
218
  })), f = p(() => [
219
219
  {
220
- label: n.goalLabel,
221
- cssVariable: e.burnupGoal
220
+ label: r.goalLabel,
221
+ cssVariable: t.burnupGoal
222
222
  },
223
223
  {
224
- label: n.planLabel,
225
- cssVariable: e.burnupPlan
224
+ label: r.planLabel,
225
+ cssVariable: t.burnupPlan
226
226
  },
227
227
  {
228
- label: n.factLabel,
229
- cssVariable: e.burnupFact
228
+ label: r.factLabel,
229
+ cssVariable: t.burnupFact
230
230
  }
231
- ].map((r) => ({
232
- label: r.label.toLowerCase(),
233
- color: t(n.loading ? e.skeletonSeries : r.cssVariable, i.value)
231
+ ].map((e) => ({
232
+ label: e.label.toLowerCase(),
233
+ color: n(r.loading ? t.skeletonSeries : e.cssVariable, a.value)
234
234
  }))), { chartInstance: _ } = o({
235
- canvasRef: a,
235
+ canvasRef: s,
236
236
  config: d,
237
- enabled: p(() => n.loading || n.points.length > 0)
238
- }), { exportImage: C } = s({
237
+ enabled: p(() => r.loading || r.points.length > 0)
238
+ }), { exportImage: C } = c({
239
239
  chartInstance: _,
240
- canvasRef: a,
241
- colorHostElement: i
240
+ canvasRef: s,
241
+ colorHostElement: a
242
242
  });
243
- return r({ exportImage: C }), (e, t) => (y(), m("div", {
243
+ return i({ exportImage: C }), (t, n) => (y(), m("div", {
244
244
  ref_key: "chartRootRef",
245
- ref: i,
246
- class: v(["s-ui-chart-burnup", { "s-ui-chart-burnup--skeleton": n.loading }])
247
- }, [h("div", Q, [g(b(l), { loading: n.loading }, {
245
+ ref: a,
246
+ class: v(["s-ui-chart-burnup", { "s-ui-chart-burnup--skeleton": r.loading }])
247
+ }, [h("div", Q, [g(b(e), { loading: r.loading }, {
248
248
  default: S(() => [h("canvas", {
249
249
  ref_key: "chartCanvasRef",
250
- ref: a,
250
+ ref: s,
251
251
  class: "s-ui-chart-burnup__canvas"
252
252
  }, null, 512)]),
253
253
  _: 1
254
254
  }, 8, ["loading"])]), g(b(u), {
255
255
  items: f.value,
256
- disabled: n.loading
256
+ disabled: r.loading
257
257
  }, null, 8, ["items", "disabled"])], 2));
258
258
  }
259
259
  });
@@ -0,0 +1 @@
1
+ const e=require("./useChartInteractivity-Yk7qEYgl.cjs"),t=require("./resolveCssColorValue-D3fS-cK8.cjs"),n=require("./buildChartMirrorScale-CBUIRPYX.cjs"),r=require("./resolveChartLabelFont-D_Pxt-gs.cjs"),i=require("./useHasListener-BPgtbbo6.cjs");let a=require("vue");var o=10,s=14,c=`xMirror`,l=({axisLabelColor:e,categoryLabelColor:t,gridColor:r,xMin:i,xMax:a,xStep:l,mirrorXAxis:u=!1,formatXTick:d})=>{let f={color:e,stepSize:l,font:{size:o,weight:500},padding:8,...d?{callback:e=>typeof e==`number`?d(e):e}:{}};return{...u?{[c]:n.n({min:i,max:a,tickOptions:{ticks:f},position:`top`,hideTickMarks:!0})}:{},x:{type:`linear`,min:i,max:a,border:{display:!1},grid:{color:r,drawTicks:!1},ticks:f},y:{border:{display:!1},grid:{display:!1},ticks:{color:t,font:{size:s,weight:400},padding:8,crossAlign:`far`,autoSkip:!1}}}},u=8,d=12,f=500,p=64,m=(e,t)=>t?t(e):String(e),h=e=>r.t({size:d,weight:f,colorHostElement:e}),g=({values:e,colorHostElement:t,formatValue:n})=>{let r=typeof document>`u`?null:document.createElement(`canvas`).getContext(`2d`);if(!r)return p;r.font=h(t);let i=e.reduce((e,t)=>Math.max(e,r.measureText(m(t,n)).width),0);return Math.ceil(i)+u},_=({colorHostElement:t,formatValue:n})=>({id:`horizontalBarValueLabel`,afterDatasetsDraw(r){let i=e.S(e.D.barValueLabel,t),a=e.S(e.D.barValueLabelMuted,t),{ctx:o}=r;o.save(),o.font=h(t),o.textAlign=`left`,o.textBaseline=`middle`,r.data.datasets.forEach((t,s)=>{r.isDatasetVisible(s)&&r.getDatasetMeta(s).data.forEach((c,l)=>{let d=t.data[l];typeof d==`number`&&(o.fillStyle=e.o(r,s,l)?a:i,o.fillText(m(d,n),c.x+u,c.y))})}),o.restore()}}),v=(n,r,i)=>i?e.S(e.D.barHorizontalSkeletonFill,r):n?t.t(n,r):e.S(e.D.barHorizontalFillDefault,r),y=(e,t,n)=>{if(t)return t;let r=0;for(let t of e)r=Math.max(r,t.value);let i=Math.ceil(r/n)*n;return i>0?i:n*6},b=10,x=0,S=36,C=4,w=({items:t,colorHostElement:n,xMax:r,xMin:i=x,xStep:a=b,skeleton:o=!1,barThickness:s=S,mirrorXAxis:c=!1,showValues:u=!1,formatValue:d,formatXTick:f,formatTooltip:p,onBarClick:m})=>{if(t.length===0)return null;let h=e.S(e.D.axisLabel,n),w=e.S(e.D.grid,n),T=e.S(e.D.tooltipBackground,n),E=e.S(e.D.tooltipText,n),D=e.S(o?e.D.barHorizontalCategoryLabelSkeleton:e.D.barHorizontalCategoryLabel,n),O=y(t,r,a),k=t.map(e=>v(e.color,n,o)),A=e.r({kind:`element`,skeleton:o,colorHostElement:n,onIndexClick:m});return{type:`bar`,data:{labels:t.map(e=>e.label),datasets:[{data:t.map(e=>e.value),backgroundColor:k,hoverBackgroundColor:k,borderWidth:0,hoverBorderWidth:0,barThickness:s,borderRadius:{topRight:C,bottomRight:C}}]},options:{indexAxis:`y`,responsive:!0,layout:u&&!o?{padding:{right:g({values:t.map(e=>e.value),colorHostElement:n,formatValue:d})}}:void 0,maintainAspectRatio:!1,onHover:A.onHover,onClick:A.onClick,interaction:e.f(o,{mode:`index`,axis:`y`,intersect:!1}),plugins:{legend:{display:!1},tooltip:{enabled:e.p(o),backgroundColor:T,titleColor:E,bodyColor:E,...p?{displayColors:!1,callbacks:{title:()=>[],label:e=>p(e.dataIndex)}}:{}}},scales:l({axisLabelColor:h,categoryLabelColor:D,gridColor:w,xMin:i,xMax:O,xStep:a,mirrorXAxis:c,formatXTick:f})},plugins:u&&!o?[...A.plugins,_({colorHostElement:n,formatValue:d})]:A.plugins}},T=e=>w(e),E=[{label:`Открыта`,value:48},{label:`В процессе`,value:32},{label:`Ревью`,value:53},{label:`Готова для QA`,value:18},{label:`QA`,value:25},{label:`Готова`,value:0}],D={class:`s-ui-chart-horizontal-bar__canvas-wrap`},O=(0,a.defineComponent)({__name:`SChartHorizontalBar`,props:{items:{default:()=>[]},loading:{type:Boolean,default:!1},xMin:{},xMax:{},xStep:{},barThickness:{},mirrorXAxis:{type:Boolean,default:!1},showValues:{type:Boolean,default:!1},formatValue:{type:Function},formatXTick:{type:Function},formatTooltip:{type:Function}},emits:[`barClick`],setup(t,{expose:n,emit:r}){let o=r,s=(0,a.useTemplateRef)(`chartRootRef`),c=(0,a.useTemplateRef)(`chartCanvasRef`),l=(0,a.computed)(()=>t.loading?E:t.items),u=e=>{let n=t.items[e];n&&o(`barClick`,e,n)},d=i.t(`onBarClick`),{chartInstance:f}=e.n({canvasRef:c,config:(0,a.computed)(()=>!t.loading&&t.items.length===0?null:T({items:l.value,colorHostElement:s.value,xMax:t.loading?60:t.xMax,xMin:t.loading?0:t.xMin,xStep:t.loading?10:t.xStep,skeleton:t.loading,barThickness:t.barThickness,mirrorXAxis:t.loading?!1:t.mirrorXAxis,showValues:t.showValues,formatValue:t.loading?void 0:t.formatValue,formatXTick:t.loading?void 0:t.formatXTick,formatTooltip:t.loading?void 0:t.formatTooltip,onBarClick:d()?u:void 0})),enabled:(0,a.computed)(()=>t.loading||t.items.length>0)}),{exportImage:p}=e.t({chartInstance:f,canvasRef:c,colorHostElement:s});return n({exportImage:p}),(n,r)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{ref_key:`chartRootRef`,ref:s,class:(0,a.normalizeClass)([`s-ui-chart-horizontal-bar`,{"s-ui-chart-horizontal-bar--skeleton":t.loading}])},[(0,a.createElementVNode)(`div`,D,[(0,a.createVNode)((0,a.unref)(e.C),{loading:t.loading},{default:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`canvas`,{ref_key:`chartCanvasRef`,ref:c,class:`s-ui-chart-horizontal-bar__canvas`},null,512)]),_:1},8,[`loading`])])],2))}});Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return O}});