@deck.gl-community/infovis-layers 9.3.5 → 9.3.7

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 (126) hide show
  1. package/dist/index.cjs +2998 -114
  2. package/dist/index.cjs.map +4 -4
  3. package/dist/index.d.ts +11 -2
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +9 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/layers/animation-layer/animation-layer.d.ts +30 -0
  8. package/dist/layers/animation-layer/animation-layer.d.ts.map +1 -0
  9. package/dist/layers/animation-layer/animation-layer.js +53 -0
  10. package/dist/layers/animation-layer/animation-layer.js.map +1 -0
  11. package/dist/layers/animation-layer/animation.d.ts +86 -0
  12. package/dist/layers/animation-layer/animation.d.ts.map +1 -0
  13. package/dist/layers/animation-layer/animation.js +214 -0
  14. package/dist/layers/animation-layer/animation.js.map +1 -0
  15. package/dist/layers/block-layer/block-layer-fragment.glsl.d.ts +3 -0
  16. package/dist/layers/block-layer/block-layer-fragment.glsl.d.ts.map +1 -0
  17. package/dist/layers/block-layer/block-layer-fragment.glsl.js +41 -0
  18. package/dist/layers/block-layer/block-layer-fragment.glsl.js.map +1 -0
  19. package/dist/layers/block-layer/block-layer-uniforms.d.ts +27 -0
  20. package/dist/layers/block-layer/block-layer-uniforms.d.ts.map +1 -0
  21. package/dist/layers/block-layer/block-layer-uniforms.js +26 -0
  22. package/dist/layers/block-layer/block-layer-uniforms.js.map +1 -0
  23. package/dist/layers/block-layer/block-layer-vertex.glsl.d.ts +3 -0
  24. package/dist/layers/block-layer/block-layer-vertex.glsl.d.ts.map +1 -0
  25. package/dist/layers/block-layer/block-layer-vertex.glsl.js +67 -0
  26. package/dist/layers/block-layer/block-layer-vertex.glsl.js.map +1 -0
  27. package/dist/layers/block-layer/block-layer.d.ts +71 -0
  28. package/dist/layers/block-layer/block-layer.d.ts.map +1 -0
  29. package/dist/layers/block-layer/block-layer.js +108 -0
  30. package/dist/layers/block-layer/block-layer.js.map +1 -0
  31. package/dist/layers/fast-text-layer/fast-text-layer.d.ts +148 -0
  32. package/dist/layers/fast-text-layer/fast-text-layer.d.ts.map +1 -0
  33. package/dist/layers/fast-text-layer/fast-text-layer.js +862 -0
  34. package/dist/layers/fast-text-layer/fast-text-layer.js.map +1 -0
  35. package/dist/layers/fast-text-layer/fast-text-layer.test.d.ts +2 -0
  36. package/dist/layers/fast-text-layer/fast-text-layer.test.d.ts.map +1 -0
  37. package/dist/layers/fast-text-layer/fast-text-layer.test.js +300 -0
  38. package/dist/layers/fast-text-layer/fast-text-layer.test.js.map +1 -0
  39. package/dist/layers/fast-text-layer/fast-text-layout.d.ts +179 -0
  40. package/dist/layers/fast-text-layer/fast-text-layout.d.ts.map +1 -0
  41. package/dist/layers/fast-text-layer/fast-text-layout.js +665 -0
  42. package/dist/layers/fast-text-layer/fast-text-layout.js.map +1 -0
  43. package/dist/layers/fast-text-layer/font-atlas.d.ts +98 -0
  44. package/dist/layers/fast-text-layer/font-atlas.d.ts.map +1 -0
  45. package/dist/layers/fast-text-layer/font-atlas.js +337 -0
  46. package/dist/layers/fast-text-layer/font-atlas.js.map +1 -0
  47. package/dist/layers/fast-text-layer/index.d.ts +4 -0
  48. package/dist/layers/fast-text-layer/index.d.ts.map +1 -0
  49. package/dist/layers/fast-text-layer/index.js +4 -0
  50. package/dist/layers/fast-text-layer/index.js.map +1 -0
  51. package/dist/layers/time-delta-layer.d.ts +22 -60
  52. package/dist/layers/time-delta-layer.d.ts.map +1 -1
  53. package/dist/layers/time-delta-layer.js +23 -45
  54. package/dist/layers/time-delta-layer.js.map +1 -1
  55. package/dist/synchronized-views/synchronized-views.js +1 -1
  56. package/dist/synchronized-views/synchronized-views.js.map +1 -1
  57. package/dist/utils/format-utils.d.ts +27 -3
  58. package/dist/utils/format-utils.d.ts.map +1 -1
  59. package/dist/utils/format-utils.js +72 -40
  60. package/dist/utils/format-utils.js.map +1 -1
  61. package/dist/utils/utf8-string-view.d.ts +53 -0
  62. package/dist/utils/utf8-string-view.d.ts.map +1 -0
  63. package/dist/utils/utf8-string-view.js +169 -0
  64. package/dist/utils/utf8-string-view.js.map +1 -0
  65. package/dist/utils/utf8-string-view.test.d.ts +2 -0
  66. package/dist/utils/utf8-string-view.test.d.ts.map +1 -0
  67. package/dist/utils/utf8-string-view.test.js +88 -0
  68. package/dist/utils/utf8-string-view.test.js.map +1 -0
  69. package/dist/views/bounds-utils.d.ts +23 -0
  70. package/dist/views/bounds-utils.d.ts.map +1 -0
  71. package/dist/views/bounds-utils.js +65 -0
  72. package/dist/views/bounds-utils.js.map +1 -0
  73. package/dist/views/layer-bounds-filter.d.ts +48 -0
  74. package/dist/views/layer-bounds-filter.d.ts.map +1 -0
  75. package/dist/views/layer-bounds-filter.js +99 -0
  76. package/dist/views/layer-bounds-filter.js.map +1 -0
  77. package/dist/views/orthographic-utils.d.ts +30 -2
  78. package/dist/views/orthographic-utils.d.ts.map +1 -1
  79. package/dist/views/orthographic-utils.js +33 -14
  80. package/dist/views/orthographic-utils.js.map +1 -1
  81. package/dist/views/view-layout/build-views-from-view-layout.d.ts +37 -0
  82. package/dist/views/view-layout/build-views-from-view-layout.d.ts.map +1 -0
  83. package/dist/views/view-layout/build-views-from-view-layout.js +413 -0
  84. package/dist/views/view-layout/build-views-from-view-layout.js.map +1 -0
  85. package/dist/views/view-layout/index.d.ts +3 -0
  86. package/dist/views/view-layout/index.d.ts.map +1 -0
  87. package/dist/views/view-layout/index.js +3 -0
  88. package/dist/views/view-layout/index.js.map +1 -0
  89. package/dist/views/view-layout/view-layout-item.d.ts +74 -0
  90. package/dist/views/view-layout/view-layout-item.d.ts.map +1 -0
  91. package/dist/views/view-layout/view-layout-item.js +48 -0
  92. package/dist/views/view-layout/view-layout-item.js.map +1 -0
  93. package/dist/views/view-layout/view-layout.test.d.ts +2 -0
  94. package/dist/views/view-layout/view-layout.test.d.ts.map +1 -0
  95. package/dist/views/view-layout/view-layout.test.js +112 -0
  96. package/dist/views/view-layout/view-layout.test.js.map +1 -0
  97. package/dist/views/viewport-bounds-utils.d.ts +55 -0
  98. package/dist/views/viewport-bounds-utils.d.ts.map +1 -0
  99. package/dist/views/viewport-bounds-utils.js +70 -0
  100. package/dist/views/viewport-bounds-utils.js.map +1 -0
  101. package/package.json +11 -4
  102. package/src/index.ts +91 -2
  103. package/src/layers/animation-layer/animation-layer.ts +92 -0
  104. package/src/layers/animation-layer/animation.ts +328 -0
  105. package/src/layers/block-layer/block-layer-fragment.glsl.ts +41 -0
  106. package/src/layers/block-layer/block-layer-uniforms.ts +43 -0
  107. package/src/layers/block-layer/block-layer-vertex.glsl.ts +67 -0
  108. package/src/layers/block-layer/block-layer.ts +199 -0
  109. package/src/layers/fast-text-layer/fast-text-layer.test.ts +359 -0
  110. package/src/layers/fast-text-layer/fast-text-layer.ts +1208 -0
  111. package/src/layers/fast-text-layer/fast-text-layout.ts +1124 -0
  112. package/src/layers/fast-text-layer/font-atlas.ts +574 -0
  113. package/src/layers/fast-text-layer/index.ts +37 -0
  114. package/src/layers/time-delta-layer.ts +47 -62
  115. package/src/synchronized-views/synchronized-views.ts +1 -1
  116. package/src/utils/format-utils.ts +90 -40
  117. package/src/utils/utf8-string-view.test.ts +119 -0
  118. package/src/utils/utf8-string-view.ts +273 -0
  119. package/src/views/bounds-utils.ts +88 -0
  120. package/src/views/layer-bounds-filter.ts +160 -0
  121. package/src/views/orthographic-utils.ts +65 -18
  122. package/src/views/view-layout/build-views-from-view-layout.ts +547 -0
  123. package/src/views/view-layout/index.ts +18 -0
  124. package/src/views/view-layout/view-layout-item.ts +125 -0
  125. package/src/views/view-layout/view-layout.test.ts +129 -0
  126. package/src/views/viewport-bounds-utils.ts +104 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fast-text-layout.js","sourceRoot":"","sources":["../../../src/layers/fast-text-layer/fast-text-layout.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+BAA+B;AAE/B,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAC,wBAAwB,EAAE,0BAA0B,EAAC,wCAAqC;AAgClG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAC7C,UAAU,CAAC,iBAAiB,GAAG,EAAE,GAAG,UAAU,CAAC,iBAAiB,GAAG,CAAC,CAAC;AAmJvE,oFAAoF;AACpF,MAAM,UAAU,6BAA6B,CAC3C,UAAoC;IAEpC,OAAO,wBAAwB,CAAC,UAAU,CAAC,CAAC;AAC9C,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,2BAA2B,CACzC,KAA8C;IAE9C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,MAAM,EAAC,QAAQ,EAAE,UAAU,EAAC,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE1D,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;QACtE,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,sBAAsB,CACpC,KAAyC;IAEzC,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,wBAAwB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACnD,MAAM,cAAc,GAAG,+BAA+B,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC7E,MAAM,yBAAyB,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,wBAAwB,CAAC;IAC/E,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU;QAChC,CAAC,CAAC,wBAAwB,CAAC;YACvB,GAAG,KAAK;YACR,cAAc;SACf,CAAC;QACJ,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,2BAA2B,CAAC,SAAS,EAAE;QAC5C,yBAAyB;QACzB,eAAe,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,cAAc;KACpD,CAAC,CAAC;AACL,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,wBAAwB,CACtC,KAGC;IAED,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC;IAC3D,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAG,+BAA+B,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC/D,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC;IACjE,MAAM,UAAU,GAA4B;QAC1C,UAAU,EAAE,CAAC;QACb,YAAY;QACZ,UAAU;QACV,gBAAgB,EAAE,8BAA8B,CAAC,UAAU,CAAC,iBAAiB,CAAC;KAC/E,CAAC;IACF,MAAM,YAAY,GAAG,+BAA+B,EAAE,CAAC;IACvD,MAAM,UAAU,GACd,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,4BAA4B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjG,MAAM,eAAe,GAAmB,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAC,CAAC;IAC9E,MAAM,EAAC,QAAQ,EAAE,UAAU,EAAC,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE1D,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACzC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC;QACvD,IAAI,KAAK,CAAC,cAAc,IAAI,UAAU,EAAE,CAAC;YACvC,8BAA8B,CAC5B,KAAK,EACL,KAAK,CAAC,cAAc,EACpB,UAAU,EACV,eAAe,EACf,MAAM,EACN,UAAU,EACV,UAAU,EACV,YAAY,CACb,CAAC;QACJ,CAAC;aAAM,IAAI,KAAK,CAAC,WAAW,IAAI,UAAU,EAAE,CAAC;YAC3C,kCAAkC,CAChC,KAAK,EACL,KAAK,CAAC,WAAW,EACjB,UAAU,EACV,eAAe,EACf,MAAM,EACN,UAAU,EACV,UAAU,EACV,YAAY,CACb,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,gCAAgC,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IACD,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC;IAC3D,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC;IAE3D,OAAO,uBAAuB,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE;QACpE,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;QAC7F,UAAU,EAAE,aAAa;QACzB,yBAAyB,EAAE,CAAC;QAC5B,eAAe;QACf,kBAAkB;QAClB,eAAe;QACf,GAAG,YAAY;QACf,eAAe,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,cAAc;KACpD,CAAC,CAAC;AACL,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,uBAAuB,CACrC,KAAyC;IAEzC,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC;IAC3D,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAG,+BAA+B,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC/D,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC;IACjE,MAAM,UAAU,GAA4B;QAC1C,UAAU,EAAE,CAAC;QACb,YAAY;QACZ,UAAU;QACV,gBAAgB,EAAE,8BAA8B,CAAC,UAAU,CAAC,iBAAiB,CAAC;KAC/E,CAAC;IACF,MAAM,YAAY,GAAG,+BAA+B,EAAE,CAAC;IACvD,MAAM,EAAC,QAAQ,EAAE,UAAU,EAAC,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE1D,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACzC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC;QACvD,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IACjF,CAAC;IACD,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC;IAC3D,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC;IAE3D,OAAO,uBAAuB,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE;QACpE,UAAU,EAAE,QAAQ;QACpB,UAAU,EAAE,YAAY;QACxB,yBAAyB,EAAE,CAAC;QAC5B,eAAe;QACf,kBAAkB;QAClB,eAAe;QACf,GAAG,YAAY;QACf,eAAe,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,cAAc;KACpD,CAAC,CAAC;AACL,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,oCAAoC,CAClD,KAAuD;IAEvD,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC1C,MAAM,gBAAgB,GAAG,8BAA8B,CACrD,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,CAC7C,CAAC;IACF,MAAM,EAAC,QAAQ,EAAE,UAAU,EAAC,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,0BAA0B,GAAG,CAAC,CAAC;IACnC,IAAI,uBAAuB,GAAG,CAAC,CAAC;IAChC,IAAI,0BAA0B,GAAG,CAAC,CAAC;IACnC,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,QAAQ,EAAE,CAAC;QACX,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1E,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,aAAa,CAAC;QACxF,IAAI,WAAW,IAAI,aAAa,EAAE,CAAC;YACjC,SAAS;QACX,CAAC;QAED,IAAI,QAAQ,GAAa,gBAAgB,CAAC;QAC1C,IAAI,KAAK,GAAU,aAAa,CAAC;QACjC,IAAI,QAAQ,GAAqB,iBAAiB,CAAC;QACnD,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAC5C,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,gBAAgB,CAAC;YACtF,0BAA0B,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC;QACtE,CAAC;QACD,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAC5C,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,aAAa,CAAC;YAC7E,uBAAuB,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC;QACnE,CAAC;QACD,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAC5C,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,iBAAiB,CAAC;YACvF,0BAA0B,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC;QACtE,CAAC;QAED,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACzC,KAAK,IAAI,UAAU,GAAG,aAAa,EAAE,UAAU,GAAG,WAAW,EAAE,UAAU,IAAI,CAAC,EAAE,CAAC;YAC/E,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;gBAC1B,0BAA0B,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC/E,CAAC;YACD,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;gBAC1B,0BAA0B,CAAC,gBAAgB,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACvB,uBAAuB,CAAC,gBAAgB,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QACD,eAAe,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC;QACtD,UAAU,IAAI,WAAW,GAAG,aAAa,CAAC;IAC5C,CAAC;IAED,OAAO;QACL,QAAQ;QACR,UAAU;QACV,mBAAmB,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU;QAC/C,0BAA0B;QAC1B,uBAAuB;QACvB,0BAA0B;QAC1B,eAAe;QACf,eAAe,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,eAAe;KACrD,CAAC;AACJ,CAAC;AAqDD,MAAM,yBAAyB,GAAG,EAAE,CAAC;AACrC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AACvC,MAAM,WAAW,GAAG,IAAI,UAAU,EAAE,CAAC;AACrC,MAAM,aAAa,GAA8C,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAChF,MAAM,gBAAgB,GAAsC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACtE,MAAM,iBAAiB,GAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3D,MAAM,wBAAwB,GAAmC;IAC/D,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC,GAAG;IACZ,GAAG,EAAE,CAAC,CAAC;CACR,CAAC;AACF,MAAM,0BAA0B,GAA8C;IAC5E,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,CAAC,GAAG;IACZ,MAAM,EAAE,CAAC,CAAC;CACX,CAAC;AAEF,4FAA4F;AAC5F,SAAS,6BAA6B,CACpC,KAMC;IAED,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,OAAO,iCAAiC,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,OAAO,qCAAqC,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,mCAAmC,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC;AAED,+EAA+E;AAC/E,SAAS,iCAAiC,CACxC,KAA0E,EAC1E,cAAwC;IAExC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,MAAM,QAAQ,GAAmB,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAC,CAAC;IACvE,MAAM,EAAC,QAAQ,EAAE,UAAU,EAAC,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE1D,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,QAAQ,EAAE,CAAC;QACX,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC9E,IAAI,QAAQ,IAAI,IAAI,IAAI,CAAC,0BAA0B,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;YACxF,SAAS;QACX,CAAC;QACD,UAAU,IAAI,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC9C,CAAC;IAED,OAAO,EAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAC,CAAC;AAC9C,CAAC;AAED,yEAAyE;AACzE,SAAS,qCAAqC,CAC5C,KAAuD,EACvD,WAA4C;IAE5C,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,MAAM,QAAQ,GAAmB,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAC,CAAC;IACvE,MAAM,EAAC,QAAQ,EAAE,UAAU,EAAC,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE1D,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,QAAQ,EAAE,CAAC;QACX,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;YAC9C,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,EAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAC,CAAC;AAC9C,CAAC;AAED,8FAA8F;AAC9F,SAAS,mCAAmC,CAC1C,KAAmE;IAEnE,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,MAAM,EAAC,QAAQ,EAAE,UAAU,EAAC,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE1D,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,QAAQ,EAAE,CAAC;QACX,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;QACtE,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC;QAC1B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACpD,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,EAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAC,CAAC;AAC9C,CAAC;AAED,0FAA0F;AAC1F,SAAS,4BAA4B,CACnC,KAA+E;IAE/E,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,MAAM,EAAC,QAAQ,EAAE,UAAU,EAAC,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE1D,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,QAAQ,EAAE,CAAC;QACX,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;QACtE,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,SAAS;YACX,CAAC;YACD,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5B,UAAU,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,EAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAC,CAAC;AAC9C,CAAC;AAED,+DAA+D;AAC/D,SAAS,+BAA+B,CAAC,UAAkB;IACzD,OAAO;QACL,iBAAiB,EAAE,IAAI,UAAU,CAAC,UAAU,GAAG,kCAAkC,CAAC;QAClF,iBAAiB,EAAE,IAAI,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,qEAAqE;AACrE,SAAS,8BAA8B,CAAC,iBAA6B;IACnE,OAAO;QACL,WAAW,EAAE,IAAI,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC;QACrD,YAAY,EAAE,IAAI,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC;QACvD,WAAW,EAAE,iBAAiB;KAC/B,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,SAAS,uBAAuB,CAC9B,WAA+B,EAC/B,YAAyB,EACzB,UAAmC,EACnC,KAAuF;IAEvF,MAAM,UAAU,GACd,YAAY,CAAC,UAAU;QACvB,UAAU,CAAC,iBAAiB,CAAC,UAAU;QACvC,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC;IAC1C,OAAO;QACL,MAAM,EAAE,WAAW,CAAC,UAAU;QAC9B,YAAY;QACZ,UAAU;QACV,YAAY,EAAE,WAAW,CAAC,YAAY;QACtC,UAAU;QACV,UAAU,EAAE;YACV,GAAG,KAAK;YACR,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,mBAAmB,EAAE,UAAU;SAChC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,+BAA+B;IACtC,OAAO;QACL,qBAAqB,EAAE,CAAC;QACxB,uBAAuB,EAAE,CAAC;QAC1B,gBAAgB,EAAE,CAAC;QACnB,oBAAoB,EAAE,CAAC;KACxB,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,SAAS,2BAA2B,CAClC,SAA4B,EAC5B,KAAqF;IAErF,OAAO;QACL,GAAG,SAAS;QACZ,UAAU,EAAE;YACV,GAAG,SAAS,CAAC,UAAU;YACvB,GAAG,KAAK;SACT;KACF,CAAC;AACJ,CAAC;AAED,yFAAyF;AACzF,SAAS,gCAAgC,CACvC,KAAyC,EACzC,MAAa,EACb,UAAkC,EAClC,UAAmC,EACnC,OAAkC;IAElC,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC/C,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;IACtE,OAAO,CAAC,qBAAqB,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,oBAAoB,CAAC;IAC1E,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;IACT,CAAC;IAED,MAAM,sBAAsB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,gBAAgB,CAAC;IAC5F,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,aAAa,CAAC;IACnF,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,iBAAiB,CAAC;IAC7F,OAAO,CAAC,uBAAuB,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,sBAAsB,CAAC;IAE9E,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,wBAAwB,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;IACvE,MAAM,YAAY,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACnD,OAAO,CAAC,gBAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC;IAEhE,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC9C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvC,wBAAwB,CAAC;YACvB,KAAK;YACL,WAAW;YACX,OAAO;YACP,YAAY;YACZ,QAAQ;YACR,KAAK;YACL,QAAQ;YACR,UAAU;SACX,CAAC,CAAC;QACH,OAAO,IAAI,KAAK,EAAE,OAAO,IAAI,yBAAyB,CAAC;IACzD,CAAC;IACD,OAAO,CAAC,oBAAoB,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,mBAAmB,CAAC;AAC1E,CAAC;AAED,kFAAkF;AAClF,SAAS,8BAA8B,CACrC,KAAyC,EACzC,cAAwC,EACxC,UAAmC,EACnC,QAAwB,EACxB,MAAa,EACb,UAAkC,EAClC,UAAmC,EACnC,OAAkC;IAElC,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9E,MAAM,WAAW,GACf,QAAQ,IAAI,IAAI,IAAI,0BAA0B,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACrF,OAAO,CAAC,qBAAqB,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,oBAAoB,CAAC;IAC1E,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnC,OAAO;IACT,CAAC;IAED,MAAM,sBAAsB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,gBAAgB,CAAC;IAC5F,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,aAAa,CAAC;IACnF,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,iBAAiB,CAAC;IAC7F,OAAO,CAAC,uBAAuB,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,sBAAsB,CAAC;IAE9E,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,sBAAsB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,wBAAwB,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;IACvE,MAAM,YAAY,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACnD,OAAO,CAAC,gBAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC;IAEhE,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC9C,KAAK,IAAI,SAAS,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,EAAE,CAAC;QAC9E,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzD,wBAAwB,CAAC;YACvB,KAAK;YACL,WAAW;YACX,OAAO;YACP,YAAY;YACZ,QAAQ;YACR,KAAK;YACL,QAAQ;YACR,UAAU;SACX,CAAC,CAAC;QACH,OAAO,IAAI,KAAK,EAAE,OAAO,IAAI,yBAAyB,CAAC;IACzD,CAAC;IACD,OAAO,CAAC,oBAAoB,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,mBAAmB,CAAC;AAC1E,CAAC;AAED,wFAAwF;AACxF,SAAS,kCAAkC,CACzC,KAAyC,EACzC,WAA4C,EAC5C,UAAmC,EACnC,QAAwB,EACxB,MAAa,EACb,UAAkC,EAClC,UAAmC,EACnC,OAAkC;IAElC,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC/C,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC9D,OAAO,CAAC,qBAAqB,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,oBAAoB,CAAC;IAC1E,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnD,OAAO;IACT,CAAC;IAED,MAAM,sBAAsB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,gBAAgB,CAAC;IAC5F,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,aAAa,CAAC;IACnF,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,iBAAiB,CAAC;IAC7F,OAAO,CAAC,uBAAuB,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,sBAAsB,CAAC;IAE9E,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,sBAAsB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,wBAAwB,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;IACvE,MAAM,YAAY,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACnD,OAAO,CAAC,gBAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC;IAEhE,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC9C,KAAK,IAAI,SAAS,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,EAAE,CAAC;QAC9E,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzD,wBAAwB,CAAC;YACvB,KAAK;YACL,WAAW;YACX,OAAO;YACP,YAAY;YACZ,QAAQ;YACR,KAAK;YACL,QAAQ;YACR,UAAU;SACX,CAAC,CAAC;QACH,OAAO,IAAI,KAAK,EAAE,OAAO,IAAI,yBAAyB,CAAC;IACzD,CAAC;IACD,OAAO,CAAC,oBAAoB,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,mBAAmB,CAAC;AAC1E,CAAC;AAED,4EAA4E;AAC5E,SAAS,yBAAyB,CAChC,KAAyC,EACzC,MAAa,EACb,UAAkC,EAClC,UAAmC,EACnC,OAAkC;IAElC,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC/C,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;IACtE,OAAO,CAAC,qBAAqB,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,oBAAoB,CAAC;IAC1E,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;IACT,CAAC;IAED,MAAM,sBAAsB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,gBAAgB,CAAC;IAC5F,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,aAAa,CAAC;IACnF,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,iBAAiB,CAAC;IAC7F,OAAO,CAAC,uBAAuB,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,sBAAsB,CAAC;IAE9E,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5D,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC3D,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC;IACpD,MAAM,YAAY,GAAG,0BAA0B,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC;IACvF,OAAO,CAAC,gBAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC;IAEhE,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC9C,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9B,MAAM,WAAW,GAAG,wBAAwB,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5E,MAAM,YAAY,GAChB,YAAY,GAAG,KAAK,CAAC,cAAc,GAAG,gBAAgB,GAAG,CAAC,GAAG,SAAS,GAAG,gBAAgB,CAAC;QAC5F,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACvC,wBAAwB,CAAC;gBACvB,KAAK;gBACL,WAAW;gBACX,OAAO;gBACP,YAAY;gBACZ,QAAQ;gBACR,KAAK;gBACL,QAAQ;gBACR,UAAU;aACX,CAAC,CAAC;YACH,OAAO,IAAI,KAAK,EAAE,OAAO,IAAI,yBAAyB,CAAC;QACzD,CAAC;IACH,CAAC;IACD,OAAO,CAAC,oBAAoB,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,mBAAmB,CAAC;AAC1E,CAAC;AAED,wEAAwE;AACxE,SAAS,wBAAwB,CAC/B,IAAY,EACZ,OAAiC;IAEjC,MAAM,KAAK,GAAyB,EAAE,CAAC;IACvC,IAAI,iBAAiB,GAAa,EAAE,CAAC;IACrC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAE1B,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC;gBACT,UAAU,EAAE,iBAAiB;gBAC7B,KAAK,EAAE,YAAY;gBACnB,UAAU,EAAE,iBAAiB;aAC9B,CAAC,CAAC;YACH,iBAAiB,GAAG,EAAE,CAAC;YACvB,YAAY,GAAG,CAAC,CAAC;YACjB,iBAAiB,GAAG,CAAC,CAAC;YACtB,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QACjC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,YAAY,IAAI,KAAK,EAAE,OAAO,IAAI,yBAAyB,CAAC;QAC5D,IAAI,KAAK,EAAE,CAAC;YACV,iBAAiB,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC;QACT,UAAU,EAAE,iBAAiB;QAC7B,KAAK,EAAE,YAAY;QACnB,UAAU,EAAE,iBAAiB;KAC9B,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,kGAAkG;AAClG,SAAS,+BAA+B,CACtC,cAAqD;IAErD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,0BAA0B,CAAC,cAAc,CAAC;QAC/C,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,6BAA6B,CAAC,cAAc,CAAC,CAAC;AACpD,CAAC;AAED,qFAAqF;AACrF,SAAS,0BAA0B,CACjC,cAAkC;IAElC,OAAO,UAAU,IAAI,cAAc,IAAI,QAAQ,IAAI,cAAc,CAAC;AACpE,CAAC;AAED,+EAA+E;AAC/E,SAAS,4BAA4B,CAAC,OAAiC;IACrE,MAAM,MAAM,GAAG,IAAI,KAAK,CAAgC,0BAA0B,CAAC,CAAC;IACpF,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,0DAA0D;AAC1D,SAAS,kBAAkB,CACzB,cAA0D,EAC1D,MAAa,EACb,UAAkC;IAElC,OAAO,cAAc,KAAK,SAAS;QACjC,CAAC,CAAC,UAAU,CAAC,KAAK;QAClB,CAAC,CAAC,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC1D,CAAC;AAED,yFAAyF;AACzF,SAAS,wBAAwB,CAAC,IAAY,EAAE,OAAiC;IAC/E,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC,EAAE,OAAO,IAAI,yBAAyB,CAAC;IACvE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2FAA2F;AAC3F,SAAS,sBAAsB,CAC7B,QAAwB,EACxB,UAAmC;IAEnC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,SAAS,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,EAAE,CAAC;QAC9E,KAAK,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,yBAAyB,CAAC;IAC5F,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4DAA4D;AAC5D,SAAS,sBAAsB,CAAQ,KAAyC;IAC9E,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC3D,MAAM,YAAY,GAAG,0BAA0B,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,gBAAgB,CAAC;IAC5F,OAAO,YAAY,GAAG,KAAK,CAAC,cAAc,GAAG,gBAAgB,GAAG,CAAC,CAAC;AACpE,CAAC;AAED,yEAAyE;AACzE,SAAS,wBAAwB,CAAC,MAiBjC;IACC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;IAChD,MAAM,gBAAgB,GACpB,CAAC,UAAU,GAAG,kCAAkC,CAAC,GAAG,UAAU,CAAC,iBAAiB,CAAC;IACnF,MAAM,MAAM,GACV,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IAErC,0BAA0B,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/E,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5E,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,gBAAgB,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChF,UAAU,CAAC,gBAAgB,CAAC,YAAY,CAAC,gBAAgB,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACzF,UAAU,CAAC,gBAAgB,CAAC,YAAY,CAAC,gBAAgB,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACzF,UAAU,CAAC,gBAAgB,CAAC,YAAY,CAAC,gBAAgB,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;IAC7F,UAAU,CAAC,gBAAgB,CAAC,YAAY,CAAC,gBAAgB,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;IAC9F,0BAA0B,CAAC,UAAU,CAAC,gBAAgB,EAAE,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrF,uBAAuB,CAAC,UAAU,CAAC,gBAAgB,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/E,UAAU,CAAC,UAAU,EAAE,CAAC;AAC1B,CAAC;AAED,mFAAmF;AACnF,SAAS,0BAA0B,CACjC,UAAmC,EACnC,UAAkB,EAClB,QAAkB;IAElB,MAAM,cAAc,GAAG,UAAU,GAAG,CAAC,CAAC;IACtC,UAAU,CAAC,iBAAiB,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAChE,UAAU,CAAC,iBAAiB,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtE,CAAC;AAED,8EAA8E;AAC9E,SAAS,0BAA0B,CACjC,gBAA0C,EAC1C,UAAkB,EAClB,QAA0B;IAE1B,MAAM,gBAAgB,GACpB,CAAC,UAAU,GAAG,kCAAkC,CAAC,GAAG,UAAU,CAAC,iBAAiB,CAAC;IACnF,gBAAgB,CAAC,WAAW,CAAC,gBAAgB,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/E,gBAAgB,CAAC,WAAW,CAAC,gBAAgB,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/E,gBAAgB,CAAC,WAAW,CAAC,gBAAgB,GAAG,CAAC,CAAC,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7F,gBAAgB,CAAC,WAAW,CAAC,gBAAgB,GAAG,CAAC,CAAC,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED,qEAAqE;AACrE,SAAS,uBAAuB,CAC9B,gBAA0C,EAC1C,UAAkB,EAClB,KAAY;IAEZ,MAAM,eAAe,GAAG,UAAU,GAAG,kCAAkC,CAAC;IACxE,UAAU,CACR,gBAAgB,CAAC,WAAW,EAC5B,eAAe,GAAG,UAAU,CAAC,iBAAiB,GAAG,EAAE,EACnD,KAAK,CACN,CAAC;AACJ,CAAC;AAED,iEAAiE;AACjE,SAAS,eAAe,CACtB,QAAiC,EACjC,MAAa,EACb,UAAkC;IAElC,OAAO,OAAO,QAAQ,KAAK,UAAU;QACnC,CAAC,CAAE,QAA0E,CACzE,MAAM,EACN,UAAU,CACX;QACH,CAAC,CAAC,QAAQ,CAAC;AACf,CAAC;AAED,0EAA0E;AAC1E,SAAS,UAAU,CAAC,MAAkB,EAAE,MAAc,EAAE,KAAY;IAClE,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,4DAA4D;AAC5D,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,qFAAqF;AACrF,SAAS,OAAO,CAAC,KAAa;IAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,YAAY,GAAG,CAAC,KAAK,IAAI,YAAY,GAAG,KAAK,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,qCAAqC,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,0EAA0E;AAC1E,SAAS,oBAAoB,CAAC,KAAa;IACzC,MAAM,YAAY,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpF,IAAI,YAAY,GAAG,CAAC,KAAK,IAAI,YAAY,GAAG,KAAK,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,qCAAqC,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,mGAAmG;AACnG,SAAS,QAAQ,CAAC,KAAa;IAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,YAAY,GAAG,CAAC,IAAI,YAAY,GAAG,KAAK,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CACb,mCAAmC,KAAK,uCAAuC,CAChF,CAAC;IACJ,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}
