@ggts-sh/spec 0.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +75 -0
- package/dist/artifact.d.ts +11 -0
- package/dist/artifact.d.ts.map +1 -0
- package/dist/artifact.js +71 -0
- package/dist/artifact.js.map +1 -0
- package/dist/builder-core.d.ts +100 -0
- package/dist/builder-core.d.ts.map +1 -0
- package/dist/builder-core.js +176 -0
- package/dist/builder-core.js.map +1 -0
- package/dist/builder-data.d.ts +36 -0
- package/dist/builder-data.d.ts.map +1 -0
- package/dist/builder-data.js +123 -0
- package/dist/builder-data.js.map +1 -0
- package/dist/builder-geoms.d.ts +128 -0
- package/dist/builder-geoms.d.ts.map +1 -0
- package/dist/builder-geoms.js +221 -0
- package/dist/builder-geoms.js.map +1 -0
- package/dist/builder-options.d.ts +323 -0
- package/dist/builder-options.d.ts.map +1 -0
- package/dist/builder-options.js +2 -0
- package/dist/builder-options.js.map +1 -0
- package/dist/builder-scales.d.ts +160 -0
- package/dist/builder-scales.d.ts.map +1 -0
- package/dist/builder-scales.js +322 -0
- package/dist/builder-scales.js.map +1 -0
- package/dist/builder.d.ts +242 -0
- package/dist/builder.d.ts.map +1 -0
- package/dist/builder.js +42 -0
- package/dist/builder.js.map +1 -0
- package/dist/capabilities-data.d.ts +72 -0
- package/dist/capabilities-data.d.ts.map +1 -0
- package/dist/capabilities-data.js +337 -0
- package/dist/capabilities-data.js.map +1 -0
- package/dist/capabilities-helpers.d.ts +31 -0
- package/dist/capabilities-helpers.d.ts.map +1 -0
- package/dist/capabilities-helpers.js +41 -0
- package/dist/capabilities-helpers.js.map +1 -0
- package/dist/capabilities.d.ts +22 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +154 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/coord-helpers.d.ts +102 -0
- package/dist/coord-helpers.d.ts.map +1 -0
- package/dist/coord-helpers.js +90 -0
- package/dist/coord-helpers.js.map +1 -0
- package/dist/coord-reference-build.d.ts +50 -0
- package/dist/coord-reference-build.d.ts.map +1 -0
- package/dist/coord-reference-build.js +211 -0
- package/dist/coord-reference-build.js.map +1 -0
- package/dist/coord-reference.d.ts +52 -0
- package/dist/coord-reference.d.ts.map +1 -0
- package/dist/coord-reference.js +27 -0
- package/dist/coord-reference.js.map +1 -0
- package/dist/error-catalog.d.ts +258 -0
- package/dist/error-catalog.d.ts.map +1 -0
- package/dist/error-catalog.js +235 -0
- package/dist/error-catalog.js.map +1 -0
- package/dist/error-prose-shared.d.ts +100 -0
- package/dist/error-prose-shared.d.ts.map +1 -0
- package/dist/error-prose-shared.js +95 -0
- package/dist/error-prose-shared.js.map +1 -0
- package/dist/errors.d.ts +39 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +52 -0
- package/dist/errors.js.map +1 -0
- package/dist/generated/coord-reference-data.d.ts +189 -0
- package/dist/generated/coord-reference-data.d.ts.map +1 -0
- package/dist/generated/coord-reference-data.js +212 -0
- package/dist/generated/coord-reference-data.js.map +1 -0
- package/dist/generated/geom-param-keys.d.ts +58 -0
- package/dist/generated/geom-param-keys.d.ts.map +1 -0
- package/dist/generated/geom-param-keys.js +223 -0
- package/dist/generated/geom-param-keys.js.map +1 -0
- package/dist/generated/geom-reference-data.d.ts +2377 -0
- package/dist/generated/geom-reference-data.d.ts.map +1 -0
- package/dist/generated/geom-reference-data.js +2790 -0
- package/dist/generated/geom-reference-data.js.map +1 -0
- package/dist/generated/guide-reference-data.d.ts +219 -0
- package/dist/generated/guide-reference-data.d.ts.map +1 -0
- package/dist/generated/guide-reference-data.js +253 -0
- package/dist/generated/guide-reference-data.js.map +1 -0
- package/dist/generated/plot-spec-validator.d.ts +2 -0
- package/dist/generated/plot-spec-validator.d.ts.map +1 -0
- package/dist/generated/plot-spec-validator.js +6274 -0
- package/dist/generated/plot-spec-validator.js.map +1 -0
- package/dist/generated/position-reference-data.d.ts +82 -0
- package/dist/generated/position-reference-data.d.ts.map +1 -0
- package/dist/generated/position-reference-data.js +181 -0
- package/dist/generated/position-reference-data.js.map +1 -0
- package/dist/generated/scale-reference-data.d.ts +8366 -0
- package/dist/generated/scale-reference-data.d.ts.map +1 -0
- package/dist/generated/scale-reference-data.js +9821 -0
- package/dist/generated/scale-reference-data.js.map +1 -0
- package/dist/generated/stat-reference-data.d.ts +241 -0
- package/dist/generated/stat-reference-data.d.ts.map +1 -0
- package/dist/generated/stat-reference-data.js +311 -0
- package/dist/generated/stat-reference-data.js.map +1 -0
- package/dist/geom-params-build.d.ts +3 -0
- package/dist/geom-params-build.d.ts.map +1 -0
- package/dist/geom-params-build.js +80 -0
- package/dist/geom-params-build.js.map +1 -0
- package/dist/geom-params.d.ts +13 -0
- package/dist/geom-params.d.ts.map +1 -0
- package/dist/geom-params.js +7 -0
- package/dist/geom-params.js.map +1 -0
- package/dist/geom-reference-build.d.ts +29 -0
- package/dist/geom-reference-build.d.ts.map +1 -0
- package/dist/geom-reference-build.js +221 -0
- package/dist/geom-reference-build.js.map +1 -0
- package/dist/geom-reference.d.ts +52 -0
- package/dist/geom-reference.d.ts.map +1 -0
- package/dist/geom-reference.js +72 -0
- package/dist/geom-reference.js.map +1 -0
- package/dist/guide-helpers.d.ts +20 -0
- package/dist/guide-helpers.d.ts.map +1 -0
- package/dist/guide-helpers.js +25 -0
- package/dist/guide-helpers.js.map +1 -0
- package/dist/guide-reference-build.d.ts +42 -0
- package/dist/guide-reference-build.d.ts.map +1 -0
- package/dist/guide-reference-build.js +180 -0
- package/dist/guide-reference-build.js.map +1 -0
- package/dist/guide-reference.d.ts +48 -0
- package/dist/guide-reference.d.ts.map +1 -0
- package/dist/guide-reference.js +32 -0
- package/dist/guide-reference.js.map +1 -0
- package/dist/hue-grey-palettes.d.ts +15 -0
- package/dist/hue-grey-palettes.d.ts.map +1 -0
- package/dist/hue-grey-palettes.js +77 -0
- package/dist/hue-grey-palettes.js.map +1 -0
- package/dist/index.d.ts +364 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +225 -0
- package/dist/index.js.map +1 -0
- package/dist/lint-catalog.d.ts +47 -0
- package/dist/lint-catalog.d.ts.map +1 -0
- package/dist/lint-catalog.js +39 -0
- package/dist/lint-catalog.js.map +1 -0
- package/dist/lint-layer-rules.d.ts +18 -0
- package/dist/lint-layer-rules.d.ts.map +1 -0
- package/dist/lint-layer-rules.js +145 -0
- package/dist/lint-layer-rules.js.map +1 -0
- package/dist/lint-scale-rules.d.ts +8 -0
- package/dist/lint-scale-rules.d.ts.map +1 -0
- package/dist/lint-scale-rules.js +254 -0
- package/dist/lint-scale-rules.js.map +1 -0
- package/dist/lint.d.ts +62 -0
- package/dist/lint.d.ts.map +1 -0
- package/dist/lint.js +57 -0
- package/dist/lint.js.map +1 -0
- package/dist/normalize-coord.d.ts +8 -0
- package/dist/normalize-coord.d.ts.map +1 -0
- package/dist/normalize-coord.js +123 -0
- package/dist/normalize-coord.js.map +1 -0
- package/dist/normalize-input-layers-marks.d.ts +208 -0
- package/dist/normalize-input-layers-marks.d.ts.map +1 -0
- package/dist/normalize-input-layers-marks.js +2 -0
- package/dist/normalize-input-layers-marks.js.map +1 -0
- package/dist/normalize-input-layers-special.d.ts +131 -0
- package/dist/normalize-input-layers-special.d.ts.map +1 -0
- package/dist/normalize-input-layers-special.js +2 -0
- package/dist/normalize-input-layers-special.js.map +1 -0
- package/dist/normalize-input.d.ts +81 -0
- package/dist/normalize-input.d.ts.map +1 -0
- package/dist/normalize-input.js +2 -0
- package/dist/normalize-input.js.map +1 -0
- package/dist/normalize-paint.d.ts +8 -0
- package/dist/normalize-paint.d.ts.map +1 -0
- package/dist/normalize-paint.js +83 -0
- package/dist/normalize-paint.js.map +1 -0
- package/dist/normalize-scales.d.ts +7 -0
- package/dist/normalize-scales.d.ts.map +1 -0
- package/dist/normalize-scales.js +90 -0
- package/dist/normalize-scales.js.map +1 -0
- package/dist/normalize.d.ts +46 -0
- package/dist/normalize.d.ts.map +1 -0
- package/dist/normalize.js +279 -0
- package/dist/normalize.js.map +1 -0
- package/dist/paint-helpers.d.ts +45 -0
- package/dist/paint-helpers.d.ts.map +1 -0
- package/dist/paint-helpers.js +48 -0
- package/dist/paint-helpers.js.map +1 -0
- package/dist/pipeline-error-catalog.d.ts +319 -0
- package/dist/pipeline-error-catalog.d.ts.map +1 -0
- package/dist/pipeline-error-catalog.js +260 -0
- package/dist/pipeline-error-catalog.js.map +1 -0
- package/dist/portability-check.d.ts +35 -0
- package/dist/portability-check.d.ts.map +1 -0
- package/dist/portability-check.js +121 -0
- package/dist/portability-check.js.map +1 -0
- package/dist/portability-lossy.d.ts +19 -0
- package/dist/portability-lossy.d.ts.map +1 -0
- package/dist/portability-lossy.js +65 -0
- package/dist/portability-lossy.js.map +1 -0
- package/dist/portability.d.ts +23 -0
- package/dist/portability.d.ts.map +1 -0
- package/dist/portability.js +23 -0
- package/dist/portability.js.map +1 -0
- package/dist/portable-builder.d.ts +215 -0
- package/dist/portable-builder.d.ts.map +1 -0
- package/dist/portable-builder.js +27 -0
- package/dist/portable-builder.js.map +1 -0
- package/dist/portable-entry.d.ts +16 -0
- package/dist/portable-entry.d.ts.map +1 -0
- package/dist/portable-entry.js +14 -0
- package/dist/portable-entry.js.map +1 -0
- package/dist/position-reference-build.d.ts +29 -0
- package/dist/position-reference-build.d.ts.map +1 -0
- package/dist/position-reference-build.js +115 -0
- package/dist/position-reference-build.js.map +1 -0
- package/dist/position-reference.d.ts +34 -0
- package/dist/position-reference.d.ts.map +1 -0
- package/dist/position-reference.js +19 -0
- package/dist/position-reference.js.map +1 -0
- package/dist/runtime.d.ts +139 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +2 -0
- package/dist/runtime.js.map +1 -0
- package/dist/scale-color-helpers.d.ts +121 -0
- package/dist/scale-color-helpers.d.ts.map +1 -0
- package/dist/scale-color-helpers.js +188 -0
- package/dist/scale-color-helpers.js.map +1 -0
- package/dist/scale-color-hue-grey.d.ts +52 -0
- package/dist/scale-color-hue-grey.d.ts.map +1 -0
- package/dist/scale-color-hue-grey.js +60 -0
- package/dist/scale-color-hue-grey.js.map +1 -0
- package/dist/scale-color-stops.d.ts +85 -0
- package/dist/scale-color-stops.d.ts.map +1 -0
- package/dist/scale-color-stops.js +87 -0
- package/dist/scale-color-stops.js.map +1 -0
- package/dist/scale-color-viridis.d.ts +52 -0
- package/dist/scale-color-viridis.d.ts.map +1 -0
- package/dist/scale-color-viridis.js +68 -0
- package/dist/scale-color-viridis.js.map +1 -0
- package/dist/scale-helpers.d.ts +20 -0
- package/dist/scale-helpers.d.ts.map +1 -0
- package/dist/scale-helpers.js +20 -0
- package/dist/scale-helpers.js.map +1 -0
- package/dist/scale-multi-helpers.d.ts +61 -0
- package/dist/scale-multi-helpers.d.ts.map +1 -0
- package/dist/scale-multi-helpers.js +147 -0
- package/dist/scale-multi-helpers.js.map +1 -0
- package/dist/scale-position-helpers.d.ts +81 -0
- package/dist/scale-position-helpers.d.ts.map +1 -0
- package/dist/scale-position-helpers.js +133 -0
- package/dist/scale-position-helpers.js.map +1 -0
- package/dist/scale-reference-build.d.ts +50 -0
- package/dist/scale-reference-build.d.ts.map +1 -0
- package/dist/scale-reference-build.js +147 -0
- package/dist/scale-reference-build.js.map +1 -0
- package/dist/scale-reference-classify-color.d.ts +11 -0
- package/dist/scale-reference-classify-color.d.ts.map +1 -0
- package/dist/scale-reference-classify-color.js +292 -0
- package/dist/scale-reference-classify-color.js.map +1 -0
- package/dist/scale-reference-classify-position.d.ts +10 -0
- package/dist/scale-reference-classify-position.d.ts.map +1 -0
- package/dist/scale-reference-classify-position.js +137 -0
- package/dist/scale-reference-classify-position.js.map +1 -0
- package/dist/scale-reference-classify-style.d.ts +10 -0
- package/dist/scale-reference-classify-style.d.ts.map +1 -0
- package/dist/scale-reference-classify-style.js +194 -0
- package/dist/scale-reference-classify-style.js.map +1 -0
- package/dist/scale-reference-classify-support.d.ts +37 -0
- package/dist/scale-reference-classify-support.d.ts.map +1 -0
- package/dist/scale-reference-classify-support.js +206 -0
- package/dist/scale-reference-classify-support.js.map +1 -0
- package/dist/scale-reference.d.ts +80 -0
- package/dist/scale-reference.d.ts.map +1 -0
- package/dist/scale-reference.js +85 -0
- package/dist/scale-reference.js.map +1 -0
- package/dist/scale-style-helpers.d.ts +158 -0
- package/dist/scale-style-helpers.d.ts.map +1 -0
- package/dist/scale-style-helpers.js +197 -0
- package/dist/scale-style-helpers.js.map +1 -0
- package/dist/schema-catalog.d.ts +62 -0
- package/dist/schema-catalog.d.ts.map +1 -0
- package/dist/schema-catalog.js +208 -0
- package/dist/schema-catalog.js.map +1 -0
- package/dist/schema-declarations.d.ts +1585 -0
- package/dist/schema-declarations.d.ts.map +1 -0
- package/dist/schema-declarations.js +51 -0
- package/dist/schema-declarations.js.map +1 -0
- package/dist/schema-decls-data.d.ts +58 -0
- package/dist/schema-decls-data.d.ts.map +1 -0
- package/dist/schema-decls-data.js +151 -0
- package/dist/schema-decls-data.js.map +1 -0
- package/dist/schema-decls-guides-theme.d.ts +166 -0
- package/dist/schema-decls-guides-theme.d.ts.map +1 -0
- package/dist/schema-decls-guides-theme.js +251 -0
- package/dist/schema-decls-guides-theme.js.map +1 -0
- package/dist/schema-decls-layers-col-boxplot.d.ts +118 -0
- package/dist/schema-decls-layers-col-boxplot.d.ts.map +1 -0
- package/dist/schema-decls-layers-col-boxplot.js +239 -0
- package/dist/schema-decls-layers-col-boxplot.js.map +1 -0
- package/dist/schema-decls-layers-count-pointrange.d.ts +89 -0
- package/dist/schema-decls-layers-count-pointrange.d.ts.map +1 -0
- package/dist/schema-decls-layers-count-pointrange.js +190 -0
- package/dist/schema-decls-layers-count-pointrange.js.map +1 -0
- package/dist/schema-decls-layers-crossbar-jitter.d.ts +129 -0
- package/dist/schema-decls-layers-crossbar-jitter.d.ts.map +1 -0
- package/dist/schema-decls-layers-crossbar-jitter.js +255 -0
- package/dist/schema-decls-layers-crossbar-jitter.js.map +1 -0
- package/dist/schema-decls-layers-point-path.d.ts +49 -0
- package/dist/schema-decls-layers-point-path.d.ts.map +1 -0
- package/dist/schema-decls-layers-point-path.js +156 -0
- package/dist/schema-decls-layers-point-path.js.map +1 -0
- package/dist/schema-decls-layers-sf-blank.d.ts +89 -0
- package/dist/schema-decls-layers-sf-blank.d.ts.map +1 -0
- package/dist/schema-decls-layers-sf-blank.js +254 -0
- package/dist/schema-decls-layers-sf-blank.js.map +1 -0
- package/dist/schema-decls-layers-text-map.d.ts +80 -0
- package/dist/schema-decls-layers-text-map.d.ts.map +1 -0
- package/dist/schema-decls-layers-text-map.js +151 -0
- package/dist/schema-decls-layers-text-map.js.map +1 -0
- package/dist/schema-decls-paint.d.ts +39 -0
- package/dist/schema-decls-paint.d.ts.map +1 -0
- package/dist/schema-decls-paint.js +95 -0
- package/dist/schema-decls-paint.js.map +1 -0
- package/dist/schema-decls-params-area-abline.d.ts +85 -0
- package/dist/schema-decls-params-area-abline.d.ts.map +1 -0
- package/dist/schema-decls-params-area-abline.js +259 -0
- package/dist/schema-decls-params-area-abline.js.map +1 -0
- package/dist/schema-decls-params-col-contour.d.ts +61 -0
- package/dist/schema-decls-params-col-contour.d.ts.map +1 -0
- package/dist/schema-decls-params-col-contour.js +202 -0
- package/dist/schema-decls-params-col-contour.js.map +1 -0
- package/dist/schema-decls-params-curve-label.d.ts +64 -0
- package/dist/schema-decls-params-curve-label.d.ts.map +1 -0
- package/dist/schema-decls-params-curve-label.js +204 -0
- package/dist/schema-decls-params-curve-label.js.map +1 -0
- package/dist/schema-decls-params-errorbar-position.d.ts +83 -0
- package/dist/schema-decls-params-errorbar-position.d.ts.map +1 -0
- package/dist/schema-decls-params-errorbar-position.js +264 -0
- package/dist/schema-decls-params-errorbar-position.js.map +1 -0
- package/dist/schema-decls-params-point-path.d.ts +61 -0
- package/dist/schema-decls-params-point-path.d.ts.map +1 -0
- package/dist/schema-decls-params-point-path.js +240 -0
- package/dist/schema-decls-params-point-path.js.map +1 -0
- package/dist/schema-decls-params-violin-summary.d.ts +78 -0
- package/dist/schema-decls-params-violin-summary.d.ts.map +1 -0
- package/dist/schema-decls-params-violin-summary.js +272 -0
- package/dist/schema-decls-params-violin-summary.js.map +1 -0
- package/dist/schema-decls-plot.d.ts +80 -0
- package/dist/schema-decls-plot.d.ts.map +1 -0
- package/dist/schema-decls-plot.js +222 -0
- package/dist/schema-decls-plot.js.map +1 -0
- package/dist/schema-decls-scales-guides.d.ts +291 -0
- package/dist/schema-decls-scales-guides.d.ts.map +1 -0
- package/dist/schema-decls-scales-guides.js +189 -0
- package/dist/schema-decls-scales-guides.js.map +1 -0
- package/dist/schema-decls-scales.d.ts +124 -0
- package/dist/schema-decls-scales.d.ts.map +1 -0
- package/dist/schema-decls-scales.js +279 -0
- package/dist/schema-decls-scales.js.map +1 -0
- package/dist/schema-imports.d.ts +1679 -0
- package/dist/schema-imports.d.ts.map +1 -0
- package/dist/schema-imports.js +104 -0
- package/dist/schema-imports.js.map +1 -0
- package/dist/schema-name-schemas.d.ts +18 -0
- package/dist/schema-name-schemas.d.ts.map +1 -0
- package/dist/schema-name-schemas.js +13 -0
- package/dist/schema-name-schemas.js.map +1 -0
- package/dist/schema-names.d.ts +53 -0
- package/dist/schema-names.d.ts.map +1 -0
- package/dist/schema-names.js +229 -0
- package/dist/schema-names.js.map +1 -0
- package/dist/schema-types.d.ts +336 -0
- package/dist/schema-types.d.ts.map +1 -0
- package/dist/schema-types.js +10 -0
- package/dist/schema-types.js.map +1 -0
- package/dist/schema.d.ts +38 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +34 -0
- package/dist/schema.js.map +1 -0
- package/dist/stat-reference-build.d.ts +24 -0
- package/dist/stat-reference-build.d.ts.map +1 -0
- package/dist/stat-reference-build.js +86 -0
- package/dist/stat-reference-build.js.map +1 -0
- package/dist/stat-reference.d.ts +33 -0
- package/dist/stat-reference.d.ts.map +1 -0
- package/dist/stat-reference.js +19 -0
- package/dist/stat-reference.js.map +1 -0
- package/dist/structural-gate.d.ts +15 -0
- package/dist/structural-gate.d.ts.map +1 -0
- package/dist/structural-gate.js +34 -0
- package/dist/structural-gate.js.map +1 -0
- package/dist/temporal-column.d.ts +33 -0
- package/dist/temporal-column.d.ts.map +1 -0
- package/dist/temporal-column.js +247 -0
- package/dist/temporal-column.js.map +1 -0
- package/dist/temporal-guides.d.ts +11 -0
- package/dist/temporal-guides.d.ts.map +1 -0
- package/dist/temporal-guides.js +11 -0
- package/dist/temporal-guides.js.map +1 -0
- package/dist/temporal-interval-schema.d.ts +9 -0
- package/dist/temporal-interval-schema.d.ts.map +1 -0
- package/dist/temporal-interval-schema.js +25 -0
- package/dist/temporal-interval-schema.js.map +1 -0
- package/dist/temporal-interval.d.ts +29 -0
- package/dist/temporal-interval.d.ts.map +1 -0
- package/dist/temporal-interval.js +122 -0
- package/dist/temporal-interval.js.map +1 -0
- package/dist/temporal-parse-core.d.ts +96 -0
- package/dist/temporal-parse-core.d.ts.map +1 -0
- package/dist/temporal-parse-core.js +235 -0
- package/dist/temporal-parse-core.js.map +1 -0
- package/dist/temporal-parse-format.d.ts +13 -0
- package/dist/temporal-parse-format.d.ts.map +1 -0
- package/dist/temporal-parse-format.js +180 -0
- package/dist/temporal-parse-format.js.map +1 -0
- package/dist/temporal-parse-schema.d.ts +11 -0
- package/dist/temporal-parse-schema.d.ts.map +1 -0
- package/dist/temporal-parse-schema.js +23 -0
- package/dist/temporal-parse-schema.js.map +1 -0
- package/dist/temporal-parse.d.ts +18 -0
- package/dist/temporal-parse.d.ts.map +1 -0
- package/dist/temporal-parse.js +183 -0
- package/dist/temporal-parse.js.map +1 -0
- package/dist/temporal-polyfill.d.ts +3 -0
- package/dist/temporal-polyfill.d.ts.map +1 -0
- package/dist/temporal-polyfill.js +25 -0
- package/dist/temporal-polyfill.js.map +1 -0
- package/dist/temporal-ticks.d.ts +20 -0
- package/dist/temporal-ticks.d.ts.map +1 -0
- package/dist/temporal-ticks.js +246 -0
- package/dist/temporal-ticks.js.map +1 -0
- package/dist/temporal.d.ts +109 -0
- package/dist/temporal.d.ts.map +1 -0
- package/dist/temporal.js +73 -0
- package/dist/temporal.js.map +1 -0
- package/dist/validate-data-checks-color-temporal.d.ts +58 -0
- package/dist/validate-data-checks-color-temporal.d.ts.map +1 -0
- package/dist/validate-data-checks-color-temporal.js +168 -0
- package/dist/validate-data-checks-color-temporal.js.map +1 -0
- package/dist/validate-data-checks-color.d.ts +28 -0
- package/dist/validate-data-checks-color.d.ts.map +1 -0
- package/dist/validate-data-checks-color.js +296 -0
- package/dist/validate-data-checks-color.js.map +1 -0
- package/dist/validate-data-checks-layer.d.ts +37 -0
- package/dist/validate-data-checks-layer.d.ts.map +1 -0
- package/dist/validate-data-checks-layer.js +343 -0
- package/dist/validate-data-checks-layer.js.map +1 -0
- package/dist/validate-data-checks-position.d.ts +45 -0
- package/dist/validate-data-checks-position.d.ts.map +1 -0
- package/dist/validate-data-checks-position.js +204 -0
- package/dist/validate-data-checks-position.js.map +1 -0
- package/dist/validate-data-checks-style-finite.d.ts +24 -0
- package/dist/validate-data-checks-style-finite.d.ts.map +1 -0
- package/dist/validate-data-checks-style-finite.js +40 -0
- package/dist/validate-data-checks-style-finite.js.map +1 -0
- package/dist/validate-data-checks-style-numeric.d.ts +26 -0
- package/dist/validate-data-checks-style-numeric.d.ts.map +1 -0
- package/dist/validate-data-checks-style-numeric.js +327 -0
- package/dist/validate-data-checks-style-numeric.js.map +1 -0
- package/dist/validate-data-checks-style.d.ts +14 -0
- package/dist/validate-data-checks-style.d.ts.map +1 -0
- package/dist/validate-data-checks-style.js +14 -0
- package/dist/validate-data-checks-style.js.map +1 -0
- package/dist/validate-data-checks-temporal.d.ts +57 -0
- package/dist/validate-data-checks-temporal.d.ts.map +1 -0
- package/dist/validate-data-checks-temporal.js +83 -0
- package/dist/validate-data-checks-temporal.js.map +1 -0
- package/dist/validate-data-checks.d.ts +31 -0
- package/dist/validate-data-checks.d.ts.map +1 -0
- package/dist/validate-data-checks.js +110 -0
- package/dist/validate-data-checks.js.map +1 -0
- package/dist/validate-data-evidence.d.ts +69 -0
- package/dist/validate-data-evidence.d.ts.map +1 -0
- package/dist/validate-data-evidence.js +329 -0
- package/dist/validate-data-evidence.js.map +1 -0
- package/dist/validate-data.d.ts +73 -0
- package/dist/validate-data.d.ts.map +1 -0
- package/dist/validate-data.js +30 -0
- package/dist/validate-data.js.map +1 -0
- package/dist/validate-map-errors.d.ts +32 -0
- package/dist/validate-map-errors.d.ts.map +1 -0
- package/dist/validate-map-errors.js +76 -0
- package/dist/validate-map-errors.js.map +1 -0
- package/dist/validate-map-forms.d.ts +43 -0
- package/dist/validate-map-forms.d.ts.map +1 -0
- package/dist/validate-map-forms.js +125 -0
- package/dist/validate-map-forms.js.map +1 -0
- package/dist/validate-map-path-keywords.d.ts +11 -0
- package/dist/validate-map-path-keywords.d.ts.map +1 -0
- package/dist/validate-map-path-keywords.js +95 -0
- package/dist/validate-map-path-keywords.js.map +1 -0
- package/dist/validate-map-path-unions.d.ts +27 -0
- package/dist/validate-map-path-unions.d.ts.map +1 -0
- package/dist/validate-map-path-unions.js +200 -0
- package/dist/validate-map-path-unions.js.map +1 -0
- package/dist/validate-schema-shape.d.ts +69 -0
- package/dist/validate-schema-shape.d.ts.map +1 -0
- package/dist/validate-schema-shape.js +156 -0
- package/dist/validate-schema-shape.js.map +1 -0
- package/dist/validate-schema-walk.d.ts +34 -0
- package/dist/validate-schema-walk.d.ts.map +1 -0
- package/dist/validate-schema-walk.js +216 -0
- package/dist/validate-schema-walk.js.map +1 -0
- package/dist/validate-structure-facet.d.ts +8 -0
- package/dist/validate-structure-facet.d.ts.map +1 -0
- package/dist/validate-structure-facet.js +67 -0
- package/dist/validate-structure-facet.js.map +1 -0
- package/dist/validate-structure-layer-computed-y.d.ts +14 -0
- package/dist/validate-structure-layer-computed-y.d.ts.map +1 -0
- package/dist/validate-structure-layer-computed-y.js +70 -0
- package/dist/validate-structure-layer-computed-y.js.map +1 -0
- package/dist/validate-structure-layer-ribbon.d.ts +8 -0
- package/dist/validate-structure-layer-ribbon.d.ts.map +1 -0
- package/dist/validate-structure-layer-ribbon.js +36 -0
- package/dist/validate-structure-layer-ribbon.js.map +1 -0
- package/dist/validate-structure-layer-rule.d.ts +14 -0
- package/dist/validate-structure-layer-rule.d.ts.map +1 -0
- package/dist/validate-structure-layer-rule.js +90 -0
- package/dist/validate-structure-layer-rule.js.map +1 -0
- package/dist/validate-structure-layer-shared.d.ts +12 -0
- package/dist/validate-structure-layer-shared.d.ts.map +1 -0
- package/dist/validate-structure-layer-shared.js +17 -0
- package/dist/validate-structure-layer-shared.js.map +1 -0
- package/dist/validate-structure-layers.d.ts +12 -0
- package/dist/validate-structure-layers.d.ts.map +1 -0
- package/dist/validate-structure-layers.js +292 -0
- package/dist/validate-structure-layers.js.map +1 -0
- package/dist/validate-structure-paint.d.ts +12 -0
- package/dist/validate-structure-paint.d.ts.map +1 -0
- package/dist/validate-structure-paint.js +87 -0
- package/dist/validate-structure-paint.js.map +1 -0
- package/dist/validate-structure-scales.d.ts +10 -0
- package/dist/validate-structure-scales.d.ts.map +1 -0
- package/dist/validate-structure-scales.js +242 -0
- package/dist/validate-structure-scales.js.map +1 -0
- package/dist/validate-structure-style-bins.d.ts +17 -0
- package/dist/validate-structure-style-bins.d.ts.map +1 -0
- package/dist/validate-structure-style-bins.js +150 -0
- package/dist/validate-structure-style-bins.js.map +1 -0
- package/dist/validate-structure.d.ts +16 -0
- package/dist/validate-structure.d.ts.map +1 -0
- package/dist/validate-structure.js +16 -0
- package/dist/validate-structure.js.map +1 -0
- package/dist/validate.d.ts +24 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +178 -0
- package/dist/validate.js.map +1 -0
- package/package.json +59 -0
- package/schema/v0.json +9618 -0
- package/src/artifact.ts +81 -0
- package/src/builder-core.ts +276 -0
- package/src/builder-data.ts +156 -0
- package/src/builder-geoms.ts +290 -0
- package/src/builder-options.ts +428 -0
- package/src/builder-scales.ts +443 -0
- package/src/builder.ts +125 -0
- package/src/capabilities-data.ts +336 -0
- package/src/capabilities-helpers.ts +54 -0
- package/src/capabilities.ts +159 -0
- package/src/coord-helpers.ts +177 -0
- package/src/coord-reference-build.ts +283 -0
- package/src/coord-reference.ts +75 -0
- package/src/error-catalog.ts +253 -0
- package/src/error-prose-shared.ts +106 -0
- package/src/errors.ts +87 -0
- package/src/generated/coord-reference-data.ts +235 -0
- package/src/generated/geom-param-keys.ts +222 -0
- package/src/generated/geom-reference-data.ts +3024 -0
- package/src/generated/guide-reference-data.ts +284 -0
- package/src/generated/plot-spec-validator.ts +7335 -0
- package/src/generated/position-reference-data.ts +191 -0
- package/src/generated/scale-reference-data.ts +10665 -0
- package/src/generated/stat-reference-data.ts +339 -0
- package/src/geom-params-build.ts +92 -0
- package/src/geom-params.ts +14 -0
- package/src/geom-reference-build.ts +292 -0
- package/src/geom-reference.ts +127 -0
- package/src/guide-helpers.ts +44 -0
- package/src/guide-reference-build.ts +249 -0
- package/src/guide-reference.ts +76 -0
- package/src/hue-grey-palettes.ts +82 -0
- package/src/index.ts +400 -0
- package/src/lint-catalog.ts +57 -0
- package/src/lint-layer-rules.ts +175 -0
- package/src/lint-scale-rules.ts +285 -0
- package/src/lint.ts +126 -0
- package/src/normalize-coord.ts +126 -0
- package/src/normalize-input-layers-marks.ts +276 -0
- package/src/normalize-input-layers-special.ts +252 -0
- package/src/normalize-input.ts +154 -0
- package/src/normalize-paint.ts +98 -0
- package/src/normalize-scales.ts +108 -0
- package/src/normalize.ts +403 -0
- package/src/paint-helpers.ts +98 -0
- package/src/pipeline-error-catalog.ts +278 -0
- package/src/portability-check.ts +155 -0
- package/src/portability-lossy.ts +81 -0
- package/src/portability.ts +31 -0
- package/src/portable-builder.ts +35 -0
- package/src/portable-entry.ts +37 -0
- package/src/position-reference-build.ts +164 -0
- package/src/position-reference.ts +41 -0
- package/src/runtime.ts +198 -0
- package/src/scale-color-helpers.ts +263 -0
- package/src/scale-color-hue-grey.ts +95 -0
- package/src/scale-color-stops.ts +177 -0
- package/src/scale-color-viridis.ts +99 -0
- package/src/scale-helpers.ts +264 -0
- package/src/scale-multi-helpers.ts +220 -0
- package/src/scale-position-helpers.ts +231 -0
- package/src/scale-reference-build.ts +222 -0
- package/src/scale-reference-classify-color.ts +334 -0
- package/src/scale-reference-classify-position.ts +164 -0
- package/src/scale-reference-classify-style.ts +229 -0
- package/src/scale-reference-classify-support.ts +298 -0
- package/src/scale-reference.ts +165 -0
- package/src/scale-style-helpers.ts +316 -0
- package/src/schema-catalog.ts +222 -0
- package/src/schema-declarations.ts +51 -0
- package/src/schema-decls-data.ts +272 -0
- package/src/schema-decls-guides-theme.ts +395 -0
- package/src/schema-decls-layers-col-boxplot.ts +410 -0
- package/src/schema-decls-layers-count-pointrange.ts +321 -0
- package/src/schema-decls-layers-crossbar-jitter.ts +443 -0
- package/src/schema-decls-layers-point-path.ts +246 -0
- package/src/schema-decls-layers-sf-blank.ts +408 -0
- package/src/schema-decls-layers-text-map.ts +259 -0
- package/src/schema-decls-paint.ts +124 -0
- package/src/schema-decls-params-area-abline.ts +440 -0
- package/src/schema-decls-params-col-contour.ts +333 -0
- package/src/schema-decls-params-curve-label.ts +343 -0
- package/src/schema-decls-params-errorbar-position.ts +446 -0
- package/src/schema-decls-params-point-path.ts +394 -0
- package/src/schema-decls-params-violin-summary.ts +447 -0
- package/src/schema-decls-plot.ts +385 -0
- package/src/schema-decls-scales-guides.ts +233 -0
- package/src/schema-decls-scales.ts +432 -0
- package/src/schema-imports.ts +116 -0
- package/src/schema-name-schemas.ts +37 -0
- package/src/schema-names.ts +243 -0
- package/src/schema-types.ts +400 -0
- package/src/schema.ts +287 -0
- package/src/stat-reference-build.ts +145 -0
- package/src/stat-reference.ts +38 -0
- package/src/structural-gate.ts +42 -0
- package/src/temporal-column.ts +323 -0
- package/src/temporal-guides.ts +32 -0
- package/src/temporal-interval-schema.ts +40 -0
- package/src/temporal-interval.ts +151 -0
- package/src/temporal-parse-core.ts +331 -0
- package/src/temporal-parse-format.ts +222 -0
- package/src/temporal-parse-schema.ts +38 -0
- package/src/temporal-parse.ts +259 -0
- package/src/temporal-polyfill.ts +27 -0
- package/src/temporal-ticks.ts +312 -0
- package/src/temporal.ts +112 -0
- package/src/validate-data-checks-color-temporal.ts +261 -0
- package/src/validate-data-checks-color.ts +395 -0
- package/src/validate-data-checks-layer.ts +492 -0
- package/src/validate-data-checks-position.ts +275 -0
- package/src/validate-data-checks-style-finite.ts +55 -0
- package/src/validate-data-checks-style-numeric.ts +455 -0
- package/src/validate-data-checks-style.ts +13 -0
- package/src/validate-data-checks-temporal.ts +129 -0
- package/src/validate-data-checks.ts +157 -0
- package/src/validate-data-evidence.ts +419 -0
- package/src/validate-data.ts +114 -0
- package/src/validate-map-errors.ts +126 -0
- package/src/validate-map-forms.ts +148 -0
- package/src/validate-map-path-keywords.ts +129 -0
- package/src/validate-map-path-unions.ts +281 -0
- package/src/validate-schema-shape.ts +232 -0
- package/src/validate-schema-walk.ts +219 -0
- package/src/validate-structure-facet.ts +76 -0
- package/src/validate-structure-layer-computed-y.ts +94 -0
- package/src/validate-structure-layer-ribbon.ts +61 -0
- package/src/validate-structure-layer-rule.ts +98 -0
- package/src/validate-structure-layer-shared.ts +29 -0
- package/src/validate-structure-layers.ts +395 -0
- package/src/validate-structure-paint.ts +101 -0
- package/src/validate-structure-scales.ts +278 -0
- package/src/validate-structure-style-bins.ts +167 -0
- package/src/validate-structure.ts +16 -0
- package/src/validate.ts +212 -0
package/src/index.ts
ADDED
|
@@ -0,0 +1,400 @@
|
|
|
1
|
+
// @ggts-sh/spec — spec types, schemas, normalize(), validate(), portability,
|
|
2
|
+
// fluent builder. Zero d3, zero DOM. TypeBox is the schema source of truth
|
|
3
|
+
// (decision 0004): the same definitions provide the TS types (Static<>), the
|
|
4
|
+
// runtime validator, and the published JSON Schema artifact (schema/v0.json).
|
|
5
|
+
//
|
|
6
|
+
// Lifecycle (Hadley lesson 13; meanings in CONTRIBUTING.md): every export
|
|
7
|
+
// carries a lifecycle tag, collected into the generated lifecycle.json by
|
|
8
|
+
// scripts/gen-lifecycle.ts. Untagged exports inherit the file default below;
|
|
9
|
+
// statements tag themselves with a one-line "@lifecycle <tag>" JSDoc marker;
|
|
10
|
+
// individual names use a trailing "@lifecycle <tag>" line comment.
|
|
11
|
+
// @lifecycle-default experimental
|
|
12
|
+
|
|
13
|
+
// Schemas + Static types
|
|
14
|
+
export { AesSchema, AreaLayerSchema, BarLayerSchema, BoxplotLayerSchema } from "./schema.js";
|
|
15
|
+
export { CATEGORICAL_SCHEME_NAMES, CHANNELS, COLOR_SCHEME_NAMES } from "./schema.js";
|
|
16
|
+
export { CYCLIC_SCHEME_NAMES, ChannelValueSchema, ColLayerSchema } from "./schema.js";
|
|
17
|
+
export { CoordSpecSchema, CoordFixedSpecSchema, CoordSfSpecSchema } from "./schema.js";
|
|
18
|
+
export { CoordRadialSpecSchema, CoordTransformAxisSpecSchema } from "./schema.js";
|
|
19
|
+
export { CoordTransformSpecSchema, CURRENT_EDITION, DataRefSchema } from "./schema.js";
|
|
20
|
+
export { DensityLayerSchema, DotplotLayerSchema, ErrorbarLayerSchema } from "./schema.js";
|
|
21
|
+
export { LinerangeLayerSchema, PointrangeLayerSchema, CrossbarLayerSchema } from "./schema.js";
|
|
22
|
+
export { RectLayerSchema, TileLayerSchema, Bin2dLayerSchema, RasterLayerSchema } from "./schema.js";
|
|
23
|
+
export { HexLayerSchema, RibbonLayerSchema, SegmentLayerSchema } from "./schema.js";
|
|
24
|
+
export { CountLayerSchema, ViolinLayerSchema, FunctionLayerSchema } from "./schema.js";
|
|
25
|
+
export { PolygonLayerSchema, AblineLayerSchema, CurveLayerSchema } from "./schema.js";
|
|
26
|
+
export { RugLayerSchema, StepLayerSchema, QqLayerSchema, QqLineLayerSchema } from "./schema.js";
|
|
27
|
+
export { FacetFieldRefSchema, FacetStripSpecSchema, FacetSpecSchema } from "./schema.js";
|
|
28
|
+
export { ALIAS_GEOMS, GEOM_ALIASES, GEOM_DEFAULTS, HistogramLayerSchema } from "./schema.js";
|
|
29
|
+
export { FreqpolyLayerSchema, HlineLayerSchema, JitterLayerSchema, KNOWN_GEOMS } from "./schema.js";
|
|
30
|
+
export { KNOWN_POSITIONS, KNOWN_STATS, LayerSpecSchema, LineLayerSchema } from "./schema.js";
|
|
31
|
+
export { PathLayerSchema, LINETYPE_NAMES, MAX_BINNED_BREAKS, MAX_GLOW_RADIUS } from "./schema.js";
|
|
32
|
+
export { MAX_PAINT_STOPS, POINT_SHAPE_NAMES, PlotSpecSchema, PointLayerSchema } from "./schema.js";
|
|
33
|
+
export { RuleLayerSchema, VlineLayerSchema, ScalesSchema } from "./schema.js";
|
|
34
|
+
export { SEQUENTIAL_SCHEME_NAMES, TemporalParserSpecSchemaRef } from "./schema.js";
|
|
35
|
+
export { SmoothLayerSchema, SpecModule, TextLayerSchema, LabelLayerSchema } from "./schema.js";
|
|
36
|
+
export { THEME_NAMES, THEME_NAME_ALIASES } from "./schema.js";
|
|
37
|
+
export type { A11yMode, Aes, AreaLayer, AreaParams, BarLayer, BarParams } from "./schema.js";
|
|
38
|
+
export type { BoxplotLayer, BoxplotParams, CellValue, ChannelName } from "./schema.js";
|
|
39
|
+
export type { ChannelValue, ColorStop, ColLayer, ColorScaleSpec, GradientPaint } from "./schema.js";
|
|
40
|
+
export type { GlowSpec, LinearGradientPaint, PaintSpace, RadialGradientPaint } from "./schema.js";
|
|
41
|
+
export type { AlphaScaleSpec, ColParams, CoordSpec, CoordFixedSpec } from "./schema.js";
|
|
42
|
+
export type { CoordSfSpec, CoordRadialSpec, CoordTransformAxisSpec } from "./schema.js";
|
|
43
|
+
export type { CoordTransformSpec, DataColumns, DataName, DataRef, DataValues } from "./schema.js";
|
|
44
|
+
export type { DensityLayer, DensityParams, Density2dParams, Density2dLayer } from "./schema.js";
|
|
45
|
+
export type { Density2dFilledLayer, DotplotLayer, DotplotParams, ErrorbarLayer } from "./schema.js";
|
|
46
|
+
export type { ErrorbarParams, LinerangeLayer, LinerangeParams, PointrangeLayer } from "./schema.js";
|
|
47
|
+
export type { PointrangeParams, CrossbarLayer, CrossbarParams, RectLayer } from "./schema.js";
|
|
48
|
+
export type { RectParams, TileLayer, TileParams, Bin2dLayer, Bin2dParams } from "./schema.js";
|
|
49
|
+
export type { RasterLayer, RasterParams, HexLayer, HexParams, RibbonLayer } from "./schema.js";
|
|
50
|
+
export type { RibbonParams, FacetFieldRef, FacetScales, FacetSpec } from "./schema.js";
|
|
51
|
+
export type { FacetStripSpec, AliasGeomName, GeomName, NormalizedGeomName } from "./schema.js";
|
|
52
|
+
export type { NormalizedLayerSpec, NormalizedSpec, GuideSpec, GuidesSpec } from "./schema.js";
|
|
53
|
+
export type { GuideThemeSpec, AxisGuideSpec, LegendGuideSpec } from "./schema.js";
|
|
54
|
+
export type { ColorbarGuideSpec, ColorstepsGuideSpec, NoneGuideSpec } from "./schema.js";
|
|
55
|
+
export type { HistogramLayer, FreqpolyLayer, HlineLayer, HlineParams } from "./schema.js";
|
|
56
|
+
export type { InlineData, JitterLayer, Labs, LayerSpec, LegendSpec, LineLayer } from "./schema.js";
|
|
57
|
+
export type { LineParams, PathParams, PathLayer, StepLayer, StepParams } from "./schema.js";
|
|
58
|
+
export type { PointLayer, PointParams, PointPosition } from "./schema.js";
|
|
59
|
+
export type {
|
|
60
|
+
PortableSpec, // @lifecycle stable-intent
|
|
61
|
+
} from "./schema.js";
|
|
62
|
+
export type { PositionName, PositionParams, PositionScaleSpec } from "./schema.js";
|
|
63
|
+
export type { PositiveStyleScaleSpec, ShapeScaleSpec, LinetypeScaleSpec } from "./schema.js";
|
|
64
|
+
export type { LinetypeName, PointShapeName, RenderBackend, RuleLayer } from "./schema.js";
|
|
65
|
+
export type { RuleParams, VlineLayer, VlineParams, SegmentLayer, CurveLayer } from "./schema.js";
|
|
66
|
+
export type { SfLayer, SfTextLayer, SfLabelLayer, SpokeLayer, SpokeParams } from "./schema.js";
|
|
67
|
+
export type { SegmentParams, CountLayer, ViolinLayer, ViolinParams } from "./schema.js";
|
|
68
|
+
export type { FunctionLayer, FunctionParams, FunctionRegistryName } from "./schema.js";
|
|
69
|
+
export type { FunctionArgs, PolygonLayer, PolygonParams, AblineLayer } from "./schema.js";
|
|
70
|
+
export type { AblineParams, CurveParams, MapParams, SfParams, MapLayer } from "./schema.js";
|
|
71
|
+
export type { SfTextParams, SfLabelParams, BlankLayer, BlankParams, RugLayer } from "./schema.js";
|
|
72
|
+
export type { RugParams, QqLayer, QqParams, QqLineLayer, QqLineParams } from "./schema.js";
|
|
73
|
+
export type { ScaleExpansion, Scales, QuantileLayer, QuantileParams } from "./schema.js";
|
|
74
|
+
export type { ContourParams, ContourLayer, SmoothLayer, SmoothParams } from "./schema.js";
|
|
75
|
+
export type { StackablePosition, StatName, SummaryFun, TextLayer, LabelLayer } from "./schema.js";
|
|
76
|
+
export type { TemporalParserSpec, TextParams, LabelParams, ThemeName } from "./schema.js";
|
|
77
|
+
export type { ThemeSpec } from "./schema.js";
|
|
78
|
+
|
|
79
|
+
export { guideAxis, guideColorbar, guideColorsteps, guideLegend } from "./guide-helpers.js";
|
|
80
|
+
export { guideNone, guides, guide_axis, guide_colorbar } from "./guide-helpers.js";
|
|
81
|
+
export { guide_colorsteps, guide_legend, guide_none } from "./guide-helpers.js";
|
|
82
|
+
export type { AxisGuideOptions, ColorbarGuideOptions } from "./guide-helpers.js";
|
|
83
|
+
export type { ColorstepsGuideOptions, LegendGuideOptions } from "./guide-helpers.js";
|
|
84
|
+
|
|
85
|
+
// Checked public capability ledger
|
|
86
|
+
export { buildGreyPalette, buildHuePalette, GREY_PALETTE_10 } from "./hue-grey-palettes.js";
|
|
87
|
+
export { HUE_PALETTE_10, hslToHex } from "./hue-grey-palettes.js";
|
|
88
|
+
export { SCALE_CAPABILITIES, STYLE_AESTHETIC_GEOMS } from "./capabilities.js";
|
|
89
|
+
export { STYLE_ORDINAL_SCALE_HELPERS, scaleCapabilityCamelHelpers } from "./capabilities.js";
|
|
90
|
+
export { builderScaleHelperNames } from "./capabilities.js";
|
|
91
|
+
export type { ScaleCapability, StyleAesthetic } from "./capabilities.js";
|
|
92
|
+
/** @lifecycle experimental */
|
|
93
|
+
export { GEOM_PARAM_KEYS } from "./geom-params.js";
|
|
94
|
+
/** @lifecycle experimental */
|
|
95
|
+
export { GEOM_REFERENCE, SHARED_LAYER_PROPS, componentNameForGeom } from "./geom-reference.js";
|
|
96
|
+
/** @lifecycle experimental */
|
|
97
|
+
export { geomReferenceList } from "./geom-reference.js";
|
|
98
|
+
/** @lifecycle experimental */
|
|
99
|
+
export type { GeomParamDoc, GeomReferenceEntry, SharedLayerPropDoc } from "./geom-reference.js";
|
|
100
|
+
/** @lifecycle experimental */
|
|
101
|
+
export { STAT_REFERENCE, statReferenceList } from "./stat-reference.js";
|
|
102
|
+
/** @lifecycle experimental */
|
|
103
|
+
export type { StatReferenceEntry } from "./stat-reference.js";
|
|
104
|
+
/** @lifecycle experimental */
|
|
105
|
+
export { POSITION_REFERENCE, positionReferenceList } from "./position-reference.js";
|
|
106
|
+
/** @lifecycle experimental */
|
|
107
|
+
export type { PositionParamDoc, PositionReferenceEntry } from "./position-reference.js";
|
|
108
|
+
/** @lifecycle experimental */
|
|
109
|
+
export { COORD_REFERENCE, KNOWN_COORD_TYPES, coordReferenceList } from "./coord-reference.js";
|
|
110
|
+
/** @lifecycle experimental */
|
|
111
|
+
export type { CoordParamDoc, CoordReferenceEntry, CoordTypeName } from "./coord-reference.js";
|
|
112
|
+
/** @lifecycle experimental */
|
|
113
|
+
export { SCALE_FAMILY_LABELS, SCALE_REFERENCE, allScaleHelpers } from "./scale-reference.js";
|
|
114
|
+
/** @lifecycle experimental */
|
|
115
|
+
export { componentNameForScaleHelper, knownScaleSlugs } from "./scale-reference.js";
|
|
116
|
+
/** @lifecycle experimental */
|
|
117
|
+
export { primaryScaleHelpers, scaleReferenceByFamily } from "./scale-reference.js";
|
|
118
|
+
/** @lifecycle experimental */
|
|
119
|
+
export { scaleReferenceList, scaleReferencePrimaries } from "./scale-reference.js";
|
|
120
|
+
/** @lifecycle experimental */
|
|
121
|
+
export { slugForScaleHelper } from "./scale-reference.js";
|
|
122
|
+
/** @lifecycle experimental */
|
|
123
|
+
export type { ScaleAesthetic, ScaleFamily, ScaleParamDoc } from "./scale-reference.js";
|
|
124
|
+
/** @lifecycle experimental */
|
|
125
|
+
export type { ScaleReferenceEntry } from "./scale-reference.js";
|
|
126
|
+
/** @lifecycle experimental */
|
|
127
|
+
export { GUIDE_CHANNELS, GUIDE_REFERENCE, KNOWN_GUIDE_TYPES } from "./guide-reference.js";
|
|
128
|
+
/** @lifecycle experimental */
|
|
129
|
+
export { guideReferenceList } from "./guide-reference.js";
|
|
130
|
+
/** @lifecycle experimental */
|
|
131
|
+
export type { GuideChannelName, GuideParamDoc, GuideReferenceEntry } from "./guide-reference.js";
|
|
132
|
+
/** @lifecycle experimental */
|
|
133
|
+
export type { GuideTypeName } from "./guide-reference.js";
|
|
134
|
+
|
|
135
|
+
// Temporal parsing, inference, and authoring conversions
|
|
136
|
+
export { canonicalTemporalParserKey, dmy, dmy_hm, dmy_hms, dym, dym_hm } from "./temporal.js";
|
|
137
|
+
export { dym_hms, fromEpochMilliseconds, fromEpochSeconds } from "./temporal.js";
|
|
138
|
+
export { inferTemporalColumn, mdy, mdy_hm, mdy_hms, my, myd, myd_hm, myd_hms } from "./temporal.js";
|
|
139
|
+
export { parseTemporal, parseTemporalColumn, parseTemporalFormat } from "./temporal.js";
|
|
140
|
+
export { TEMPORAL_PARSER_NAMES, temporalParserConfigurationError } from "./temporal.js";
|
|
141
|
+
export { TemporalParseError, TemporalParserSpecSchema, ydm, ydm_hm, ydm_hms } from "./temporal.js";
|
|
142
|
+
export { ym, ymd, ymd_hm, ymd_hms, yq } from "./temporal.js";
|
|
143
|
+
export type { TemporalDecision, TemporalDisambiguation, TemporalFailure } from "./temporal.js";
|
|
144
|
+
export type { TemporalKind, TemporalScaleKind, ParsedTemporalColumn } from "./temporal.js";
|
|
145
|
+
export type { TemporalParseOptions, TemporalParseResult, TemporalParserName } from "./temporal.js";
|
|
146
|
+
export type { TemporalPrecision } from "./temporal.js";
|
|
147
|
+
export { MONTH_DAY_REFERENCE_YEAR } from "./temporal.js";
|
|
148
|
+
/** Registers `@js-temporal/polyfill` for full temporal graphs (not lean render). */
|
|
149
|
+
export { ensureTemporalPolyfill } from "./temporal-polyfill.js";
|
|
150
|
+
export { MAX_TEMPORAL_CANDIDATES, MAX_TEMPORAL_MAJOR_TICKS } from "./temporal-guides.js";
|
|
151
|
+
export { MAX_TEMPORAL_MINOR_TICKS, MIN_TEMPORAL_LABEL_GAP_PX } from "./temporal-guides.js";
|
|
152
|
+
export { parseTemporalInterval, TEMPORAL_INTERVAL_UNITS } from "./temporal-guides.js";
|
|
153
|
+
export { TEMPORAL_LABEL_TOKENS, TEMPORAL_WEEKDAYS } from "./temporal-guides.js";
|
|
154
|
+
export { TemporalIntervalError, TemporalIntervalSpecSchema } from "./temporal-guides.js";
|
|
155
|
+
export { TemporalLabelSpecSchema, temporalIntervalTicks } from "./temporal-guides.js";
|
|
156
|
+
export { temporalLabelConfigurationError } from "./temporal-guides.js";
|
|
157
|
+
export { temporalLocaleConfigurationError, TemporalWeekStartSchema } from "./temporal-guides.js";
|
|
158
|
+
export type { TemporalInterval, TemporalIntervalSpec } from "./temporal-guides.js";
|
|
159
|
+
export type { TemporalIntervalUnit, TemporalWeekStart } from "./temporal-guides.js";
|
|
160
|
+
|
|
161
|
+
// Coordinate helpers
|
|
162
|
+
export { coord_equal, coord_fixed, coord_polar, coord_radial, coord_sf } from "./coord-helpers.js";
|
|
163
|
+
export { coord_transform, coordEqual, coordFixed, coordPolar } from "./coord-helpers.js";
|
|
164
|
+
export { coordRadial, coordSf, coordTransform } from "./coord-helpers.js";
|
|
165
|
+
export type { CoordFixedOptions, CoordPolarOptions, CoordRadialOptions } from "./coord-helpers.js";
|
|
166
|
+
export type { CoordRadialReverse, CoordRadialTheta, CoordSfOptions } from "./coord-helpers.js";
|
|
167
|
+
export type { CoordTransformAxisOptions, CoordTransformName } from "./coord-helpers.js";
|
|
168
|
+
export type { CoordTransformOptions } from "./coord-helpers.js";
|
|
169
|
+
// Scale helpers
|
|
170
|
+
export { configuredColorScaleType, canonicalMultiScaleChannel } from "./scale-helpers.js";
|
|
171
|
+
export { scaleContinuousIdentity, scaleDiscreteIdentity } from "./scale-helpers.js";
|
|
172
|
+
export { scaleDiscreteManual, scaleType, scale_continuous_identity } from "./scale-helpers.js";
|
|
173
|
+
export { scale_discrete_identity, scale_discrete_manual, scale_type } from "./scale-helpers.js";
|
|
174
|
+
export { scaleColorBinned, scaleColorBrewer, scaleColorContinuous } from "./scale-helpers.js";
|
|
175
|
+
export { scaleColorDate, scaleColorDatetime, scaleColorDiscrete } from "./scale-helpers.js";
|
|
176
|
+
export { scaleColorDistiller, scaleColorFermenter, scaleColorGradient } from "./scale-helpers.js";
|
|
177
|
+
export { scaleColorGradient2, scaleColorGradientn, scaleColorIdentity } from "./scale-helpers.js";
|
|
178
|
+
export { scaleColorLog10, scaleColorManual, scaleColorSqrt } from "./scale-helpers.js";
|
|
179
|
+
export { scaleColorSteps, scaleColorSteps2, scaleColorStepsn } from "./scale-helpers.js";
|
|
180
|
+
export { scaleColorHue, scaleColorGrey, scaleColorGray } from "./scale-helpers.js";
|
|
181
|
+
export { scaleColorOrdinal, scaleColourBinned, scaleColourBrewer } from "./scale-helpers.js";
|
|
182
|
+
export { scaleColourContinuous, scaleColourDate, scaleColourDatetime } from "./scale-helpers.js";
|
|
183
|
+
export { scaleColourDiscrete, scaleColourDistiller } from "./scale-helpers.js";
|
|
184
|
+
export { scaleColourFermenter, scaleColourGradient } from "./scale-helpers.js";
|
|
185
|
+
export { scaleColourGradient2, scaleColourGradientn } from "./scale-helpers.js";
|
|
186
|
+
export { scaleColourIdentity, scaleColourLog10, scaleColourManual } from "./scale-helpers.js";
|
|
187
|
+
export { scaleColourSqrt, scaleColourSteps, scaleColourSteps2 } from "./scale-helpers.js";
|
|
188
|
+
export { scaleColourStepsn, scaleColourHue, scaleColourGrey } from "./scale-helpers.js";
|
|
189
|
+
export { scaleColourGray, scaleColourOrdinal, scaleFillBinned } from "./scale-helpers.js";
|
|
190
|
+
export { scaleFillBrewer, scaleFillContinuous, scaleFillDate } from "./scale-helpers.js";
|
|
191
|
+
export { scaleFillDatetime, scaleFillDiscrete, scaleFillDistiller } from "./scale-helpers.js";
|
|
192
|
+
export { scaleFillFermenter, scaleFillGradient, scaleFillGradient2 } from "./scale-helpers.js";
|
|
193
|
+
export { scaleFillGradientn, scaleFillIdentity, scaleFillLog10 } from "./scale-helpers.js";
|
|
194
|
+
export { scaleFillManual, scaleFillSqrt, scaleFillSteps } from "./scale-helpers.js";
|
|
195
|
+
export { scaleFillSteps2, scaleFillStepsn, scaleColorViridisB } from "./scale-helpers.js";
|
|
196
|
+
export { scaleColorViridisC, scaleColorViridisD, scaleColourViridisB } from "./scale-helpers.js";
|
|
197
|
+
export { scaleColourViridisC, scaleColourViridisD, scaleFillViridisB } from "./scale-helpers.js";
|
|
198
|
+
export { scaleFillViridisC, scaleFillViridisD, scaleFillHue } from "./scale-helpers.js";
|
|
199
|
+
export { scaleFillGrey, scaleFillGray, scaleFillOrdinal } from "./scale-helpers.js";
|
|
200
|
+
export { scale_color_binned, scale_color_brewer, scale_color_continuous } from "./scale-helpers.js";
|
|
201
|
+
export { scale_color_date, scale_color_datetime, scale_color_discrete } from "./scale-helpers.js";
|
|
202
|
+
export { scale_color_distiller, scale_color_fermenter } from "./scale-helpers.js";
|
|
203
|
+
export { scale_color_gradient, scale_color_gradient2 } from "./scale-helpers.js";
|
|
204
|
+
export { scale_color_gradientn, scale_color_identity, scale_color_log10 } from "./scale-helpers.js";
|
|
205
|
+
export { scale_color_manual, scale_color_sqrt, scale_color_steps } from "./scale-helpers.js";
|
|
206
|
+
export { scale_color_steps2, scale_color_stepsn, scale_color_viridis_b } from "./scale-helpers.js";
|
|
207
|
+
export { scale_color_viridis_c, scale_color_viridis_d, scale_color_hue } from "./scale-helpers.js";
|
|
208
|
+
export { scale_color_grey, scale_color_gray, scale_color_ordinal } from "./scale-helpers.js";
|
|
209
|
+
export { scale_colour_binned, scale_colour_brewer } from "./scale-helpers.js";
|
|
210
|
+
export { scale_colour_continuous, scale_colour_date } from "./scale-helpers.js";
|
|
211
|
+
export { scale_colour_datetime, scale_colour_discrete } from "./scale-helpers.js";
|
|
212
|
+
export { scale_colour_distiller, scale_colour_fermenter } from "./scale-helpers.js";
|
|
213
|
+
export { scale_colour_gradient, scale_colour_gradient2 } from "./scale-helpers.js";
|
|
214
|
+
export { scale_colour_gradientn, scale_colour_identity } from "./scale-helpers.js";
|
|
215
|
+
export { scale_colour_log10, scale_colour_manual, scale_colour_sqrt } from "./scale-helpers.js";
|
|
216
|
+
export { scale_colour_steps, scale_colour_steps2, scale_colour_stepsn } from "./scale-helpers.js";
|
|
217
|
+
export { scale_colour_viridis_b, scale_colour_viridis_c } from "./scale-helpers.js";
|
|
218
|
+
export { scale_colour_viridis_d, scale_colour_hue, scale_colour_grey } from "./scale-helpers.js";
|
|
219
|
+
export { scale_colour_gray, scale_colour_ordinal, scale_fill_binned } from "./scale-helpers.js";
|
|
220
|
+
export { scale_fill_brewer, scale_fill_continuous, scale_fill_date } from "./scale-helpers.js";
|
|
221
|
+
export { scale_fill_datetime, scale_fill_discrete, scale_fill_distiller } from "./scale-helpers.js";
|
|
222
|
+
export { scale_fill_fermenter, scale_fill_gradient } from "./scale-helpers.js";
|
|
223
|
+
export { scale_fill_gradient2, scale_fill_gradientn } from "./scale-helpers.js";
|
|
224
|
+
export { scale_fill_identity, scale_fill_log10, scale_fill_manual } from "./scale-helpers.js";
|
|
225
|
+
export { scale_fill_sqrt, scale_fill_steps, scale_fill_steps2 } from "./scale-helpers.js";
|
|
226
|
+
export { scale_fill_stepsn, scale_fill_viridis_b, scale_fill_viridis_c } from "./scale-helpers.js";
|
|
227
|
+
export { scale_fill_viridis_d, scale_fill_hue, scale_fill_grey } from "./scale-helpers.js";
|
|
228
|
+
export { scale_fill_gray, scale_fill_ordinal, scaleXBinned } from "./scale-helpers.js";
|
|
229
|
+
export { scaleXContinuous, scaleXDate, scaleXDatetime, scaleXTime } from "./scale-helpers.js";
|
|
230
|
+
export { scaleXDiscrete, scaleXLog10, scaleXReverse, scaleXSqrt } from "./scale-helpers.js";
|
|
231
|
+
export { scaleYBinned, scaleYContinuous, scaleYDate, scaleYDatetime } from "./scale-helpers.js";
|
|
232
|
+
export { scaleYTime, scaleXMonthDay, scaleYMonthDay, scaleYDiscrete } from "./scale-helpers.js";
|
|
233
|
+
export { scaleYLog10, scaleYReverse, scaleYSqrt, scale_x_binned } from "./scale-helpers.js";
|
|
234
|
+
export { scale_x_continuous, scale_x_date, scale_x_datetime } from "./scale-helpers.js";
|
|
235
|
+
export { scale_x_time, scale_x_discrete, scale_x_log10, scale_x_reverse } from "./scale-helpers.js";
|
|
236
|
+
export { scale_x_sqrt, scale_y_binned, scale_y_continuous, scale_y_date } from "./scale-helpers.js";
|
|
237
|
+
export { scale_y_datetime, scale_y_time, scale_x_month_day } from "./scale-helpers.js";
|
|
238
|
+
export { scale_y_month_day, scale_y_discrete, scale_y_log10 } from "./scale-helpers.js";
|
|
239
|
+
export { scale_y_reverse, scale_y_sqrt } from "./scale-helpers.js";
|
|
240
|
+
export { scaleAlpha, scaleAlphaBinned, scaleAlphaContinuous } from "./scale-helpers.js";
|
|
241
|
+
export { scaleAlphaDate, scaleAlphaDatetime, scaleAlphaDiscrete } from "./scale-helpers.js";
|
|
242
|
+
export { scaleAlphaIdentity, scaleAlphaManual, scaleAlphaOrdinal } from "./scale-helpers.js";
|
|
243
|
+
export { scaleLinewidth, scaleLinewidthBinned, scaleLinewidthContinuous } from "./scale-helpers.js";
|
|
244
|
+
export { scaleLinewidthDate, scaleLinewidthDatetime } from "./scale-helpers.js";
|
|
245
|
+
export { scaleLinewidthDiscrete, scaleLinewidthIdentity } from "./scale-helpers.js";
|
|
246
|
+
export { scaleLinewidthManual, scaleLinewidthOrdinal, scaleLinetype } from "./scale-helpers.js";
|
|
247
|
+
export { scaleLinetypeBinned, scaleLinetypeDiscrete } from "./scale-helpers.js";
|
|
248
|
+
export { scaleLinetypeIdentity, scaleLinetypeManual, scaleShape } from "./scale-helpers.js";
|
|
249
|
+
export { scaleShapeBinned, scaleShapeDiscrete, scaleShapeIdentity } from "./scale-helpers.js";
|
|
250
|
+
export { scaleShapeManual, scaleShapeOrdinal, scaleSize, scaleSizeArea } from "./scale-helpers.js";
|
|
251
|
+
export { scaleSizeBinned, scaleSizeBinnedArea, scaleSizeContinuous } from "./scale-helpers.js";
|
|
252
|
+
export { scaleSizeDate, scaleSizeDatetime, scaleSizeDiscrete } from "./scale-helpers.js";
|
|
253
|
+
export { scaleSizeIdentity, scaleSizeManual, scaleSizeOrdinal } from "./scale-helpers.js";
|
|
254
|
+
export { scaleRadius, scale_alpha, scale_alpha_binned } from "./scale-helpers.js";
|
|
255
|
+
export { scale_alpha_continuous, scale_alpha_date, scale_alpha_datetime } from "./scale-helpers.js";
|
|
256
|
+
export { scale_alpha_discrete, scale_alpha_identity, scale_alpha_manual } from "./scale-helpers.js";
|
|
257
|
+
export { scale_alpha_ordinal, scale_linetype, scale_linetype_binned } from "./scale-helpers.js";
|
|
258
|
+
export { scale_linetype_discrete, scale_linetype_identity } from "./scale-helpers.js";
|
|
259
|
+
export { scale_linetype_manual, scale_linewidth, scale_linewidth_binned } from "./scale-helpers.js";
|
|
260
|
+
export { scale_linewidth_continuous, scale_linewidth_date } from "./scale-helpers.js";
|
|
261
|
+
export { scale_linewidth_datetime, scale_linewidth_discrete } from "./scale-helpers.js";
|
|
262
|
+
export { scale_linewidth_identity, scale_linewidth_manual } from "./scale-helpers.js";
|
|
263
|
+
export { scale_linewidth_ordinal, scale_shape, scale_shape_binned } from "./scale-helpers.js";
|
|
264
|
+
export { scale_shape_discrete, scale_shape_identity, scale_shape_manual } from "./scale-helpers.js";
|
|
265
|
+
export { scale_shape_ordinal, scale_size, scale_size_area } from "./scale-helpers.js";
|
|
266
|
+
export { scale_size_binned, scale_size_binned_area } from "./scale-helpers.js";
|
|
267
|
+
export { scale_size_continuous, scale_size_date, scale_size_datetime } from "./scale-helpers.js";
|
|
268
|
+
export { scale_size_discrete, scale_size_identity, scale_size_manual } from "./scale-helpers.js";
|
|
269
|
+
export { scale_size_ordinal, scale_radius } from "./scale-helpers.js";
|
|
270
|
+
export type { BinnedColorScaleOptions, ColorBrewerScaleOptions } from "./scale-helpers.js";
|
|
271
|
+
export type { ColorDistillerScaleOptions, ColorFermenterScaleOptions } from "./scale-helpers.js";
|
|
272
|
+
export type { ColorScaleOptions, ContinuousPositionScaleOptions } from "./scale-helpers.js";
|
|
273
|
+
export type { DiscreteColorScaleOptions, IdentityColorScaleOptions } from "./scale-helpers.js";
|
|
274
|
+
export type { StepsScaleOptions, Steps2ScaleOptions, StepsnScaleOptions } from "./scale-helpers.js";
|
|
275
|
+
export type { GradientScaleOptions, Gradient2ScaleOptions } from "./scale-helpers.js";
|
|
276
|
+
export type { GradientnScaleOptions, HueScaleOptions, GreyScaleOptions } from "./scale-helpers.js";
|
|
277
|
+
export type { OrdinalColorScaleOptions, ManualColorScaleOptions } from "./scale-helpers.js";
|
|
278
|
+
export type { ViridisOptionName, ViridisScaleOptions } from "./scale-helpers.js";
|
|
279
|
+
export type { MultiIdentityScaleOptions, MultiManualScaleOptions } from "./scale-helpers.js";
|
|
280
|
+
export type { MultiScaleAesthetic, MultiScaleChannel } from "./scale-helpers.js";
|
|
281
|
+
export type { RecommendedScaleType, ScaleTypeAesthetic } from "./scale-helpers.js";
|
|
282
|
+
export type { DiscreteNumericStyleScaleOptions } from "./scale-helpers.js";
|
|
283
|
+
export type { BinnedFiniteStyleScaleOptions } from "./scale-helpers.js";
|
|
284
|
+
export type { DiscreteFiniteStyleScaleOptions, FiniteStyleScaleOptions } from "./scale-helpers.js";
|
|
285
|
+
export type { IdentityFiniteStyleScaleOptions } from "./scale-helpers.js";
|
|
286
|
+
export type { IdentityNumericStyleScaleOptions } from "./scale-helpers.js";
|
|
287
|
+
export type { ManualFiniteStyleScaleOptions } from "./scale-helpers.js";
|
|
288
|
+
export type { ManualNumericStyleScaleOptions, NumericStyleScaleOptions } from "./scale-helpers.js";
|
|
289
|
+
export type { SequentialStyleScaleOptions, SizeAreaScaleOptions } from "./scale-helpers.js";
|
|
290
|
+
export type { SizeSequentialStyleScaleOptions } from "./scale-helpers.js";
|
|
291
|
+
export type { SizeTemporalNumericStyleScaleOptions } from "./scale-helpers.js";
|
|
292
|
+
export type { TemporalNumericStyleScaleOptions } from "./scale-helpers.js";
|
|
293
|
+
export type { SequentialColorScaleOptions, TemporalColorScaleOptions } from "./scale-helpers.js";
|
|
294
|
+
export type { TransformedColorScaleOptions } from "./scale-helpers.js";
|
|
295
|
+
export type { DiscretePositionScaleOptions, TemporalScaleOptions } from "./scale-helpers.js";
|
|
296
|
+
export type { TransformedPositionScaleOptions } from "./scale-helpers.js";
|
|
297
|
+
|
|
298
|
+
// Portability (PortableSpec vs RuntimeSpec)
|
|
299
|
+
export { isPortable, portabilityIssues, toPortable, toPortableLossy } from "./portability.js";
|
|
300
|
+
export { UnportableSpecError } from "./portability.js";
|
|
301
|
+
export type { JSONValue, LossyResult, PortabilityIssue } from "./portability.js";
|
|
302
|
+
export type { ChannelFn, RuntimeAes, RuntimeAreaLayer, RuntimeBarLayer } from "./runtime.js";
|
|
303
|
+
export type { RuntimeBoxplotLayer, RuntimeChannelValue, RuntimeColLayer } from "./runtime.js";
|
|
304
|
+
export type { RuntimeDensityLayer, RuntimeErrorbarLayer } from "./runtime.js";
|
|
305
|
+
export type { RuntimeLinerangeLayer, RuntimePointrangeLayer } from "./runtime.js";
|
|
306
|
+
export type { RuntimeCrossbarLayer, RuntimeRibbonLayer, RuntimeHistogramLayer } from "./runtime.js";
|
|
307
|
+
export type { RuntimeFreqpolyLayer, RuntimeHlineLayer, RuntimeJitterLayer } from "./runtime.js";
|
|
308
|
+
export type { RuntimeLayerSpec, RuntimeLineLayer, RuntimePathLayer } from "./runtime.js";
|
|
309
|
+
export type { RuntimePointLayer, RuntimeRasterLayer, RuntimeHexLayer } from "./runtime.js";
|
|
310
|
+
export type { RuntimeRectLayer, RuntimeSegmentLayer, RuntimeCountLayer } from "./runtime.js";
|
|
311
|
+
export type { RuntimeViolinLayer, RuntimeFunctionLayer, RuntimePolygonLayer } from "./runtime.js";
|
|
312
|
+
export type { RuntimeAblineLayer, RuntimeContourLayer, RuntimeDensity2dLayer } from "./runtime.js";
|
|
313
|
+
export type { RuntimeDensity2dFilledLayer, RuntimeDotplotLayer } from "./runtime.js";
|
|
314
|
+
export type { RuntimeMapLayer, RuntimeBlankLayer, RuntimeSpokeLayer } from "./runtime.js";
|
|
315
|
+
export type { RuntimeRugLayer, RuntimeSfLayer, RuntimeSfTextLayer } from "./runtime.js";
|
|
316
|
+
export type { RuntimeSfLabelLayer, RuntimeCurveLayer, RuntimeStepLayer } from "./runtime.js";
|
|
317
|
+
export type { RuntimeQqLayer, RuntimeQqLineLayer, RuntimeRuleLayer } from "./runtime.js";
|
|
318
|
+
export type { RuntimeSmoothLayer, RuntimeQuantileLayer, RuntimeSpec } from "./runtime.js";
|
|
319
|
+
export type { RuntimeTextLayer, RuntimeLabelLayer, RuntimeTileLayer } from "./runtime.js";
|
|
320
|
+
export type { RuntimeBin2dLayer, RuntimeVlineLayer } from "./runtime.js";
|
|
321
|
+
|
|
322
|
+
// Canonicalizer
|
|
323
|
+
/** @lifecycle stable-intent */
|
|
324
|
+
export { normalize } from "./normalize.js";
|
|
325
|
+
export { normalizeChannel } from "./normalize.js";
|
|
326
|
+
export type { AesInput, AreaLayerInput, BarLayerInput, BoxplotLayerInput } from "./normalize.js";
|
|
327
|
+
export type { ChannelInput, ColLayerInput, DensityLayerInput } from "./normalize.js";
|
|
328
|
+
export type { ErrorbarLayerInput, LinerangeLayerInput, PointrangeLayerInput } from "./normalize.js";
|
|
329
|
+
export type { CrossbarLayerInput, RibbonLayerInput, SegmentLayerInput } from "./normalize.js";
|
|
330
|
+
export type { CountLayerInput, ViolinLayerInput, FunctionLayerInput } from "./normalize.js";
|
|
331
|
+
export type { PolygonLayerInput, AblineLayerInput, ContourLayerInput } from "./normalize.js";
|
|
332
|
+
export type { Density2dLayerInput, Density2dFilledLayerInput } from "./normalize.js";
|
|
333
|
+
export type { DotplotLayerInput, MapLayerInput, BlankLayerInput } from "./normalize.js";
|
|
334
|
+
export type { SpokeLayerInput, RugLayerInput, SfLayerInput } from "./normalize.js";
|
|
335
|
+
export type { SfTextLayerInput, SfLabelLayerInput, CurveLayerInput } from "./normalize.js";
|
|
336
|
+
export type { StepLayerInput, QqLayerInput, QqLineLayerInput } from "./normalize.js";
|
|
337
|
+
export type { FacetFieldInput, FacetInput, HistogramLayerInput } from "./normalize.js";
|
|
338
|
+
export type { FreqpolyLayerInput, HlineLayerInput, JitterLayerInput } from "./normalize.js";
|
|
339
|
+
export type { LayerInput, LineLayerInput, PathLayerInput, PointLayerInput } from "./normalize.js";
|
|
340
|
+
export type { RasterLayerInput, HexLayerInput, RectLayerInput } from "./normalize.js";
|
|
341
|
+
export type { RuleLayerInput, QuantileLayerInput, SmoothLayerInput } from "./normalize.js";
|
|
342
|
+
export type { TileLayerInput, Bin2dLayerInput, SpecInput, TextLayerInput } from "./normalize.js";
|
|
343
|
+
export type { LabelLayerInput, VlineLayerInput } from "./normalize.js";
|
|
344
|
+
|
|
345
|
+
// Validation + agent error contract
|
|
346
|
+
/** @lifecycle stable-intent */
|
|
347
|
+
export { validate } from "./validate.js";
|
|
348
|
+
/** @lifecycle stable-intent */
|
|
349
|
+
export type { ValidateResult } from "./validate.js";
|
|
350
|
+
/** TypeBox-free structural gate used by the render pipeline. */
|
|
351
|
+
export { assertStructuralGate, structuralGateErrors } from "./structural-gate.js";
|
|
352
|
+
/** Shared temporal-guide vs explicit scale-type check for validate and render. */
|
|
353
|
+
export { temporalGuideTypeMismatchError } from "./validate-data-checks-position.js";
|
|
354
|
+
export { LINT_CATALOG, lintSpec } from "./lint.js";
|
|
355
|
+
export type { LintAdvisoryCode, LintCatalogEntry, SpecAdvisory } from "./lint.js";
|
|
356
|
+
export { ERROR_CATALOG } from "./errors.js";
|
|
357
|
+
export type { ErrorCatalogEntry } from "./errors.js";
|
|
358
|
+
export { PIPELINE_ERROR_CATALOG } from "./pipeline-error-catalog.js";
|
|
359
|
+
export type { PipelineErrorCatalogEntry, PipelineErrorCode } from "./pipeline-error-catalog.js";
|
|
360
|
+
export { DEFAULT_VALIDATE_LIMITS, effectiveChannel, STAT_COLUMNS } from "./validate-data.js";
|
|
361
|
+
export type { DataProfile, DataProfileField, ProfileFieldType } from "./validate-data.js";
|
|
362
|
+
export type { ValidateLimits, ValidateOptions } from "./validate-data.js";
|
|
363
|
+
export { didYouMean, ERROR_CODES, levenshtein } from "./errors.js";
|
|
364
|
+
export {
|
|
365
|
+
SpecValidationError, // @lifecycle stable-intent
|
|
366
|
+
} from "./errors.js";
|
|
367
|
+
/** @lifecycle stable-intent */
|
|
368
|
+
export type { SpecError, SpecErrorCode, SpecErrorFix } from "./errors.js";
|
|
369
|
+
|
|
370
|
+
// Fluent builder
|
|
371
|
+
export { aes, gg, GGBuilder } from "./builder.js";
|
|
372
|
+
/** Authoring data snapshot + portable Date→ISO (shared by builder + assemble). */
|
|
373
|
+
export { calendarDateFields, toAuthoringDataRef, toDataRef } from "./builder-data.js";
|
|
374
|
+
export type { AuthoringCellValue, AuthoringColumns, AuthoringDataRef } from "./builder.js";
|
|
375
|
+
export type { AuthoringRows, DataInput, GeomAreaOptions, GeomBarOptions } from "./builder.js";
|
|
376
|
+
export type { GeomBoxplotOptions, GeomColOptions, GeomDensityOptions } from "./builder.js";
|
|
377
|
+
export type { GeomDensity2dOptions, GeomDensity2dFilledOptions } from "./builder.js";
|
|
378
|
+
export type { GeomDotplotOptions, GeomErrorbarOptions, GeomLinerangeOptions } from "./builder.js";
|
|
379
|
+
export type { GeomPointrangeOptions, GeomCrossbarOptions } from "./builder.js";
|
|
380
|
+
export type { GeomHistogramOptions, GeomFreqpolyOptions, GeomHlineOptions } from "./builder.js";
|
|
381
|
+
export type { GeomJitterOptions, GeomLineOptions, GeomPathOptions } from "./builder.js";
|
|
382
|
+
export type { GeomPointOptions, GeomQuantileOptions, GeomContourOptions } from "./builder.js";
|
|
383
|
+
export type { GeomRasterOptions, GeomHexOptions, GeomRectOptions } from "./builder.js";
|
|
384
|
+
export type { GeomRuleOptions, GeomRugOptions, GeomSegmentOptions } from "./builder.js";
|
|
385
|
+
export type { GeomCountOptions, GeomViolinOptions, GeomFunctionOptions } from "./builder.js";
|
|
386
|
+
export type { GeomPolygonOptions, GeomAblineOptions, GeomCurveOptions } from "./builder.js";
|
|
387
|
+
export type { GeomMapOptions, GeomBlankOptions, GeomSpokeOptions } from "./builder.js";
|
|
388
|
+
export type { GeomSfOptions, GeomSfTextOptions, GeomSfLabelOptions } from "./builder.js";
|
|
389
|
+
export type { GeomStepOptions, GeomQqOptions, GeomQqLineOptions } from "./builder.js";
|
|
390
|
+
export type { GeomSmoothOptions, GeomTextOptions, GeomLabelOptions } from "./builder.js";
|
|
391
|
+
export type { GeomTileOptions, GeomBin2dOptions, GeomVlineOptions } from "./builder.js";
|
|
392
|
+
|
|
393
|
+
// Within-mark paint helpers (#591)
|
|
394
|
+
export { fillPaintLinear, fillPaintRadial, glow, strokePaintLinear } from "./paint-helpers.js";
|
|
395
|
+
export { strokePaintRadial } from "./paint-helpers.js";
|
|
396
|
+
export type { ColorStopInput, GlowOptions, LinearPaintOptions } from "./paint-helpers.js";
|
|
397
|
+
export type { RadialPaintOptions } from "./paint-helpers.js";
|
|
398
|
+
|
|
399
|
+
// Schema artifact (schema/v0.json)
|
|
400
|
+
export { buildSchemaArtifact, SCHEMA_VERSION, schemaArtifactJSON } from "./artifact.js";
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spec lint-advisory catalog — pure data for docs and code identity.
|
|
3
|
+
* Runtime SpecAdvisory instances and lintSpec() live in lint.ts;
|
|
4
|
+
* rule emission sites: lint-layer-rules.ts and lint-scale-rules.ts.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/** One entry of the lint catalog (docs render straight from it). */
|
|
8
|
+
export interface LintCatalogEntry {
|
|
9
|
+
summary: string;
|
|
10
|
+
/** What evidence the rule needs ("spec" alone, or inline data / profile). */
|
|
11
|
+
needs: "spec" | "data" | "data-or-profile";
|
|
12
|
+
rationale: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/** The lint-advisory catalog — the single source for the docs page. */
|
|
16
|
+
export const LINT_CATALOG = {
|
|
17
|
+
"line-over-nominal-x": {
|
|
18
|
+
summary: "A line layer connects points across a nominal (unordered) x field.",
|
|
19
|
+
needs: "data-or-profile",
|
|
20
|
+
rationale:
|
|
21
|
+
"Lines encode order; connecting unordered categories draws meaningless slopes. Use col/bar for per-category values, or declare the field ordinal if it is genuinely ordered.",
|
|
22
|
+
},
|
|
23
|
+
"many-discrete-colors": {
|
|
24
|
+
summary: "A discrete color/fill field has more than 10 distinct values.",
|
|
25
|
+
needs: "data",
|
|
26
|
+
rationale:
|
|
27
|
+
"Beyond ~10 hues, colors stop being distinguishable and the default palette cycles. Facet by the field, aggregate it, or pin an explicit domain + range.",
|
|
28
|
+
},
|
|
29
|
+
"stacked-area-negative": {
|
|
30
|
+
summary: "A stacked area layer's y field contains negative values.",
|
|
31
|
+
needs: "data",
|
|
32
|
+
rationale:
|
|
33
|
+
'Stacked areas imply parts of a whole; negative contributions make band boundaries cross and mislead. Use a line layer per series, or position: "identity".',
|
|
34
|
+
},
|
|
35
|
+
"discrete-discrete-scatter": {
|
|
36
|
+
summary: "A point layer maps discrete fields on BOTH x and y.",
|
|
37
|
+
needs: "data-or-profile",
|
|
38
|
+
rationale:
|
|
39
|
+
"Discrete-by-discrete points overplot into a grid where counts are invisible. Jitter the points, or count the combinations and encode the count.",
|
|
40
|
+
},
|
|
41
|
+
"transform-domain-data": {
|
|
42
|
+
summary:
|
|
43
|
+
"A transform scale (log10/sqrt) is configured over data that mixes in-domain and out-of-domain values.",
|
|
44
|
+
needs: "data",
|
|
45
|
+
rationale:
|
|
46
|
+
"log10 rejects values <= 0 and sqrt rejects values < 0; the transform silently drops out-of-domain rows before stats (the pipeline warns at render). Filter the data deliberately, or use an identity/linear scale if those values are meaningful.",
|
|
47
|
+
},
|
|
48
|
+
"fractional-calendar-years": {
|
|
49
|
+
summary:
|
|
50
|
+
"A position channel holds year-like numbers with month fractions (year + month/12) on a linear scale.",
|
|
51
|
+
needs: "data",
|
|
52
|
+
rationale:
|
|
53
|
+
'Encoding calendar months as 1854.25 / 1855.917 makes linear tick and tooltip formatters print decimals like 1855.9 — a silent unit lie. Store ISO year-month or date strings ("1854-04" / "1854-04-01") and use a time scale (ScaleXDate, labels "%b %Y") so axes and Inspect pins read as calendar months.',
|
|
54
|
+
},
|
|
55
|
+
} as const satisfies Record<string, LintCatalogEntry>;
|
|
56
|
+
|
|
57
|
+
export type LintAdvisoryCode = keyof typeof LINT_CATALOG;
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layer-scoped lint rules: line-over-nominal-x, discrete-discrete-scatter,
|
|
3
|
+
* stacked-area-negative, many-discrete-colors.
|
|
4
|
+
* Scale-level rules: lint-scale-rules.ts. Orchestrator: lint.ts.
|
|
5
|
+
*/
|
|
6
|
+
import type { Aes, ChannelName } from "./schema.js";
|
|
7
|
+
import { GEOM_DEFAULTS } from "./schema-catalog.js";
|
|
8
|
+
import type { FieldEvidenceEntry, ProfileFieldType } from "./validate-data.js";
|
|
9
|
+
import type { SpecAdvisory } from "./lint.js";
|
|
10
|
+
|
|
11
|
+
const DISCRETE: ReadonlySet<ProfileFieldType> = new Set(["nominal", "ordinal"]);
|
|
12
|
+
|
|
13
|
+
function isRecord(v: unknown): v is Record<string, unknown> {
|
|
14
|
+
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** Distinct non-null values in a column (single pass, no intermediate filter). */
|
|
18
|
+
function countDistinctNonNull(values: readonly unknown[]): number {
|
|
19
|
+
const distinct = new Set<unknown>();
|
|
20
|
+
for (const value of values) {
|
|
21
|
+
if (value !== null) distinct.add(value);
|
|
22
|
+
}
|
|
23
|
+
return distinct.size;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export type LintFieldOf = (
|
|
27
|
+
layerAes: Aes | undefined,
|
|
28
|
+
channel: ChannelName,
|
|
29
|
+
) => { field: string; info: FieldEvidenceEntry } | null;
|
|
30
|
+
|
|
31
|
+
/** Layer-scoped advisories for one lintSpec pass. */
|
|
32
|
+
export function collectLayerLintAdvisories(input: {
|
|
33
|
+
layers: unknown[];
|
|
34
|
+
fieldOf: LintFieldOf;
|
|
35
|
+
}): SpecAdvisory[] {
|
|
36
|
+
const { layers, fieldOf } = input;
|
|
37
|
+
const advisories: SpecAdvisory[] = [];
|
|
38
|
+
|
|
39
|
+
// FieldEvidenceMap is built once per lintSpec/validate call; distinct counts
|
|
40
|
+
// for many-discrete-colors are memoized across layers/channels that share a
|
|
41
|
+
// field so a high-cardinality column is scanned O(n), not O(L·n).
|
|
42
|
+
const distinctNonNullByField = new Map<string, number>();
|
|
43
|
+
// Same contract for stacked-area-negative: one scan per y field, not per
|
|
44
|
+
// layer. Field name is a safe key because lint evidence is one plot-level
|
|
45
|
+
// map per pass (lintSpec builds or receives a single FieldEvidenceMap), so
|
|
46
|
+
// a field name always resolves to the same values array within one call.
|
|
47
|
+
// If lint ever gains layer-scoped evidence, key on the values array instead.
|
|
48
|
+
const hasNegativeByField = new Map<string, boolean>();
|
|
49
|
+
|
|
50
|
+
for (let i = 0; i < layers.length; i++) {
|
|
51
|
+
const layer = layers[i];
|
|
52
|
+
if (!isRecord(layer)) continue;
|
|
53
|
+
const geom = typeof layer["geom"] === "string" ? layer["geom"] : "";
|
|
54
|
+
const layerAes = isRecord(layer["aes"]) ? (layer["aes"] as Aes) : undefined;
|
|
55
|
+
const defaults = GEOM_DEFAULTS[geom as keyof typeof GEOM_DEFAULTS];
|
|
56
|
+
const position =
|
|
57
|
+
typeof layer["position"] === "string"
|
|
58
|
+
? layer["position"]
|
|
59
|
+
: (defaults?.position ?? "identity");
|
|
60
|
+
addLineAdvisory({ advisories, fieldOf, geom, layerAes, index: i });
|
|
61
|
+
addScatterAdvisory({ advisories, fieldOf, geom, layerAes, position, index: i });
|
|
62
|
+
addAreaAdvisory({
|
|
63
|
+
advisories,
|
|
64
|
+
fieldOf,
|
|
65
|
+
geom,
|
|
66
|
+
layerAes,
|
|
67
|
+
position,
|
|
68
|
+
index: i,
|
|
69
|
+
hasNegativeByField,
|
|
70
|
+
});
|
|
71
|
+
addColorAdvisories({
|
|
72
|
+
advisories,
|
|
73
|
+
fieldOf,
|
|
74
|
+
layerAes,
|
|
75
|
+
index: i,
|
|
76
|
+
distinctNonNullByField,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return advisories;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
interface LayerLintContext {
|
|
84
|
+
advisories: SpecAdvisory[];
|
|
85
|
+
fieldOf: LintFieldOf;
|
|
86
|
+
geom: string;
|
|
87
|
+
layerAes: Aes | undefined;
|
|
88
|
+
index: number;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function addLineAdvisory(ctx: LayerLintContext): void {
|
|
92
|
+
if (ctx.geom !== "line" && ctx.geom !== "step") return;
|
|
93
|
+
const x = ctx.fieldOf(ctx.layerAes, "x");
|
|
94
|
+
if (x === null || x.info.type !== "nominal") return;
|
|
95
|
+
ctx.advisories.push({
|
|
96
|
+
code: "line-over-nominal-x",
|
|
97
|
+
path: `/layers/${ctx.index}/aes/x`,
|
|
98
|
+
message: `This ${ctx.geom} layer connects points across "${x.field}", a nominal (unordered) field — the line's slopes carry no meaning.`,
|
|
99
|
+
suggestion: {
|
|
100
|
+
description:
|
|
101
|
+
'Use geom "col" (or "bar" with the count stat) for per-category values; keep "line"/"step" only for ordered x (numbers, dates, or a genuinely ordinal field).',
|
|
102
|
+
example: { geom: "col" },
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function addScatterAdvisory(ctx: LayerLintContext & { position: string }): void {
|
|
108
|
+
if (ctx.geom !== "point" || ctx.position === "jitter") return;
|
|
109
|
+
const x = ctx.fieldOf(ctx.layerAes, "x");
|
|
110
|
+
const y = ctx.fieldOf(ctx.layerAes, "y");
|
|
111
|
+
if (x === null || y === null || x.info.type === null || y.info.type === null) return;
|
|
112
|
+
if (!DISCRETE.has(x.info.type) || !DISCRETE.has(y.info.type)) return;
|
|
113
|
+
ctx.advisories.push({
|
|
114
|
+
code: "discrete-discrete-scatter",
|
|
115
|
+
path: `/layers/${ctx.index}`,
|
|
116
|
+
message: `This point layer maps discrete fields on both axes ("${x.field}" × "${y.field}") — identical combinations overplot invisibly.`,
|
|
117
|
+
suggestion: {
|
|
118
|
+
description:
|
|
119
|
+
'Add position: "jitter" to spread the points, or count the combinations and encode the count (e.g. point size).',
|
|
120
|
+
example: { geom: "point", position: "jitter" },
|
|
121
|
+
},
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function addAreaAdvisory(
|
|
126
|
+
ctx: LayerLintContext & { position: string; hasNegativeByField: Map<string, boolean> },
|
|
127
|
+
): void {
|
|
128
|
+
if (ctx.geom !== "area" || (ctx.position !== "stack" && ctx.position !== "fill")) return;
|
|
129
|
+
const y = ctx.fieldOf(ctx.layerAes, "y");
|
|
130
|
+
const values = y?.info.values;
|
|
131
|
+
if (y === null || values === null || values === undefined) return;
|
|
132
|
+
let hasNegative = ctx.hasNegativeByField.get(y.field);
|
|
133
|
+
if (hasNegative === undefined) {
|
|
134
|
+
hasNegative = values.some((value) => typeof value === "number" && value < 0);
|
|
135
|
+
ctx.hasNegativeByField.set(y.field, hasNegative);
|
|
136
|
+
}
|
|
137
|
+
if (!hasNegative) return;
|
|
138
|
+
ctx.advisories.push({
|
|
139
|
+
code: "stacked-area-negative",
|
|
140
|
+
path: `/layers/${ctx.index}/aes/y`,
|
|
141
|
+
message: `This stacked area layer's y field "${y.field}" contains negative values — stacked bands will cross and misread as parts of a whole.`,
|
|
142
|
+
suggestion: {
|
|
143
|
+
description:
|
|
144
|
+
'Draw one line per series instead, or set position: "identity" to overlap the areas.',
|
|
145
|
+
example: { geom: "area", position: "identity" },
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
function addColorAdvisories(
|
|
151
|
+
ctx: Omit<LayerLintContext, "geom"> & { distinctNonNullByField: Map<string, number> },
|
|
152
|
+
): void {
|
|
153
|
+
for (const channel of ["color", "fill"] as const) {
|
|
154
|
+
const color = ctx.fieldOf(ctx.layerAes, channel);
|
|
155
|
+
const values = color?.info.values;
|
|
156
|
+
if (color === null || values === null || values === undefined || color.info.type === null)
|
|
157
|
+
continue;
|
|
158
|
+
if (!DISCRETE.has(color.info.type)) continue;
|
|
159
|
+
let distinct = ctx.distinctNonNullByField.get(color.field);
|
|
160
|
+
if (distinct === undefined) {
|
|
161
|
+
distinct = countDistinctNonNull(values);
|
|
162
|
+
ctx.distinctNonNullByField.set(color.field, distinct);
|
|
163
|
+
}
|
|
164
|
+
if (distinct <= 10) continue;
|
|
165
|
+
ctx.advisories.push({
|
|
166
|
+
code: "many-discrete-colors",
|
|
167
|
+
path: `/layers/${ctx.index}/aes/${channel}`,
|
|
168
|
+
message: `Field "${color.field}" maps ${distinct} distinct values to ${channel} — beyond ~10, hues stop being distinguishable and the default palette cycles.`,
|
|
169
|
+
suggestion: {
|
|
170
|
+
description: `Facet by "${color.field}", aggregate it to fewer categories, or pin scales.${channel}.domain (+ a range) to the values that matter.`,
|
|
171
|
+
example: { facet: { wrap: { field: color.field } } },
|
|
172
|
+
},
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
}
|