@milaboratories/graph-maker 1.1.137 → 1.1.139

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 (283) hide show
  1. package/README.md +120 -24
  2. package/dist/GraphMaker/components/LassoControls/index.vue.js +15 -13
  3. package/dist/GraphMaker/components/LassoControls/index.vue.js.map +1 -1
  4. package/dist/GraphMaker/components/SettingsTabs/icons/AxesIcon.vue.d.ts.map +1 -0
  5. package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/AxesIcon.vue.js +1 -1
  6. package/dist/GraphMaker/components/SettingsTabs/icons/AxesIcon.vue.js.map +1 -0
  7. package/dist/GraphMaker/components/SettingsTabs/icons/DeleteChartIcon.vue.d.ts.map +1 -0
  8. package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/DeleteChartIcon.vue.js +1 -1
  9. package/dist/GraphMaker/components/SettingsTabs/icons/DeleteChartIcon.vue.js.map +1 -0
  10. package/dist/GraphMaker/components/SettingsTabs/icons/ExportIcon.vue.d.ts.map +1 -0
  11. package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/ExportIcon.vue.js +1 -1
  12. package/dist/GraphMaker/components/SettingsTabs/icons/ExportIcon.vue.js.map +1 -0
  13. package/dist/GraphMaker/components/SettingsTabs/icons/LayersIcon.vue.d.ts.map +1 -0
  14. package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/LayersIcon.vue.js +1 -1
  15. package/dist/GraphMaker/components/SettingsTabs/icons/LayersIcon.vue.js.map +1 -0
  16. package/dist/GraphMaker/components/SettingsTabs/icons/LinkIcon.vue.d.ts.map +1 -0
  17. package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/LinkIcon.vue.js +1 -1
  18. package/dist/GraphMaker/components/SettingsTabs/icons/LinkIcon.vue.js.map +1 -0
  19. package/dist/GraphMaker/components/SettingsTabs/icons/LogIcon.vue.d.ts +3 -0
  20. package/dist/GraphMaker/components/SettingsTabs/icons/LogIcon.vue.d.ts.map +1 -0
  21. package/dist/GraphMaker/components/SettingsTabs/icons/LogIcon.vue.js +12 -0
  22. package/dist/GraphMaker/components/SettingsTabs/icons/LogIcon.vue.js.map +1 -0
  23. package/dist/GraphMaker/components/SettingsTabs/icons/LogIcon.vue2.js +5 -0
  24. package/dist/GraphMaker/components/SettingsTabs/icons/LogIcon.vue2.js.map +1 -0
  25. package/dist/GraphMaker/components/SettingsTabs/icons/SettingsIcon.vue.d.ts.map +1 -0
  26. package/dist/GraphMaker/components/SettingsTabs/index.vue.d.ts +2 -0
  27. package/dist/GraphMaker/components/SettingsTabs/index.vue.d.ts.map +1 -1
  28. package/dist/GraphMaker/components/SettingsTabs/index.vue.js +17 -15
  29. package/dist/GraphMaker/components/SettingsTabs/index.vue.js.map +1 -1
  30. package/dist/GraphMaker/forms/LogForm.vue.d.ts +19 -0
  31. package/dist/GraphMaker/forms/LogForm.vue.d.ts.map +1 -0
  32. package/dist/GraphMaker/forms/LogForm.vue.js +22 -0
  33. package/dist/GraphMaker/forms/LogForm.vue.js.map +1 -0
  34. package/dist/GraphMaker/forms/index.d.ts +22 -0
  35. package/dist/GraphMaker/forms/index.d.ts.map +1 -1
  36. package/dist/GraphMaker/forms/index.js +35 -28
  37. package/dist/GraphMaker/forms/index.js.map +1 -1
  38. package/dist/GraphMaker/index.vue.d.ts +1 -0
  39. package/dist/GraphMaker/index.vue.d.ts.map +1 -1
  40. package/dist/GraphMaker/index.vue.js +146 -144
  41. package/dist/GraphMaker/index.vue.js.map +1 -1
  42. package/dist/GraphMaker/store.d.ts.map +1 -1
  43. package/dist/GraphMaker/store.js +71 -67
  44. package/dist/GraphMaker/store.js.map +1 -1
  45. package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +9 -3
  46. package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts.map +1 -1
  47. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDendroSettings.d.ts +17 -2
  48. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDendroSettings.d.ts.map +1 -1
  49. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +13 -4
  50. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts.map +1 -1
  51. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +28 -7
  52. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts.map +1 -1
  53. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.d.ts +6 -2
  54. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.d.ts.map +1 -1
  55. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts +16 -2
  56. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts.map +1 -1
  57. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts +14 -2
  58. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts.map +1 -1
  59. package/dist/lib.js +1 -1
  60. package/dist/node_modules/@milaboratories/miplots4/dist/DataFrame.js +95 -72
  61. package/dist/node_modules/@milaboratories/miplots4/dist/DataFrame.js.map +1 -1
  62. package/dist/node_modules/@milaboratories/miplots4/dist/MiPlots.js +1 -1
  63. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/ChartRenderer.js +124 -122
  64. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/ChartRenderer.js.map +1 -1
  65. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/Chart.js +72 -91
  66. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/Chart.js.map +1 -1
  67. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/ChartsGroup.js +43 -41
  68. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/ChartsGroup.js.map +1 -1
  69. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCellTooltip.js +28 -0
  70. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCellTooltip.js.map +1 -0
  71. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getGroupedCellsData.js +94 -0
  72. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getGroupedCellsData.js.map +1 -0
  73. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/index.js +42 -38
  74. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/index.js.map +1 -1
  75. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/utils/calculateCaptionTails.js.map +1 -1
  76. package/dist/node_modules/@milaboratories/miplots4/dist/common/Legend.js.map +1 -1
  77. package/dist/node_modules/@milaboratories/miplots4/dist/common/Tooltip.js +11 -11
  78. package/dist/node_modules/@milaboratories/miplots4/dist/common/Tooltip.js.map +1 -1
  79. package/dist/node_modules/@milaboratories/miplots4/dist/common/useDataFrame.js +20 -0
  80. package/dist/node_modules/@milaboratories/miplots4/dist/common/useDataFrame.js.map +1 -0
  81. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/ChartRenderer.js +181 -181
  82. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/ChartRenderer.js.map +1 -1
  83. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/DendroSettingsImpl.js +2 -2
  84. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/DendroSettingsImpl.js.map +1 -1
  85. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Chart.js +45 -45
  86. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Chart.js.map +1 -1
  87. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Heatmap.js +27 -27
  88. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Heatmap.js.map +1 -1
  89. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Legend.js.map +1 -1
  90. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/LinksGroup.js +18 -18
  91. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/LinksGroup.js.map +1 -1
  92. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/NodesGroup.js +36 -36
  93. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/NodesGroup.js.map +1 -1
  94. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/getHeatmapData.js +45 -41
  95. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/getHeatmapData.js.map +1 -1
  96. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/getHierarchyData.js +33 -33
  97. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/getHierarchyData.js.map +1 -1
  98. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/index.js +90 -93
  99. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/index.js.map +1 -1
  100. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/ChartRenderer.js +200 -199
  101. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/ChartRenderer.js.map +1 -1
  102. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/DiscreteSettingsImpl.js +17 -17
  103. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/DiscreteSettingsImpl.js.map +1 -1
  104. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/layers/BoxElement.js.map +1 -1
  105. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js +102 -99
  106. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js.map +1 -1
  107. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/bar.js +31 -36
  108. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/bar.js.map +1 -1
  109. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/binnedDots.js +62 -74
  110. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/binnedDots.js.map +1 -1
  111. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/boxes.js +52 -53
  112. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/boxes.js.map +1 -1
  113. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/dots.js +32 -32
  114. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/dots.js.map +1 -1
  115. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/lines.js +7 -6
  116. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/lines.js.map +1 -1
  117. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/logo.js +23 -23
  118. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/logo.js.map +1 -1
  119. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/pairedPoints.js +63 -63
  120. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/pairedPoints.js.map +1 -1
  121. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/sina.js +60 -64
  122. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/sina.js.map +1 -1
  123. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/stackedBar.js +23 -23
  124. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/stackedBar.js.map +1 -1
  125. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/getOutliersBounds.js +5 -5
  126. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/getOutliersBounds.js.map +1 -1
  127. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/splitTextByWidth.js +13 -13
  128. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/splitTextByWidth.js.map +1 -1
  129. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/ChartRenderer.js +258 -256
  130. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/ChartRenderer.js.map +1 -1
  131. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/HeatmapSettingsImpl.js +1 -1
  132. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/HeatmapSettingsImpl.js.map +1 -1
  133. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/Annotation.js +45 -44
  134. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/Annotation.js.map +1 -1
  135. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js +107 -106
  136. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js.map +1 -1
  137. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/ChartsGroup.js +18 -18
  138. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/ChartsGroup.js.map +1 -1
  139. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getCells.js +99 -95
  140. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getCells.js.map +1 -1
  141. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js +30 -29
  142. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js.map +1 -1
  143. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateAnnotationTitleSizes.js +1 -1
  144. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateAnnotationTitleSizes.js.map +1 -1
  145. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateCaptionTails.js.map +1 -1
  146. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/ChartRenderer.js +143 -142
  147. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/ChartRenderer.js.map +1 -1
  148. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/HistogramSettingsImpl.js.map +1 -1
  149. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/components/Chart.js +30 -30
  150. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/components/Chart.js.map +1 -1
  151. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/components/ChartsGroup.js +7 -7
  152. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/getHistogramData.js +53 -54
  153. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/getHistogramData.js.map +1 -1
  154. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/index.js +59 -55
  155. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/index.js.map +1 -1
  156. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/@d3fc/d3fc-axis/src/axisBase.js +7 -7
  157. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-array/src/min.js +6 -12
  158. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-array/src/min.js.map +1 -1
  159. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-shape/src/line.js.map +1 -1
  160. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/kdbush/index.js +148 -0
  161. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/kdbush/index.js.map +1 -0
  162. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ChartRenderer.js +172 -168
  163. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ChartRenderer.js.map +1 -1
  164. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ScatterplotSettingsImpl.js +26 -26
  165. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ScatterplotSettingsImpl.js.map +1 -1
  166. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Chart.js +11 -11
  167. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartAxisTitles.js +30 -29
  168. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartAxisTitles.js.map +1 -1
  169. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartLayersData.js +135 -153
  170. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartLayersData.js.map +1 -1
  171. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTooltip.js +35 -32
  172. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTooltip.js.map +1 -1
  173. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTrendsData.js +27 -27
  174. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTrendsData.js.map +1 -1
  175. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartsGroup.js +14 -14
  176. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/constants.js.map +1 -1
  177. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/dots.js +24 -22
  178. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/dots.js.map +1 -1
  179. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/getLayersData.js +11 -14
  180. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/getLayersData.js.map +1 -1
  181. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js +57 -58
  182. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js.map +1 -1
  183. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/linearRegression.js +85 -83
  184. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/linearRegression.js.map +1 -1
  185. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createAesGetter.js +20 -20
  186. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createAesGetter.js.map +1 -1
  187. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createLegendInfo.js +44 -37
  188. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createLegendInfo.js.map +1 -1
  189. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/formatColumnValue.js +11 -0
  190. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/formatColumnValue.js.map +1 -0
  191. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/getVisibleLabels.js +46 -56
  192. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/getVisibleLabels.js.map +1 -1
  193. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/ChartRenderer.js +223 -205
  194. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/ChartRenderer.js.map +1 -1
  195. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/SettingsImpl.js +22 -22
  196. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/SettingsImpl.js.map +1 -1
  197. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/colors.js +42 -0
  198. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/colors.js.map +1 -0
  199. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/LowerSVG.js +84 -81
  200. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/LowerSVG.js.map +1 -1
  201. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/SVGLayer.js +11 -11
  202. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/UpperSVG.js +15 -14
  203. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/UpperSVG.js.map +1 -1
  204. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/index.js +89 -114
  205. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/index.js.map +1 -1
  206. package/dist/node_modules/@milaboratories/miplots4/dist/types/common.js +3 -1
  207. package/dist/node_modules/@milaboratories/miplots4/dist/types/common.js.map +1 -1
  208. package/dist/node_modules/@milaboratories/miplots4/dist/types/dendro.js +1 -1
  209. package/dist/node_modules/@milaboratories/miplots4/dist/types/dendro.js.map +1 -1
  210. package/dist/node_modules/@milaboratories/miplots4/dist/types/discrete.js +1 -1
  211. package/dist/node_modules/@milaboratories/miplots4/dist/types/discrete.js.map +1 -1
  212. package/dist/node_modules/@milaboratories/miplots4/dist/types/heatmap.js +1 -1
  213. package/dist/node_modules/@milaboratories/miplots4/dist/types/heatmap.js.map +1 -1
  214. package/dist/node_modules/@milaboratories/miplots4/dist/types/histogram.js +1 -1
  215. package/dist/node_modules/@milaboratories/miplots4/dist/types/histogram.js.map +1 -1
  216. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot-umap.js +1 -1
  217. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot-umap.js.map +1 -1
  218. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot.js +4 -4
  219. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot.js.map +1 -1
  220. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer/TextMeasurer.js +39 -0
  221. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer/TextMeasurer.js.map +1 -0
  222. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer/charToWidth.json.js +101 -0
  223. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer/charToWidth.json.js.map +1 -0
  224. package/dist/node_modules/@milaboratories/miplots4/dist/utils/arrangeLegendParts.js +4 -4
  225. package/dist/node_modules/@milaboratories/miplots4/dist/utils/arrangeLegendParts.js.map +1 -1
  226. package/dist/node_modules/@milaboratories/miplots4/dist/utils/getLegendWidth.js +3 -3
  227. package/dist/node_modules/@milaboratories/miplots4/dist/utils/getLegendWidth.js.map +1 -1
  228. package/dist/node_modules/@milaboratories/pf-plots/dist/index.js +1031 -1023
  229. package/dist/node_modules/@milaboratories/pf-plots/dist/index.js.map +1 -1
  230. package/package.json +3 -3
  231. package/dist/GraphMaker/icons/AxesIcon.vue.d.ts.map +0 -1
  232. package/dist/GraphMaker/icons/AxesIcon.vue.js.map +0 -1
  233. package/dist/GraphMaker/icons/DeleteChartIcon.vue.d.ts.map +0 -1
  234. package/dist/GraphMaker/icons/DeleteChartIcon.vue.js.map +0 -1
  235. package/dist/GraphMaker/icons/ExportIcon.vue.d.ts.map +0 -1
  236. package/dist/GraphMaker/icons/ExportIcon.vue.js.map +0 -1
  237. package/dist/GraphMaker/icons/LayersIcon.vue.d.ts.map +0 -1
  238. package/dist/GraphMaker/icons/LayersIcon.vue.js.map +0 -1
  239. package/dist/GraphMaker/icons/LinkIcon.vue.d.ts.map +0 -1
  240. package/dist/GraphMaker/icons/LinkIcon.vue.js.map +0 -1
  241. package/dist/GraphMaker/icons/SettingsIcon.vue.d.ts.map +0 -1
  242. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCells.js +0 -91
  243. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCells.js.map +0 -1
  244. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/add.js +0 -30
  245. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/add.js.map +0 -1
  246. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/cover.js +0 -29
  247. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/cover.js.map +0 -1
  248. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/data.js +0 -12
  249. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/data.js.map +0 -1
  250. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/extent.js +0 -7
  251. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/extent.js.map +0 -1
  252. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/find.js +0 -26
  253. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/find.js.map +0 -1
  254. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/quad.js +0 -7
  255. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/quad.js.map +0 -1
  256. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/quadtree.js +0 -51
  257. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/quadtree.js.map +0 -1
  258. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/remove.js +0 -21
  259. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/remove.js.map +0 -1
  260. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/root.js +0 -7
  261. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/root.js.map +0 -1
  262. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/size.js +0 -12
  263. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/size.js.map +0 -1
  264. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/visit.js +0 -14
  265. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/visit.js.map +0 -1
  266. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/visitAfter.js +0 -19
  267. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/visitAfter.js.map +0 -1
  268. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/x.js +0 -11
  269. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/x.js.map +0 -1
  270. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/y.js +0 -11
  271. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/y.js.map +0 -1
  272. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer.js +0 -24
  273. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer.js.map +0 -1
  274. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/AxesIcon.vue.d.ts +0 -0
  275. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/DeleteChartIcon.vue.d.ts +0 -0
  276. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/ExportIcon.vue.d.ts +0 -0
  277. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/LayersIcon.vue.d.ts +0 -0
  278. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/LinkIcon.vue.d.ts +0 -0
  279. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/SettingsIcon.vue.d.ts +0 -0
  280. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/SettingsIcon.vue.js +0 -0
  281. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/SettingsIcon.vue.js.map +0 -0
  282. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/SettingsIcon.vue2.js +0 -0
  283. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/SettingsIcon.vue2.js.map +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"createLegendInfo.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/scatterplot/utils/createLegendInfo.ts"],"sourcesContent":["import {MAX_SHOWN_UNIQUE_VALUES_IN_LABELS} from '../../constants';\nimport type {DataFrame} from '../../DataFrame';\nimport type {ScatterplotSettingsImpl} from '../ScatterplotSettingsImpl';\nimport type {\n AesItem,\n ColumnName,\n ContinuousAesFromColumn,\n InheritAesScatterplot,\n Row,\n ScatterplotLayer,\n ScatterplotLegendInfo,\n} from '../../types';\nimport lodash from 'lodash';\n\nexport function addPalettesToAesMapping(\n uniqueValues: string[],\n usedAesFromPalettes: Partial<Record<keyof AesItem, string[]>>,\n inheritedAes?: ScatterplotSettingsImpl['inheritedAes'][string],\n) {\n const result = inheritedAes ?? {};\n if (!Object.keys(usedAesFromPalettes).length) {\n return result;\n }\n return uniqueValues.reduce((res:Record<string, AesItem>, value, idx) => {\n if (!res[value]) {\n res[value] = {};\n }\n if (usedAesFromPalettes['dotFill']) {\n const palette = usedAesFromPalettes['dotFill'];\n res[value]['dotFill'] = palette[idx % palette?.length];\n }\n if (usedAesFromPalettes['lineColor']) {\n const palette = usedAesFromPalettes['lineColor'];\n res[value]['lineColor'] = palette[idx % palette?.length];\n }\n return res;\n }, result);\n}\n\nfunction isInheritMapping<T extends (string | number)>(value:T | InheritAesScatterplot | ContinuousAesFromColumn<T>):value is InheritAesScatterplot {\n return typeof value === 'object' && 'type' in value && value.type === 'grouping';\n}\nexport function createLegendInfo(\n data: DataFrame,\n grouping: ColumnName[],\n layers: ScatterplotLayer[],\n inheritedAes: ScatterplotSettingsImpl['inheritedAes']\n): ScatterplotLegendInfo {\n return grouping.reduce((res: ScatterplotLegendInfo, column) => {\n const getValue = (row: Row) => String(row[column.value]);\n const getValueLabel = (row: Row) => (column.valueLabels ? String(row[column.valueLabels]) : getValue(row));\n\n const usedAes = new Set<keyof AesItem>();\n const usedAesFromPalettes:Partial<Record<keyof AesItem, string[]>> = {}; // if there is palette in mapping then\n layers.forEach(layer => {\n if (layer.aes) {\n Object.entries(layer.aes).forEach(([key, value]) => {\n if (isInheritMapping(value) && value.value === column.value) {\n usedAes.add(key as keyof AesItem);\n if (value.palette) {\n usedAesFromPalettes[key as keyof AesItem] = value.palette;\n }\n }\n });\n }\n });\n let labels:Record<string, string> = {};\n let values:string[] = [];\n if (usedAes.has('dotFill')) {\n const uniqueValues = data.getColumnCategories(column.value);\n if (uniqueValues.length > MAX_SHOWN_UNIQUE_VALUES_IN_LABELS) {\n values = uniqueValues;\n labels = {};\n } else {\n const uniqRowsByGrouping = lodash.uniqBy(data.rows, row => row[column.value]);\n labels = uniqRowsByGrouping.reduce((res: Record<string, string>, row) => {\n res[getValue(row)] = getValueLabel(row);\n return res;\n }, {});\n values = uniqRowsByGrouping.map(getValue).sort((a, b) => labels[a].localeCompare(labels[b], 'en', {numeric: true}));\n }\n }\n res[column.value] = {\n values,\n usedAes: [...usedAes],\n aesMap: addPalettesToAesMapping(values, usedAesFromPalettes, inheritedAes[column.value]),\n labels,\n };\n return res;\n }, {});\n}"],"names":["addPalettesToAesMapping","uniqueValues","usedAesFromPalettes","inheritedAes","result","res","value","idx","palette","isInheritMapping","createLegendInfo","data","grouping","layers","column","getValue","row","getValueLabel","usedAes","layer","key","labels","values","MAX_SHOWN_UNIQUE_VALUES_IN_LABELS","uniqRowsByGrouping","lodash","a","b"],"mappings":";;AAcO,SAASA,EACZC,GACAC,GACAC,GACF;AACE,QAAMC,IAASD,KAAgB,CAAA;AAC/B,SAAK,OAAO,KAAKD,CAAmB,EAAE,SAG/BD,EAAa,OAAO,CAACI,GAA6BC,GAAOC,MAAQ;AAIpE,QAHKF,EAAIC,CAAK,MACVD,EAAIC,CAAK,IAAI,CAAA,IAEbJ,EAAoB,SAAY;AAChC,YAAMM,IAAUN,EAAoB;AACpCG,MAAAA,EAAIC,CAAK,EAAE,UAAaE,EAAQD,KAAMC,KAAA,OAAA,SAAAA,EAAS,OAAM;AAAA,IACzD;AACA,QAAIN,EAAoB,WAAc;AAClC,YAAMM,IAAUN,EAAoB;AACpCG,MAAAA,EAAIC,CAAK,EAAE,YAAeE,EAAQD,KAAMC,KAAA,OAAA,SAAAA,EAAS,OAAM;AAAA,IAC3D;AACA,WAAOH;AAAAA,EACX,GAAGD,CAAM,IAfEA;AAgBf;AAEA,SAASK,EAA8CH,GAA6F;AAChJ,SAAO,OAAOA,KAAU,YAAY,UAAUA,KAASA,EAAM,SAAS;AAC1E;AACO,SAASI,EACZC,GACAC,GACAC,GACAV,GACqB;AACrB,SAAOS,EAAS,OAAO,CAACP,GAA4BS,MAAW;AAC3D,UAAMC,IAAW,CAACC,MAAa,OAAOA,EAAIF,EAAO,KAAK,CAAC,GACjDG,IAAgB,CAACD,MAAcF,EAAO,cAAc,OAAOE,EAAIF,EAAO,WAAW,CAAC,IAAIC,EAASC,CAAG,GAElGE,IAAAA,oBAAc,IAAA,GACdhB,IAA+D,CAAA;AACrEW,IAAAA,EAAO,QAAQ,CAAAM,MAAS;AAChBA,MAAAA,EAAM,OACN,OAAO,QAAQA,EAAM,GAAG,EAAE,QAAQ,CAAC,CAACC,GAAKd,CAAK,MAAM;AAC5CG,UAAiBH,CAAK,KAAKA,EAAM,UAAUQ,EAAO,UAClDI,EAAQ,IAAIE,CAAoB,GAC5Bd,EAAM,YACNJ,EAAoBkB,CAAoB,IAAId,EAAM;AAAA,MAG9D,CAAC;AAAA,IAET,CAAC;AACD,QAAIe,IAAgC,IAChCC,IAAkB,CAAA;AACtB,QAAIJ,EAAQ,IAAI,SAAS,GAAG;AACxB,YAAMjB,IAAeU,EAAK,oBAAoBG,EAAO,KAAK;AAC1D,UAAIb,EAAa,SAASsB;AACtBD,QAAAA,IAASrB,GACToB,IAAS,CAAA;AAAA,WACN;AACH,cAAMG,IAAqBC,EAAO,OAAOd,EAAK,MAAM,CAAAK,MAAOA,EAAIF,EAAO,KAAK,CAAC;AAC5EO,QAAAA,IAASG,EAAmB,OAAO,CAACnB,GAA6BW,OAC7DX,EAAIU,EAASC,CAAG,CAAC,IAAIC,EAAcD,CAAG,GAC/BX,IACR,CAAA,CAAE,GACLiB,IAASE,EAAmB,IAAIT,CAAQ,EAAE,KAAK,CAACW,GAAGC,MAAMN,EAAOK,CAAC,EAAE,cAAcL,EAAOM,CAAC,GAAG,MAAM,EAAC,SAAS,GAAA,CAAK,CAAC;AAAA,MACtH;AAAA,IACJ;AACA,WAAAtB,EAAIS,EAAO,KAAK,IAAI;AAAA,MAChB,QAAAQ;AAAAA,MACA,SAAS,CAAC,GAAGJ,CAAO;AAAA,MACpB,QAAQlB,EAAwBsB,GAAQpB,GAAqBC,EAAaW,EAAO,KAAK,CAAC;AAAA,MACvF,QAAAO;AAAAA,IAAA,GAEGhB;AAAAA,EACX,GAAG,CAAA,CAAE;AACT;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"createLegendInfo.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/scatterplot/utils/createLegendInfo.ts"],"sourcesContent":["import { MAX_SHOWN_UNIQUE_VALUES_IN_LABELS } from '../../constants';\nimport type { DataFrame } from '../../DataFrame';\nimport type {\n AesItem,\n Category,\n ColumnName,\n ContinuousAesFromColumn,\n InheritAesScatterplot,\n ScatterplotLayer,\n ScatterplotLegendInfo\n} from '../../types';\nimport type { ScatterplotSettingsImpl } from '../ScatterplotSettingsImpl';\n\nconst categoryIndexer = (() => {\n const map = new Map<string, Map<Category, number>>();\n const clear = () => map.clear();\n const getIndex = (columnName: ColumnName, category: Category): number => {\n let categoryMap = map.get(columnName.value);\n if (categoryMap === undefined) {\n categoryMap = new Map();\n map.set(columnName.value, categoryMap);\n }\n let index = categoryMap.get(category);\n if (index === undefined) {\n index = categoryMap.size;\n categoryMap.set(category, index);\n }\n return index;\n };\n\n return {\n clear,\n getIndex,\n };\n})();\n\nexport function addPalettesToAesMapping(\n columnName: ColumnName,\n usedAesFromPalettes: Partial<Record<keyof AesItem, string[]>>,\n inheritedAes?: ScatterplotSettingsImpl['inheritedAes'][string],\n) {\n categoryIndexer.clear();\n const hasIngeritedAes = inheritedAes && Object.keys(inheritedAes).length > 0;\n const dotFill = usedAesFromPalettes['dotFill'];\n const hasDotFill = dotFill && dotFill.length > 0;\n const lineColor = usedAesFromPalettes['lineColor'];\n const hasLineColor = lineColor && lineColor.length > 0;\n const getAesField = (category: Category, field: keyof AesItem) => {\n const inheritedResult = hasIngeritedAes ? inheritedAes[category]?.[field] : undefined;\n \n if (field === 'dotFill' && hasDotFill) {\n return dotFill[categoryIndexer.getIndex(columnName, category) % dotFill.length] ?? inheritedResult;\n }\n if (field === 'lineColor' && hasLineColor) {\n return lineColor[categoryIndexer.getIndex(columnName, category) % lineColor.length] ?? inheritedResult;\n }\n \n return inheritedResult;\n };\n\n return getAesField;\n}\n\nfunction isInheritMapping<T extends (string | number)>(value:T | InheritAesScatterplot | ContinuousAesFromColumn<T>):value is InheritAesScatterplot {\n return typeof value === 'object' && 'type' in value && value.type === 'grouping';\n}\nexport function createLegendInfo(\n data: DataFrame,\n grouping: ColumnName[],\n layers: ScatterplotLayer[],\n inheritedAes: ScatterplotSettingsImpl['inheritedAes']\n): ScatterplotLegendInfo {\n return grouping.reduce((res: ScatterplotLegendInfo, column) => {\n // TODO: remove String conversion\n const getValueLabel = (index: number) => {\n return column.valueLabels\n ? data.getColumnValueCategory(column.valueLabels, index)\n : undefined;\n };\n\n const usedAes = new Set<keyof AesItem>();\n const usedAesFromPalettes:Partial<Record<keyof AesItem, string[]>> = {}; // if there is palette in mapping then\n layers.forEach(layer => {\n if (!layer.aes) return;\n \n Object.entries(layer.aes).forEach(([key, value]) => {\n if (!(isInheritMapping(value) && value.value === column.value)) return;\n \n usedAes.add(key as keyof AesItem);\n usedAesFromPalettes[key as keyof AesItem] = value.palette;\n });\n });\n let labels: Record<Category, string> = {};\n let values: Category[] = [];\n if (usedAes.has('dotFill') || usedAes.has('dotShape')) {\n const categories = data.getColumnCategories(column.value);\n if (categories.length < MAX_SHOWN_UNIQUE_VALUES_IN_LABELS) {\n labels = categories.reduce((res, category) => {\n const index = data.getColumnCategoryRowIndex(column.value, category);\n res[category] = getValueLabel(index) ?? category;\n return res;\n }, labels);\n values = categories.sort((a, b) => labels[a]?.localeCompare(labels[b] ?? '', 'en', {numeric: true}) ?? 0);\n } else {\n values = categories;\n }\n }\n res[column.value] = {\n values,\n usedAes: [...usedAes],\n aesMap: addPalettesToAesMapping(column, usedAesFromPalettes, inheritedAes[column.value]),\n labels,\n };\n return res;\n }, {});\n}"],"names":["categoryIndexer","map","columnName","category","categoryMap","index","addPalettesToAesMapping","usedAesFromPalettes","inheritedAes","hasIngeritedAes","dotFill","hasDotFill","lineColor","hasLineColor","field","inheritedResult","_a","isInheritMapping","value","createLegendInfo","data","grouping","layers","res","column","getValueLabel","usedAes","layer","key","labels","values","categories","MAX_SHOWN_UNIQUE_VALUES_IN_LABELS","a","b"],"mappings":";AAaA,MAAMA,IAAmB,uBAAM;AAC3B,QAAMC,wBAAU,IAAA;AAgBhB,SAAO;AAAA,IACH,OAhBU,MAAMA,EAAI,MAAA;AAAA,IAiBpB,UAhBa,CAACC,GAAwBC,MAA+B;AACrE,UAAIC,IAAcH,EAAI,IAAIC,EAAW,KAAK;AACtCE,MAAAA,MAAgB,WAChBA,IAAAA,oBAAkB,IAAA,GAClBH,EAAI,IAAIC,EAAW,OAAOE,CAAW;AAEzC,UAAIC,IAAQD,EAAY,IAAID,CAAQ;AACpC,aAAIE,MAAU,WACVA,IAAQD,EAAY,MACpBA,EAAY,IAAID,GAAUE,CAAK,IAE5BA;AAAAA,IACX;AAAA,EAAA;AAMJ,GAAA;AAEO,SAASC,EACZJ,GACAK,GACAC,GACF;AACER,IAAgB,MAAA;AAChB,QAAMS,IAAkBD,KAAgB,OAAO,KAAKA,CAAY,EAAE,SAAS,GACrEE,IAAUH,EAAoB,SAC9BI,IAAaD,KAAWA,EAAQ,SAAS,GACzCE,IAAYL,EAAoB,WAChCM,IAAeD,KAAaA,EAAU,SAAS;AAcrD,SAboB,CAACT,GAAoBW,MAAyB;;AAC9D,UAAMC,IAAkBN,KAAkBO,IAAAR,EAAaL,CAAQ,MAArB,OAAA,SAAAa,EAAyBF,CAAAA,IAAS;AAE5E,WAAIA,MAAU,aAAaH,IAChBD,EAAQV,EAAgB,SAASE,GAAYC,CAAQ,IAAIO,EAAQ,MAAM,KAAKK,IAEnFD,MAAU,eAAeD,IAClBD,EAAUZ,EAAgB,SAASE,GAAYC,CAAQ,IAAIS,EAAU,MAAM,KAAKG,IAGpFA;AAAAA,EACX;AAGJ;AAEA,SAASE,EAA8CC,GAA6F;AAChJ,SAAO,OAAOA,KAAU,YAAY,UAAUA,KAASA,EAAM,SAAS;AAC1E;AACO,SAASC,EACZC,GACAC,GACAC,GACAd,GACqB;AACrB,SAAOa,EAAS,OAAO,CAACE,GAA4BC,MAAW;AAE3D,UAAMC,IAAgB,CAACpB,MACZmB,EAAO,cACZJ,EAAK,uBAAuBI,EAAO,aAAanB,CAAK,IACrD,QAGAqB,IAAAA,oBAAc,IAAA,GACdnB,IAA+D,CAAA;AACrEe,MAAO,QAAQ,CAAAK,MAAS;AACfA,MAAAA,EAAM,OAEX,OAAO,QAAQA,EAAM,GAAG,EAAE,QAAQ,CAAC,CAACC,GAAKV,CAAK,MAAM;AAC1CD,UAAiBC,CAAK,KAAKA,EAAM,UAAUM,EAAO,UAExDE,EAAQ,IAAIE,CAAoB,GAChCrB,EAAoBqB,CAAoB,IAAIV,EAAM;AAAA,MACtD,CAAC;AAAA,IACL,CAAC;AACD,QAAIW,IAAmC,IACnCC,IAAqB,CAAA;AACzB,QAAIJ,EAAQ,IAAI,SAAS,KAAKA,EAAQ,IAAI,UAAU,GAAG;AACnD,YAAMK,IAAaX,EAAK,oBAAoBI,EAAO,KAAK;AACpDO,MAAAA,EAAW,SAASC,KACpBH,IAASE,EAAW,OAAO,CAACR,GAAKpB,MAAa;AAC1C,cAAME,IAAQe,EAAK,0BAA0BI,EAAO,OAAOrB,CAAQ;AACnEoB,eAAAA,EAAIpB,CAAQ,IAAIsB,EAAcpB,CAAK,KAAKF,GACjCoB;AAAAA,MACX,GAAGM,CAAM,GACTC,IAASC,EAAW,KAAK,CAACE,GAAGC,MAAA;;AAAM,iBAAAlB,IAAAa,EAAOI,CAAC,MAAR,gBAAAjB,EAAW,cAAca,EAAOK,CAAC,KAAK,IAAI,MAAM,EAAC,SAAS,IAAA,MAAU;AAAA,MAAA,CAAC,KAExGJ,IAASC;AAAAA,IAEjB;AACA,WAAAR,EAAIC,EAAO,KAAK,IAAI;AAAA,MAChB,QAAAM;AAAAA,MACA,SAAS,CAAC,GAAGJ,CAAO;AAAA,MACpB,QAAQpB,EAAwBkB,GAAQjB,GAAqBC,EAAagB,EAAO,KAAK,CAAC;AAAA,MACvF,QAAAK;AAAAA,IAAA,GAEGN;AAAAA,EACX,GAAG,CAAA,CAAE;AACT;","x_google_ignoreList":[0]}
@@ -0,0 +1,11 @@
1
+ import { numberFormat as t } from "../../utils/numberFormat.js";
2
+ function m(n, l, u, o = t) {
3
+ if (!u)
4
+ return null;
5
+ const e = n.getColumnValue(u.valueLabels ?? u.value, l);
6
+ return typeof e != "number" || e === null ? e : o(e);
7
+ }
8
+ export {
9
+ m as formatColumnValue
10
+ };
11
+ //# sourceMappingURL=formatColumnValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatColumnValue.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/scatterplot/utils/formatColumnValue.ts"],"sourcesContent":["import type {DataFrame} from '../../DataFrame';\nimport type {ColumnName} from '../../types';\nimport {numberFormat} from '../../utils/numberFormat';\n\nexport function formatColumnValue(data:DataFrame, rowIdx:number, column:ColumnName | null | undefined, numberFormatter = numberFormat) {\n if (!column) {\n return null;\n }\n const value = data.getColumnValue(column.valueLabels ?? column.value, rowIdx);\n const isNumber = typeof value === 'number';\n if (!isNumber || value === null) {\n return value;\n }\n return numberFormatter(value);\n}"],"names":["formatColumnValue","data","rowIdx","column","numberFormatter","numberFormat","value"],"mappings":";AAIO,SAASA,EAAkBC,GAAgBC,GAAeC,GAAsCC,IAAkBC,GAAc;AACnI,MAAI,CAACF;AACD,WAAO;AAEX,QAAMG,IAAQL,EAAK,eAAeE,EAAO,eAAeA,EAAO,OAAOD,CAAM;AAE5E,SADiB,OAAOI,KAAU,YACjBA,MAAU,OAChBA,IAEJF,EAAgBE,CAAK;AAChC;","x_google_ignoreList":[0]}
@@ -1,60 +1,50 @@
1
- import g from "../../node_modules/rbush/index.js";
2
- function u(o) {
3
- const i = o.xPosition !== "middle" && o.yPosition !== "middle", n = o.padding * (i ? 0.7 : 1);
4
- return o.xPosition === "right" ? o.x + n : o.xPosition === "middle" ? o.x - o.width / 2 : o.x - o.width - n;
5
- }
6
- function x(o) {
7
- const i = o.xPosition !== "middle" && o.yPosition !== "middle", n = o.padding * (i ? 0.7 : 1);
8
- return o.yPosition === "middle" ? o.y - o.height / 2 : o.yPosition === "top" ? o.y - n - o.height : o.y + n;
9
- }
10
- function b(o, i) {
11
- return u(o) - i;
12
- }
13
- function p(o, i) {
14
- return x(o) - i;
15
- }
16
- function c(o) {
17
- const i = u(o), n = i + o.width, e = x(o), r = e + o.height;
18
- return { minX: i, maxX: n, minY: e, maxY: r };
19
- }
20
- function f(o, i, n) {
21
- const e = b(o, n), r = u(o) + o.width + n, d = p(o, i), s = d + o.height + 2 * i;
22
- return { minX: e, maxX: r, minY: d, maxY: s };
23
- }
24
- function P(o, i, n) {
25
- return o.minX >= 0 && o.maxX <= i && o.minY >= 0 && o.maxY <= n;
26
- }
27
- const m = 2;
28
- function X(o, i = m, n = m) {
29
- o.forEach((e) => {
30
- e.bbox = c(e), e.outerBBox = f(e, i, n);
31
- });
32
- }
33
- function Y(o, i, n, e = m, r = m) {
34
- const d = [], s = new g(), l = [
35
- ["middle", "right"],
36
- ["top", "right"],
37
- ["bottom", "right"],
38
- ["middle", "left"],
39
- ["top", "left"],
40
- ["bottom", "left"],
41
- ["top", "middle"],
42
- ["bottom", "middle"]
43
- ];
44
- for (const a of o)
45
- for (const [h, B] of l) {
46
- const t = { ...a, yPosition: h, xPosition: B };
47
- if (t.bbox = c(t), t.outerBBox = f(t, e, r), P(t.outerBBox, i, n) && !s.collides(t.outerBBox)) {
48
- d.push(t), s.insert(t.outerBBox);
49
- break;
50
- }
51
- }
52
- return d;
1
+ import X from "../../node_modules/rbush/index.js";
2
+ function a(i, e, t, o, n) {
3
+ return o !== "middle" && n !== "middle" && (t *= 0.7), o === "right" ? i + t : o === "middle" ? i - e / 2 : i - e - t;
4
+ }
5
+ function s(i, e, t, o, n) {
6
+ return o !== "middle" && n !== "middle" && (t *= 0.7), n === "middle" ? i - e / 2 : n === "top" ? i - t - e : i + t;
7
+ }
8
+ function g(i, e, t, o, n, r) {
9
+ return a(i, e, t, o, n) - r;
10
+ }
11
+ function p(i, e, t, o, n, r) {
12
+ return s(i, e, t, o, n) - r;
13
+ }
14
+ function h(i, e, t, o, n, r, m, l, u, d = { minX: 0, maxX: 0, minY: 0, maxY: 0 }) {
15
+ return d.minX = g(i, t, n, r, m, u), d.maxX = a(i, t, n, r, m) + t + u, d.minY = p(e, o, n, r, m, l), d.maxY = d.minY + o + 2 * l, d;
16
+ }
17
+ function b(i, e, t) {
18
+ return i.minX >= 0 && i.maxX <= e && i.minY >= 0 && i.maxY <= t;
19
+ }
20
+ function M(i) {
21
+ return a(i.x, i.width, i.padding, i.xPosition, i.yPosition);
22
+ }
23
+ function w(i) {
24
+ return s(i.y, i.height, i.padding, i.xPosition, i.yPosition);
25
+ }
26
+ const P = [
27
+ ["middle", "right"],
28
+ ["top", "right"],
29
+ ["bottom", "right"],
30
+ ["middle", "left"],
31
+ ["top", "left"],
32
+ ["bottom", "left"],
33
+ ["top", "middle"],
34
+ ["bottom", "middle"]
35
+ ], x = 2, y = { minX: 0, maxX: 0, minY: 0, maxY: 0 };
36
+ function k(i, e, t = x, o = x) {
37
+ const n = y, r = new X();
38
+ return (m, l, u, d, Y) => {
39
+ for (const [f, c] of P)
40
+ if (h(m, l, u, d, Y, c, f, t, o, n), b(n, i, e) && !r.collides(n))
41
+ return r.insert({ ...n }), [c, f];
42
+ return null;
43
+ };
53
44
  }
54
45
  export {
55
- Y as getFilteredLabels,
56
- c as getLabelBBox,
57
- f as getLabelOuterBBox,
58
- X as updateLabelsBBoxes
46
+ k as createLabelPositioner,
47
+ M as getLabelMinX,
48
+ w as getLabelMinY
59
49
  };
60
50
  //# sourceMappingURL=getVisibleLabels.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getVisibleLabels.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/scatterplot/utils/getVisibleLabels.ts"],"sourcesContent":["import type {Dot} from '../dots';\nimport RBush from 'rbush';\n\ntype XPosition = 'right' | 'middle' | 'left';\ntype YPosition = 'top' | 'middle' | 'bottom';\nexport type Label = {\n name: string;\n width: number;\n height: number;\n x: number;\n y: number;\n padding: number;\n xPosition: XPosition;\n yPosition: YPosition;\n bbox: LabelBBox;\n outerBBox: LabelBBox;\n dot: Dot;\n};\nexport type LabelBBox = {\n minX: number;\n maxX: number;\n minY: number;\n maxY: number;\n}\n\nfunction getX(label: Label) {\n const isCorner = label.xPosition !== 'middle' && label.yPosition !== 'middle';\n const padding = label.padding * (isCorner ? 0.7 : 1);\n return label.xPosition === 'right'\n ? label.x + padding\n : label.xPosition === 'middle'\n ? label.x - label.width / 2\n : label.x - label.width - padding;\n}\nfunction getY(label: Label) {\n const isCorner = label.xPosition !== 'middle' && label.yPosition !== 'middle';\n const padding = label.padding * (isCorner ? 0.7 : 1);\n return label.yPosition === 'middle'\n ? label.y - label.height / 2\n : label.yPosition === 'top'\n ? label.y - padding - label.height\n : label.y + padding;\n}\n\nfunction getXOuter(label: Label, offsetH:number) {\n return getX(label) - offsetH;\n}\nfunction getYOuter(label: Label, offsetV:number) {\n return getY(label) - offsetV;\n}\n\nexport function getLabelBBox(label: Label):LabelBBox {\n const minX = getX(label);\n const maxX = minX + label.width;\n const minY = getY(label);\n const maxY = minY + label.height;\n\n return {minX, maxX, minY, maxY};\n}\nexport function getLabelOuterBBox(label: Label, vOffset: number, hOffset: number):LabelBBox {\n const minX = getXOuter(label, hOffset); // consider padding for dot\n const maxX = getX(label) + label.width + hOffset;\n const minY = getYOuter(label, vOffset);\n const maxY = minY + label.height + 2 * vOffset;\n\n return {minX, maxX, minY, maxY};\n}\n\nfunction inBounds (bbox: LabelBBox, width: number, height: number) {\n return bbox.minX >= 0 && bbox.maxX <= width && bbox.minY >= 0 && bbox.maxY <= height;\n}\n\nconst LABEL_OFFSET = 2;\n\nexport function updateLabelsBBoxes(labels: Label[], vOffset = LABEL_OFFSET, hOffset = LABEL_OFFSET) {\n labels.forEach(l => {\n l.bbox = getLabelBBox(l);\n l.outerBBox = getLabelOuterBBox(l, vOffset, hOffset);\n });\n}\nexport function getFilteredLabels(labels: Label[], width: number, height: number, vOffset = LABEL_OFFSET, hOffset = LABEL_OFFSET) {\n const added: Label[] = [];\n const bboxTree = new RBush<LabelBBox>();\n\n const options: [YPosition, XPosition][] = [\n ['middle', 'right'],\n ['top', 'right'],\n ['bottom', 'right'],\n ['middle', 'left'],\n ['top', 'left'],\n ['bottom', 'left'],\n ['top', 'middle'],\n ['bottom', 'middle'],\n ];\n for (const label of labels) {\n for (const [yPosition, xPosition] of options) {\n const labelMoved:Label = {...label, yPosition, xPosition};\n labelMoved.bbox = getLabelBBox(labelMoved);\n labelMoved.outerBBox = getLabelOuterBBox(labelMoved, vOffset, hOffset);\n if (inBounds(labelMoved.outerBBox , width, height) && !bboxTree.collides(labelMoved.outerBBox)) {\n added.push(labelMoved);\n bboxTree.insert(labelMoved.outerBBox);\n break;\n }\n }\n }\n\n return added;\n}\n"],"names":["getX","label","isCorner","padding","getY","getXOuter","offsetH","getYOuter","offsetV","getLabelBBox","minX","maxX","minY","maxY","getLabelOuterBBox","vOffset","hOffset","inBounds","bbox","width","height","LABEL_OFFSET","updateLabelsBBoxes","labels","l","getFilteredLabels","added","bboxTree","RBush","options","yPosition","xPosition","labelMoved"],"mappings":";AAyBA,SAASA,EAAKC,GAAc;AACxB,QAAMC,IAAWD,EAAM,cAAc,YAAYA,EAAM,cAAc,UAC/DE,IAAUF,EAAM,WAAWC,IAAW,MAAM;AAClD,SAAOD,EAAM,cAAc,UACrBA,EAAM,IAAIE,IACVF,EAAM,cAAc,WAChBA,EAAM,IAAIA,EAAM,QAAQ,IACxBA,EAAM,IAAIA,EAAM,QAAQE;AACtC;AACA,SAASC,EAAKH,GAAc;AACxB,QAAMC,IAAWD,EAAM,cAAc,YAAYA,EAAM,cAAc,UAC/DE,IAAUF,EAAM,WAAWC,IAAW,MAAM;AAClD,SAAOD,EAAM,cAAc,WACrBA,EAAM,IAAIA,EAAM,SAAS,IACzBA,EAAM,cAAc,QAChBA,EAAM,IAAIE,IAAUF,EAAM,SAC1BA,EAAM,IAAIE;AACxB;AAEA,SAASE,EAAUJ,GAAcK,GAAgB;AAC7C,SAAON,EAAKC,CAAK,IAAIK;AACzB;AACA,SAASC,EAAUN,GAAcO,GAAgB;AAC7C,SAAOJ,EAAKH,CAAK,IAAIO;AACzB;AAEO,SAASC,EAAaR,GAAwB;AACjD,QAAMS,IAAOV,EAAKC,CAAK,GACjBU,IAAOD,IAAOT,EAAM,OACpBW,IAAOR,EAAKH,CAAK,GACjBY,IAAOD,IAAOX,EAAM;AAE1B,SAAO,EAAC,MAAAS,GAAM,MAAAC,GAAM,MAAAC,GAAM,MAAAC,EAAAA;AAC9B;AACO,SAASC,EAAkBb,GAAcc,GAAiBC,GAA2B;AACxF,QAAMN,IAAOL,EAAUJ,GAAOe,CAAO,GAC/BL,IAAOX,EAAKC,CAAK,IAAIA,EAAM,QAAQe,GACnCJ,IAAOL,EAAUN,GAAOc,CAAO,GAC/BF,IAAOD,IAAOX,EAAM,SAAS,IAAIc;AAEvC,SAAO,EAAC,MAAAL,GAAM,MAAAC,GAAM,MAAAC,GAAM,MAAAC,EAAAA;AAC9B;AAEA,SAASI,EAAUC,GAAiBC,GAAeC,GAAgB;AAC/D,SAAOF,EAAK,QAAQ,KAAKA,EAAK,QAAQC,KAASD,EAAK,QAAQ,KAAKA,EAAK,QAAQE;AAClF;AAEA,MAAMC,IAAe;AAEd,SAASC,EAAmBC,GAAiBR,IAAUM,GAAcL,IAAUK,GAAc;AAChGE,EAAAA,EAAO,QAAQ,CAAAC,MAAK;AAChBA,IAAAA,EAAE,OAAOf,EAAae,CAAC,GACvBA,EAAE,YAAYV,EAAkBU,GAAGT,GAASC,CAAO;AAAA,EACvD,CAAC;AACL;AACO,SAASS,EAAkBF,GAAiBJ,GAAeC,GAAgBL,IAAUM,GAAcL,IAAUK,GAAc;AAC9H,QAAMK,IAAiB,CAAA,GACjBC,IAAW,IAAIC,EAAAA,GAEfC,IAAoC;AAAA,IACtC,CAAC,UAAU,OAAO;AAAA,IAClB,CAAC,OAAO,OAAO;AAAA,IACf,CAAC,UAAU,OAAO;AAAA,IAClB,CAAC,UAAU,MAAM;AAAA,IACjB,CAAC,OAAO,MAAM;AAAA,IACd,CAAC,UAAU,MAAM;AAAA,IACjB,CAAC,OAAO,QAAQ;AAAA,IAChB,CAAC,UAAU,QAAQ;AAAA,EAAA;AAEvB,aAAW5B,KAASsB;AAChB,eAAW,CAACO,GAAWC,CAAS,KAAKF,GAAS;AAC1C,YAAMG,IAAmB,EAAC,GAAG/B,GAAO,WAAA6B,GAAW,WAAAC,EAAAA;AAG/C,UAFAC,EAAW,OAAOvB,EAAauB,CAAU,GACzCA,EAAW,YAAYlB,EAAkBkB,GAAYjB,GAASC,CAAO,GACjEC,EAASe,EAAW,WAAYb,GAAOC,CAAM,KAAK,CAACO,EAAS,SAASK,EAAW,SAAS,GAAG;AAC5FN,QAAAA,EAAM,KAAKM,CAAU,GACrBL,EAAS,OAAOK,EAAW,SAAS;AACpC;AAAA,MACJ;AAAA,IACJ;AAGJ,SAAON;AACX;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"getVisibleLabels.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/scatterplot/utils/getVisibleLabels.ts"],"sourcesContent":["import RBush from 'rbush';\nimport type { Dot } from '../dots';\n\ntype XPosition = 'right' | 'middle' | 'left';\ntype YPosition = 'top' | 'middle' | 'bottom';\nexport type Label = {\n x: number;\n y: number;\n dot: Dot;\n name: string;\n width: number;\n height: number;\n padding: number;\n xPosition: XPosition;\n yPosition: YPosition;\n};\nexport type LabelBBox = {\n minX: number;\n maxX: number;\n minY: number;\n maxY: number;\n}\n\nfunction getX(x: number, width: number, padding: number, xPos: XPosition, yPos: YPosition) {\n const isCorner = xPos !== 'middle' && yPos !== 'middle';\n isCorner && (padding *= 0.7);\n return xPos === 'right'\n ? x + padding\n : xPos === 'middle'\n ? x - width / 2\n : x - width - padding;\n}\nfunction getY(y: number, height: number, padding: number, xPos: XPosition, yPos: YPosition) {\n const isCorner = xPos !== 'middle' && yPos !== 'middle';\n isCorner && (padding *= 0.7);\n return yPos === 'middle'\n ? y - height / 2\n : yPos === 'top'\n ? y - padding - height\n : y + padding;\n}\n\nfunction getXOuter(x: number, width: number, padding: number, xPos: XPosition, yPos: YPosition, offsetH:number) {\n return getX(x, width, padding, xPos, yPos) - offsetH;\n}\nfunction getYOuter(y: number, height: number, padding: number, xPos: XPosition, yPos: YPosition, offsetV:number) {\n return getY(y, height, padding, xPos, yPos) - offsetV;\n}\nfunction getLabelOuterBBox(\n x: number,\n y: number,\n width: number,\n height: number,\n padding: number,\n xPos: XPosition,\n yPos: YPosition,\n yOffset: number,\n xOffset: number,\n out = {minX: 0, maxX: 0, minY: 0, maxY: 0}\n):LabelBBox {\n out.minX = getXOuter(x, width, padding, xPos, yPos, xOffset); // consider padding for dot\n out.maxX = getX(x, width, padding, xPos, yPos) + width + xOffset;\n out.minY = getYOuter(y, height, padding, xPos, yPos, yOffset);\n out.maxY = out.minY + height + 2 * yOffset;\n\n return out;\n}\nfunction inBounds (bbox: LabelBBox, width: number, height: number) {\n return bbox.minX >= 0 && bbox.maxX <= width && bbox.minY >= 0 && bbox.maxY <= height;\n}\n\nexport function getLabelMinX(label: Label) {\n return getX(label.x, label.width, label.padding, label.xPosition, label.yPosition);\n}\nexport function getLabelMinY(label: Label) {\n return getY(label.y, label.height, label.padding, label.xPosition, label.yPosition);\n}\n\nconst positionOptions: [YPosition, XPosition][] = [\n ['middle', 'right'],\n ['top', 'right'],\n ['bottom', 'right'],\n ['middle', 'left'],\n ['top', 'left'],\n ['bottom', 'left'],\n ['top', 'middle'],\n ['bottom', 'middle'],\n];\nconst LABEL_OFFSET = 2;\nconst MUT_BBOX: LabelBBox = {minX: 0, maxX: 0, minY: 0, maxY: 0};\nexport function createLabelPositioner(chartW: number, chartH: number, yOffset = LABEL_OFFSET, xOffset = LABEL_OFFSET) {\n const outerBBox = MUT_BBOX;\n const bboxTree = new RBush<LabelBBox>();\n \n return (x: number, y: number, w: number, h: number, padding: number): null | [XPosition, YPosition] => {\n for (const [yPosition, xPosition] of positionOptions) {\n getLabelOuterBBox(x, y, w, h, padding, xPosition, yPosition, yOffset, xOffset, outerBBox);\n\n if (inBounds(outerBBox, chartW, chartH) && !bboxTree.collides(outerBBox)) {\n bboxTree.insert({...outerBBox});\n return [xPosition, yPosition];\n }\n }\n\n return null;\n };\n}"],"names":["getX","x","width","padding","xPos","yPos","getY","y","height","getXOuter","offsetH","getYOuter","offsetV","getLabelOuterBBox","yOffset","xOffset","out","inBounds","bbox","getLabelMinX","label","getLabelMinY","positionOptions","LABEL_OFFSET","MUT_BBOX","createLabelPositioner","chartW","chartH","outerBBox","bboxTree","RBush","w","h","yPosition","xPosition"],"mappings":";AAuBA,SAASA,EAAKC,GAAWC,GAAeC,GAAiBC,GAAiBC,GAAiB;AAEvF,SADiBD,MAAS,YAAYC,MAAS,aAClCF,KAAW,MACjBC,MAAS,UACVH,IAAIE,IACJC,MAAS,WACLH,IAAIC,IAAQ,IACZD,IAAIC,IAAQC;AAC1B;AACA,SAASG,EAAKC,GAAWC,GAAgBL,GAAiBC,GAAiBC,GAAiB;AAExF,SADiBD,MAAS,YAAYC,MAAS,aAClCF,KAAW,MACjBE,MAAS,WACVE,IAAIC,IAAS,IACbH,MAAS,QACLE,IAAIJ,IAAUK,IACdD,IAAIJ;AAClB;AAEA,SAASM,EAAUR,GAAWC,GAAeC,GAAiBC,GAAiBC,GAAiBK,GAAgB;AAC5G,SAAOV,EAAKC,GAAGC,GAAOC,GAASC,GAAMC,CAAI,IAAIK;AACjD;AACA,SAASC,EAAUJ,GAAWC,GAAgBL,GAAiBC,GAAiBC,GAAiBO,GAAgB;AAC7G,SAAON,EAAKC,GAAGC,GAAQL,GAASC,GAAMC,CAAI,IAAIO;AAClD;AACA,SAASC,EACLZ,GACAM,GACAL,GACAM,GACAL,GACAC,GACAC,GACAS,GACAC,GACAC,IAAM,EAAC,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,KAChC;AACR,SAAAA,EAAI,OAAOP,EAAUR,GAAGC,GAAOC,GAASC,GAAMC,GAAMU,CAAO,GAC3DC,EAAI,OAAOhB,EAAKC,GAAGC,GAAOC,GAASC,GAAMC,CAAI,IAAIH,IAAQa,GACzDC,EAAI,OAAOL,EAAUJ,GAAGC,GAAQL,GAASC,GAAMC,GAAMS,CAAO,GAC5DE,EAAI,OAAOA,EAAI,OAAOR,IAAS,IAAIM,GAE5BE;AACX;AACA,SAASC,EAAUC,GAAiBhB,GAAeM,GAAgB;AAC/D,SAAOU,EAAK,QAAQ,KAAKA,EAAK,QAAQhB,KAASgB,EAAK,QAAQ,KAAKA,EAAK,QAAQV;AAClF;AAEO,SAASW,EAAaC,GAAc;AACvC,SAAOpB,EAAKoB,EAAM,GAAGA,EAAM,OAAOA,EAAM,SAASA,EAAM,WAAWA,EAAM,SAAS;AACrF;AACO,SAASC,EAAaD,GAAc;AACvC,SAAOd,EAAKc,EAAM,GAAGA,EAAM,QAAQA,EAAM,SAASA,EAAM,WAAWA,EAAM,SAAS;AACtF;AAEA,MAAME,IAA4C;AAAA,EAC9C,CAAC,UAAU,OAAO;AAAA,EAClB,CAAC,OAAO,OAAO;AAAA,EACf,CAAC,UAAU,OAAO;AAAA,EAClB,CAAC,UAAU,MAAM;AAAA,EACjB,CAAC,OAAO,MAAM;AAAA,EACd,CAAC,UAAU,MAAM;AAAA,EACjB,CAAC,OAAO,QAAQ;AAAA,EAChB,CAAC,UAAU,QAAQ;AACvB,GACMC,IAAe,GACfC,IAAsB,EAAC,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,EAAA;AACvD,SAASC,EAAsBC,GAAgBC,GAAgBb,IAAUS,GAAcR,IAAUQ,GAAc;AAClH,QAAMK,IAAYJ,GACZK,IAAW,IAAIC,EAAAA;AAErB,SAAO,CAAC7B,GAAWM,GAAWwB,GAAWC,GAAW7B,MAAmD;AACnG,eAAW,CAAC8B,GAAWC,CAAS,KAAKZ;AAGjC,UAFAT,EAAkBZ,GAAGM,GAAGwB,GAAGC,GAAG7B,GAAS+B,GAAWD,GAAWnB,GAASC,GAASa,CAAS,GAEpFX,EAASW,GAAWF,GAAQC,CAAM,KAAK,CAACE,EAAS,SAASD,CAAS;AACnE,eAAAC,EAAS,OAAO,EAAC,GAAGD,GAAU,GACvB,CAACM,GAAWD,CAAS;AAIpC,WAAO;AAAA,EACX;AACJ;","x_google_ignoreList":[0]}