@@ -0,0 +1,98 @@
1
+ /** One rasterized font glyph entry in atlas pixel coordinates. */
2
+ export type FastTextCharacter = {
3
+ /** Left atlas pixel coordinate. */
4
+ x: number;
5
+ /** Top atlas pixel coordinate. */
6
+ y: number;
7
+ /** Glyph bitmap width in atlas pixels. */
8
+ width: number;
9
+ /** Glyph bitmap height in atlas pixels. */
10
+ height: number;
11
+ /** Horizontal anchor in glyph bitmap pixels. */
12
+ anchorX: number;
13
+ /** Vertical anchor in glyph bitmap pixels. */
14
+ anchorY: number;
15
+ /** Horizontal cursor advance in atlas pixels. */
16
+ advance: number;
17
+ };
18
+ /** Lookup from a rendered character to its atlas frame and metrics. */
19
+ export type FastTextCharacterMapping = Record<string, FastTextCharacter | undefined>;
20
+ /** Font rasterization inputs used to build a generated atlas. */
21
+ export type FastTextFontSettings = {
22
+ /** CSS font family used when rasterizing glyphs. */
23
+ fontFamily?: string;
24
+ /** CSS font weight used when rasterizing glyphs. */
25
+ fontWeight?: string | number;
26
+ /** Characters to rasterize into the atlas. */
27
+ characterSet?: Set<string> | readonly string[] | string;
28
+ /** Atlas rasterization size in CSS pixels. */
29
+ fontSize?: number;
30
+ /** Transparent pixel padding around every glyph. */
31
+ buffer?: number;
32
+ /** Whether generated atlases encode signed distance fields. */
33
+ sdf?: boolean;
34
+ /** SDF inside-glyph cutoff. Larger values make glyphs thinner. */
35
+ cutoff?: number;
36
+ /** SDF distance radius in atlas pixels. */
37
+ radius?: number;
38
+ /** SDF edge smoothing used by the shader. */
39
+ smoothing?: number;
40
+ };
41
+ /** Font atlas consumed by {@link FastTextLayer}. */
42
+ export type FastTextFontAtlas = {
43
+ /** Distance from a label baseline to its visual center in atlas pixels. */
44
+ baselineOffset: number;
45
+ /** Glyph metric lookup keyed by rendered character. */
46
+ mapping: FastTextCharacterMapping;
47
+ /** Canvas containing the packed glyph bitmaps. */
48
+ data: HTMLCanvasElement;
49
+ /** Atlas width in pixels. */
50
+ width: number;
51
+ /** Atlas height in pixels. */
52
+ height: number;
53
+ };
54
+ /** Default font settings used by {@link FastTextLayer}. */
55
+ export declare const DEFAULT_FAST_TEXT_FONT_SETTINGS: Required<FastTextFontSettings>;
56
+ /** Build a font atlas for a fixed character set without retaining a process cache. */
57
+ export declare function createFastTextFontAtlas(settings?: FastTextFontSettings): FastTextFontAtlas;
58
+ /** Build glyph atlas frames from text measurements without drawing the atlas canvas. */
59
+ export declare function buildFastTextCharacterMapping({ characterSet, measureText, buffer, maxCanvasWidth }: {
60
+ /** Characters that need atlas entries. */
61
+ characterSet: Set<string>;
62
+ /** Glyph measurement callback for one character. */
63
+ measureText: (character: string) => FastTextMeasuredCharacter;
64
+ /** Transparent pixel padding around every glyph. */
65
+ buffer: number;
66
+ /** Maximum atlas row width in pixels. */
67
+ maxCanvasWidth: number;
68
+ }): {
69
+ /** Glyph metric lookup keyed by rendered character. */
70
+ mapping: FastTextCharacterMapping;
71
+ /** Power-of-two atlas height in pixels. */
72
+ canvasHeight: number;
73
+ };
74
+ /** Minimal atlas manager that rebuilds only when rasterization inputs change. */
75
+ export declare class FastTextFontAtlasManager {
76
+ /** Current resolved font settings. */
77
+ props: Required<FastTextFontSettings>;
78
+ private currentAtlas?;
79
+ private currentKey?;
80
+ /** Current atlas, if one has been built. */
81
+ get atlas(): Readonly<FastTextFontAtlas> | undefined;
82
+ /** Current character mapping, if an atlas has been built. */
83
+ get mapping(): FastTextCharacterMapping | undefined;
84
+ /** Update font settings and return whether the atlas was rebuilt. */
85
+ setProps(props?: FastTextFontSettings): boolean;
86
+ }
87
+ type FastTextMeasuredCharacter = {
88
+ /** Horizontal cursor advance in atlas pixels. */
89
+ readonly advance: number;
90
+ /** Glyph bitmap width in atlas pixels. */
91
+ readonly width: number;
92
+ /** Distance from baseline to glyph top in atlas pixels. */
93
+ readonly ascent: number;
94
+ /** Distance from baseline to glyph bottom in atlas pixels. */
95
+ readonly descent: number;
96
+ };
97
+ export {};
98
+ //# sourceMappingURL=font-atlas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"font-atlas.d.ts","sourceRoot":"","sources":["../../../src/layers/fast-text-layer/font-atlas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,337 @@
1
+ // deck.gl and luma.gl inspired text atlas utilities.
2
+ // SPDX-License-Identifier: MIT
3
+ /** Default font settings used by {@link FastTextLayer}. */
4
+ export const DEFAULT_FAST_TEXT_FONT_SETTINGS = {
5
+ fontFamily: 'Monaco, monospace',
6
+ fontWeight: 'normal',
7
+ characterSet: getDefaultCharacterSet(),
8
+ fontSize: 64,
9
+ buffer: 4,
10
+ sdf: true,
11
+ cutoff: 0.25,
12
+ radius: 12,
13
+ smoothing: 0.1
14
+ };
15
+ /** Build a font atlas for a fixed character set without retaining a process cache. */
16
+ export function createFastTextFontAtlas(settings = {}) {
17
+ if (typeof document === 'undefined') {
18
+ throw new Error('FastTextLayer font atlas generation requires document.createElement');
19
+ }
20
+ const resolvedSettings = {
21
+ ...DEFAULT_FAST_TEXT_FONT_SETTINGS,
22
+ ...settings,
23
+ characterSet: normalizeCharacterSet(settings.characterSet ?? DEFAULT_FAST_TEXT_FONT_SETTINGS.characterSet)
24
+ };
25
+ const canvas = document.createElement('canvas');
26
+ canvas.width = MAX_CANVAS_WIDTH;
27
+ const context = canvas.getContext('2d', { willReadFrequently: true });
28
+ if (!context) {
29
+ throw new Error('FastTextLayer font atlas generation requires a 2D canvas context');
30
+ }
31
+ setTextStyle(context, resolvedSettings);
32
+ const sdfRenderer = resolvedSettings.sdf
33
+ ? createFastTextSdfRenderer(resolvedSettings)
34
+ : undefined;
35
+ const mappingResult = buildFastTextCharacterMapping({
36
+ characterSet: resolvedSettings.characterSet,
37
+ measureText: character => measureFastText(context, resolvedSettings.fontSize, character),
38
+ buffer: resolvedSettings.buffer,
39
+ maxCanvasWidth: MAX_CANVAS_WIDTH
40
+ });
41
+ canvas.height = mappingResult.canvasHeight;
42
+ setTextStyle(context, resolvedSettings);
43
+ for (const character of resolvedSettings.characterSet) {
44
+ const frame = mappingResult.mapping[character];
45
+ if (frame) {
46
+ if (sdfRenderer) {
47
+ drawFastTextSdfCharacter(context, sdfRenderer, character, frame, resolvedSettings.buffer);
48
+ }
49
+ else {
50
+ context.fillText(character, frame.x, frame.y + frame.anchorY);
51
+ }
52
+ }
53
+ }
54
+ const fontMetrics = measureFastText(context, resolvedSettings.fontSize);
55
+ return {
56
+ baselineOffset: (fontMetrics.ascent - fontMetrics.descent) / 2,
57
+ mapping: mappingResult.mapping,
58
+ data: canvas,
59
+ width: canvas.width,
60
+ height: canvas.height
61
+ };
62
+ }
63
+ /** Build glyph atlas frames from text measurements without drawing the atlas canvas. */
64
+ export function buildFastTextCharacterMapping({ characterSet, measureText, buffer, maxCanvasWidth }) {
65
+ const mapping = {};
66
+ let x = 0;
67
+ let yMin = 0;
68
+ let yMax = 0;
69
+ for (const character of characterSet) {
70
+ const { advance, width, ascent, descent } = measureText(character);
71
+ const height = ascent + descent;
72
+ if (x + width + buffer * 2 > maxCanvasWidth) {
73
+ x = 0;
74
+ yMin = yMax;
75
+ }
76
+ mapping[character] = {
77
+ x: x + buffer,
78
+ y: yMin + buffer,
79
+ width,
80
+ height,
81
+ advance,
82
+ anchorX: width / 2,
83
+ anchorY: ascent
84
+ };
85
+ x += width + buffer * 2;
86
+ yMax = Math.max(yMax, yMin + height + buffer * 2);
87
+ }
88
+ return {
89
+ mapping,
90
+ canvasHeight: Math.max(1, nextPowerOfTwo(yMax))
91
+ };
92
+ }
93
+ /** Minimal atlas manager that rebuilds only when rasterization inputs change. */
94
+ export class FastTextFontAtlasManager {
95
+ /** Current resolved font settings. */
96
+ props = { ...DEFAULT_FAST_TEXT_FONT_SETTINGS };
97
+ currentAtlas;
98
+ currentKey;
99
+ /** Current atlas, if one has been built. */
100
+ get atlas() {
101
+ return this.currentAtlas;
102
+ }
103
+ /** Current character mapping, if an atlas has been built. */
104
+ get mapping() {
105
+ return this.currentAtlas?.mapping;
106
+ }
107
+ /** Update font settings and return whether the atlas was rebuilt. */
108
+ setProps(props = {}) {
109
+ this.props = {
110
+ ...this.props,
111
+ ...props,
112
+ characterSet: normalizeCharacterSet(props.characterSet ?? this.props.characterSet)
113
+ };
114
+ const nextKey = getFontAtlasKey(this.props);
115
+ if (this.currentAtlas && this.currentKey === nextKey) {
116
+ return false;
117
+ }
118
+ this.currentAtlas = createFastTextFontAtlas(this.props);
119
+ this.currentKey = nextKey;
120
+ return true;
121
+ }
122
+ }
123
+ const MAX_CANVAS_WIDTH = 1024;
124
+ const DEFAULT_ASCENT = 0.9;
125
+ const DEFAULT_DESCENT = 0.3;
126
+ /** Return the default printable ASCII atlas character set. */
127
+ function getDefaultCharacterSet() {
128
+ const characterSet = [];
129
+ for (let code = 32; code < 128; code++) {
130
+ characterSet.push(String.fromCharCode(code));
131
+ }
132
+ return characterSet;
133
+ }
134
+ /** Normalize caller-supplied character sets into a Set for deterministic use. */
135
+ function normalizeCharacterSet(characterSet) {
136
+ return typeof characterSet === 'string'
137
+ ? new Set(Array.from(characterSet))
138
+ : new Set(characterSet);
139
+ }
140
+ /** Generate a stable atlas key from font settings and sorted character set contents. */
141
+ function getFontAtlasKey(settings) {
142
+ const characters = Array.from(settings.characterSet).sort().join('');
143
+ return [
144
+ settings.fontFamily,
145
+ settings.fontWeight,
146
+ settings.fontSize,
147
+ settings.buffer,
148
+ settings.sdf,
149
+ settings.cutoff,
150
+ settings.radius,
151
+ characters
152
+ ].join('\n');
153
+ }
154
+ /** Apply font rendering settings to a 2D canvas context. */
155
+ function setTextStyle(context, settings) {
156
+ context.font = `${settings.fontWeight} ${settings.fontSize}px ${settings.fontFamily}`;
157
+ context.fillStyle = '#000';
158
+ context.textBaseline = 'alphabetic';
159
+ context.textAlign = 'left';
160
+ }
161
+ /** Measure one character or the fallback font metrics for the current canvas font. */
162
+ function measureFastText(context, fontSize, character) {
163
+ if (character === undefined) {
164
+ const fontMetrics = context.measureText('A');
165
+ if (fontMetrics.fontBoundingBoxAscent) {
166
+ return {
167
+ advance: 0,
168
+ width: 0,
169
+ ascent: Math.ceil(fontMetrics.fontBoundingBoxAscent),
170
+ descent: Math.ceil(fontMetrics.fontBoundingBoxDescent)
171
+ };
172
+ }
173
+ return {
174
+ advance: 0,
175
+ width: 0,
176
+ ascent: fontSize * DEFAULT_ASCENT,
177
+ descent: fontSize * DEFAULT_DESCENT
178
+ };
179
+ }
180
+ const metrics = context.measureText(character);
181
+ if (!metrics.actualBoundingBoxAscent) {
182
+ return {
183
+ advance: metrics.width,
184
+ width: metrics.width,
185
+ ascent: fontSize * DEFAULT_ASCENT,
186
+ descent: fontSize * DEFAULT_DESCENT
187
+ };
188
+ }
189
+ return {
190
+ advance: metrics.width,
191
+ width: Math.ceil(metrics.actualBoundingBoxRight - metrics.actualBoundingBoxLeft),
192
+ ascent: Math.ceil(metrics.actualBoundingBoxAscent),
193
+ descent: Math.ceil(metrics.actualBoundingBoxDescent)
194
+ };
195
+ }
196
+ /** Create a local TinySDF-style renderer for one resolved font. */
197
+ function createFastTextSdfRenderer(settings) {
198
+ const buffer = Math.ceil(settings.buffer);
199
+ const size = Math.ceil(settings.fontSize + buffer * 4);
200
+ const scratchSize = size + buffer;
201
+ const canvas = document.createElement('canvas');
202
+ canvas.width = size;
203
+ canvas.height = size;
204
+ const context = canvas.getContext('2d', { willReadFrequently: true });
205
+ if (!context) {
206
+ throw new Error('FastTextLayer SDF generation requires a 2D canvas context');
207
+ }
208
+ setTextStyle(context, settings);
209
+ const gridOuter = new Float64Array(scratchSize * scratchSize);
210
+ const gridInner = new Float64Array(scratchSize * scratchSize);
211
+ const f = new Float64Array(scratchSize);
212
+ const z = new Float64Array(scratchSize + 1);
213
+ const v = new Uint16Array(scratchSize);
214
+ return {
215
+ draw: character => drawFastTextSdfGlyph({
216
+ character,
217
+ context,
218
+ fontSize: settings.fontSize,
219
+ buffer,
220
+ cutoff: settings.cutoff,
221
+ radius: settings.radius,
222
+ size,
223
+ gridOuter,
224
+ gridInner,
225
+ f,
226
+ z,
227
+ v
228
+ })
229
+ };
230
+ }
231
+ /** Draw one SDF glyph into the target atlas canvas. */
232
+ function drawFastTextSdfCharacter(context, sdfRenderer, character, frame, buffer) {
233
+ const { data, width, height } = sdfRenderer.draw(character);
234
+ const imageData = context.createImageData(width, height);
235
+ populateAlphaChannel(data, imageData);
236
+ const x = frame.x - buffer;
237
+ const y = frame.y - buffer;
238
+ const x0 = Math.max(0, Math.round(x));
239
+ const y0 = Math.max(0, Math.round(y));
240
+ const w = Math.min(width, context.canvas.width - x0);
241
+ const h = Math.min(height, context.canvas.height - y0);
242
+ context.putImageData(imageData, x0, y0, 0, 0, w, h);
243
+ frame.x += x0 - x;
244
+ frame.y += y0 - y;
245
+ }
246
+ /** Copy grayscale SDF values into an ImageData alpha channel. */
247
+ function populateAlphaChannel(alphaChannel, imageData) {
248
+ for (let index = 0; index < alphaChannel.length; index++) {
249
+ imageData.data[4 * index + 3] = alphaChannel[index];
250
+ }
251
+ }
252
+ const FAST_TEXT_SDF_INF = 1e20;
253
+ /** Rasterize one glyph and convert its alpha mask into signed distance values. */
254
+ function drawFastTextSdfGlyph({ character, context, fontSize, buffer, cutoff, radius, size, gridOuter, gridInner, f, z, v }) {
255
+ const metrics = context.measureText(character);
256
+ const glyphTop = Math.ceil(metrics.actualBoundingBoxAscent ?? fontSize * DEFAULT_ASCENT);
257
+ const glyphWidth = Math.max(0, Math.min(size - buffer, Math.ceil((metrics.actualBoundingBoxRight ?? metrics.width) - (metrics.actualBoundingBoxLeft ?? 0))));
258
+ const glyphHeight = Math.min(size - buffer, glyphTop + Math.ceil(metrics.actualBoundingBoxDescent ?? fontSize * DEFAULT_DESCENT));
259
+ const width = glyphWidth + 2 * buffer;
260
+ const height = glyphHeight + 2 * buffer;
261
+ const data = new Uint8ClampedArray(Math.max(width * height, 0));
262
+ if (glyphWidth === 0 || glyphHeight === 0) {
263
+ return { data, width, height };
264
+ }
265
+ context.clearRect(buffer, buffer, glyphWidth, glyphHeight);
266
+ context.fillText(character, buffer, buffer + glyphTop);
267
+ const imageData = context.getImageData(buffer, buffer, glyphWidth, glyphHeight);
268
+ gridOuter.fill(FAST_TEXT_SDF_INF, 0, data.length);
269
+ gridInner.fill(0, 0, data.length);
270
+ for (let y = 0; y < glyphHeight; y++) {
271
+ for (let x = 0; x < glyphWidth; x++) {
272
+ const alpha = imageData.data[4 * (y * glyphWidth + x) + 3] / 255;
273
+ if (alpha === 0) {
274
+ continue;
275
+ }
276
+ const gridIndex = (y + buffer) * width + x + buffer;
277
+ if (alpha === 1) {
278
+ gridOuter[gridIndex] = 0;
279
+ gridInner[gridIndex] = FAST_TEXT_SDF_INF;
280
+ }
281
+ else {
282
+ const distance = 0.5 - alpha;
283
+ gridOuter[gridIndex] = distance > 0 ? distance * distance : 0;
284
+ gridInner[gridIndex] = distance < 0 ? distance * distance : 0;
285
+ }
286
+ }
287
+ }
288
+ transformFastTextSdfGrid(gridOuter, 0, 0, width, height, width, f, v, z);
289
+ transformFastTextSdfGrid(gridInner, buffer, buffer, glyphWidth, glyphHeight, width, f, v, z);
290
+ for (let index = 0; index < data.length; index++) {
291
+ const distance = Math.sqrt(gridOuter[index]) - Math.sqrt(gridInner[index]);
292
+ data[index] = Math.round(255 - 255 * (distance / radius + cutoff));
293
+ }
294
+ return { data, width, height };
295
+ }
296
+ /** Run a 2D squared Euclidean distance transform over one SDF grid. */
297
+ function transformFastTextSdfGrid(data, x0, y0, width, height, gridSize, f, v, z) {
298
+ for (let x = x0; x < x0 + width; x++) {
299
+ transformFastTextSdfGrid1d(data, y0 * gridSize + x, gridSize, height, f, v, z);
300
+ }
301
+ for (let y = y0; y < y0 + height; y++) {
302
+ transformFastTextSdfGrid1d(data, y * gridSize + x0, 1, width, f, v, z);
303
+ }
304
+ }
305
+ /** Run the 1D pass for the squared Euclidean distance transform. */
306
+ function transformFastTextSdfGrid1d(grid, offset, stride, length, f, v, z) {
307
+ v[0] = 0;
308
+ z[0] = -FAST_TEXT_SDF_INF;
309
+ z[1] = FAST_TEXT_SDF_INF;
310
+ f[0] = grid[offset];
311
+ for (let q = 1, k = 0; q < length; q++) {
312
+ f[q] = grid[offset + q * stride];
313
+ const q2 = q * q;
314
+ let s = 0;
315
+ do {
316
+ const r = v[k];
317
+ s = (f[q] - f[r] + q2 - r * r) / (q - r) / 2;
318
+ } while (s <= z[k] && --k > -1);
319
+ k++;
320
+ v[k] = q;
321
+ z[k] = s;
322
+ z[k + 1] = FAST_TEXT_SDF_INF;
323
+ }
324
+ for (let q = 0, k = 0; q < length; q++) {
325
+ while (z[k + 1] < q) {
326
+ k++;
327
+ }
328
+ const r = v[k];
329
+ const qr = q - r;
330
+ grid[offset + q * stride] = f[r] + qr * qr;
331
+ }
332
+ }
333
+ /** Return the next power-of-two canvas dimension for one positive number. */
334
+ function nextPowerOfTwo(value) {
335
+ return Math.pow(2, Math.ceil(Math.log2(Math.max(1, value))));
336
+ }
337
+ //# sourceMappingURL=font-atlas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"font-atlas.js","sourceRoot":"","sources":["../../../src/layers/fast-text-layer/font-atlas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { FastTextLayer, type FastTextLayerProps, type _FastTextLayerProps } from "./fast-text-layer.js";
2
+ export { buildFastTextUtf8ColumnSource, buildFastTextGlyphData, buildMultiLineGlyphData, buildSingleLineGlyphData, collectFastTextCharacterSet, updateFastTextDynamicGlyphAttributes, type BuildFastTextGlyphDataProps, type CollectFastTextCharacterSetProps, type FastTextAlignmentBaseline, type FastTextAnchor, type FastTextClipRect, type FastTextContentAlign, type FastTextDynamicGlyphUpdateStats, type FastTextGlyphBuildStats, type FastTextGlyphAttributes, type FastTextGlyphData, type FastTextUtf8Column, type FastTextUtf8ColumnSource, type FastTextUtf8ViewAccessor, type UpdateFastTextDynamicGlyphAttributesProps } from "./fast-text-layout.js";
3
+ export { buildFastTextCharacterMapping, createFastTextFontAtlas, DEFAULT_FAST_TEXT_FONT_SETTINGS, FastTextFontAtlasManager, type FastTextCharacter, type FastTextCharacterMapping, type FastTextFontAtlas, type FastTextFontSettings } from "./font-atlas.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layers/fast-text-layer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACzB,6BAA0B;AAC3B,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAC3B,oCAAoC,EACpC,KAAK,2BAA2B,EAChC,KAAK,gCAAgC,EACrC,KAAK,yBAAyB,EAC9B,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,+BAA+B,EACpC,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,yCAAyC,EAC/C,8BAA2B;AAC5B,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EACvB,+BAA+B,EAC/B,wBAAwB,EACxB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAC1B,wBAAqB"}
@@ -0,0 +1,4 @@
1
+ export { FastTextLayer } from "./fast-text-layer.js";
2
+ export { buildFastTextUtf8ColumnSource, buildFastTextGlyphData, buildMultiLineGlyphData, buildSingleLineGlyphData, collectFastTextCharacterSet, updateFastTextDynamicGlyphAttributes } from "./fast-text-layout.js";
3
+ export { buildFastTextCharacterMapping, createFastTextFontAtlas, DEFAULT_FAST_TEXT_FONT_SETTINGS, FastTextFontAtlasManager } from "./font-atlas.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layers/fast-text-layer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAGd,6BAA0B;AAC3B,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAC3B,oCAAoC,EAerC,8BAA2B;AAC5B,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EACvB,+BAA+B,EAC/B,wBAAwB,EAKzB,wBAAqB"}
@@ -1,74 +1,36 @@
1
- import { CompositeLayer, type LayerProps } from '@deck.gl/core';
2
- import { LineLayer, TextLayer } from '@deck.gl/layers';
3
- export type TimeDeltaLayerProps = LayerProps & {
1
+ import { CompositeLayer, type DefaultProps, type Layer, type LayerProps } from '@deck.gl/core';
2
+ import { type TextLayerProps } from '@deck.gl/layers';
3
+ /** Properties supported by {@link TimeDeltaLayer}. */
4
+ export type TimeDeltaLayerProps = LayerProps & _TimeDeltaLayerProps;
5
+ type _TimeDeltaLayerProps = Pick<TextLayerProps, 'fontFamily' | 'fontSettings' | 'fontWeight'> & {
6
+ /** Legacy time label unit retained for compatibility. @defaultValue 'timestamp' */
4
7
  unit: 'timestamp' | 'milliseconds';
8
+ /** Minimum trace time represented by the surrounding view. @defaultValue 0 */
5
9
  minTimeMs: number;
10
+ /** Maximum trace time represented by the surrounding view. @defaultValue 100 */
6
11
  maxTimeMs: number;
7
- /** Start time in milliseconds since epoch */
12
+ /** Start time in milliseconds since epoch. @defaultValue 0 */
8
13
  startTimeMs: number;
9
- /** End time in milliseconds since epoch */
14
+ /** End time in milliseconds since epoch. @defaultValue 100 */
10
15
  endTimeMs: number;
11
- /** Optional: Y-coordinate for the axis line (default: 0) */
16
+ /** Y coordinate for the header interval guide. @defaultValue 0 */
12
17
  y?: number;
18
+ /** Whether to render the compact header label instead of full-height guide lines. @defaultValue false */
13
19
  header: boolean;
14
- /** Optional: RGBA color for axis and ticks (default: [0, 0, 0, 255]) */
20
+ /** Header label text size. @defaultValue 12 */
21
+ fontSize?: number;
22
+ /** RGBA color for interval guides and labels. @defaultValue [0, 0, 0, 255] */
15
23
  color?: [number, number, number, number];
16
- /** Minimum Y-coordinate for grid lines. @todo (ib) Remve and calculate from viewport? */
24
+ /** Minimum Y coordinate for full-height guide lines. @defaultValue -1e6 */
17
25
  yMin?: number;
18
- /** Maximum Y-coordinate for grid lines. @todo (ib) Remve and calculate from viewport? */
26
+ /** Maximum Y coordinate for full-height guide lines. @defaultValue 1e6 */
19
27
  yMax?: number;
20
28
  };
21
- export declare class TimeDeltaLayer extends CompositeLayer<TimeDeltaLayerProps> {
29
+ /** Renders a selected time interval as header or viewport guide lines. */
30
+ export declare class TimeDeltaLayer extends CompositeLayer<Required<_TimeDeltaLayerProps>> {
22
31
  static layerName: string;
23
- static defaultProps: Required<Omit<TimeDeltaLayerProps, keyof LayerProps>>;
24
- renderLayers(): LineLayer<any, {
25
- id: "time-delta-side-bars";
26
- data: {
27
- sourcePosition: number[];
28
- targetPosition: number[];
29
- }[];
30
- getSourcePosition: (d: any) => any;
31
- getTargetPosition: (d: any) => any;
32
- getColor: [number, number, number, number];
33
- getWidth: 4;
34
- widthUnits: "pixels";
35
- }>[] | (LineLayer<any, {
36
- id: "header-time-delta-side-bars";
37
- data: {
38
- sourcePosition: number[];
39
- targetPosition: number[];
40
- }[];
41
- getSourcePosition: (d: any) => any;
42
- getTargetPosition: (d: any) => any;
43
- getColor: [number, number, number, number];
44
- getWidth: 4;
45
- widthUnits: "pixels";
46
- }> | LineLayer<any, {
47
- id: "header-time-delta-dotted-line";
48
- data: {
49
- sourcePosition: number[];
50
- targetPosition: number[];
51
- }[];
52
- getSourcePosition: (d: any) => any;
53
- getTargetPosition: (d: any) => any;
54
- getColor: [number, number, number, number];
55
- getWidth: 1;
56
- widthUnits: "pixels";
57
- }> | TextLayer<any, {
58
- id: "header-time-delta-label";
59
- data: {
60
- position: number[];
61
- text: string;
62
- }[];
63
- getPosition: (d: any) => any;
64
- getText: (d: any) => any;
65
- getSize: 12;
66
- getColor: [number, number, number, number];
67
- getTextAnchor: "middle";
68
- getAlignmentBaseline: "top";
69
- background: true;
70
- getBackgroundColor: [number, number, number, number];
71
- backgroundPadding: [number, number];
72
- }>)[];
32
+ static defaultProps: DefaultProps<_TimeDeltaLayerProps>;
33
+ renderLayers(): Layer[];
73
34
  }
35
+ export {};
74
36
  //# sourceMappingURL=time-delta-layer.d.ts.map